Αποστολέας Θέμα: Πανελλήνιες 2012 - Λύσεις  (Αναγνώστηκε 6294 φορές)

ronalz

  • Θαμώνας
  • ***
  • Μηνύματα: 27
    • ronalz@petros.gr
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #15 στις: 07 Ιούν 2012, 04:07:02 μμ »
βασικα, καλα λες :D

Γιάννης Αναγνωστάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 802
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #16 στις: 07 Ιούν 2012, 04:09:58 μμ »
until typos<>'ΤΕΛΟΣ'
αφου έλεγε οτι μπαινει τουλαχιστον μια φορα.



repeat
readln(typos);
if typos<>'ΤΕΛΟΣ' then
.....
until typos='ΤΕΛΟΣ'

1) Αφού το έκανες με until η συνθήκη είναι typos='ΤΕΛΟΣ'

2) Το if χρειάζεται, γιατί αν απουσιάζει τότε το πρόγραμμα διαβάζει αριθμό επιβατών, υπολογίζει χρέωση και συνολική χρέωση ακόμα και όταν δώσουμε τη λέξη 'ΤΕΛΟΣ', ενώ δεν θα έπρεπε...

ronalz

  • Θαμώνας
  • ***
  • Μηνύματα: 27
    • ronalz@petros.gr
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #17 στις: 07 Ιούν 2012, 04:11:15 μμ »
ναι ξερω.. θα μου κοψουν μερικες απο εκει..

dolcefarniente

  • Βετεράνος
  • ****
  • Μηνύματα: 56
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #18 στις: 07 Ιούν 2012, 04:17:55 μμ »
Αν ήταν όμως κάπως έτσι:

sum:=0;
repeat
 readln(typos);
 readln(epivates);
 if typos= 'M' then
  xr:= 10 +(epivates - 1)*5
 else if typos = 'A' then
  xr:= 20 +(epivates - 1)*5
 else if typos = 'Φ' then
  begin 
   xr:= 30 +(epivates - 1)*5;
  pl:= pl+1;
 end;
sum = sum+ xr;
until typos = "ΤΕΛΟΣ"

αν έδινα τη λέξη τέλος δε θα έμπαινε σε κανένα if, θα γινόταν εκτέλεση 1 φορά και θα ήταν οκ. Σωστά;

Γιάννης Αναγνωστάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 802
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #19 στις: 07 Ιούν 2012, 04:21:05 μμ »
Πέρα του ότι είναι λογικό λάθος, από τη στιγμή που δώσαμε τη λέξη 'ΤΕΛΟΣ' να πρέπει να δώσουμε και αριθμό επιβατών τι θα γινόταν με την εντολή sum = sum+ xr;

Τι τιμή θα είχε το xr για να γίνει η πρόσθεση; (προφανώς του προηγούμενου οχήματος)

dolcefarniente

  • Βετεράνος
  • ****
  • Μηνύματα: 56
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #20 στις: 07 Ιούν 2012, 04:32:32 μμ »
Πέρα του ότι είναι λογικό λάθος, από τη στιγμή που δώσαμε τη λέξη 'ΤΕΛΟΣ' να πρέπει να δώσουμε και αριθμό επιβατών τι θα γινόταν με την εντολή sum = sum+ xr;

Τι τιμή θα είχε το xr για να γίνει η πρόσθεση; (προφανώς του προηγούμενου οχήματος)

Σωστά. Τότε θα έπρεπε να υπάρχει ένα else xr:=0 πριν τη sum = sum+ xr;, οπότε για το αρχικό όχημα έχοντας αρχικοποιήσει το xr:=0 to sum θα ήταν 0 και θα σταματούσε η επανάληψη, ενώ για κάποιο επόμενο θα παρέμενε sum:=sum και θα σταματούσε.

Γιάννης Αναγνωστάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 802
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #21 στις: 07 Ιούν 2012, 04:36:03 μμ »
Σωστά. Τότε θα έπρεπε να υπάρχει ένα else xr:=0 πριν τη sum = sum+ xr;, οπότε για το αρχικό όχημα έχοντας αρχικοποιήσει το xr:=0 to sum θα ήταν 0 και θα σταματούσε η επανάληψη, ενώ για κάποιο επόμενο θα παρέμενε sum:=sum και θα σταματούσε.

Αυτό βελτιώνει τη κατάσταση , αλλά κατά την άποψη μου, δεν ικανοποιεί αυτό που ζητάει η άσκηση...Δηλαδή, δεν πρέπει να προχωράει και να δέχεται αριθμό επιβατών όταν έχουμε δώσει ως τύπο τη λέξη 'ΤΕΛΟΣ'..για αυτό είπα ότι χρειάζεται αυτό το if

