Sunteți pe pagina 1din 5

PROIECT DIDACTIC

Obiectul: Informatică
Subiectul: Test de verificare
Tipul lecţiei: Lecţie de verificare şi evaluare
Competenţe generale:
1. Identificarea datelor care intervin într-o problemă şi a relaţiilor dintre acestea
2. Cunoaşterea şi utilizarea tipurilor de date structurate.
Competenţe specifice:
1.1. Evidenţierea necesităţii structurării datelor
1.2. Prelucrarea datelor structurate
1.3. Alegerea structurii de date adecvate rezolvării unei probleme
1. Obiectivele operaţionale:
O.1 - să cunoască şi să poată utiliza instrucţiunea FOR.
O.2 - să dea exemple de declaraţii a tipului de date tablou.
O.3 - să deosebească tipul indicelui de tipul de bază.
O.4 - să poată accesa elementele unui tabel.
O.5 - să cunoască operaţiile asupra tablourilor unidimensionale şi bidimensionale.
O.6 - să elaboreze programe cu utilizarea tipului de date tablou.
O.7 - să utilizeze calculatorul personal la rezolvarea problemelor.
Strategii didactice:
- Materiale şi resurse: fişa de lucru (testul tehnoredactat)
Conţinutul, structura şi desfăşurarea lecţiei
1. Moment organizatoric: salutul, notarea absenţelor, pregătirea materialelor pentru lecţie.
2. Desfăşurarea lecţiei:
Elevii primesc câte o fişă cuprinzând întrebările şi li se fac precizări clare cu privire la modalitatea de
alegere sau completare a răspunsurilor corecte. După încheierea testului se discută variantele corecte de
răspuns şi se trec notele obţinute de către fiecare elev.
Test de verificare
VARIANTA I
I. Alegeţi varianta corectă de răspuns:
1. Fie variabilele a şi b şir de caractere şi i număr natural. Secvenţa de program:
(2p)
a:='aranjament '+'floral';
b:=' colorat';
insert(b,a,pos(' ',a));
i:=pos('ora',a);
delete(a,i,3);
i:=pos('ora',a);
delete(a,i,2);
write(a);
are ca efect afişarea textului:
a) aranjament colorat floral; b) aranjament colt fll;
c) aranjament colt flal; d) aranjament colt fl.

2. Ce va afişa programul următor:


(3p)
var s1:string; s2:string;
i:byte;
begin
s1:='invat informatica';
s2:=s1;
i:=pos('INF',s2);
write(i,' ');
i:=pos('inf',s2);
write(i,' ');
delete(s2,i,11);
write(i,' ',length(s2));
end.

a) 0 0 12 15; b) 0 7 7 6; c) 0 7 15 6; d) 12 7 7 6.
3. Pentru a afişa şirul de caractere mai mic, în sens lexicografic, dintre două şiruri date a şi b,
folosim instrucţiunile:
(2p)
a) if a[0]<b[0] then writeln(a)else writeln(b);
b) if length(a)<length(b) then writeln(a)else writeln(b);
c) if a>b then writeln(b)else writeln(a);
d) if a[1]<b[1] then writeln(a)else writeln(b);

II. Completaţi spaţiile punctate, astfel încât programul de mai jos să afişeze sufixele proprii ale unui
cuvânt citit de la tastatură (de ex., sufixele cuvântului PASCAL sunt: PASCAL, ASCAL, SCAL, CAL,
AL, L): (3p)
var s:string;
i:integer;
begin
readln(s);
for i:=1 to length(s) do
writeln(_________________________);
end.

III. Precizaţi ce va afişa următorul program: (3p)


var s,t:string;
i,e,n:integer;
begin
s:='1234567890';
t:='';
for i:=length(s) downto 1 do
begin
val(s[i],n,e);
if n mod 2=1 then t:=t+s[i];
end;
write(t);
end. _______________________________

IV. Se consideră declaraţiile (2p)


type tablou = array [1..7] of integer;
vector = array[‘c’..’e’] of boolean;
linie = array[2..4] of real;
var a:tablou;
b:vector;
c:linie;
Completaţi tabelul de mai jos, specificînd pentru fiecare din variabilele declarate:
a b c
1) Numărul de componente
2) Tipul indicelui
3) Tipul componetelor
4) Cum se indică elementul al doilea din tablou

