Προτεινόμενες λύσεις - Δομημένος Προγραμματισμός 2014

Ξεκίνησε από fkoutsakas, 16 Ιουν 2014, 12:22:42 ΜΜ

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

fkoutsakas

Η ανάρτηση υπάρχει και στο παρακάτω λίνκ
http://okiriostonipologiston.blogspot.gr/2014/06/2014.html

Στη συνέχεια παραθέτω τις (βιαστικές ;-)) λύσεις των θεμάτων (συγγνώμη για την κακή ποιότητα της φωτογραφίας, θα ανεβάσω καλύτερη στη αργότερα...).

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

Ευχαριστώ πολύ.

Λοιπόν έχουμε και λέμε...


ΠΡΟΤΕΙΝΟΜΕΝΕΣ ΛΥΣΕΙΣ
για τα θέματα του μαθήματος Δομημένος Προγραμματισμός (16-06-2014)

ΘΕΜΑ Α

Α1.
α. Σωστό
β. Σωστό
γ. Λάθος
δ. Σωστό
ε. Λάθος
στ. Σωστό

Α2.
1. β
2. γ
3. ε
4. στ
5. δ

Α3.
Οποιαδήποτε δύο χαρακτηριστικά από τα παρακάτω (σελ. 19)
·         Η ακριβής περιγραφή των δεδομένων
·         Ο Σαφής καθορισμός των βημάτων του
·         Ο πεπερασμένος αριθμός βημάτων
·         Η ολοκλήρωση κάθε βήματος σε πεπερασμένο χρόνο
·         Η ακρίβεια αποτελεσμάτων κάθε βήματος

Α4.
α. 10                                     
β. 3.1416
γ.  i=2

Α5.
krat,. foros :      παράμετροι μεταβλητής
akath:                  παράμετρος τριμής



ΘΕΜΑ Β
Β1
(για την εικόνα κλικ https://drive.google.com/#folders/0B0vTQRXS6uPINnQ2TEhpZEtYUTQ


Β2
Program Thema_B2_2014;

Var
plithos, sum, x, y : integer;


Begin

plithos := 0;
sum := 0;
x := 100;

repeat
   readln(y);
   plithos := plithos + 1;
   sum := sum + y;
   x := x div 2;
until x <= 5;

if sum > 80 then
   writeln('πληθος=', plithos)
else
   writeln('αθροισμα=', sum)
End.




ΘΕΜΑ Γ.

Program Thema_C_2014;
Var
   kivismos, ilikia                : integer;
   asfalistra, asfalistra_me_fpa         :   real;
   
Begin
   write('Δωσε μου τον Κυβισμό του αυτοκινήτου ');
   readln(kivismos);
   write('Δώσε μου την ηλικία του οδηγού ');
   readln(ilikia);
   
   if kivismos <= 1000 then
      asfalistra := 150
   else
      if kivismos <= 2000 then
         asfalistra := 200
      else
         asfalistra := 300;
         
   if ilikia <= 23 then
      asfalistra := asfalistra + 40;
      
   asfalistra_me_fpa := asfalistra + (asfalistra * 23/100);
   
   writeln('Το τελικό ποσό ασφσλίστρων με ΦΠΑ είναι: ' , asfalistra_me_fpa:10:2);

End.
ΘΕΜΑ Δ.

Program Thema_D_2014;

Var
   nomos, nomos_megaliterou_eksetastikou            : string;
   i, plithos_mathiton, sinolo_eksetazomenon_mathiton   : integer;
   plithos_aponton, plithos_sxoleion_xwris_apontes      : integer;
sinolo_paronton, paronters_eksetastikou         : integer;
megaliteros_arithmos_mathiton               : integer;

Begin
   
   plithos_mathiton := 0;  sinolo_eksetazomenon_mathiton := 0;
   plithos_aponton := 0; plithos_sxoleion_xwris_apontes := 0;
sinolo_paronton :=0;
   nomos := ' ';
   nomos_megaliterou_eksetastikou := ' ';
   
   for i := 1 to 143 do
   begin
      write('Δώσε τον νομό του εξεταστικού κέντρου ');
      readln(nomos);
      write('Δώσε το πλήθος των μαθητών που έχουν δικαίωμα να
προσέλθουν στις εξετάσεις ');
      readln(plithos_mathiton);
      write('Δώσε το πλήθος των απόντων μαθητών ');
      readln(plithos_aponton);
      
      if plithos_mathiton > megaliteros_arithmos_mathiton then
      begin
         megaliteros_arithmos_mathiton := plithos_mathiton;
         nomos_megaliterou_eksetastikou := nomos;
      end;
      
      paronters_eksetastikou := plithos_mathiton - plithos_aponton;
      
      sinolo_paronton := sinolo_paronton + paronters_eksetastikou;
            
      if plithos_aponton = 0 then
   plithos_sxoleion_xwris_apontes :=
plithos_sxoleion_xwris_apontes + 1;
   end;
   
   writeln('Ο νομός με το μεγαλύτερο εξεταστικό κέντρο είναι ο : ',
nomos_megaliterou_eksetastikou);
   writeln('Ο συνολικός αριθμός των μαθητών που προσήλθαν στις
εξετάσεις ήταν', sinolo_paronton);
   writeln('Το πλήθος των εξεταστικών κέντρων χωρίς απόντες είναι: ',
plithos_sxoleion_xwris_apontes);
   

End.

Program Ypopsifios

στο Α4 στο β, αντι για 3.1416 εγραψα 3.1415 ( δεν εκανα την στρογγυλοποιηση). Μήπως ξέρετε πόσο κόβουν, αν κόβουν σε αυτή την περίπτωση;

christodoulos

Για άλλη μια φορά βάζουν θέμα στην Pascal όπου πρέπει να καταχωρήσεις ένα string σε άλλο (nomos_megaliterou_eksetastikou := nomos;), κάτι που δεν ισχύει στην Pascal αλλά και ούτε που υπάρχει σχετικό παράδειγμα μέσα στην ύλη. Δεν πειράζει όμως ποιος ασχολείται με τα ΕΠΑΛ; Ή ποιός σύμβουλος-καθηγητής-γονιός-μαθητής-ΠΕΚΑΠ-ΕΠΥ-ΕΠΕ-... θα διαμαρτυρηθεί; Το εκλαμβάνουμε σωστό και πάμε παρακάτω.

Γεώργιος Ατματσίδης

Δυστυχώς,έχεις δίκιο είμαι μαθητής και το βλέπω..και εκτός αυτού για το "string"είδα και άλλα λάθη σε πανελλαδικές ασκήσεις..οπως πχ αυτο στην case :
  case x of
    1,2,3,5 :z:=z+1;
    5..10:z:=z+2;
  end;
είναι τυχαίο παράδειγμα,που θέλω να δείξω ότι βάζουν διπλότυπες τιμές (πχ το 5) που αν θα το περάσεις ακριβώς έτσι  όπως είναι στον compiler ΔΕΝ πρόκειται να το κάνει compilation.