ronalz

  • Θαμώνας
  • ***
  • Μηνύματα: 27
    • ronalz@petros.gr
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #22 στις: 07 Ιούν 2012, 04:37:46 μμ »
πόσο λέτε να μου κόψουν?  :(

Γιάννης Αναγνωστάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 802
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #23 στις: 07 Ιούν 2012, 04:39:51 μμ »
πόσο λέτε να μου κόψουν?  :(

Δεν πιστεύω πάνω 2 μόρια

dolcefarniente

  • Βετεράνος
  • ****
  • Μηνύματα: 56
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #24 στις: 07 Ιούν 2012, 04:43:19 μμ »
Αυτό βελτιώνει τη κατάσταση , αλλά κατά την άποψη μου, δεν ικανοποιεί αυτό που ζητάει η άσκηση...Δηλαδή, δεν πρέπει να προχωράει και να δέχεται αριθμό επιβατών όταν έχουμε δώσει ως τύπο τη λέξη 'ΤΕΛΟΣ'..για αυτό είπα ότι χρειάζεται αυτό το if

Συμφωνώ απολύτως με το while που έχεις δώσει, έχεις πολύ λιγότερα να σκεφτείς και να ελέγξεις από ότι στην υλοποίηση με repeat. Ευχαριστώ για την άποψη σου.
Και κάτι ακόμα, πόσα μόρια πιστεύεις ότι θα έκοβαν από κάποιον που δεν έβαλε ξανά read στο σώμα της επανάληψης και είναι σοβαρό λάθος;

ronalz

  • Θαμώνας
  • ***
  • Μηνύματα: 27
    • ronalz@petros.gr
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #25 στις: 07 Ιούν 2012, 04:44:51 μμ »
Δεν πιστεύω πάνω 2 μόρια

σε ευχαριστω πολυ janag79..
και γενικα ευχαριστω όλο το Φορουμ για την συμπαρασταση σας σε εμας

Γιάννης Αναγνωστάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 802
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #26 στις: 07 Ιούν 2012, 04:45:07 μμ »
Συμφωνώ απολύτως με το while που έχεις δώσει, έχεις πολύ λιγότερα να σκεφτείς και να ελέγξεις από ότι στην υλοποίηση με repeat. Ευχαριστώ για την άποψη σου.
Και κάτι ακόμα, πόσα μόρια πιστεύεις ότι θα έκοβαν από κάποιον που δεν έβαλε ξανά read στο σώμα της επανάληψης και είναι σοβαρό λάθος;

Nα σαι καλά

Εννοείς σε κάποιον που το έκανε με while και δεν έβαζε να ξαναδιαβάζει πάλι τύπο πριν κλείσει η while;

Γιάννης Αναγνωστάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 802
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #27 στις: 07 Ιούν 2012, 04:45:34 μμ »
σε ευχαριστω πολυ janag79..
και γενικα ευχαριστω όλο το Φορουμ για την συμπαρασταση σας σε εμας

Καλά αποτελέσματα να χετε παιδιά!

dolcefarniente

  • Βετεράνος
  • ****
  • Μηνύματα: 56
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #28 στις: 07 Ιούν 2012, 04:47:59 μμ »
Nα σαι καλά

Εννοείς σε κάποιον που το έκανε με while και δεν έβαζε να ξαναδιαβάζει πάλι τύπο πριν κλείσει η while;


Ναι. Στην περίπτωση της while αν δεν είχε μέσα read, αλλά μόνο έξω. Δε σταματάει ποτέ και είναι σοβαρό λάθος.

Γιάννης Αναγνωστάκης

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 802
Απ: Πανελλήνιες 2012 - Λύσεις
« Απάντηση #29 στις: 07 Ιούν 2012, 04:58:31 μμ »

Ναι. Στην περίπτωση της while αν δεν είχε μέσα read, αλλά μόνο έξω. Δε σταματάει ποτέ και είναι σοβαρό λάθος.

Κοίτα..Αν το γράφαμε σε διαγώνισμα σε τάξη, μπορεί  να έκοβα πολλά  μόνο και μόνο για να σου τονίσω την σημαντικότητα του
 
Εδώ, με βάση το ότι η παράλειψη σου επηρεάζει τα ερωτήματα Δ2,Δ4 άντε να σου κόψουν 3-4 μόρια (το πολύ) , κατά τη προσωπική μου άποψη