Τελικά Διαγωνίσματα

Ξεκίνησε από joanna, 10 Μαΐου 2009, 02:49:21 ΠΜ

« προηγούμενο - επόμενο »

meteo_xampos

Xryka, στους μαθητές μου είπα ότι ο τελεστής ανάθεσης μπορεί να είναι στο ψευδοκώδικα είτε := είτε <-. Ούτως ή άλλως
σε ένα λογικό διάγραμμα στο κεφάλαιο 4.4 το έχει το βιβλίο το <- σε μια εντολή εκχώρησης τιμής. Εγώ έχω πεί στους
μαθητές να γράφουν σε Pascal όταν τους ζητείται να φτιάξουν πρόγραμμα (ασκήσεις ανάπτυξης), και όταν τους έχει
ψευδοκώδικα σε μια άσκηση (π.χ. για διάγραμμα ροής ή μετατροπές μεταξύ δομών επανάληψης) να χρησιμοποιούν τους
ΚΑΙ, Ή, ΟΧΙ σα λογικούς τελεστές, σε ψευδοκώδικα. Ελπίζω στα επόμενα χρόνια να μην υπάρχουν ασκήσεις καθόλου με τον απαράδεκτο ψευδοκώδικα, και να βάλουν μόνο Pascal. Ή έστω να βάλουν την ΓΛΩΣΣΑ από την ανάπτυξη...


kristi

Καλησπέρα και από εμένα.Αν βάλουν υποπρόγραμμα σε ψευδοκώδικα το γράφουμε παίρνοντας στοιχεία απο pascal;Δηλαδή όπως το γράφουμε σε pascal το μεταφέρουμε σε ψευδοκώδικα με τισ παραμετρους όπως τα δηλώνουμε εκεί;Και αν ζητηθεί να κάνουμε ένα πρόγραμμα που καλεί υποπρόγραμμα σε λογικό διάγραμμα, γράφουμε μέσα στο σχηματάκι που δίνει το βιβλίο τις εντολές του υποπρογράμματος;Μπέρδεμα!!!Θέλω να πιστεύω πως θα μπουν εύκολα θέματα μιας και δίνεται πρώτη φορά.Πάντως  janag79  αν μπορείς ανέβασε τα θέματα του ΟΕΦΕ θα μας βοηθήσουν.Ευχαριστώ!

meteo_xampos

Καλημέρα σας. Τις ασκήσεις ανάπτυξης μπορείς να τις γράψεις είτε σε ψευδοκώδικα είτε σε Pascal. Οπότε
προτιμάς την Pascal για άσκηση με υποπρογράμματα και ξεμπερδεύεις... :) Η μόνη αναφορά του βιβλίου σε
υποπρογράμματα σε μορφή ψευδοκώδικα είναι στη σελίδα 25 κάτω κάτω, οπότε δεν παίζει να ζητήσουν υποχρεωτικά
να γράψεις την άσκηση με ψευδοκώδικα όταν θα περιλαμβάνει υποπρόγραμμα... Τα θέματα του ΟΕΦΕ νομίζω
θα ξεκλειδωθούν ή σήμερα ή την Παρασκευή (13 ή 15 του μήνα είχαν πει)... Μπορείς να τα βρείς στο site
http://www.oefe.gr

stratosg

Καλησπέρα σας θα συμφωνήσω κι εγώ με την απορία
Παράθεση...Και αν ζητηθεί να κάνουμε ένα πρόγραμμα που καλεί υποπρόγραμμα σε λογικό διάγραμμα, γράφουμε μέσα στο σχηματάκι που δίνει το βιβλίο τις εντολές του υποπρογράμματος;Μπέρδεμα!!!...
.

Εγώ είπα στα παιδιά να κάνουν το διάγραμμα του κυρίως προγράμματος κανονικά χρησιμοποιόντας και το σχήμα των υποπρογραμμάτων και τη συνέχεια να αναπτύξουν σε ξεχωριστό διάγραμμα το υποπρόγραμμα.
Να φοβάσαι εκείνον που δεν έχει να χάσει τίποτα.

Mariosxania

