instructiuni lucrare.doc

Upload: maria-marinela

Post on 09-Mar-2016

278 views

Category:

Documents


0 download

TRANSCRIPT

Ministerul Educaiei din Republica Moldova

Proiect realizat in cadrul Conferinei Republicane a ElevilorSPRE VIITOR Instruciunile de baz ale limbajului Pascal

Elaborare: Duca Mihaela, cl. XII ALiceul Teoretic Alexandru cel Bun, RezinaCoordonator: Dicusar Laura Cuprins:

Introducere3 1.Istoria limbajului Pascal4.

42. Instruciunea IF

4Definiie:

Principiul de execuie..................................................................................................................................4 5 Exemplu de program:

5Autoevaluare:

63.Instruciunea CASE

6Definiie:

6Principiul de execuie:

7Exemplu de program:

7Autoevaluare:

84.Instruciunea FOR

8Definiie:

8Principiul de execuie:

8Exemplu de program:.

9Autoevaluare

105.Instruciunea WHILE

10Definiie:

10Principiul de execuie:

10Exemplu de program:

11Autoevaluare

126.Instruciunea REPEAT

12Definiie:

13Exemplu de program:.

13Autoevaluare

147.Instruciunea VID

14Definiie:

14Principiul de execuie:

14Exemplu:

148. Instruciunea COMPUS

14Definiie:

15Principiul de execuie:

15Exemple de programe:

159.Instruciunea GOTO

15Definiie:

15Principiul de execuie:

15Exemplu:.

16Concluzie:

18Anexe

IntroducereActualitatea temei i scopul ei.Informatica este o tiina care dezvolt nu doar gndirea,dar i logica, i capacitatea de a structura datele ct mai simplu i util. Pe lng toate acestea Informatica ofer posibilitatea de a decodifica multe structuri complicate, dar pn a ajunge la aa nivel, e necesar un studiu continuu si asiduu al informaticii. Iniial trebuie de invat alfabetul programrii care l constiutuie limbajul Turbo Pascal .

nelegerea acestui limbaj pornete de la cunoaterea instruciunilor de baza a limbajului Pascal,or nceputul studiului este foarte important pentru a tenta elevii spre nvarea acestui obiect. De aceea mi-am propus sa ofer un suport modern de nsuire a acestei teme, dar i o bun metoda de recapitulare a cunotinelor.Cunoscnd c elevii agreeaz formatul electronic i c informaia care se memoreaz cu cel mai mare randament este cea vizual,am realizat lucrarea sub form de web-site cu ajutorul limbajului HTML.Aceast metod este util i captivant. Lucrarea realizat conine istoria limbajului Pascal, definiii, principii de executare a instruciunilor de baza,exemple de programe cu aceste instruciuni i teste de autoevaluare.Toat informaia care se conine n aceast lecie electronica face parte dintr-un capitol a manualului de informatic de clasa a IX-a. Cu ajutorul acestui web-site elevul poate inva acest capitol fr ndrumarea profesorului,ceea pentru ce pledeaz elevii. De asemenea, testele propuse n aceast lucrare permit verificarea instantanee a nsuirii materialului de ctre elev sau testarea simultan a mai multor elevi. Rezultatul testrii apare pe ecran, indicndu-se rspunsurile corecte sau rezultatele n cazul rspunsurilor incorecte. 1. Istoria limbajului PascalPascal este unul dintre limbajele de programare de referin n tiina calculatoarelor, fiind cel care a definit programarea calculatoarelor. Limbajul Pascal a fost dezvoltat de elveianul Niklaus Wirth n 1970 pentru a pune n practic programarea structurat, aceasta fiind mai uor de compilat. Unul din marile sale avantaje este asemnarea cu limbajul natural limba englez, ceea ce l face limbajul ideal pentru cei care sunt la primul contact cu programarea. Limbajul Pascal este bazat pe limbajul Algol i a fost denumit astfel n onoarea matematicianului Blaise Pascal, creditat pentru construirea primelor maini de calcul numeric.

Wirth a mai dezvoltat limbajele Modula-2 i Oberon, similare cu Pascal. Cele mai populare implementri a acestui limbaj au fost Turbo Pascal i Borland Pascal, ambele ale firmei Borland cu versiuni pentru Macintosh i DOS, care i-au adugat limbajului obiecte i au fost continuate cu versiuni destinate programrii vizuale pentru Microsoft Windows (utilizate de mediul de dezvoltare Delphi) i pentru Linux (Kylix). n prezent exist i alte implementri mai mult sau mai puin populare, dar gratuite, printre care se remarc Free Pascal i GNU Pascal.

