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