#19
joanna για το 4 αυτό είναι σωστό με τα mod έστι το ζητούσες?
program disekto_etos;
uses crt;
var
etos:integer;
begin
clrscr;
writeln('dose etos');
read(etos) ;
repeat
if (etos mod 4=0)  then
        begin
        if (etos mod 100=0) and (etos mod 400=0) then
        writeln('einai disekto')
        else
        if (etos mod 100=0) and (etos mod 400<>0) then
        writeln('dn einai disekto')
        else
        writeln('einai disekto')
        end
else
writeln('den einai disketo');
writeln('dose kainoyrgio etos');
read(etos);
until etos=2009;
end.

joanna

Λοιπόν λύνοντας τα διαγωνίσματα στην πράξη, έχω βρει αρκετές αδυναμίες ως προς το είδος των θεμάτων, αλλά και ως προς το εύρος των γνώσεων που ελέγχουν. Τα έγραψα και κάπως βιαστικά είναι η αλήθεια (σε ένα καράβι προς Κρήτη  ;) ). Πιστεύω πάντως ότι τα τελικά θέματα θα είναι σαφώς ευκολότερα και λιγότερα.

Μάριε, εγώ το φαντάζομαι κάπως έτσι το πρόγραμμα:

Παράθεσηprogram disekto;
uses crt;
var etos:integer;

function tessera(etos:integer):boolean;
begin
   if (etos mod 4=0) then
      tessera:=true;
   else
      tessera:=false;
end;

function ekato(etos:integer):boolean;
begin
   if (etos mod 100=0) then
      ekato:=true;
   else
      ekato:=false;
end;

function tetrakosia(etos:integer):boolean;
begin
   if (etos mod 400=0) then
      tetrakosia:=true;
   else
      tetrakosia:=false;
end;

begin
readln(etos);
while (etos>0)
begin
  if (tessera(etos)) then
     if (ekato(etos)) then
        if (tetrakosia(etos)) then
           writeln('einai disekto');
        else
           writeln('den einai disekto');
     else
        writeln('einai disekto');
  else
     writeln('den einai disekto');
  readln(etos);
end;
end.

Τώρα για την εγκυρότητα του έτους, δεν είναι και τόσο συγκεκριμένο το πρόβλημα... Εγώ θεώρησα ότι έγκυρα (για το συγκεκριμένο πρόγραμμα πάντα) είναι τα μ.Χ. έτη (χωρίς κάποιον ιδιαίτερο λόγο).

Και η δική σου λύση είναι σωστή φυσικά. Μία λεπτομέρεια μόνο:
Η παρακάτω if:
Παράθεσηif (etos mod 100=0) and (etos mod 400=0) then
        writeln('einai disekto')
        else
        if (etos mod 100=0) and (etos mod 400<>0) then
        writeln('dn einai disekto')
είναι πιο σωστό να γραφτεί:
Παράθεσηif (etos mod 100=0) then
           if (etos mod 400=0) then
              writeln('einai disekto')
           else
              writeln('den einai disekto');
        else
           writeln('einai disekto');
ktl...

Τώρα για ποιο λόγο... έτσι γίνονται λιγότεροι έλεγχοι και ο κώδικας είναι πιο γρήγορος!!

DeiDei

Κατι άκυρο, στο "διαγώνισμα" 1 , στο θέμα πρώτο , δεύτερη άσκηση με τα κενά, μπορείνα δώσει κάποιος τις απαντήσεις ο.Ο  thnxxzxzx!!11!!ena!!1thaumastiko!1

Mariosxania

α) Ο μεταγλωττιστής είναι ένα ειδικό πρόγραμμα που μεταφράζει  ένα άλλο πρόγραμμα, από μία γλώσσα προγραμματισμού σε γλώσσα μηχανής Το πρόγραμμα προς μετάφραση το λέμε πηγιαίο  (source) πρόγραμμα, ενώ το μεταφρασμένο αντικείμενο (object) πρόγραμμα.
β) Ο δομημένος προγραμματισμός χρησιμοποιεί για την κωδικοποίηση των προγραμμάτων τις βασικές αλγοριθμικές δομές για τη δημιουργία πολύπλοκων προγραμμάτων. Οι δομές αυτές είναι η επιλογή η απλήακολουθία και η απανάληψη.Εκτός από τις δομές αυτές χρησιμοποιούνται και τεχνικές ανάπτυξης και σχεδίασης όπως του ιεραρχικού και του τμηματικού προγραμματισμού. Η παράσταση αυτών των τεχνικών γίνεται με τα διαγράμματα hipo  που στα ελληνικά μεταφράζετε ως ιεράρχηση εισόδου - επεξεργασίας- εξόδου. Στα διαγράμματα αυτά εμφανίζονται τα διάφορα επίπεδα ιεραρχίας και τα τμήματα προγράμματος με αριθμό σύμφωνα με τη σειρά εκτέλεσής τους.