Dei n prezent este relativ rar folosit n industria software, el este nc util elevilor i studenilor care doresc s se iniieze n programare. Spre deosebire de Basic, care a stat n trecut la baza nvrii programrii, Pascal este un limbaj structurat. De aceea, el formeaz un anumit tip de gndire, similar limbajelor moderne, precum C++, dar nu deine complexitatea i abstractizarea acestuia din urm, fiind mai uor de neles datorit sintaxei simple i apropiate de pseudocod. 2. Instruciunea IFDefiniie:

Instruciunea IF este o structur de calcul alternativ,care permite n funcie de anumite condiii, executarea (sau neexecutarea) unei anumite instruciuni sau secven de instruciuni.

Instruciunea if are dou forme: 1)if then else ;

Atenie: n cazul folosirii acestei sintaxe, semnul " ; " (punct si virgula) este interzis sa fie pus nainte de ELSE. 2)if then ; Atenie: n cazul folosirii acestei sintaxe, semnul " ; " (punct i virgula) este strict necesar dup instructiune1."" este o expresie cu valoare logic, iar "", "" i "" sunt instruciuni Pascal.

Principiul de execuie: se evalueaz expresia logic;

dac aceasta are valoarea TRUE, atunci se execut secvena prezentat n cadrul instructiune1 iar n caz contrar se execut secvena prezentat n cadrul instructiune2 sau se iese din structur (cnd construcia ELSE lipsete).

Atenie: dac secvenele cuprind mai mult de 2 instruciuni,acestea trebuie cuprinse ntre BEGIN i END;

Exemplu de program: 1. Am pus o condiie i n funcie de ea executm o parte sau alta a codului. Parc suntem in via. Ne ofer cineva ceva, dar noi nu acceptm dect dac preul e mai mic sau egal cu o anumit sum, pentru c altfel ni se pare prea mare preul.S exemplificm aceste structuri prin programul de mai jos: program p7; var varsta : integer; gen : char;begin write ('Ce varsta aveti ? '); readln (varsta); write ('Sunteti baiat sau fata ? (M / F) : '); readln (gen); If (gen = 'f') or (gen = 'F') Then WriteLn ('gen feminin') Else WriteLn ('gen masculin'); If varsta > 17 Then WriteLn('Persoana majora'); ReadLn;End.

Pentru a nelege programul, s-l lum pas cu pas. Am definit dou variabile, una de tip integer (valoare numeric) denumit varsta si una de tip Char (un singur caracter) denumit gen. Dup citirea de la tastatur a valorilor pentru aceste dou variabile, verificm dac variabila gen e cumva litera F. De remarcat c am folosit operatorul logic OR pentru a verifica dac variabila are valoarea f sau F, ambele nsemnnd faptul c genul este feminin, caz n care afim acest lucru. Pe ramura de Else, tiind c genul nu este feminin, am pus direct afiare c genul este masculin. n programul de mai sus, dac pentru variabila gen introducem litera c, progamul va afia tot "gen masculin". Pentru vrst facem o singur verificare, anume dac vrsta este strict mai mare dect 17 (adica minim 18), caz n care afim "Persoana majora" . Autoevaluare:

1. Ce se va afia n rezultatul execuiei urmtoarei secvene?a := 3;if a > 5 then if a > 4 then write(1) else write(2);Selectai raspunsul corect:a) 1 b) 2 c) 12 d) nu se va afia nimic

2. Ce se va afia in rezultatul execuiei urmtoarei secvene?a := 5;if x > 7 then if x > 4 then writeln(1) else else writeln(2);Selectai raspunsul corect: a) 2b) 1c) 12d) nu se va afia nimic

3. Se consider secvena de instruciuni: if a > 20 then writeln("Matematica") else writeln("Informatica");Selectai valorile posibile ale variabilei "a" pentru care se va afia cuvntul "Informatica": a) 100b) 2c) 20d) 0e) 36

2.Instruciunea CASEDefiniie: Instruciunea CASE este o instruciune alternativ multipl care permite selectarea unei instruciuni dintr-o list de instruciuni marcate, n funcie de valoarea unui selector.

