askiseis proxedures functions pascal

4
Ασκήσεις στη γλώσσα προγραμματισμού 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;

Upload: giorgos-kozinis

Post on 26-Dec-2015

17 views

Category:

Documents


0 download

DESCRIPTION

lel

TRANSCRIPT

Page 1: Askiseis Proxedures Functions Pascal

Ασκήσεις στη γλώσσα προγραμματισμού 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

Page 2: Askiseis Proxedures Functions Pascal

Να αναπτύξετε μία διαδικασία η οποία να εμφανίζει στην οθόνη μία γραμμή με συγκεκριμένο πλήθος από κάποιον συγκεκριμένο χαρακτήρα. Το πλήθος αυτό καθώς και ο χαρακτήρας θα δίνονται ως παράμετροι της διαδικασίας. Επίσης, να γράψετε ένα ολοκληρωμένο πρόγραμμα το οποίο με τη βοήθεια αυτής της διαδικασίας να εμφανίζει στην οθόνη:

********************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.

Page 3: Askiseis Proxedures Functions Pascal

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

Page 4: Askiseis Proxedures Functions Pascal

    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.