Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Informatica


Qdidactic » stiinta & tehnica » informatica
Instructiunile structurate for, while si repeat



Instructiunile structurate for, while si repeat


Instructiunile structurate for, while si repeat


In aceasta tema:

prezentarea instructiunilor structurate for, while si repeat;

sintaxa instructiunilor for, while si repeat.

exemple de utilizare in programe a instructiunilor structurate for, while si repeat;


Instructiunea for

1.1. Prezentarea teoretica

Structurile algoritmice iterative (repetitive) sunt codificate in Pascal prin intermediul a trei instructiuni structurate. Acestea sunt:

Pentru structura iterativa cu variabila de control,  instructiunea for ;

Pentru structura iterativa cu test initial, instructiunea while;

Pentru structura iterativa cu test final, instructiunea repeat.

Sintaxa instructiunii FOR este prezentata in urmatoarea diagrama din figura 1.



Figura 1. Diagrama de sintaxa pentru instructiunea for

Din diagrama de sintaxa se observa ca instructiunea for poate avea doua forme:

1)FOR identif:=vinit TO vfin DO instructiune;

2)FOR identif:=vinit DOWNTO vfin DO instructiune;

In enunturile 1 si 2 de mai sus, vinit si vfin sunt expresii care se evalueaza la un rezultat de tip compatibil cu variabila desemnata prin identif. Aceasta variabila se numeste variabila de control (contor) a structurii si este o variabila de tip ordinal.

Daca v este variabila de control de tip integer, instructiunea for actioneaza dupa schema prezentata in figura 2.:

Figura 2. Structura iterativa cu variabila de control

1) Se evalueaza valoarea initiala vinit si valoarea finala vfin

2) Se atribuie contorului v valoarea initiala vinit

3) Se compara valoarea contorului v cu valoarea finala vfin. Daca aceasta este mai mare sau egala pentru prima forma, respectiv mai mica sau egala pentru cea de-a doua forma, decat vfin se incheie executia, altfel se continua cu pasul 4

4) Se executa instructiunea specificata dupa cuvantul rezervat DO. .

5) Se incrementeaza contorul pentru prima forma, respectiv se decrementeaza pentru cea de a doua forma si se continua cu pasul 3.

Observatie. Pentru forma intai a instructiunii daca valoarea initiala vinit este mai mare ca valoarea finala vfin respectiv, valoarea initiala este mai mica decat valoarea finala pentru forma a doua, instructiunea ce urmeaza dupa DO, nu se executa niciodata.

Instructiunea ce trebuie repetata este o instructiune simpla sau o instructiune compusa( ce cuprinde o secventa de instructiuni ce incepe cu BEGIN si se termina cu END ).

Observatie. In interiorul instructiunii compuse ce trebuie sa fie repetate, nu trebuie sa existe nicio instructiune de atribuire care sa altereze valoarea variabilei de control a structurii FOR.

1.2. Aplicatii rezolvate

Aplicatia 1

Sa se realizeze programul in limbajul Pascal care calculeaza n!.

Rezolvare

Stim ca n! este:

Altfel scris:

Programul pentru calculul lui n! se numeste factorial si este prezentat in lista 1

Lista 1. Programul pentru calcularea lui n!

Program factorial;

Uses CRT;

Var

i,N:Integer;

F:Real;

Begin

ClrScr;

Write('N=');

Readln(N);

F:=1;

For i:=1 to N do

F:=F*i;

Writeln('F=',F:8:0);

Repeat Until Keypressed

End.


Aplicatia 2.

Sa se realizeze programul in limbajul Pascal care calculeaza .

Rezolvare

Formula de calcul a combinarilor de n elemente luate cate k este

executand simplificarile rezulta

Rearanjand termenii se poate scrie:

;

prin urmare formula de calcul a combinarilor se poate scrie:

Programul pentru calculul combinarilor de n elemente luate cate k se numeste combinari si este prezentat in lista 2


Lista 2. Programul pentru calcularea combinarilor de n elemente luate cate k

