joi, 26 martie 2020

Informatie pentru toti

Stimati elevi!!!
Am verificat si notat lucrarile elevilor claselor a 8, a 9.  Care nu a primit nota a transmis incorect lucrarea. Am avut citeva mesaje unde lipseau atasamentele. Fiti atenti cum transmiteti!!!
Clasa XI-A vor fi notati pentru 3 sarcini realizate, deaceea continuati sa transmiteti saptamina aceasta si urmatoare!
Clasa XI-B vor fi notati dupa evaluare (8 puncte evaluarea si 2  puncte tema de acasa)
Clasele a XII vor fi notati la sfirsitul unitatii: Limbajul HTML, deaceea rezolvati toate sarcinile propuse si le expediati. La final voi face totalul.
Clasa XII-B va rog mult sa-mi transmiteti si bazele de date care vor fi evaluate aparte.
Succese si sanatate tuturor!!!

miercuri, 25 martie 2020

clasa XII, 16.03-20.03, Tema: Limbajul HTML. Formatarea textului.

 În HTML se utilizează 6 niveluri de titlu, care pot fi specificate cu ajutorul etichetelor <Hn>.şi </Hn>, unde n poate lua valori de la 1 la 6. Fiecare dintre aceste perechi de etichete stabilesc un anumit nivel de titlu. Nivelul 1 este cel mai proeminent, iar nivelului 6 îi corespund cele mai mici şi mai subţiri caractere. Etichetele de titlu pot avea atributul align = ''tip'', unde tip este unul dintre cuvintele center, left, right, pentru stabilirea modului de aliniere a titlului.
     Fontul unui text poate fi precizat utilizînd marcajele <Font>şi </Font> . El poate fi caracterizat de următoarele atribute: face (precizează familia de caractere şi poate avea ca valoare una sau mai multe constante delimitate prin virgule, cum ar fi arial, serif, cursive, monospace, fantasy etc.); color (precizează culoarea fontului); size (specifică mărimea caracterelor şi poate avea ca valoare constantele 1, 2, ..., 7 sau +1, +2, ... (mărind astfel dimensiunea caracterelor faţă de dimensiunea curentă), sau –1, –2, ... (micşorînd astfel dimensiunile caracterelor faţă de dimensiunea curentă)); weight (determină grosimea caracterelor, avînd valori posibile 100, 200, ..., 900).
     Pentru a pune în evidenţă un fragment de text, se utilizează stilurile. Acestea se împart în două categorii: a) stilurile fizice, care stabilesc înfăţişarea exactă a textului; b)stilurile logice, care marchează textul în funcţie de semnificaţia lui.


Sarcini pentru rezolvare:
de rezolvat ex. 12,13,14, pagina 128 (manual)


luni, 23 martie 2020

clasa XI-B, 23.03-27.03, Tema: Complexitatea temporala a algoritmilor.

Complexitatea temporala - timpul de executie a algoritmului si tinind cont de viteza mare a calculatoarelor are importanta doar termenul dominant.

Algoritmii se clasifica:
1. polinomial ( termenul dominant are forma Cn^k)
2. exponential ( termenul dominant are forma Ck^n)

   Exemplu:
Calculati complexitatea urmatorului algoritm. Determinati tipul algoritmului.

Uses CRT;
Var  A:Array[1..10] of Integer;
       N,I,S:Integer;
Begin Write('N=');Read(N);
For I:=1 To N Do Read(A[I]);
          S:=0;
    For I:=1 To N Do
           S:=S+A[I];
Write('S=',S); ReadKey End.
Q(N)=3N+N+1+1=4N+2
Q(N)=4N
Algoritmul este polinomial.
va amintesc, ca in timul de executie nu se include citire si afisarea.
Rezolvati din manual prob. 1-7, pag. 111
Ne pregatim de evaluare la unitatea Analiza algoritmilor.

clasa XI-A, 23.03-27.03, Tema: Functii si proceduri. Rezolvarea problemelor cu tablouri unidimensionale.

Exemple:
1. Scrieti o functie care determina suma elementelor pare dintr-un tablou unidimensional cu numere întregi A[1..N], N<=100.
Type T=Array[1..100] Of Integer;   
Function Sum(N:Integer; A:T):Integer;
    Var S,I:Integer;
     Begin  S:=0;
          For I:=1 To N Do
          If A[I] Mod 2=0 Then S:=S+A[I];
     Sum:=S
 End;
 2. Scrieti o functie care determina produsul elementelor pozitivedintr-un tablou unidimensional cu numere întregi A[1..N], N<=100.
Type T=Array[1..100] Of Integer;   
Function Pro(N:Integer; A:T):Longint;
    Var I:Integer; P:Longint;
     Begin  P:=1;
          For I:=1 To N Do
          If A[I] >0 Then P:=P*A[I];
     Pro:=P
 End;
3. Scrieti o functie care determina valoarea minima dintr-un tablou unidimensional cu numere întregi A[1..N], N<=100.
Type T=Array[1..100] Of Integer;   
Function Min(N:Integer; A:T):Integer;
    Var M,I:Integer;
     Begin  M:=A[1];
          For I:=2 To N Do
          If A[I] >M Then M=A[I];
     Min:=S
 End;
4. Scrieti o procedura care ordoneaza tabloul crescator A[1..N], N<=100.
Type T=Array[1..100] Of Integer;   
Procedure Sort(N:Integer; Var A:T);
    Var C,I:Integer; V:Boolean;
     Begin  V:=True;
While V Do Begin V:=False;
          For I:=1 To N-1 Do
          If A[I] >A[I+1] Then Begin V:=True;C:=A[I]; A[I]:=A[I+1]; A[I+1]:=C End End
 End;
5. Scrieti o procedura care transfera elementele cu o pozitie la stinga A[1..N], N<=100.
Type T=Array[1..100] Of Integer;   
Procedure Transfer(N:Integer; Var A:T);
    Var C,I:Integer; 
     Begin  C:=A[1];
          For I:=2 To N Do
          A[I-1]:=A[I];
         A[N]:=C
 End;
      Sarcini pentru rezolvare:
1. Scrieti o functie care determina suma numerelor impare dintr-un tablou cu numere intregi A[1..N], N<=100.   
2.Scrieti o functie care determina produsul numerelor pare dintr-un tablou cu numere intregi A[1..N], N<=100.
3.Scrieti o functie care determina valoarea maxima dintr-un tablou cu numere intregi A[1..N], N<=100.
4. Scrieti o procedura care ordoneaza descrescator un tablou unidimensional cu numere reale A[1..N], N<=200.
5. Scrieti o procedura care transfera elementele  tabloului unidimensional cu numere reale A[1..N], N<=200 cu o pozitie la dreapta.
6.* Scrieti o functie care determina numarul de zerouri care pot aparea la sfirsitul produsului numerelor dintr-un tablou unidimensional A[1..N], N<=200 cu numere naturale.
Rezultatele le transmiteti la adresa de e-mail: toloaca.svetlana@gmail.com

clasa VIII, 23.03-27.03, Tema: Initiere in limbajul Pascal. Operatii cu numere intregi si reale.

Tipuri de date întregi:

Integer  -32768..32767
Byte   0..255
ShortInt -128..127
Word 0..65535
Longint 10 cifre, pozitive, negative

Operatii: +,-,* (rezultatele intregi), /-rezultatul real   div-partea intreaga de la impartire, mod-restul de la impartire

Tipuri de date real

Real
la reprezentare , (virgula) se scrie . (punct)
Operatii: +,-,*,/.
functii: 
sqr(x)  -ridicarea la puterea a 2
sqrt(x) -radical

Rezolvarea problemelor:
1. Determinati cifra din pozitia unitatilor.
Program Cifra;
Uses CRT;
Var N,C:Integer;
Begin ClrScr;
     Write('Introdu numarul:'); Read(N); 
     C:=N Mod 10;
     Write('Cifra unitatilor:',C);
ReadKey End.
2. Determinati cifra din pozitia zecilor
Program Cifra;
Uses CRT;
Var N,C:Integer;
Begin ClrScr;
     Write('Introdu numarul:'); Read(N); 
     C:=N Mod 100 Div 10;
     Write('Cifra zecilor:',C);
ReadKey End.
3. Determinati perimetrul si aria unui triunghi cu laturile date.
Program Trio;
Uses CRT;
Var A,B,C,P,S:Real;
Begin ClrScr;
     Write('Introdu laturile:'); Read(A,B,C); 
     P:=A+B+C; S:=Sqrt(P/2*(P/2-A)*(P/2-B)*(P/2-C)); {f-la lui Heron }
     Write('Perimetrul:',P:0:2,' Aria=',S:0:2);
ReadKey End.
4. Calculati distanta dintre 2 puncte date prin coordonatele sale.
Program Punct;
Uses CRT;
Var  X1,Y1,X2,Y2,D:Real;
Begin ClrScr;
     Write('Introdu coordonatele P1:'); Read(X1,Y1); 
     Write('Introdu coordonatele P2:'); Read(X2,Y2); 
     D:=Sqrt(Sqr(X1-X2)+Sqr(Y1-Y2));
     Write('Distanta:',D:0:2);
ReadKey End.
Sarcini pentru rezolvare:
1. Scrieţi un program care calculează  suma dintre ultima si penultima cifra a unui numar natural.
2. Scrieţi un program care calculează  ipotenuza unui triunghi dreptunghic cunoscind catetele.
3. Scrieţi un program care calculează  perimetrul si aria unui triunghi echilateral.

duminică, 22 martie 2020

clasa VIII, 23.03-27.03, Tema: Initiere in limbajul Pascal.

                                                                 Descarcare Turbo Pascal

Un program în limbajul PASCAL este alcătuit din următoarele componente:
antetul, în care se specifi că denumirea programului;
 • partea declarativă, în care se descriu variabilele, funcţiile, subalgoritmii etc. folosiţi în program;
partea executabilă, care include instrucţiunile ce urmează să fi e executate într-o anumită ordine de calculator
 antetul: Program  <Nume_program>;
<Nume_program> poate contine litere, cifre cu lungimea nu mai mare de 63 caractere, 
   Este opţional.
 partea declarativă:
Var - pentru descrierea variabilelor, mărimi care îşi pot modifica valoarea în procesul execuţiei programului.
partea executabilă: conţine instrucţiuni:
1) Write-afişarea informaţiei la ecran.
2) Read-citirea datelor.
3) := -atribuirea valorilor variabilelor.

Exemplu 1. Calculaţi suma a 2 numere întregi.
Uses CRT;
Var A,B,S:Integer;
Begin
    ClrScr;
Write('Introdu 2 numere:'); Read(A,B);
S:=A+B;
Write('Suma=',S);
ReadKey End.
Uses CRT;
Var A,B,S:Integer;
Begin
    ClrScr;
Write('Introdu 2 numere:'); Read(A,B);
S:=A+B;
Write('Suma=',S);
ReadKey End.

Program Suma; - programul a fost numit Suma.
Uses CRT; -permisul la biblioteca CRT care contine comenzi de lucru cu ecranul si tastatura.
Var A,B,S:Integer; -declarareaa variabilelor A,B -numerele date, S-suma calculata.
Begin -începutul blocului de acţiuni.
    ClrScr;+ curăţirea ecranului.
Write('Introdu 2 numere:'); -scrierea unui mesaj la ecran.
Read(A,B); -citirea valorilor pentru A şi B de la tastatură.
S:=A+B;  - calcularea sumei şi atribuirea reyultatului variabilei S
Write('Suma=',S); -afişarea rezultatului
ReadKey 
End. -sfărşitul blocului de acţiuni.

Exemplu 2. Calculaţi perimetrul şi aria unui pătrat.
Uses CRT;
Var A,P,S:Integer;
Begin
    ClrScr;
Write('Introdu lungimea laturii:'); Read(A);
P:=4*A;
S:=A*A;
Write('Perimetrul=',P,' Aria=',S);
ReadKey End.

Exemplu 3. Calculaţi media aritmetica a 3 numere intregi.
Uses CRT;
Var A,B,C:Integer; M:Real;
Begin
    ClrScr;
Write('Introdu 3 numere:'); Read(A,B,C);
M:=(A+B+C)/3;
Write('Media=',M:0:2);
ReadKey End.

Write('Media=',M:0:2);  Pentru numerele reale indicam numarul de cifre dupa virgula (2) ce trebuie afisate

Sarcini pentru rezolvare:
1. Scrieţi un program care calculează  produsul a 3 numere întregi.
2. Scrieţi un program care calculează  aria şi perimetrul uni dreptunghi.
3. Scrieţi un program care calculează  media aritmetica a 5 numere întregi.

clasa IX,X,23.03-27.03, Tema: Tipuri de date tablou (Array) (probleme de totaluri-sarcini pentru rezolvare)

Problema 1. Este dat un tablou A[1..N], N<=100, cu elemente întregi. Numărul de elemente şi elementele tabloului se citesc de la tastatură. Calculaţi valoarea medie  a elementelor impare din tablou.

Problema 2. Este dat un tablou A[1..N], N<=100, cu elemente întregi. Numărul de elemente şi elementele tabloului se citesc de la tastatură. Calculaţi suma şi produsul numerelor divizibile la 3 sau la 7 din tablou.

Problema 3. Este dat un tablou A[1..N], N<=100, cu elemente întregi. Numărul de elemente şi elementele tabloului se citesc de la tastatură. Determinaţi valoarea minimă şi numărul de elemente minime din tablou printr-o singură parcurgere a tabloului.

Problema 4. Este dat un tablou A[1..N], N<=100, cu elemente întregi. Numărul de elemente şi elementele tabloului se citesc de la tastatură. Determinaţi suma elementelor mai mici ca elementul maxim printr-o singură parcurgere a tabloului.

Problema 5. Este dat un tablou A[1..N], N<=100, cu elemente întregi. Numărul de elemente şi elementele tabloului se citesc de la tastatură. Determinaţi cea mai lungă secvenţă crescătoare.

Problema 6. Este dat un tablou A[1..N,1..M], N,M<=10, cu elemente întregi. Numărul de linii şi coloane şi elementele tabloului se citesc de la tastatură. Calculaţi suma numerelor pare din tablou.

Problema 7. Este dat un tablou A[1..N,1..M], N,M<=10, cu elemente reale. Numărul de linii şi coloane şi elementele tabloului se citesc de la tastatură. Calculaţi valoarea minimă şi maximă din tablou.

Problema 8. Este dat un tablou A[1..N,1..N], N<=10, cu elemente întregi. Dimensiunea tabloului şi elementele tabloului se citesc de la tastatură. Calculaţi suma elementelor de pe diagonala secundară, suma mai sus şi suma mai jos de diagonla secundară.

Problema 9. Este dat un tablou A[1..N,1..N], N<=10, cu elemente întregi. Dimensiunea tabloului şi elementele tabloului se citesc de la tastatură. Calculaţi  suma numerelor prime din tablou.

Problema 10. Este dat un număr natural, valoarea căruia se citeşte de la tastatură. Creaţi un tablou cu cifrele binare ale acestui număr.

Rezultatele le transmiteti la adresa de e-mail: toloaca.svetlana@gmail.com

clasa IX,X,23.03-27.03, Tema: Tipuri de date tablou (Array) (aplicatii-probleme de cautare)



                                                    Probleme de căutare.
      Dintre problemele simple de prelucrare a tablourilor fac parte şi problemele de căutare într-un tablou a unuia sau mai multor elemente cu o proprietate anumită. În problemele de căutare se folosesc ciclurile, în cadrul cărora se parcurg tablourile şi se verifică condiţiile cerute. La organizarea ciclurilor de căutare poate fi utilizată instrucţiunea For care va permite parcurgerea întregului tablou şi instrucţiunile While-Do şi Repeat-Until în cazul problemelor cînd căutarea trebuie întreruptă de îndată ce elementul cu proprietatea cerută a fost găsit. Elevii întîmpină greutăţi în cazul problemelor pentru care ciclul trebuie întrerupt de îndată ce elementul cu proprietatea cerută a fost găsit, deaceea trebuie să se acorde atenţie modului de organizare a întreruperii căutării.
1. Problema Nr. 1. Fie dat tabloul A[1..N], N≤100, de numere reale. Scrieţi un program care determină elementul maxim şi numărul de elemente maxime.
Intrare: numărul N şi elementele tabloului se citesc de la tastatură.
Ieşire: pe ecran se afişează valoarea elementului maxim şi numărul de elemente maxime, despărţite prin spaţiu.
Algoritmul: Folosim o variabilă Max în care vom păstra valoarea elementului maxim şi Num pentru numărul de elemente maxime. Iniţializăm Max cu valoarea primului element A[1], iar Num – cu 1, apoi parcurgem elementele tabloului  în cadrul unui ciclu, începînd cu al doilea şi verificăm dacă  elementul cercetat este egal cu elementul maxim, la variabila contor Num se adună o unitate, dacă elementul cercetat mai mare ca maximul curent, atunci elementul respectiv devine noul maxim, iar variabila Num se iniţializează din nou cu 1.
Program Tablou_problema_nr1;
Uses CRT;
Type  Lin=Array[1..100] Of  Real;
Var A:Lin;
    Num, N,I:Byte;
    Max:Real;
Begin
  ClrScr;
  Write(’Numarul de elemente=’);ReadLn(N);
  WriteLn(’Introduceti elementele tabloului’);
  For I:=1 To N Do
      Begin
  Write(’introduceti elementul ’,I,’:’);ReadLn(A[I])
      End;
  Max:=A[1]; Num:=1;
  For I:=2 To N Do
      If A[I] >Max  Then Begin
      Max:=A[I]; Num:=1
    End
                             Else If A[I]=Max Then Inc(Num);
   WriteLn(Max:7:2,’ ’,Num );
  ReadLn End.
2. Problema Nr. 2. Fie dat tabloul A[1..N], N≤100, de numere reale. Scrieţi un program care determină indicele primului element pozitiv.
Intrare: numărul N şi elementele tabloului se citesc de la tastatură.
Ieşire: pe ecran se afişează indicele şi valoarea elementului cu indicele dat, despărţite prin spaţiu, dacă aşa element există şi mesajul NU EXISTA în caz dacă nu există nici un element pozitiv în tablou.
Algoritmul: Pentru a stabili dacă în tabloul dat există măcar un element pozitiv, vom folosi o variabilă logică . Înainte de a începe căutarea, iniţializăm această variabilă cu False. Parcurgem într-un ciclu poziţiile elementelor i=1,...,N. Pentru fiecare valoare a lui i, testăm dacă elementul A[i] este pozitiv: în caz afirmativ variabila logică primeşte valoarea True şi întrerupem execuţia ciclului. Dacă pentru nici o valoare a lui i nu este îndeplinită condiţia A[i]>0, atunci valoarea variabilei logice rămîne False. La implementarea algoritmului de mai sus vom folosi instrucţiunea While-Do pentru ca la găsirea primului număr pozitiv ciclul să fie întrerupt.
Program Tablou_problema_nr2;
Uses CRT;
Type  Lin=Array[1..100] Of  Real;
Var A:Lin;
    N,I:Byte;
    V:Boolean;
Begin
  ClrScr;
   Write(’Numarul de elemente=’);ReadLn(N);
   WriteLn(’Introduceti elementele tabloului’);
   For I:=1 To N Do
       Begin
   Write(’introduceti elementul ’,I,’:’);ReadLn(A[I])
       End;
   I:=0; V:=False;
   Repeat
     Inc(I);
     If A[I]>0 Then V:=True
   Until V Or (I=N);
   If V Then WriteLn(I,’ ’,A[I]:7:2)
        Else WriteLn(’ NU EXISTA’ );
   ReadLn End.
3. Problema Nr.3. Fie dat tabloul bidimensional A[1..N,1..N], N≤20, elementele căruia sunt numere  întregi. Scrieţi un program care determină elementul ce se găseşte în fiecare linie.
Intrare: numărul N şi elementele tabloului se citesc de la tastatură.
Ieşire: pe ecran se afişează  elementul, dacă aşa element (elemente) exista şi mesajul NU EXISTA în caz dacă aşa element nu există.
Algoritmul: Se parcurge într-un ciclu indicii elementelor din prima linie şi pentru fiecare element se verifică dacă el se conţine în toate celelalte linii. Dacă se conţine, valoarea lui se afişează la ecran, în caz contrar se trece la următorul element. Vom utiliza o variabilă logică care iniţial va primi valoarea True, adică aşa elemente nu există. Dacă vom găsi măcar un element ce verifică condiţia dată, valoarea variabile se va schimba în False.
Program Tablou_problema_nr3;
Uses CRT;
Type Tab=Array[1..20,1..20] Of Integer;
Var A:Tab;
    N,I,K,J:Byte;
    V,C, Control:Boolean;
Begin
  ClrScr;
  Write(’Introduceti dimensiunea tabloului: ’); ReadLn(N);
  WriteLn(’Introduceti elementele tabloului’);
  For I:=1 To N Do
      For K:=1 To N Do
          Begin
  Write(’A[’,I, ’, ’,K, ’]= ’); ReadLn(A[I,K])
          End;
      Control:=True;      
  For I:=1 To N Do
      Begin  V:=True;
   For J:=2 To N Do
       Begin  C:=False;
       For K:=1 To N Do
       If A[1,I]=A[J,K] Then C:=True;
         If Not C Then V:=False
        End;
     If V Then Begin
                  Control:=False; WriteLn(A[1,I])
                       End
     End;
 If Control Then WriteLn(’NU EXISTA’);
 ReadLn End.
4. Problema Nr.4. Fie dat tabloul bidimensional A[1..N,1..N], N≤20, elementele căruia sunt numere  reale. Scrieţi un program care determină perechea de elemente, diferenţa dintre care este maximă.
Intrare: numărul N şi elementele tabloului se citesc de la tastatură.
Ieşire: pe ecran se afişează în două linii separate indicii elementelor ce corespund condiţiilor din enunţul problemei, separate prin spaţiu. Primul număr va indica numărul liniei, iar al doilea – numărul coloanei.
Algoritmul: Se calculează toate diferenţele posibile dintre elementele tabloului şi se reţine valoarea maximă a acestor diferenţe, inclusiv şi indicii elementelor pentru care este realizată această diferenţă.
Program Tablou_problema_nr4;
Uses CRT;
Type Tab=Array[1..20,1..20] Of Real;
Var A:Tab;
    N,I,K,J,L,B,Lin_1,Col_1,Lin_2,Col_2:Byte;
    Dmax:Real;
Begin
  ClrScr;
  Write(’Introduceti dimensiunea tabloului: ’);
  ReadLn(N);
  WriteLn(’Introduceti elementele tabloului’);
  For I:=1 To N Do
      For K:=1 To N Do
          Begin
  Write(’A[’,I, ’, ’,K, ’]= ’);
  ReadLn(A[I,K])
          End;
     Dmax:=Abs(A[1,1]-A[1,2]);
                  Lin_1:=1; Col_1:=1;
                  Lin_2:=1; Col_2:=2;
  For I:=1 To N Do
      For K:=1 To N Do
          For L:=I To N Do
      Begin
  If I<L Then B:=1 Else B:=K+1;
  For J:=B To N Do
  If Abs(A[I,K]-A[L,J])>Dmax Then Begin
                                  Dmax:=Abs(A[I,K]-A[L,J]);
                                  Lin_1:=I; Col_1:=K;
                                  Lin_2:=L; Col_2:=J
                                  End
      End;
      WriteLn(Lin_1, ’ ’,Col_1);
      WriteLn(Lin_2, ’ ’,Col_2);
  ReadLn End.

clasa IX,X,23.03-27.03, Tema: Tipuri de date tablou (Array) (aplicatii-probleme de totalizare)


                Probleme de calcul a totalurilor, mediilor etc. elementelor dintr-un tablou.
În multe cazuri apare necesitatea de a obţine careva valori rezumative referitoare la datele din tablou: sume, produse, valori medii etc. Ca şi în cazul problemelor de numărare se asigură parcurgerea  elementelor tabloului în cadrul ciclurilor şi selectarea elementelor de care avem nevoie. În algoritmii de calculare a sumei sau produsului se foloseşte o mărime variabilă la care se adună, respectiv se înmulţeşte elementul ce respectă condiţia cerută. Înainte de începerea parcurgerii elementelor tabloului acestor mărimi li se atribuie valori iniţiale, de regulă pentru sume 0, iar pentru produse 1.
1. Problema Nr. 1. Fie dat tabloul bidimensional A[1..N,1..M], N,M≤20,  elementele căruia sunt   numere întregi. Scrieţi un program care calculează produsul elementelor din fiecare linie.
Intrare: numerele N, M şi elementele tabloului se citesc de la tastatură.
Ieşire: pe ecran se afişează produsele din fiecare linie, despărţite prin spaţiu.
Algoritmul: Declarăm un tablou unidimensional, în care vom înregistra produsul elementelor din fiecare linie. Iniţial tabloul se completează cu 1. Parcurgem fiecare linie şi înmulţim elementul cercetat din tabloul bidimensional la elementul tabloului unidimensional, locul căruia î-l indică numărul de ordine al liniei ce este verificată la momentul dat.
Program Tablou_problema_nr1;
Uses CRT;
Type   Lin=Array[1..20] Of  Integer;
       Tab=Array[1..20,1..20] Of Integer;
Var A:Tab;
    N,M,I,K:Byte;
    P:Lin;
Begin
  ClrScr;
Write(’Introduceti nr. de linii:’); ReadLn(N);
Write(’Introduceti nr. de coloane:’); ReadLn(M);
WriteLn(’Introduceti elementele tabloului’);
For I:=1 To N Do
     For K:=1 To M Do
         Begin
     Write(’A[’,I,’,’,K,’ ]=’); ReadLn(A[I,K])
         End;
For I:=1 To N Do
    Begin
      P[I]:=1;
For K:=1 To M Do  P[I]:=P[I]*A[I,K]
    End;
For I:=1 To N Do Write( P[I],’ ’);
   ReadLn End.
2. Problema Nr. 2. Fie dat tabloul bidimensional A[1..N,1..N], N≤20,  elementele căruia sunt numere reale. Scrieţi un program care calculează suma pătratelor elementelor de pe perimetrul tabloului.
Intrare: numărul N şi elementele tabloului se citesc de la tastatură.
Ieşire: pe ecran se afişează suma calculată.
Algoritmul: Se declară o variabilă de tip real pentru calcularea sumei cerute, căreia  iniţial i se atribuie valoarea 0. Se parcurge perimetrul tabloului (pentru început prima şi ultima linie, apoi prima şi ultima coloană, dar fără primul şi ultimul element, care au fost deja verificate) şi se  adună pătratul elementului tabloului la valoarea variabilei S pentru calcularea sumei.
Program Tablou_problema_nr2;
Uses CRT;
Type  Tab=Array[1..20,1..20] Of Real;
Var A:Tab;
    N,I,K:Byte; Sc:Real;
Begin
  ClrScr;
Write(’Introduceti nr. de linii si coloane:’); ReadLn(N);
WriteLn(’Introduceti elementele tabloului’);
For I:=1 To N Do
    For K:=1 To N Do
        Begin
    Write(’A[’,I,’,’,K,’ ]=’); ReadLn(A[I,K])
        End;
        Sc:=0;
    For I:=1 To N Do Sc:=Sc+Sqr(A[I,1]) +Sqr (A[I,M]);
    For I:=2 To M-1 Do Sc:=Sc+Sqr(A[1,I])+Sqr(A[N,I])
WriteLn(’Suma patratelor elementelor de pe perimetru= ’, Sc);
  ReadLn End.
3.      Problema Nr. 3. Fie dat tabloul bidimensional A[1..N,1..N], N≤20,  elementele căruia sunt numere întregi. Scrieţi un program care calculează suma elementelor pe diagonala principală, suma elementelor situate mai sus de diagonala principală şi suma elementelor situate mai jos de diagonala principală.
Intrare: numărul N şi elementele tabloului se citesc de la tastatură.
Ieşire: pe ecran se afişează valorile sumelor calculate, despărţite prin spaţiu.
Algoritmul: Se iau 3 variabile S1, S2, S3 pentru calcularea sumelor elementelor de pe diagonala principală, mai sus de diagonala principală şi mai jos de diagonala principală. Iniţial li se atribuie valoarea 0. Se parcurg elementele de pe diagonala principală în cadrul unui ciclu şi se adună valoarea elementului tabloului la valoarea variabilei S1 pentru calcularea sumei elementelor diagonalei principale. Parcurgem  elementele aflate deasupra diagonalei principale ( liniile i ale tabloului (i=1,2,...,N-1), iar pentru fiecare linie i parcurgem numai coloanele j mai mari decît i, adică j=i+1,...,N) şi adunăm valoarea elementelor respective A[i,j] la valoarea variabilei S2. În cadrul aceloraşi cicluri calculăm S3 adunînd la valoarea variabilei date valoarea elementului situat mai jos de diagonala principală A[j,i].
Program Tablou_problema_nr3;
Uses CRT;
Type  Tab=Array[1..20,1..20] Of Integer;
Var A:Tab;
    N,I,K:Byte;
    S1,S2,S3:Integer;
Begin
  ClrScr;
Write(’Introduceti nr. de linii si coloane:’); ReadLn(N);
WriteLn(’Introduceti elementele tabloului’);
For I:=1 To N Do
      For K:=1 To N Do
          Begin
      Write(’A[’,I,’,’,K,’ ]=’);
      ReadLn(A[I,K])
           End;
       S1:=0; S2:=0; S3:=0;
       For I:=1 To N Do
           S1:=S1+A[I,I];
       For I:=1 To N-1 Do
              For J:=I+1 To N Do
                     Begin
               S2:=S2+A[I,J];
               S3:=S3+A[J,I]
                       End;
     WriteLn(S1,’ ’,S2,’ ’,S3, ’ ’ );
 ReadLn End.