fise delucru
TRANSCRIPT
CN “Mihai Eminescu” Oradea Divide et ImperaProf. Amelia Stoian
Fișă de lucru
1. Alegeți varianta corectă de răspuns pentru următoarele exerciții:
CN “Mihai Eminescu” Oradea Divide et ImperaProf. Amelia Stoian
a) #include<iostream.h> int v[8]={2,4,1,3,11,5,1,3}; int imp(int m, int n) { if (m==n) return v[n]%2; else return imp(n,(n+m)/2)+imp((n+m)/2+1,m); } int main() { cout<<imp(0,6); return 0; }
1) 17 2) 43 3) 14 4) erori de sintaxă 5) programul intră într-un ciclu infinit
b) #include<iostream.h>int v[50], i;long m(int a, int b){
if (a>b) return 0;else
if (a==b) return v[a]; else
return m(a,(a+b)/2)+m((a+b)/2+1,b);}int main(){
for(i=1;i<=10;i++)v[i]=i;
cout<<m(3,8);return 0;
}
1) 3 2) 33 c) 0 d)8
CN “Mihai Eminescu” Oradea Divide et ImperaProf. Amelia Stoian
2. Realizați un program care determină câte numere dintr-un vector cu n (n<=100) elemente numere întregi sunt mai mari decât o valoare x citită de la tastatură.
3. Se consideră un vector cu n elemente numere întregi. Asupra acestuia se vor executa operații de „tăiere”, care constă în „înjumătățirea” lui și eliminarea elementului din mijloc, dacă lungimea vectorului este impară. Procesul de „tăiere” se repetă asupra fiecărei jumătăți până la obținerea unui tablou cu un singur element.
Ex: 1 2 3 4 5 6 7 => 1 3 5 7
4. Considerăm o valoare naturală n (<=100) de forma 2k. Să se construiască o matrice a pătratică de ordin n ale cărei elemente aparțin mulțimii {0,1}. În matrice elementele egale cu 1 sunt situate în subtabloul stânga sus, de latură n DIV 2; procesul se repetă pentru cele 3 subtablouri rămase, până la obținerea unor subtablouri de latură 1.
Ex: n=4 1 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0