PROIECT DIDACTIC
Disciplina: Informatica
Clasa: a IX - a
Data: 30 aprilie 2014
Profesor: Andoni Tatiana
Unitatea de învăţare: Tipuri de date structurate unidimensionale.
Subiectul lecţiei: Tipul de date şir de caractere (STRING)
Durata: 45 de minute
Tipul lecţiei: lecţie mixtă (comunicarea şi însuşirea de noi cunoştinţe, formare de priceperi şi deprinderi)
Locul de desfăşurare: laboratorul de informatică
Competenţe specifice: elaborarea modelelor informatici ale obiectelor, sistemelor electronice, a principiilor de
funcţionarea sistemelor de transmitere, stocare şi de prelucrare a datelor.
Subcompetenţe:
SC1 - definirea formulelor metalingvistice şi a diagramelor sintactice, de sinteză ale declaratiilor de tipuri de date şir de
caractere.
SC2 – utilizarea subprogramelor predefinite, destinate prelucrării şirurilor de caractere.
Obiectivul – cadru: Cunoaşterea şi utilizarea tipurilor de date structurate.
Obiective operaţionale:
Elevii vor fi capabili:
O1 – să utilizeze formulele metalingvistice şi diagramele sintactice ale declaraţiilor de tipuri de date STRING
O2 – să explice modul de referire a componentelor şirurilor de caractere;
O3 – să utilizeze operatorii, funcţiile şi procedurile predefinite cu date de tip STRING;
Metode de învăţământ:
- Metode de comunicare orală: conversaţia frontală, conversaţia individuală, explicaţia, conversia euristică,
demonstraţia practică,
- Metode bazate pe acţiune: exerciţiul practic, învăţarea prin descoperire independentă şi dirijată.
Forme de organizare a activităţii: frontală, individuală, pe echipă (cîte doi).
Forme de dirijare a învăţării: dirijată de profesor sau independentă.
Metode de evaluare: evaluare iniţială – testare.
Resurse materiale:
- Calculatorul, proiectorul.
- Compilatorul Turbo Pascal.
- Programul UTC (program de creare/lansare a testelor).
- Testele.
- Fişa de lucru (sarcini practice).
- Tabla, creta.
Materiale bibliografice:
1. Anatol Gremalschi, Ludmila Gremalschi, Manualul de INFORMATICĂ Clasa a IX-a, Știinţa 2011
2. Anatol Gremalschi, Irina Ciobanu, Ghidul profesorului, clasa a 9-a, editura Ştiinţa 2011.
Etapele lecţiei:
I. Moment organizatoric - 1 min.
II. Actualizarea cunoştinţelor - 10 min.
III. Captarea atenţiei - 2 min.
IV. Anunţarea obiectivelor şi subiectului lecţiei - 1 min.
V. Comunicarea noilor cunoştinţe - 20 min.
VI. Fixarea cunoştinţelor - 10 min.
VII. Anunţarea temei de acasă - 1 min.
Scenariul Lecţiei:
Etapele T O Activitatea Activitatea
lecţiei Profesorului: Elevului:
Moment 1 Verific prezenţa, notez absenţele şi organizez clasa în vederea desfăşurării activităţii. Salută prezenţii.
organizatoric Motto: ”Nu e destul să ştii, trebuie să şi aplici; nu e destul să vrei, Ocupă locurile la
calculatoare.
trebuie să şi faci.” ( [Link] )
Verificarea 10 Propun elevilor un test pe care îl vor realiza la calculatoare folosind programaul UTC. Realizează testul.
cunoştinţelor
anterioare
Captarea 2 Se propune următoarea problemă: Să se citească şi să se afişeze cuvîntul Analizează
atenţiei „CALCULATOR”. problema
Pentru acesata procedăm astfel: propusă. Propun
1) Reţinem un vector cu ce puţin 10 componente de tip char; soluţii spre
2) Citim cuvîntul , caracter cu caracter; rezolvare.
3) Îl tipărim, caracter cu caracter.
Program St1; Argumentează
Type Vector=array [1..10] of char; răspunsul.
Var a : Vector;
i : integer; Elev1:şirurile se
Begin citesc/afişeaza
Writeln(‘dati 10 caractere: ’); caracter cu
For i:=1 to 10 do begin caracter;
Write(’a[’,i,’]=’); Elev2: şirurile
readln(a[i]);
end;
necesită
Writeln(‘ati introdus următoarele caractere: ’); cunoaşterea
for i:=1 to 10 do write (a[i]); prealabila a
writeln ; numarului de
readln; caractere pentru
end. rezervarea
Să recunoaştem că o astfel de modalitate de păstrare a şirului de caractere este spatiului de tabel
nereuşită. lungimea lor fiind
Din care motiv? statica
Anunţarea 1 Se prezintă obiectivele pe proiector. Notează subiectul
obiectivelor Subiectul lecţiei de astăzi este: Tipul de date şir de caractere (STRING) lecţiei.
Obiectivele lecţiei: Sunt atenţi la
O1 – să utilizeze formulele metalingvistice şi diagramele sintactice ale declaraţiilor de obiecteie propuse.
tipuri de date STRING
O2 – să explice modul de referire a componentelor şirurilor de caractere;
O3 – să utilizeze operatorii, funcţiile şi procedurile predefinite cu date de tip STRING.
Comunicarea 20 Limbajul Turbo Pascal conţine un tip de date, numit şir de caractere (STRING), care
noilor permit să se lucreze cu mare uşurinţă în aceste cazuri.
cunoştinţe. Dar ce este un şir de caracter? Ascultă atent
O succesiune de caractere ASCII cuprinse între apostrofuri se numeşte profesorul.
Predarea Fac notiţe în
temei noi
şir de cactere.
Exemplu: ‘CALCULATOR’, ‘stop’, ‘<!>’, ‘123’, etc. caiet.
Şirul de caractere se defineşte cu ajutorul următoarelor formule metalingvistice:
<Element şir>::=’ ’ <Orice caracter imprimabil >
<şir de caractere>::=’<Element şir>{<Element şir>}’
Diagrama sintactică a şirului de caractere este:
În Turbo Pascal un tip de date şir de caractere se defineşte astfel:
Type <nume_tip>=string;
Var <nume_variabila>:<nume_tip>;
sau
<nume_variabila>: string;
<nume_variabila>: string[K]; Îşi notează în
caiete
Exemple: type prenume=string;
Var P:prenume;
sau
p:string[12];
p:string;
Tipul string este asemănător tipului de date tablou de caractere, doar că la tipul
STRING numărul de caractere variază dinamic, în timp ce numărul elementelor unui
tablou de caractere este fixat.
Dacă revenim la problema noastră anterioară, atunci, o variantă mai reuşită de
citire/afişare a unui şir de caractere ar fi:
Probram St2;
Var a :string;
Begin
Writeln(‘dati sirul de caractere‘)
readln(a) ;
write(‘ati introdus sirul: ‘)
write(a);
end.
O variabilă de tip STRING poate reţine maximum 255 de caractere şi pentru ea se
rezervă în memorie 256 de octeti (în primul octet se reţine lungimea efectivă a
cuvîntului citit).
Dacă valoarea expresiei cuprinde mai multe caractere decît lungimea maximă a
variabilei careia i se atribuie, caracterele care sunt în plus se neglijează.
Exemplu: Program St3; Asculta indicatiile
type Sir=string[6]; profesorului, fac
var n:Sir; notote in caiete,
begin adreseaza
n:=’CALCULATOR’; write(‘ati introdus sirul: ‘) intrebari la
writeln(n); se va afisa : CALCUL necesitate.
end.
Atribuirea valorilor pentru variabilelede tip STRING se poate face: (vezi progr.St2)
1)Prin citirea de la tastatură: ex: writeln (’dati sirul’); read(s); (vezi progr.St3)
2)Prin atribuirea directă: ex: s:=’CALCULATOR’;
Afişarea valorilor pentru valorile de tip STRING poate fi afişată în totalitate
Ex: var s:string[10]; (vezi progr.St3)
………
S:=’CALCULATOR’; writeln(s);
Sau caracter cu caracter:
Ex: var s:string[10]; (vezi progr.St4)
………
For i:=1 to 10 do begin
write(’s[’,i, ’]=’);
Readln(s[i]);
end;
Asupra sirurilor de caractere se pot efectua oparatiile de : Notează în
1) Concatenare (alipire, juxtapunere), notate prin semnul “+” caietele funcţiile
Este o operaţie specifică şirurilor de caractere, prin care la un şir de caractere se şi procedurile
pot alipi caracterele altui şir de caractere standarde.
Operatorul folosit este +
Exemplu: s1:=‘CALCULATOR’; (vezi progr.St5)
s2:= ‘UL’;
S:=s1+s2; {CALCULATORUL}
Funția Concat realizează concatenarea (alipirea), această funcție poate avea mai
multe argumente
Exemplu: s1:=‘CALCULATOR’; (vezi progr.St6)
s2:= ‘UL’;
s3:=‘ ’;
s4:= ‘MEU’;
S:=Concat(s1,s2,S3,S4); {CALCULATORUL MEU}
2) Mai sunt admise si operaţiile relaţionale <, <=, >, =>, =, <>.
Şirurile se compară component cu component de la stînga la dreapta. Rezultatul
returnat de aceşti operatori este de tip boolean. Se compară codul primului caracter
al primului şir (s1) cu codul primului caracter al celui de-al doilea şir (s2), în urma
comparaţiei se poate ajunge în una din următoarele situaţii:
Primul cod este mai mare, caz în care se consideră primul şir (s1)mai mare
decît celălalt; (vezi progr.St7)
Exemplu: ‘PASCAL’ > ‘DELPHI’
Primul cod este mai mic, astfel că primul şir este mai mic;
Exemplu: ‘CARACTER’ <‘ SIR’
Cele două coduri sunt egale; (vezi progr.St8)
Exemplu: ‘ELEMENT’ = ‘ELEMENT’
Se trece la comparaţiile de cod pentru al doilea caracter al primului şir (s1) cu al
doilea caracter pentru şirul al doilea (s2) şi în urma comparaţiei se procedează ca
pentru primul caracter; (nicidecum nu se ia după lungimea şirului)
Exemplu: ‘PROBLEMA’ < ‘PROGRAM’
Exemplu:
In Turbo Pascal exista un sir de functii si procedure predefinite pentru prelucrarea
datelor de tip STRING:
1. Fuctia Length – determina lungimea sirului de caractere indicat ca argument:
Length(s); (vezi progr.St10)
Ex: s:=’CALCULATOR’;
l:=lenth(s); in rezultat va afisa: 10
writeln(l);
2. Functia COPY – extrage un subsir din sirul dat :
COPY(s1,p,n); (vezi progr.St11)
Ex: s:=’CALCULATOR’;
S1:=COPY(S,1,3); în rezultat va afisa: CAL
WRITELN(S1);
3. Functia POS – determina prima aparitie a subsirului cautat este in sirul datDaca
subsirul nu se contine in sirul dat - returneaza “0”. (vezi progr.St12)
POS(s1,s);
Ex: s:=’CALCULATOR’;
S1=’LAT’;
P:=poS(S1,s); in rezultat va afisa: 6
WRITELN(P);
4. Procedura DELETE – exclude din sirul (s) incepind cu pozitia (p): sirul format (vezi progr.St13)
din (n) caractere,
DELETE(s,p,n);
Ex: s:=’CALCULATOR’;
DELETE(s, 4, 3); se va afisa :CALATOR
WRITELN(S);
5. Procedura INSERT – înserează un subşir în şirul dat, începînd cu poziţia p:
INSERT(s1,s, p); (vezi progr.St14)
Ex: s:=’CALATOR’;
S1:=’CUL’;
INSERT(S1, S, 4); in rezultat se obtine: CALCULATOR
WRITELN(S);
Consolidarea 10 Rezolvăm exerciţiile din manual pagina 124 Răspund la
cunoştinţe Vezi Anexa 1 întrebări
Participă cu idei
spre rezolvarea
exerciţiilor
Tema pentru 1 Tema 4.2 pag.121; exerciţiul 4; Notează în
acasă agende tema
pentru acasă
Aprecierea 1 Se notează elevii. Se argumentează notele. Prezintă agendele
elevilor
ANEXA1
[Link] se defineşte un tip de date şir de caractere?
<Nume tip::=packed array [1..n] of char;
2. Ce operaţii pot fi efectuate asupra şirurilor de caractere?
Operaţiile relaţionale: <=, =, >=, <, >, <>.
3. În programul dat este eroare de compilare. Lungimea şirului ‘Sfat’
lungimea este mai mică ca 5.
Exercitiul 8 pag 111
a. Corect l. Coirect
b. Fals m. Corect
c. Corect n. Corect
d. Corect o. Corect
e. Corect p. Corect
f. Fals q. Fals
g. Corect r. Fals
h. Fals s. Corect
i. Corect t. corect
j. Corect u. Fals
k. Corect
Ex5, pag 115
a.‘B’<’A’ -False
b.‘BB’>’AA’ -TRUE
c.‘BAAAA’<’AAAAA’ -FALSE
d.‘CCCCD’>’CCCCA’ – TRUE
e. ‘A A’=’AA’- FALSE
f.‘BB ‘<’B B’ – FALSE
g.‘A’=’a’ – FALSE
h.‘Aa’>’Aa’ – FALSE
i.‘123’=’321’ –FALSE
j.‘12345’>’12345’ - FALSE
Exercitiu 4 pag 124
Program Ex4aPag124;
Var s:string;
i,n:integer;
Begin
n:=0;
Write('Scrie sirul s ');
readln(s);
for i:=1 to length(s) do
begin
if s[i]='A' then n:=n+1;
end;
Write('In sirul dat caracterul A apare de ',n,'ori');
readln;
End.
Program Ex4bPag124;
Var s:string;
i,nr:integer;
Begin
nr:=0; Write('Scrie sirul s ');
readln(s);
for i:=1 to length(s) do
begin
if s[i]='A' then s[i]:='*';
end;
Writeln(s);
readln;
End.
Program Ex4cPag124;
Var s:string;
i:integer;
Begin
Write('Scrie sirul s ');
readln(s);
for i:=1 to length(s) do
begin
if s[i]='B' then delete(s,i,1) ELSE i:=i+1;
end;
Writeln(s);
readln;
end.