Παρασκευή 14 Νοεμβρίου 2014

Άσκηση Νούμερο 3 WHILE,FOR και IF

Εκφώνηση
Να γίνει πρόγραμμα σε pascal το οποίο:

α) Να περιέχει τμήμα δηλώσεις μεταβλητών

β) Να διαβάζει απο το πληκτρολόγιο έναν 4ψηφιο αριθμό\

γ)Αν ο αριθμός δεν ειναι 4ψηφιος να εμφανίζει ένα ακατάλληλο μήνυμα και έπειτα να τερματίζει.

δ)Σε διαφορετική περίπτωση το πρόγραμμα να υπολογίζει και να εμφανίζει τον παλινδρομικό(αντίθετο του) αριθμό

ε)Όλα τα παραπάνω να επαναλαμβάνονται μέχρι να πατηθεί ο αριθμός 0

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

Λύση


program while_if_and_for_duskoli;
var
x,y1,y2,y3,y4,sum1,sum2,sum_total,sum,k,l,palindr:integer;
begin
writeln('Πάτησε εναν αριθμό!');
readln(x);
while x <> 0 do
  begin
   if (x >= 1000) and (x <=9999) then
      begin
        writeln('Ο αριθμός που πάτησες είναι τετραψήφιος');
        writeln('Τώρα σπάω τον αριθμό στα ψηφία του.');
        y1 := x div 1000;
        k := x mod 1000;
        y2 := k div 100;
        l := k mod 100;
        y3 := l div 10;
        y4 := l mod 10;
        palindr := y4*1000 + y3*100 + y2*10 + y1*1;
        writeln('Ο παλλινδρομικός σου αριθμός είναι: ',palindr);
        sum := y1 + y2 + y3 + y4;
        if sum > 26 then
          begin
            sum1 := sum div 10;
            sum2 := sum mod 10;
            sum_total := sum1 + sum2;
            writeln('Ψάξε βρες τώρα ποιός σε σκέφτετε. Πάντως βγήκε το νούμερο ',sum_total,' αλλά δεν είμαι εγω!!!!');
          end
        else
          begin
            sum_total := y1 + y2 + y3 + y4;
            writeln('Ψάξε βρες τώρα ποιός σε σκέφτετε. Πάντως βγήκε το νούμερο ',sum_total,' αλλά δεν είμαι εγω!!!!');
          end
        ;
      end
   else
      begin
        writeln('Δυστυχώς ο αριθμός που πάτησες δεν είναι τετραψήφιος!');
      end
   ;
   writeln('Πάτα κι άλλον αριθμό');
   readln(x);
  end
;
writeln('Ευχαριστώ. Γειά σας. Τα δέοντα.');
end.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου