PROIECT DIDACTIC
Disciplina: Informatica
Clasa: a IX - a
Data: 30.04.2024
Profesor: Șotropa Silvia
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 (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ţionare
a sistemelor de transmitere, stocare şi de prelucrare a datelor.
Unități de competență:
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, conversația 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ă.
Resurse materiale:
- Calculatorul, proiectorul.
- Compilatorul.
- Tabla, creta.
Materiale bibliografice:
Anatol Gremalschi, Iurie Mocanu, Ion Spinei, Manualul de INFORMATICĂ Clasa a IX-a, Știinţa,2016
Etapele lecţiei:
I. Moment organizatoric - 1 min.
II. Actualizarea cunoştinţelor - 10 min.
III. Anunţarea obiectivelor şi subiectului lecţiei - 1 min.
IV. Comunicarea noilor cunoştinţe - 20 min.
V. Fixarea cunoştinţelor - 10 min.
VI. Anunţarea temei de acasă - 1 min.
Scenariul lecţiei:
Moment 1 Verific prezenţa, notez absenţele şi organizez clasa în vederea desfăşurării activităţii. Salută prezenţii.
organizatoric min Ocupă locurile la
Motto: ”Nu e destul să ştii, trebuie să şi aplici; nu e destul să
calculatoare.
vrei, trebuie să şi faci.” ( [Link] )
Verificarea 10 Răspund la
cunoştinţelor întrebări.
anterioare
Se propune următoarea problemă: Să se citească şi să se afişeze cuvîntul Analizează
„CALCULATOR”. problema
Pentru aceasta procedăm astfel: propusă. Propun
1) Reţinem un vector cu cel 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 Pascal conţine un tip de date, numit şir de caractere (STRING), care permit
noilor min să se lucreze cu mare uşurinţă în aceste cazuri.
cunoştinţe. Dar ce este un şir de caractere? 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 >
Diagrama sintactică a şirului de caractere este:
<şir de caractere>::=’<Element şir>{<Element şir>}’
Î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ă. Asculta indicatiile
Exemplu: Program St3; profesorului, fac
type Sir=string[6]; notițe in caiete,
var n:Sir; adreseaza
begin intrebari la
n:=’CALCULATOR’; write(‘ati introdus sirul: ‘) necesitate.
writeln(n); se va afisa : CALCUL
end.
(vezi progr.St2)
Atribuirea valorilor pentru variabilelede tip STRING se poate face: (vezi progr.St3)
1)Prin citirea de la tastatură: ex: writeln (’dati sirul’); read(s);
2) Prin atribuirea directă: ex: s:=’CALCULATOR’;
Afişarea valorilor pentru valorile de tip STRING poate fi afişată în totalitate (vezi progr.St3)
Ex: var s:string[10];
………
S:=’CALCULATOR’; writeln(s);
Sau caracter cu caracter: (vezi progr.St4)
Ex: var s:string[10];
………
For i:=1 to 10 do begin
write(’s[’,i, ’]=’);
Readln(s[i]);
end;
Notează în
Asupra sirurilor de caractere se pot efectua operatiile de : caietele funcţiile
1) Concatenare (alipire, juxtapunere), notate prin semnul “+” şi procedurile
Este o operaţie specifică şirurilor de caractere, prin care la un şir de caractere se standarde.
pot alipi caracterele altui şir de caractere
Operatorul folosit este + (vezi progr.St5)
Exemplu: s1:=‘CALCULATOR’;
s2:= ‘UL’;
S:=s1+s2; {CALCULATORUL}
Funția Concat realizează concatenarea (alipirea), această funcție poate avea mai
multe argumente (vezi progr.St6)
Exemplu: s1:=‘CALCULATOR’;
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 (vezi progr.St7)
decît celălalt;
Exemplu: ‘PASCAL’ > ‘DELPHI’
Primul cod este mai mic, astfel că primul şir este mai mic;
Exemplu: ‘CARACTER’ <‘ SIR’ (vezi progr.St8)
Cele două coduri sunt egale;
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 Pascal exista un sir de functii si procedure predefinite pentru prelucrarea datelor de
tip STRING:
1. Functia 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 [Link]
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 min Exercitiul 4(a,c) pag 124 întrebări
Participă cu idei
Program Ex4aPag124;
Var s:string; spre rezolvarea
i,n:integer; exerciţiilor
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.
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.
Tema pentru 1 Tema 4.2 pag.121; exerciţiul 4(b) pag.124 Notează în
acasă min agende tema
pentru acasă
Aprecierea 1 Se notează elevii. Se argumentează notele. Prezintă agendele
elevilor min
ANEXA1
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.