Τσεκάρετε τα γιατί μπορεί να χω κάνει κάνα λάθος δεν έχω βιβλίο εδώ.Τέσπα πάτνως Deidei αυτά είναι πολύ σος πρέπει να τα μάθεις....

vasalu_23

στο 1ο διαγωνισμα στο θεμα 3ο πρεπει να πολλαπλασιασουμε οτι βρουμε με 10 επειδη ειναι 10 τα ατομα? η οτι βρουμε ειναι για ολη την ομαδα?

DeiDei

#24
Δν ειμαι σιγουρος, κ νομιζω οτι πρεπει να βαζεις στανταρ μερες, (5,10,22,30)..δν το εχει διευκρινησει καλα

Λογικα, εισαγει ο καθε "ταξιδιωτης" μια απο της επιλογες π εχει για τις μερες, την θεση , κ τα προσθετεις ολα τα εισιτηρια τον παιδιων για να βγαλεις για την ομαδα
Αν ξερει καποιος να την λυση σωστα να μην διστασει

Καποιος!!1!!1 Βοηθεια...

Mariosxania

Λογικά *10 αφού σου λέει 10 άτομα.Οποιος το λύσει ας το ανεβάσει να συγκρίνω με εμένα...

DeiDei

#26
με τι το εκανες? case?for i? klp...

...η ασκηση ειναι να παιρνεις ενα εισιτηριο κ να το πολλαπλασιαζεις επι το 10?
Αν εινα ετσι διαβασα λαθος την ασκηση, κ εφτιαξα ενα που διαβαζει το καθε ατομο (με διαφορετικες μερες κ κλασεις) κ να τα προσθετει 10 φορες(μ πηρε πολυ για να το φτιαξω)...γτ ελεγα οτι το ενα εισιτηριο * 10 παραηταν ευκολο

Mariosxania

Οχι τόσο εύκολο μπορεί να μπερδευτείς στην σύνταξη γιατί έχει φωλιασμένα if...

vasalu_23

εγω το εκανα με φωλιασμενα If:

Program diagwnisma1;
var
    onoma:string;
    seat,days:integer;
    syn:real;
   
  Begin
     writeln('Dwse onoma omadas pou taksideuei: ');
     readln(onoma);
     writeln('Dwse ari8mo hmerwn poy 8a dianyktereusei h omada [epitreptes meres:5,10,22,30]' );
     readln(days);
     writeln('Dwse thn 8esh sthn opoia epi8ymei na taksideusei h omada' );
     readln(seat);
     
     
     If days=5 then
       If seat=1 then
         syn:=329*10
       else If seat=2 then
         syn:=249*10
       else If seat=3 then
         syn:=259*10;
     
     If days=10 then
      If seat=1 then
         syn:=489*10
       else If seat=2 then
         syn:=359*10
       else If seat=3 then
         syn:=239*10;
     
     If days=22 then
       If seat=1 then
         syn:=629*10
       else If seat=2 then
         syn:=469*10
       else If seat=3 then
         syn:=309*10;
     
     If days=30 then
       If seat=1 then
         syn:=809*10
       else If seat=2 then
         syn:=599*10
       else If seat=3 then
         syn:=399*10;
       
     writeln('H omada ',onoma:15,' 8a dianyktereusei ',days,' meres kai 8a prepei na plhrwsei ',syn:10:2,' euro');
  end.

ακούω απόψεις...

DeiDei

#29
To ετρεξες να δεις αν δουλευει?

Α, κ κατι αλλο ,στο διαγωνισμα 3 ,Θεμα 1, ασκ 2... ο πινακας με τα and or xor Κλπ
μπορει καποιος να δωσει τις απαντησεις (: