PASCAL 'Ασκηση

Συζητήσεις σχετικές με την Delphi και την πρόγονη της Pascal

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Jimmyboo
Δημοσιεύσεις: 2
Εγγραφή: 29 Δεκ 2011 11:09

PASCAL 'Ασκηση

Δημοσίευση από Jimmyboo » 29 Δεκ 2011 11:15

χρειάζομαι βοήθεια με ένα πρόβλημα!
Ακούστε.
Σε ένα ιδιωτικό πάρκιν υπάρχουν 30 χώροι στάθμευσης ανάλογα με το είδος των οχημάτων που παρκάρωντε.
10 για φορτιγά,10 για ΙΧ και 10 για μοτοποδήλατα.για κάθε όχημα κόβεται εισιτήριο συνολικά μπςρούν να κοπούν 550 εισιτήρια
την μέρα για όλα τα οχήματα. συγκεκριμένα 150 για μοτοσικλέτες 50 για φορτηγά και τα υπόλοιπα για ΙΧ.
Να γραφεί πρόγραμμα PASCAL το οποίο να διαβάζει το είδος του οχήματος και να υπολογίζει το κόστος του ανάλογα με:
α)μέχρι 6 ώρες---> 7 ευρώ
β)πάνω από 6 ώρες---> 10 ευρώ.

GReaper
Δημοσιεύσεις: 48
Εγγραφή: 11 Δεκ 2010 21:47
Επικοινωνία:

PASCAL 'Ασκηση

Δημοσίευση από GReaper » 29 Δεκ 2011 13:01

Οκ... και τι έχεις κάνει μέχρι τώρα;

Jimmyboo
Δημοσιεύσεις: 2
Εγγραφή: 29 Δεκ 2011 11:09

PASCAL 'Ασκηση

Δημοσίευση από Jimmyboo » 29 Δεκ 2011 13:36

GReaper έγραψε:Οκ... και τι έχεις κάνει μέχρι τώρα;
πέρα από τα οχήματα δεν ξέρω τι άλλες μεταβλητές πρέπει να δηλώσω και
τι συνθήκες θα ισχύουν σε αφτή τη δομή επανάληψης

Άβαταρ μέλους
giannis17
Honorary Member
Δημοσιεύσεις: 1215
Εγγραφή: 06 Ιαν 2005 19:50
Τοποθεσία: Παγκράτι - Αθήνα
Επικοινωνία:

PASCAL 'Ασκηση

Δημοσίευση από giannis17 » 27 Δεκ 2012 00:26

Μπορεί να γίνει με διάφορους τρόπους συν οτι η εκφώνηση είναι αρκετά ελλειπής. Μια απλή αλλά πολύ τελειοποημένη μορφή χωρίς πίνακες επειδή δεν ξέρω αν τους έχετε κάνει ακόμα είναι η παρακάτω. Επίτηδες υπάρχει ένα bug: όταν ξανατρέξει το πρόγραμμα (την άλλη μέρα) οι θέσεις είναι πάλι κενές άσχετα αν τη προηγούμενη μέρα έμειναν μέσα παρκαρισμένα οχήματα. Αυτό κανονικά χρειάζεται να σώνει τις τιμές σε αρχείο κατά το κλέισιμο αλλά είναι κάπως προχωρημένο και το άφησα. Ήδη η αναφορά στο τέλος δεν τη ζήταγε η άσκηση.

Κώδικας: Επιλογή όλων