V. Ce calculează următorul program? (3p)


Program P1;
type tablou = array [1..10] of integer;
var x:tablou; i,s:integer;
begin
for i:=1 to 10 do
begin
write(‘x[’,I,’]=’);
readln(x[i]);
end;
s:=0;
for i:=1 to 10 do
if x[i] mod 2=0 then s:=s+x[i];
writeln(’s=’,s);
readln;
end.
a) numărul componentelor impare
b) numărul componentelor pare
c) suma componentelor pare
d) suma componentelor pozitive

Puncte 18 17-16 15-14 13-12 11-10 9-8 7-6 5-4 3-2 1


Nota 10 9 8 7 6 5 4 3 2 1

Răspunsuri:
I. 1. c)
2. b)
3. c)
II. copy(s,i,length(s)-i+1)
III. 97531

VARIANTA II
I. Alegeţi varianta corectă de răspuns:
1. Fie variabilele a şi b şir de caractere şi i număr natural. Secvenţa de program:
(2p)
a:='aranjament'+' floral';
b:=' colorat';
insert(b,a,pos(' ',a));
i:=pos('am',a);
delete(a,i,2);
i:=pos('am',a);
delete(a,i,2);
write(a);

are ca efect afişarea textului:


b) aranjament colorat floral b) aranjament colt fll
c) aranjament colt flal d) aranjent colorat floral

2. Ce va afişa programul următor: (3p)


var s1:string; s2:string;
i:byte;
begin
s1:='invatam informatica';
s2:=s1;
i:=pos('INF',s2);
write(i,' ');
i:=pos('inf',s2);
write(i,' ');
delete(s2,i,12);
write(i,' ',length(s2));
end.

a) 0 0 14 7; b) 0 14 14 7; c) 0 7 14 7; d) 14 7 7 14.

3. Pentru a afişa şirul de caractere mai mare, în sens lexicografic, dintre două şiruri date a şi b,
folosim instrucţiunile: (2p)
a) if a[0]>b[0] then writeln(a)else writeln(b);
b) if length(a)>length(b) then writeln(a)else writeln(b);
c) if a[1]>b[1] then writeln(a)else writeln(b);
d) if a<b then writeln(b)else writeln(a);

II. Completaţi spaţiile punctate, astfel încât programul de mai jos să afişeze prefixele proprii ale unui
cuvânt citit de la tastatură (de ex., prefixele cuvântului PASCAL sunt: P, PA, PAS, PASC, PASCA,
PASCAL): (3p)
var s:string;
i:integer;
begin
readln(s);
for i:=1 to length(s) do
writeln(_________________________);
end.

III. Precizaţi ce va afişa următorul program: (2p)


var s,t:string;
i,e,n:integer;
begin
s:='123456789';
t:='';
for i:=1 to length(s) do
begin
val(s[i],n,e);
if n mod 2=0 then t:=t+s[i];
end;
write(t);
end._____________________________________

IV. . Se consideră declaraţiile: (3p)

type Vector =array [1..5] of real;


Matrice=array[1..3,1..4] of real;
Linie= array [1..4] of real;
Tabel = array [1..3] of linie;
var V : Vector;
M : Matrice;
L : Linie;
T : Tabel;
x : real;
i : integer;

Care dintre atribuirile ce urmează sînt corecte?

a) T[3]:=T[1];
b) M:=T;
c) L:=V;
d) T[1,2]:=M[1,2];
e) i:=x;
f) M[1,3]:=L[2];

V. Ce calculează următorul program? (3p)


Program P1;
type tablou = array [1..10] of integer;
var x:tablou; i,s:integer;
begin
for i:=1 to 10 do
begin
write(‘x[’,I,’]=’);
readln(x[i]);
end;
s:=0;
for i:=1 to 10 do
if x[i] mod 2=0 then s:=s+x[i];
writeln(’s=’,s);
readln;
end.
b) numărul componentelor impare
b) numărul componentelor pare
c) suma componentelor pare
d) suma componentelor pozitive
Puncte 18 17-16 15-14 13-12 11-10 9-8 7-6 5-4 3-2 1
Nota 10 9 8 7 6 5 4 3 2 1

Răspunsuri:
I. 1. d)
2. b)
3. d)
II. copy(s,1,i)
III. 2468

S-ar putea să vă placă și