Instruciunea case are dou forme: 1)CASE expresie de tip ordinal OF List de constante1: instruciune1; List de constante2: instruciune2; ....................................................... List de constanten: instruciunen; end;2)CASE expresie de tip ordinal OF List de constante1: instruciune1; List de constante2: instruciune2; ....................................................... List de constanten: instruciunen ELSE instruciune(n+1) end; Atenie: n cazul folosirii acestei sintaxe, semnul " ; " (punct i virgula) inainte de "else" este strict interzis;"instructiune1", "instructiune2" i "instructiunen" sunt instruciuni Pascal.

Principiul de execuie: se evalueaz expresia de tip ordinal (integer, char, Boolean,byte,word,longint, sau definit de utilizator ca subdomeniu sau enumerare); se obine o valoare v care reprezint valoarea selectorului utilizat pentru selecia uneia dintre alternative. Apoi se caut n lista de constante, constanta egal cu valoarea evaluat. Dac se localizeaz aceast constant ntr-una dintre liste, se execut instruciunea asociat acestei liste; dac nu exist nici o instruciune care s conin eticheta v, atunci dac este prezent cuvntul 'ELSE' se execut instruciunea care urmeaz dup aceasta,n caz contrar nu se execut instruciunea CASE i se trece la secvena imediat urmtoare.

Atenie: Dac secvenele cuprind mai mult de 2 instruciuni,acestea trebuie cuprinse ntre BEGIN i END;

Exemplu de program:1. Acum,datorit instruciunii "case" putem mpari persoanele n categorii dup vrsta i sex:program p10; var varsta :integer; sex :char;begin write ('Ce varsta aveti ? '); readln (varsta); write ('Sunteti baiat sau fata ? (M / F) : ');

readln (sex); Case sex Of

'f','F' : WriteLn ('Sex feminin');

'm','M' : WriteLn ('Sex masculin');

Else Writeln ('Sex necunoscut, probabil neutru'); End; Case varsta Of

0 .. 17 : WriteLn ('Persoana minora');

18 .. 60 : WriteLn ('Persoana majora');

61 .. 150 : WriteLn ('Persoana in varsta');

151 .. maxint : WriteLn ('Personaj biblic');

-maxint .. -1 : WriteLn ('Persoana care este inca in planuri de viitor'); End; ReadLn;End.Structura Case, dup cum am explicat anterior, permite ca pentru o anumit instruciune, s verificm mai multe valori posibile. Aceste valori pot fi scrise una cte una i desprite prin virgul ('f','F')sau pot fi scrise ca un ir de valori, n care se ofer valoarea minim i apoi valoarea maxim, aceste dou valori fiind desprite prin " .. " (dou puncte unul dup cellalt: "18..60").

Autoevaluare:

1. Urmtoarea instruciune Case case n of 1, 2 : a := 4; 2 : a := 5; 3 : a := 6; 0 : a := 8; end;este: a) corectb) incorectc) corect dac instruciunea " 2 : a := 5;" este nlturat d) corect dac instruciunea "0 : a := 8;" este nlturat

2. Se consider secvena de instruciuni: case _____________ of true : write( a, 'numar par'); false: write( a, 'numar impar'); end;Selectai expresia ordinal posibil, astfel, ca instruciunea case sa determine corect paritatea numrului natural n: a) n mod 2 b) n mod 2 =0c) n mod 2 0d) n mod 2 = 0e) odd (2) f) not odd (2)

3.Instruciunea FORDefiniie: Instruciunea FOR este o instruciune repetitiv care permite execuia repetat a unei instruciuni n funcie de valoarea unui contor. Nu este o instruciune strict necesar, ea poate fi simulat cu ajutorul instruciunii WHILE. Totui, majoritatea programatorilor prefer s utilizeze instruciunea FOR.

Instruciunea for are dou forme: 1)FOR identificator:=expresie1 TO expresie2 DO instruciune;(CAZUL CRESCTOR) 2)FOR identificator:=expresie1 DOWNTO expresie2 DO

instruciune;(CAZUL DESCRESCTOR)unde identificator este o variabil de orice tip ordinal, iar expresie1 i expresie2 sunt expresii de acelai tip cu variabila dat.

Principiul de execuie:

dac valoarea obinut n urma evalurii expresiei1 este egal cu valoarea obinut n urma evalurii expresiei2, se atribuie variabilei de ciclare valoarea obinut n urma evalurii expresiei1, se execut instruciunea abordat i execuia instruciunii FOR este ncheiat;

dac valoarea obinut n urma evalurii expresiei1 este strict mai mic dect valoarea obinut n urma evalurii expresiei2, se atribuie variabilei de ciclare valoarea obinut n urma evalurii expresiei1 i se trece la pasul urmtor;se execut instruciunea subordonat;

dac valoarea reinut de variabila de ciclare este strict mai mic dect valoarea obinut n urma evalurii expresiei2, (evaluare efectuat la nceput) se adun 1 variabilei de ciclare i se trece la executarea instruciunii subordonate; dac valoarea reinut de variabila de ciclare este egal cu valoarea obinut n urma evalurii expresiei2, execuia instruciunii FOR se ncheie.

Exemplu de program:1. program p6; var cnt:integer;begin For cnt:=1 To 20 Do WriteLn(cnt); ReadLn;End.

Dup cum vedei, contorul nu prea mai e n grija noastr (iar unele compilatoare chiar dau eroare dac vei ncerca s-i modificai valoarea n interiorul instructiunii). Autoevaluare11. Care din urmtoarele instruciuni nu conin erori sintactice?

a) k := 25;for i := 1 to sqrt (k) do x:=x+2; b) k := 3;for i := k to 10 do x:=x+1; c) y:=0;for x := 0.1 downto 0.9 do y := y +sin (x); d) for i :=1 to 5 do for j := 6 to 10 do x := x + 1; e)k := 11;for i := k to 5 do x:=x+1; 2. Ce se va afia n rezultatul execuiei urmtoarei secvene?x := 0;for i := 1 to 10 do ; x := x + 1; writeln (x);Selectai raspunsul corect:a) 10 b) 0 c) 135 d) 1

3. Ce se va afia in rezultatul execuiei urmtoarei secvene?for i := 1 to 5 do begin for j := 1 to i do write('*'); writeln; end;Selectai raspunsul corect: a) * * * * * * * * * ** * * * *

b)* * ** * ** * * ** * * * *

c)* * * * ** * * ** * ** * *d)* * * * * * * * * * * * * * * 4.Instruciunea WHILEDefiniie: Instruciunea WHILE este ciclul cu test iniial care conine o expresie boolean care controleaz execuia repetat a altei instruciuni.

Instruciunea WHILE are forma: while do ;unde trebuie sa fie de tip boolean, iar poate fi orice instruciune Pascal , ce se va executa att timp ct ia valoarea TRUE. Dac iniial are valoarea false, nu se va executa niciodat. Pentru o instruciune infinit se va folosi: While True Do instruciune; caz n care nu se poate iei din instruciune din cauza condiiei. Dac nu exista n interiorul acestei instruciuni o instruciune de ieire (cum ar fi Break), atunci instruciunea va fi infinit (nu va mai iei din ea, programul se va bloca i va trebui terminat cu Ctrl + Break, sau i mai ru, din Task Manager sau reboot).Principiul de execuie:

se evalueaz expresia logic;

dac valoarea expresiei este False, se iese din instruciunea WHILE,dac valoarea expresiei este True, se execut instruciunea,apoi se revine la 1;

instruciunea cere execuia repetat a unei instruciuni PASCAL n funcie de valoarea de adevr a expresiei logice. Dac valoarea iniial este FALSE, instruciunea WHILE nu se execut nici o dat.

De remarcat c ieirea din instruciune se va face doar cnd condiia va returna valoarea False.

Instruciunea WHILE n limbaj natural ar suna: Ct timp condiia_e_adevarat F ceva.

Exemplu de program:1 PROGRAM P3; var cnt : integer; begin cnt := 1; While cnt 10 do begin write(n mod 10); n := n div 10; end;

Selectai raspunsul corect: a) 345b) 543c) 5d) 5432e) 2345

3. Se consider secvena de instruciuni: a := 5;while _____________ do begin write( 'a=', a); a:= a + 3; end;

Selectai expresia boolean posibil, astfel, ca instruciunea while s se execute de un numr infinit de ori: a) a = 10b) a > 0c) a > 100d) a 10e) a 20f) trueg) false 5.Instruciunea REPEATDefiniie: Instruciunea REPEAT este un ciclu cu test final care indic repetarea unei secvene de instruciuni n funcie de valoarea unei expresii booleene.