program parking;
var a,fort,ix,mix,maxfort,maxix,maxmix,timi,total,telos:integer;
begin
fort:=0; {piasmenes theseis fortigwn}
ix:=0; {piasmenes theseis ix}
mix:=0; {piasmenes theseis motosykletwn}
maxfort:=0; {posa fortiga exoun perasei}
maxix:=0; {posa ix exoun perasei}
maxmix:=0; {poses motosykletes exoun perasei}
total:=0; {synolo eispraksewn}
repeat
{ftiaxnoume to arxiko menu epilogwn}
writeln('Epilekste Leitourgia');
writeln('1. Eiserxomeno Oxima');
writeln('2. Ekserxomeno Oxima');
writeln('3. Termatismos Programmatos');
readln(a);
case a of
1:begin {an einai eiserxomeno oxima rwtame ton typo tou oximatos kai vlepoume an xwraei kai an exoume alla eisitiria}
	writeln('Dilwste typo oximatos');
	writeln('1. Fortigo');
	writeln('2. IX');
	writeln('3. Motosykleta');
	readln(a);
	case a of
	1:begin
		if &#40;fort<10&#41; and &#40;maxfort<50&#41; then
		begin
			writeln&#40;'Yparxei keni thesi. Parakalw Peraste'&#41;; &#123;an mporei na mpei tou to leme kai katalamvanoume ti thesi fort kai prosthetoume  to fortigo sto synolo&#125;
			fort&#58;=fort+1;
			maxfort&#58;=maxfort+1;
		end
		else writeln&#40;'Sygnwmi den yparxei diathesimi thesi i eisitirio'&#41;;
	end;
	2&#58;begin
		if &#40;ix<10&#41; and &#40;maxix<350&#41; then
		begin
			writeln&#40;'Yparxei keni thesi. Parakalw Peraste'&#41;;
			ix&#58;=ix+1;
			maxix&#58;=maxix+1;
		end
		else writeln&#40;'Sygnwmi den yparxei diathesimi thesi i eisitirio'&#41;;
	end;
	3&#58;begin
		if &#40;mix<10&#41; and &#40;maxmix<150&#41; then
		begin
			writeln&#40;'Yparxei keni thesi. Parakalw Peraste'&#41;;
			mix&#58;=mix+1;
			maxmix&#58;=maxmix+1;
		end
		else writeln&#40;'Sygnwmi den yparxei diathesimi thesi i eisitirio'&#41;;
	end;
	end;
end;
2&#58;begin &#123;otan vgainei to oxima apodesmevoume ti thesi kai ypologizoume to kostos eisitiriou&#125;
	writeln&#40;'Dilwste typo oximatos'&#41;;
	writeln&#40;'1. Fortigo'&#41;;
	writeln&#40;'2. IX'&#41;;
	writeln&#40;'3. Motosykleta'&#41;;
	readln&#40;a&#41;;
	case a of
	1&#58;fort&#58;=fort-1;
	2&#58;ix&#58;=ix-1;
	3&#58;mix&#58;=mix-1;
	end;
	writeln&#40;'Dwste wres stathmefsis'&#41;;
	readln&#40;a&#41;; &#123;metavliti paspartou glytwnoume kai mnimi&#125;
	if a<=6 then &#123;an ekatse mexri 6 wres paei a*7 alliws afairoume 6 wres apo to a kai pollaplasiazoume oti emeine me to 10 syn 6*7&#125;
		timi&#58;=a*7
	else timi&#58;=6*7+&#40;a-6&#41;*10;
	total&#58;=total+timi; &#123;enimerwnoume tis eisprakseis&#125;
	writeln&#40;'H timi tou eisitiriou sas einai&#58; ', timi&#41;;
end;
3&#58;telos&#58;=1; &#123;aplas enas deiktis gia na teleiwnei to repeat-until&#125;
end;
if &#40;maxmix+maxfort+maxix&#41;=550 then telos&#58;=1; &#123;an teleiwsoun ta eisitiria den exei noima na trexei to programma&#125;
if telos=1 then &#123;otan loipon teleiwsei to programma ektypwnoume mia analytiki anafora&#125;
begin	
	writeln&#40;'Simera eksypiretisate&#58;'&#41;;
	writeln&#40;maxfort,' Fortiga apo ta opoia ta ', fort,' paramenoun stathevmena'&#41;;
	writeln&#40;maxix,' IX apo ta opoia ta ', ix,' paramenoun stathevmena'&#41;;
	writeln&#40;maxmix,' Motosykletes apo tis opoies oi ', mix,' paramenoun stathevmenes'&#41;;
	writeln&#40;'Synoliko eiserxomenwn oximatwn&#58; ', maxmix+maxfort+maxix&#41;;
	writeln&#40;'Synolo eispraksewn&#58; ', total&#41;;
	writeln&#40;'Synolo oximatwn pou paramenoun gia avrio&#58; ', fort+ix+mix&#41;;
	writeln&#40;'Telos programmatos'&#41;;
end;
until telos=1;
end.

Άβαταρ μέλους
JIMWRCI
Δημοσιεύσεις: 2
Εγγραφή: 23 Σεπ 2006 17:57
Τοποθεσία: ΓΛΥΦΑΔΑ

PASCAL 'Ασκηση

Δημοσίευση από JIMWRCI » 27 Δεκ 2012 17:30

ΔΑΣΚΑΛΕ .. ΠΟΛΥ ΚΑΛΗ Η ΑΠΑΝΤΗΣΗ ΣΟΥ .. ΝΑ ΔΟΥΜΕ ΜΕ ΤΟΥΣ ΠΙΝΑΚΕΣ ΣΤΟ ΙΕΚ ΤΙ ΘΑ ΚΑΝΟΥΜΕ
JIMWRCI

Απάντηση

Επιστροφή στο “Delphi, Pascal”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες