Fisa de lucru 5

Fisa de lucru structuri repetitive

3. Care este rezultatul afişat după execuţia următorului algoritm?

i=1

┌cât timp i<=5 execută

| j=1

| ┌cât timp j<=i execută

| | scrie ‘*’

| | j=j+1

| └■

| i=i+1

| salt la rând nou

└■

4. Scrieţi programul C++ si precizaţi care este efectul următorului algoritm scris în limbaj pseudocod, dacă valoarea citită pentru variabila n este 7:

citeşte n

s=0

i=1

┌cât timp i<=n execută

| s=s+i

| i=i+1

└■

scrie s

5. Care este efectul următorului program?

#include<iostream.h>

#include<conio.h>

int i,n;

void main()

{clrscr();

n=10;

for(i=1;i<=n;i++)

{ cout<<i<<" ";

n--;

}

getch();

}

a. 1 2 3 4 5 6 7 8 9 10

c. 10 9 8 7 6 5 4 3 2 1

b. 1 2 3 4 5

d. 5 4 3 2 1

6. Fie următoarea secvenţă de program:

#include<iostream.h>

#include<conio.h>

void main()

{clrscr();

for(char i='a';i<='f';i++)

cout<<i<<" ";

getch();

}

Pe ecran se va afişa:

a. A B C D E F

c. a f a f a f

b. i i i i i i

d. a b c d e f

7. Fie următoarea secvenţă de program:

#include<iostream.h>

#include<conio.h>

void main()

{clrscr();

for(int i=5;i<=5;i++)

cout<<i<<" ";

getch();

}

După execuţia programului pe ecran se va afişa:

a. 5;

b. 6;

c. Nimic, exista erori de compilare;

d. Nici un răspuns nu este corect.

8. Care vor fi valorile afişate ale variabilelor a şi b după executarea următorului program C++:

#include<iostream.h>

#include<conio.h>

void main()

{clrscr();

int a=1,b=2;

while(b<10)

b++;

a=a*b;

cout<<a<<" "<<b;

getch();

}

a. 10 10

c. 9 10

b. 11 11

d. 10 9

9. Care va fi valoarea afişată a variabilei a după execuţia următorului program C++:

#include<iostream.h>

#include<conio.h>

void main()

{clrscr();

int a=1,b=8;

while(b>1)

{a=a+b;

b=b-3;

};

cout<<a<<" "<<b;

getch();

}

a. 32

c. 16

b.34

d. nici un răspuns nu este corect

10. De câte ori se execută instrucţiunile cuprinse între cuvintele execută-cât timp din umătorul algoritm:

m=1

x=1

┌execută

| m=m*x

| x=x+8

|cât timp m>=x;

└■

a. de două ori

c. o singură dată

b. niciodată

d. de opt ori

11. Precizaţi care este valoarea variabilei a, după execuţia următoarei secvenţe de algoritm:

m=5

a=20

┌execută

| a=a-m

| m=m+1

|cât timp m<=a;

└■

a. 15

c. 0

b. 2

d. 9

12. Rescrieţi următoarele secvenţe de program C++, astfel încât buclele repetitive să fie înlocuite cu instrucţiunea care implementeză structura repetitivă cu test iniţial:

S=0;n=9;

for(int i=1;i<=n;i++)

s=s+i;

cout<<”s=”<<s;

for(int i=1;i<=n;i++)

{ for(int j=1;j<=n;j++)

cout<<”*”;

cout<<endl;

}

for(int i=10;i>= -2;i--)

cout<<”i=”<<i<<endl;

for(int i=5; i<=10;i++)

cout<<i<<” ”;

cout<<end;

13. Rescrieţi următoarele secvenţe de program C++, astfel încât buclele repetitive să fie înlocuite cu instrucţiunea care implementeză structura repetitivă cu test final:

int i=2;

int ok=1;

while(i<n/2 && ok)

if(n%i==0)

ok=0;

else

i++;

int s=0;

while(n!=0)

{ s=s+n%10;

n=n/10;

};

for(int i=100;i>=1;i--)

if(i%2==0)

cout<<i<<” ”;

for(char i='a';i<='f';i++)

cout<<i<<" ";

14. Rescrieţi următoarele secvenţe de program C++, astfel încât buclele repetitive să fie înlocuite cu instrucţiunea care implementeză structura repetitivă cu număr fix de paşi:

int p=1, i=1;

while(i<n)

{ p=p*i;

i++;

};

int i=1;

do{

int j=1;

do{

cout<<”*”;

j++;

}while(j<=n);

cout<<endl;

i++;

}while(i<=n);

char ch=’a’;

while (ch<=’z’)

{cout<<ch<<” ”;

ch++;

};

int i=1;

while(i<=n)

{ int j=1;

do{

cout<<”*”;

j++;

}while(j<=n);

cout<<endl;

i++;

}

15. Specificaţi de câte ori se vor repeta instrucţiunile din bucla repetitivă şi care va fi valoarea variabilei i la sfârşitul următoarei secvenţe de algoritm. Scrieţi programul C++ corespunzător algoritmului dat.

i=1, s=0(numere întregi)

┌cât timp (i<=5) execută

| s=s+i

| i=i+1

└■

a. se obţine o buclă infinită

c. de 6 ori si i=6

b. de 5 ori şi i=6

d. de 5 ori si i=5

16. Specificaţi de câte ori se vor repeta instrucţiunile din bucla repetitivă şi care va fi valoarea variabilei i la sfârşitul următoarei secvenţe de algoritm. Scrieţi programul C++ corespunzător algoritmului dat.

i=0 (numar intreg)

┌cât timp i<1 execută

| i=i+1

└■

a. o singură dată şi i=1

c. nu se execută niciodată şi i=0

b. de două ori şi i=1

d. se obţine o buclă infinită

17. Specificaţi de câte ori se vor repeta instrucţiunile din bucla repetitivă şi care vor fi valoarile variabilelor s şi c la sfârşitul următoarei secvenţe de algoritm. Scrieţi programul C++ corespunzător algoritmului dat.

c=100, s=0 (numere întregi)

┌execută

| s=s+c

| c=s-10

|cât timp s<=c

└■

a. o singură dată şi s=90, c=100

c. o singură dată şi s=90, c=90

b. o singură dată şi s=100, c=90

d. se obţine o buclă infinită

18. Fie următoarea secvenţă scrisă în limbaj pseudocod:

citeşte n

i=1

┌cât timp i<=n execută

| scrie „# # ”

| i=i+1;

└■

Care trebuie să fie valoarea variabilei n astfel încât să se afişeze pe ecran „# # # # # #” ?

a. 2

c.3

b.4

d.1

19. Fie următoarea secvenţă de algoritm:

citeşte a,b

┌pentru i=a,b,+1

| ┌dacă i%2 == 0 atunci

| | scrie i, “ “

| └■

└■

a. Ce va afişa dacă pentru variabilele a şi b se vor citi valorile 10 respectiv 20?

b. Daţi un set de valori de intrare pentru care algoritmul nu afisează nimic

c. Scrieţi un program C++ corespunzator algoritmului dat.

20. Fie următoarea secvenţă de algoritm:

┌execută

│ citeşte a,b

│cât timp (a<b sau b=0)

└■

nr=0

┌cât timp c>b execută

│ a=a-b

│ nr=nr+1

└■

scrie nr,” “,a

a. Ce se va afişa decă valorile iniţile ale variabileor a şi b sunt 54 si 10.

b. Daţi un set de date de intrare pentru care se va afişa 3 şi 0.

c. Scrieţi programul C++ corespunzător algoritmului dat.

21. Fie următoarea secvenţă de algoritm:

citeşte x (număr natural)

n=0

cât timp x≠0 execută

│ y=x; c=0

│ ┌cât timp y>0 execută

│ │ ┌dacă y%10>c atunci

│ │ │ c=y%10

│ │ └■

│ │ y=y/10

│ └■

│ n=n*10+c

citeşte x

└■

scrie n

Se cere:

a. Scrieţi valoarea ce se va afişa dacă se citesc, în această ordine, numerele 12, 7, 354, 9, 1630, 0.

b. Scrieţi programul C/C++ corespunzător algoritmului dat;

c. Desenaţi schema logică corespunzătoare algoritmului scris în pseudocod.

22. Fie următoarea secvenţă de algoritm:

citeşte a,b,c (numere naturale nenule)

dacă a>b atunci

│ t=a; a=b; b=t

└■

cât timp a≤b execută

│ ┌dacă c%a=0 atunci

│ │ scrie a

│ └■

│ a=a+1

└■

Se cere:

a. Scrieţi care sunt valorile ce se vor afişa pentru a=10, b=20 şi c=6;

b. Scrieţi programul C/C++ corespunzător algoritmului dat;

c. Desenaţi schema logică corespunzătoare algoritmului scris în pseudocod.

23. Fie următoarea secvenţă de algoritm:

citeste n,m (numere naturale)

cât timp n≤m execută

│ n=n+1

│ m=m-1

└■

cât timp m<n execută

│ m=m+1

│ n=n-1

└■

scrie n

Se cere:

a. Scrieţi valoarea care se afişează dacă se citesc numerele n=6 şi m=12;

b. Scrieţi programul C/C++ corespunzător algoritmului dat;

c. Desenaţi schema logică corespunzătoare algoritmului scris în pseudocod;

d. Scrieţi două perechi distincte de numere ce pot fi introduce pentru n şi m astfel încât să se afişeze valoarea 10, în urma executării algoritmului, pentru fiecare dintre perechi.

24. Fie următoarea secvenţă de algoritm:

citeste n (număr natural)

m=0

p=1

cât timp n>0 execută

│ c=n%10

│ ┌dacă c>0 atunci

│ │c=c-1

│ └■

│ m=m+c*p

│ p=p*10

│ n=n/10

└■

scrie m

Se cere:

a. Scrieţi valoarea care se afişează dacă se citesc numerele n=5172;

b. Scrieţi programul C/C++ corespunzător algoritmului dat;

c. Desenaţi schema logică corespunzătoare algoritmului scris în pseudocod;

25. Fie următoarea secvenţă de algoritm:

citeşte x (număr natural)

s=0

f=2

cât timp x>1 execută

│ p=0

│┌cât timp x%f=0 execută

││ x=x/f

││ p=p+1

│└■

│┌dacă p≠0 atunci

││ s=s+p

│└■

│ f=f+1

└■

Se cere:

a. Scrieţi valoarea care se afişează dacă se citesc numerele x=140;

b. Scrieţi programul C/C++ corespunzător algoritmului dat;

c. Desenaţi schema logică corespunzătoare algoritmului scris în pseudocod;

26. Fie următoarea secvenţă de algoritm:

s=0

citeşte v (valoare naturală)

cât timp v ≠ 0 execută

│ a = v%10

│ b = [v/10]%10

│ s = s + a*10 + b

citeşte v

└■

scrie s

Se cere:

a. Scrieţi valoarea care se afişează dacă se citesc, în ordine, numerele 114, 123, 517, 3312, 14, 412, 22, 0;

b. Scrieţi programul C/C++ corespunzător algoritmului dat;

c. Desenaţi schema logică corespunzătoare algoritmului scris în pseudocod;

27. Fie următoarea secvenţă de algoritm:

citeşte n,k (numere naturale, k≤9)

i = k

cât timp i > 0 execută

│ n = n/10

│ i = i-1

└■

z = n%10

scrie z

Se cere:

a. Scrieţi valoarea care se afişează dacă se citesc numerele n=32506 şi k=3;

b. Scrieţi programul C/C++ corespunzător algoritmului dat;

c. Desenaţi schema logică corespunzătoare algoritmului scris în pseudocod;

28. Fie următoarea secvenţă de algoritm:

citeşte x (număr natural nenul)

cât timp x>0 execută

citeşte y (număr natural)

│┌dacă x>y atunci

││ scrie x%10

││altfel

││ scrie y%10

│└■

│ x = y

└■

Se cere:

a. Scrieţi valoarea care se afişează dacă se citesc, în ordine, numerele 17 22 13 101 2 7 5 0;

b. Scrieţi programul C/C++ corespunzător algoritmului dat;

c. Desenaţi schema logică corespunzătoare algoritmului scris în pseudocod;

29. Fie următoarea secvenţă de algoritm:

citeste n,k

(numere naturale nenule)

t=0

┌cât timp n≥1 execută

│┌dacă n>k atunci

││ t=t+1

│└■

│ n=n-t

└■

scrie t

Se cere:

a. Scrieţi valoarea care se afişează dacă se citesc n=7 si k=2

b. Scrieţi programul C/C++ corespunzător algoritmului dat;

Desenaţi schema logică corespunzătoare algoritmului scris în pseudocod