Instruciunea repeat are forma:

REPEAT secven UNTIL condiie;unde secven reprezint instruciunile din corpul instruciunii REPEAT, trebuie s fie de tip boolean i se evalueaz dup fiecare iteraie. Atenie: spre deosebire de While, ieirea din aceast instruciune se face atunci cnd valoarea condiiei este True. Pentru o instruciune infinit se va folosi: Repeat Instruciune; until False;Principiul de execuie: se execut secvena de instruciuni; se evalueaz expresia logic; dac rezultatul evalurii este FALSE atunci se execut din nou secvena de instruciuni, n caz contrar se trece mai departe; secvena de instruciuni se execut cel putin o dat, dup care se pune problema relurii sau nu a execuiei, dup evaluarea expresiei logice.

Exemplu de program:1.Program p5; var cnt : integer;begin cnt := 1; Repeat WriteLn(cnt); cnt:=cnt + 1; Until cnt > 20; ReadLn;end.Dup ce cnt are valoarea 20 i este afiat, va fi crescut cu 1 (devenind 21), caz n care condiia devine adevrat (cnt > 20), motiv pentru care se iese din instruciune. Autoevaluare1. Ce se va afia n rezultatul execuiei urmtoarei secvene?x := 4; y := 20;repeat x :=x + 4;until x > y;writeln (x, ' ' , y);

Selectai raspunsul corect:a) 16 20 b) 24 20 c) 20 20 d) 4 20

2. Ce se va afia in rezultatul execuiei urmtoarei secvene?n := 12345;repeat write(n mod 10); n := n div 100;until n=0;Selectai raspunsul corect: a) 12345b) 54321c) 135d) 531e) 5

3. Se consider secvena de instruciuni: a := 5;repeat write( 'a=', a); a:= a - 2;until ________________;Selectai expresia boolean posibil, astfel, ca instruciunea while s se execute de un numr infinit de ori: a) a = 10b) a > 0c) a > 100d) a 3e) truef) false 6.Instruciunea VID

Definiie: Intruciunea VID este instruciunea care nu execut nimic, dar exist cazuri n care avem nevoie de ea.

Instruciunea vid are forma: ::=Principiul de execuie:

dac apare simbolul ";" n faa cuvntului 'END' avem o instruciune vid;

n mod obinuit,instruciunea de efect nul se utilizeaz la etapa elaborrii i depnrii unor programe complexe. Dei efectul su la executare este nul,nserarea sau eliminarea unei astfel de instruciuni (mai exact,a simbolului ";") poate s altereze semnificaia programului. Exemplu:1.Program p5; Var: x,y: integer;begin x:=4; ; ; ; y:=x+1;End.

n acest exemplu avem 5 instruciuni dintre care 3 sunt vide. 7. Instruciunea COMPUS

Definiie:

Instruciunea COMPUS este instruciunea format dintr-o list de instruciuni separate prin caracterul ";" i cuprinse ntre cuvintele cheie Begin i End. Sintactic, ea este tratat ca o singur instruciune.

Instruciunea compus are forma:

begin instructiune 1; instructiune 2; ...... instructiune n; end;unde instructiune 1, instructiune 2, ... instructiune n reprezint instruciunile din corpul instruciunii compuse; Principiul de execuie:

se execut n ordine instruciunile specificate.

Exemple de programe:

1.program p7; var m, n, t: integer;begin m:= m + 1; n:= n + 2; t:= m + n; end.

Programul conine o singur instruciune compus prin care se iniializeaza variabilele m, n i t.

8.Instruciunea GOTO

Definiie: Instruciunea GOTO este instruciunea de salt necondiionat care ofer posibilitatea de a ntrerupe aceast secven i de a relua execuia dintr-un alt loc al programului.

Instruciunea GOTO are forma:(instructiunea GOTO):= goto (etichet);unde etichet este un numr ntreg fr semn care prefixeaz o instruciune a programului. Principiul de execuie:

transferul controlului la instruciunea prefixat de eticheta respectiv. Instruciunea goto se

utilizeaz pentru a mri viteza de derulare sau pentru a micora lungimea unui program. Exemplu:1.Programul calculeaz valoarea funciei y=x,x>=0 y=2x, x