Program combinari;

Uses CRT;

Var

K,i,N:Integer;

c:Real;

Begin

ClrScr;

Write('N=');

Readln(N);

Write('K=');

Readln(N);

C:=1;

For i:=1 to k do

C:=C*(n-i+1)/i;

Writeln('C=',C:8:0);

Repeat Until Keypressed

End.

1.3. Aplicatii propuse

Aplicatia P1.

Sa se realizeze programul in limbajul Pascal care calculeaza suma primelor n numere naturale.

Aplicatia P2.

Sa se realizeze, utilizand instructiunea for, programul in limbajul Pascal care afiseaza primii m termeni ai sirului lui Fibonacci. Sirul are forma 1, 1, 2, 3, 5 adica primii doi termeni sunt 1 iar orice alt termen se obtine ca suma a celor doi termeni care il preced.

2. Instructiunea iterativa while

2.1. Prezentare teoretica

Instructiunea WHILE este o alta instructiune care repeta o instructiune sau o secventa de instructiuni. Testul de continuare a repetarilor este plasat la inceputul secventei de instructiuni ce trebuie repetate. Sintaxa instructiunii este prezentata in diagrama din figura 3.

Figura 3. Diagrama de sintaxa a instructiunii while

Instructiunea while actioneaza ca in schema din figura 4.:

Figura 4. Schema logica pentru actiunea instructiunii while

1) Se evalueaza conditia (expresie care are ca rezultat o valoare logica).

2) Daca rezultatul ei este FALSE repetarile instructiunii se incheie, daca rezultatul este TRUE, se continua cu pasul 3

3) Se executa instructiunea si se continua cu pasul 1.

Instructiunea ce trebuie sa fie repetata este o instructiune simpla sau o instructiune compusa. Aceasta trebuie sa contina o instructiune de atribuire care sa modifice un operand al conditiei, astfel incat la un moment dat conditia sa se evalueze la rezultatul FALSE si repetarile sa se incheie.

Numarul minim de repetari ale instructiunii este zero deoarece daca conditia de la inceput este evaluata la valoarea FALSE, ea nu se executa niciodata.

2.2. Aplicatii propuse

Aplicatia 3.

Sa se realizeze programul in limbajul Pascal care afiseaza termenii din sirul lui Fibonacci mai mari ca 1 dar mai mici decat n. Sirul are forma 1, 1, 2, 3, 5 adica primii doi termeni sunt 1 iar orice alt termen se obtine ca suma a celor doi termeni care il preced.

Rezolvare

Pentru rezolvarea aplicatiei trebuie sa tinem cont ca orice nou termen T al sirului se obtine din doi termeni precedenti T1 si T2. De aceea valoarea numerica a acestora trebuie pastrata in memorie.

Programul pentru calculul termenilor din sirul Fibonacci mai mari ca 1 si mai mici ca n se numeste fibonacci si este prezentat in lista 3

Lista 3. Programul pentru calcularea termenilor sirului lui Fibonacci

Program fibonacci;

Uses CRT;

Var

n:Integer;

T1,t2,t:Integer;

Begin

ClrScr;

Write('N=');

Readln(N);

T1:=1;

T2:=1;

T:=t1;

Write(T2,',',T1);

While t<=n do

Begin

T:=t1+t2;

Write(',',T);

T2:=t1;

T1:=t;

End;

Writeln;

Repeat Until Keypressed

End.


Aplicatia 4.

Sa se realizeze programul in limbajul Pascal care calculeaza n! utilizand instructiunea While.

Rezolvare

Programul pentru calculul lui n! folosind instructiunea while se numeste factwhile si este prezentat in lista 4

Lista 4. Programul pentru calcularea lui n! utilizand instructiunea While

Program factwhile;

Uses CRT;

Var

i,N:Integer;

F:Real;

Begin

ClrScr;

Write('N=');

Readln(N);

F:=1;

I:=2;

While i<=n do

Begin

F:=F*i;

I:=i+1

End;

Writeln('F=',F:8:0);

Repeat Until Keypressed

End.


2.3.Aplicatii propuse

Aplicatia P3.

Sa se realizeze programul in limbajul Pascal care calculeaza combinari de n elemente luate cate k utilizand instructiunea while.

Aplicatia P4.

Sa se realizeze programul in limbajul Pascal care calculeaza aranjamente de n elemente luate cate k, utilizand instructiunea while.


3. Instructiunea repeat 

3.1. Prezentare teoretica

Instructiunea REPEAT este o alta instructiune structurata din clasa instructiunilor iterative. Testul de continuare a repetarilor se afla plasat dupa secventa de instructiuni ce trebuie repetata. Sintaxa instructiunii este prezentata in figura 5.

Figura 5. Diagrama de sintaxa pentru instructiunea repeat

Instructiunile ce trebuiesc repetate sunt cuprinse intre REPEAT si UNTIL. Nu este necesara folosirea instructiunii compuse ce incepe prin BEGIN si se termina cu END.

Instructiunea REPEAT are modul de actiune prezentat in figura :

Figura  Schema logica pentru actiunea instructiunii repeat

1) Se executa instructiunea sau instructiunile din secventa;

2) Se evalueaza conditia, daca rezultatul ei este TRUE repetarile se termina, in caz contrar se continua cu pasul 1.

Numarul minim de repetari ale secventei de instructiuni este unu, deoarece secventa se executa o data pana cand se evalueaza conditia.

In interiorul secventei ce urmeaza a fi repetata trebuie sa existe o instructiune care sa modifice un operand al expresiei logice astfel incat aceasta la un moment dat sa se evalueze la rezultatul TRUE pentru ca repetarile sa se termine.

2.2. Aplicatii propuse

Aplicatia 5.

Sa se realizeze programul in limbajul Pascal care calculeaza combinari de n elemente luate cate k utilizand instructiunea repeat.

Rezolvare

Programul pentru calculul combinarilor de n elemente luate cate k se numeste combinarir si este prezentat in lista 5

Lista 5. Programul pentru calcularea combinarilor de n luate cate k prin repeat

Program combinarir;

Uses CRT;

Var

K,i,N:Integer;

c:Real;

Begin

ClrScr;

Write('N=');

Readln(N);

Write('K=');

Readln(N);

C:=1;

I:=1;

Repeat

C:=C*(n-i+1)/i;

I:=I+1;

Until i>k;

Writeln('C=',C:8:0);

Repeat Until Keypressed

End.


Aplicatia

Sa se realizeze programul in limbajul Pascal care calculeaza suma primelor n numere naturale utilizand instructiunea repeat.

Rezolvare

Trebuie sa calculam suma s

Pentru calculul eficient, din punctul de vedere al programarii in limbajul Pascal, a acestei sume ar trebui sa folosim instructiunea for deoarece putem sa-i asociem o variabila de control care ia valori intre 1 si n., evitand astfel instructiunile de atribuire explicite pentru initializarea variabilei de control si pentru incrementarea variabilei de control care sunt necesare atunci cand se foloseste instructiunea Repeat.

Programul pentru calculul sumei primelor n numere naturale folosind instructiunea repeat se numeste sumare si este prezentat in lista 6

Lista  Programul pentru calcularea sumei primelor n numere naturale

Program sumare;

Uses CRT;

Var

i,N:Integer;

s:Real;

Begin

ClrScr;

Write('N=');

Readln(N);

s:=0;

I:=1;

Repeat

s:=s+i;

I:=i+1

Until i>n;

Writeln('s=',S:8:0);

Repeat Until Keypressed

End.


2.3.Aplicatii propuse


1. Sa se realizeze programul in limbajul Pascal care calculeaza aranjamente de n elemente luate cate k utilizand instructiunea repeat.


2. Sa se realizeze programul in limbajul Pascal care calculeaza suma patratelor primelor n numere naturale, utilizand drept instructiune repetitiva instructiunea repeat.





Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright