askiseis proxedures functions pascal
DESCRIPTION
lelTRANSCRIPT
Ασκήσεις στη γλώσσα προγραμματισμού Pascal
ΔΙΑΔΙΚΑΣΙΕΣ & ΣΥΝΑΡΤΗΣΕΙΣ
ΑΣΚΗΣΗ 1Να αναπτύξετε μία διαδικασία η οποία να εμφανίζει στην οθόνη μία γραμμή με 10 αστερίσκους. Επίσης, να γράψετε ένα ολοκληρωμένο πρόγραμμα το οποίο με τη βοήθεια αυτής της διαδικασίας να εμφανίζει στην οθόνη:
**********2004********************2005**********
PROGRAM Noname;USES crt;
PROCEDURE stars;BEGIN writeln('**********');END;
BEGIN clrscr; stars; writeln('2004'); stars; stars; writeln('2005'); stars;END.
ή
PROGRAM Noname;USES crt;
PROCEDURE stars;VAR i: integer;BEGIN FOR i:=1 TO 10 DO write('*'); writeln;END;
BEGIN clrscr; stars; writeln('2004'); stars; stars; writeln('2005'); stars;END.
ΑΣΚΗΣΗ 2
Να αναπτύξετε μία διαδικασία η οποία να εμφανίζει στην οθόνη μία γραμμή με συγκεκριμένο πλήθος από κάποιον συγκεκριμένο χαρακτήρα. Το πλήθος αυτό καθώς και ο χαρακτήρας θα δίνονται ως παράμετροι της διαδικασίας. Επίσης, να γράψετε ένα ολοκληρωμένο πρόγραμμα το οποίο με τη βοήθεια αυτής της διαδικασίας να εμφανίζει στην οθόνη:
********************2004-------+++++++-------2005********************
PROGRAM Noname;USES crt;
PROCEDURE characters(n:integer; ch:char);VAR i: integer;BEGIN FOR i:=1 TO n DO write(ch); writeln;END;
BEGIN clrscr; characters(20,'*'); writeln('2004'); characters(7,'-'); characters(7,'+'); characters(7,'-'); writeln('2005'); characters(20,'*');END.
ΑΣΚΗΣΗ 3Να αναπτύξετε μία διαδικασία η οποία να προκαλεί εναλλαγή στην τιμή δύο μεταβλητών τύπου integer. Επίσης, να γράψετε ένα ολοκληρωμένο πρόγραμμα το οποίο να κάνει χρήση αυτής της διαδικασίας.
PROGRAM Noname;USES crt;VAR k1,k2:integer;
PROCEDURE swap(VAR a,b:integer);VAR tmp:integer;BEGIN tmp:=a; a:=b; b:=tmp;END;
BEGIN clrscr; readln(k1, k2); swap(k1, k2); writeln(k1); writeln(k2);END.
ΑΣΚΗΣΗ 4Να αναπτύξετε μία διαδικασία η οποία να εμφανίζει την προπαίδεια του αριθμού n (π.χ. αν ο αριθμός είναι το 4 τότε να εμφανίζει 1x4=4, 2x4=8,... , 10x4=40). Επίσης, να γράψετε ένα ολοκληρωμένο πρόγραμμα το οποίο να κάνει χρήση αυτής της διαδικασίας ώστε να εμφανίζει την προπαίδεια όλων των αριθμών από το 0 έως και το 9.
PROGRAM prop;USES crt;VAR k:integer;
PROCEDURE propaideia(n:integer);VAR i:integer;BEGIN FOR i:=1 TO 10 DO writeln(i, 'x', n, '=', i*n);END;
BEGIN clrscr; FOR k:=0 TO 9 DO BEGIN propaideia(k); writeln; END;END.
ΑΣΚΗΣΗ 5Να αναπτύξετε μία συνάρτηση η οποία να υπολογίζει το xn. Επίσης, να γράψετε ένα ολοκληρωμένο πρόγραμμα το οποίο να κάνει χρήση αυτής της συνάρτησης (Υποθέτουμε ότι n≥0).
PROGRAM Dinami;USES crt;VAR a, ap: real; b: integer;
FUNCTION power(x:real; n:integer):real;VAR i:integer; tmp:real;BEGIN tmp:=1; FOR i:=1 TO n DO tmp:=tmp*x; power:=tmp;END;
BEGIN clrscr; readln(a); readln(b); ap:=power(a,b); writeln(a:10:2, '^', b, '=', ap:10:2);END.
ή με χρήση αναδρομής:
PROGRAM Dinami;USES crt;VAR a, ap: real; b: integer;
FUNCTION power(x:real; n:integer):real;BEGIN IF n=0 THEN power:=1 ELSE IF n=1 THEN power:=x ELSE
power:=power(x,n-1)*x;END;
BEGIN clrscr; readln(a); readln(b); ap:=power(a,b); writeln(a:10:2, '^', b, '=', ap:10:2);END.