duminică, 26 aprilie 2020

clasa XII-A,B, 28.04-30.04. Tema: Referinte.

Referinte (anchor,link-uri, hiperlegaturi) va face textul sau imaginea sa acceseze o secventa de document de pe pagina ta sau alt document.
Referintele sunt zone active  ale paginii Web, care la clic, programul de explorare va vizualiza pagina.
Pentru a pune in evidenta o referinta se utilizeaza eticheta A cu atributul obligatoriu href:
<A HREF="URL"> text sau imagine </A>

     O referinta poate lega:

1. documentul curent cu alt document din acelasi dosar
2. documentul curent cu alt document din alt dosar
3. documentul curent cu alt site
4. documentul curent cu o secventa din acelasi document
5. documentul curent cu o secventa din alt document
6. lanseaza la executie o aplicatie de expediere a mesajelor electronice

Exemplul 1.
Exemplul 2.



Exemplul 3.


La operatiile 4,5,6 revenim urmatoarea lectie!

Sarcini pentru rezolvare;

1. de citit par. 12.4, pag. 132
2. de rez. 

a) creati un document WEB, in care scrieti 3 poezii, care va plac cel mai mult. Fiecare poezie va contine referinta la alt document din acelasi dosar cu denumirea si autorul
b) creati un document WEB  pe discul C, ce contine o lista formata din referinta cu numele a 2 prieteni si 2 documente in mapa B de pe discul C cu caracteristica acestor prieteni.
c) creati un document WEB cu referinta la site-ul care il utilizati cel mai des.

Problemele rezolvate le transmiteti la adresa: toloaca.svetlana@gmail.com pina la data de 30.04.2020.

Succese!!!

clasa XI-B, 28.04-30.04. Tema: Metoda Greedy.


Această metodă se aplică la rezolvarea problemelor, care au următoarea structură:
§Se dă o mulţime A={a1,aa,…,an} formată din n elemente;
§Se cere să se determine o submulţime B, B A, care îndeplineşte anumite condiţii pentru a fi acceptată ca soluţie.
Pentru a evita trierea tuturor submulţimilor , în metoda Greedy se utilizează un criteriu care asigură alegerea directă a elementelor necesare din mulţimea A. De obicei criteriul nu este indicat explicit în enunţul problemei şi determinarea lui revine programatorului.
     Metoda Greedy ne propune o strategie de rezolvare a problemelor de optim în care se poate cauta optimul global prin alegeri succesive ale optimului local, ceea ce permite rezolvarea problemei fără nici o revenire la deciziile deja luate.

Problema spectacolelor.
     Într-o sală, într-o zi, trebuie planificate N spectacole. Pentru fiecare spectacol se cunoaşte intervalul în care se desfăşoară: [st, sf]. Se cere să se planifice un număr maxim de spectacole astfel încât sa nu se suprapună.
Algoritmul:
     Fie o planificare optimă a spectacolelor (un număr maxim k de spectacole i1, i2...ik. unde i1, i2,... ik aparţine {1,2,...N } şi spectacolul ij, are loc înaintea  spectacolului ij+1. O astfel de planificare îndeplineşte condiţia: spectacolul ij+1 începe după terminarea spectacolului ij.
=> 0 consecinţă imediată a condiţiei de mai sus este: spectacolul i, ia sfârşit înaintea terminării spectacolului tj+1 (consecinţa nu implica un efort de gândire deosebit).
     Vom construi o soluţie după următorul algoritm:
P1. sortăm spectacolele după ora terminării lor;
P2. primul spectacol programat este cel care se termină cel mai devreme;
P3. alegem primul spectacol dintre cele care urmează în sir ultimului spectacol programat care îndeplineşte condiţia că începe după ce s-a terminat ultimul spectacol programat;                              
P4. dacă tentativa de mai sus a eşuat (nu am găsit un astfel de spectacol) algoritmul se termină, altfel se programează spectacolul găsit şi algoritmul se reia de la pasul 3.
Acest program se încadrează in tehnica Greedy pentru că: la un pas se alege un spectacol (cu ora de terminare mai mare decât ora de terminare a ultimului spectacol programat iar dacă este posibil (dacă are ora de început după ora de sfârşit a ultimului spectacol programat) este adăugat soluţiei. Odată adăugat (programat) un spectacol, acesta rămâne in cadrul soluţiei.
Programul în limbajul Pascal.
Program Spectacole; Uses CRT;
Type Timp=Record
          O,M:Integer
          End;
     Spectacol=Array[1..2,1..10] Of Timp;
     Ordine=Array[1..10] Of Integer;
Var S:Spectacol;    O:Ordine;    N,I,H1,M1,H2,M2,K:Integer;
Procedure Sortare;
Var V:Boolean;    M,I:Integer;
Begin
  Repeat    V:=True;
  For I:=1 To N-1 Do
  If (S[2,O[I]].O>S[2,O[I+1]].O) Or
     ((S[2,O[I]].O=S[2,O[I+1]].O) And (S[2,O[I]].M>S[2,O[I+1]].M))
     Then Begin
            M:=O[I]; O[I]:=O[I+1];O[I+1]:=M;
            V:=False
          End
  Until V  End;
Begin  ClrScr;  Write ('Numarul de spectacole=') ; ReadLn (N);
  For I:=1 To N Do
      Begin        O[I]:=I;
    Write('Ora de inceput pentru spectacolul ',I, ' (hh min)=') ;
      ReadLn(H1,M1);
      S[1,I].O :=H1;  S[1,I].M :=M1;
    Write('Ora de sfirsit pentru spectacolul ', I , ' (hh min =') ;
      ReadLn(H2,M2);
      S[2,I].O :=H2;  S[2,I].M :=M2
      End;
      Sortare;
WriteLn('Ordinea spectacolelor este');
    WriteLn(O[1]) ;K:=1;
For I:=2 To N Do
If (S[1,O[I]].O>S[2,O[K]].O) Or
   ((S[1,O[I]].O=S[2,O[K]].O) And (S[1,O[I]].M>=S[2,O[K]].M))
   Then Begin
          WriteLn (O[I]);     K:=I
        End;
   ReadLn End.

Sarcini pentru rezolvare;

1. de citit par. 5.3, pag. 122
2. de rez. pr. 6,7 pag. 125
Problemele rezolvate le transmiteti la adresa: toloaca.svetlana@gmail.com pina la data de 30.04.2020.

Succese!!!

clasa XI-A, 28.04-30.04. Tema: Rezolvarea problemelor cu functii si proceduri, utilizind tablourile bidimensionale.


 Declaratia tipurilor de date tablou:

Type <NumeTip>=Array[TipLinie,TipColoana] Of TipElemente;

TipLinie,TipColoana-tipuri ordinale de date; TipElemente-oricare.

Exemplu:

Rezolvare:

Uses CRT;
Type T=Array[1..50,1..10] of Integer;
Var A:T; N,M,I,J:Integer;
Function Sum(I:Integer):Integer;
Var S:Integer;
Begin S:=0;
     For J:=1 To M Do S:=S+A[I,J];
     Sum:=S
End;
Procedure Citire(Var N,M:Integer; Var A:T);
Var F:Text;
Begin  Assign(F,'date.in'); Reset(F);
ReadLn(F,N,M);
For I:=1 To N Do
      For J:=1 To M Do Read(F,A[I,J]); Close(F)
End;
Procedure Scrie(N,M:Integer; A:T);
Var F:Text;
Begin Assign(F,'date.out'); Rewrite(F);
     For I:=1 To N Do Write(F,Sum(I),' '); Close(F)
End;
Begin  Citire(N,M,A);
             Scrie(N,M,A)
End.
 
Sarcini pentru rezolvare:


Problemele rezolvate le transmiteti la adresa: toloaca.svetlana@gmail.com pina la data de 30.04.2020.

Succese!!!

clasa X, 28.04-30.04. Tema: Tipuri de date array. test de evaluare.

Testul de evaluare, clasa X, tablouri unidimensionale.

Testele rezolvate le transmiteti la adresa: toloaca.svetlana@gmail.com pina la data de 30.04.2020.

Succese!!!

clasa IX, 28.04-30.04. Tema: Tipuri de date array. test de evaluare.

Testul de evaluare, clasa IX, Tablouri unudimensionale.

Testele rezolvate le transmiteti la adresa: toloaca.svetlana@gmail.com pina la data de 30.04.2020.

Succese!!!

clasa VIII, 28.04-30.04. Tema: Tipuri simple de date. Rezolvarea problemelor.

Problema 1. Scrieti un program care calculeaza aria unui inel forma de 2 cercuri concentrice cu razele Q-cercul mic, R-cercul mare.

Uses CRT;
Var Q,R,S:Real;
Begin ClrScr; Write('introdu razele:'); Read(Q,R);
     S:=Pi*(Sqr(R)-Sqr(Q));
Write('Aria=',S:0:2); ReadKey End.

Problema 2. Scrieti un program care calculeaza suma cuburilor dintre ultima si penultima cifra a aunui numar natural.
Uses CRT;
Var N,U,P,S:Integer;
Begin ClrScr; Write('introdu numarul:'); Read(N);
U:=N Mod 10; P:=N Mod 100 Div 10;
     S:=U*Sqr(U)+P*Sqr(P);
Write('Suma=',S); ReadKey End.

Problema 3. Scrieti un program care afiseaza la ecran valoarea true, daca numerele A,B,C-intregi  sunt ordonate strict crescator  si false-in caz contrar.
Uses CRT;
Var A,B,C:Integer; R:Boolean;
Begin ClrScr; Write('introdu 3 numere:'); Read(A,B,C);
     R:=(A<B) And (B<C);
Write(R); ReadKey End.

Problema 4. Scrieti un program care afiseaza la ecran valoarea true, daca  numerele A,B,C-reale sunt ordonate descrescator  si false-in caz contrar.
Uses CRT;
Var A,B,C:Integer; R:Boolean;
Begin ClrScr; Write('introdu 3 numere:'); Read(A,B,C);
     R:=(A>=B) And (B>=C);
Write(R); ReadKey End.

Problema 5. Scrieti un program care afiseaza la ecran valoarea true, daca  caracterul citit este operatie aritmetica si false-in caz contrar.
Uses CRT;
Var A:Char; R:Boolean;
Begin ClrScr; Write('introdu un caracter:'); ReadLn(A);
     R:=A in ['+','-','*','/'];
Write(R); ReadKey End.

Sarcini pentru realizare:
1. Scrieti un program care calculeaza suprafata unui poligon regulat cu latura A fara suprafata cercului inscris in poligon cu raza R.
2. Scrieti un program care calculeaza produsul dintre ultima si penultima cifra a unui numar natural.
3. Scrieti un program care  afiseaza la ecran valoarea true, daca numerele reale A,B,C sunt ordonate strict descrescator si false-in caz contrar.
4. Scrieti un program care afiseaza la ecran valoarea true daca caracterul citit de la tastatura este litera mica si false-in caz contrar.
5. Un melc se plimbă printr-un parc pe vreme umedă, fiind cunoscută viteza sa, exprimată în km/săptămînă. Cunoscînd lungimea totală a aleilor parcului exprimată în metri, să se calculeze de cîte ore are nevoie melcul pentru a străbate întregul parc.
6. Un avion a decolat la data D, ora O, min M, sec S. În  zbor s-a aflat Q secunde. Determinaţi timpul aterizării.   
Problemele rezolvate le transmiteti la adresa: toloaca.svetlana@gmail.com pina la data de 30.04.2020.

Succese!!!

luni, 20 aprilie 2020

clasa XII-A,B, 21.04-24.04. Tema: Imagini.

Pentru inserarea unei imagini intr-un document HTML se foloseste marcajul <IMG SRC="URL">

Putem utiliza atributele ALT si BORDER.

Atributul
Efectul
ALT=". . . . ."
Afiseaza un text cand cursoru' e pe imagine sau imaginea nu-i afisata
BORDER=numar
Controleaza grosimea in pixeli a conturului imaginii

Putem schimba dimensinile pozei cu setarile height si width.


Atributul
Efectul
HEIGHT="numar"
Specifica inaltimea imaginii in pixeli
WIDTH="numar"
Specifica latimea imaginii in pixeli

Putem controla cu va fi aliniata imaginea in pagina web. Din start totul din document este aliniat la stanga.

Atributul
Efectul
ALIGN="bottom"
Aliniaza partea de jos a imaginii cu linia curenta.
ALIGN="left"
Pune imaginea in stanga iar textu' in dreapta
ALIGN="middle"
Aliniaza linia curenta la centrul imaginii
ALIGN="top"
Aseaza textul langa partea de sus a imaginii
ALIGN="right"
Aliniaza imaginea in dreapta
HSPACE="numar"
Controleaza spatiul orizontal din juru' imaginii in pixeli
VSPACE="numar"
Controleaza spatiul vertical din jurul imaginii in pixeli
Exemplu.


duminică, 19 aprilie 2020

clasa XI-B, 21.04-24.04. Tema: Metoda trierii. Rezolvarea problemelor.

Problema 1. Scrieti un program care afiseaza la ecran secventele binare pe 4 biti.

Uses CRT;
Var I,J,K,L:0..1;
Begin ClrScr;
    For I:=0 To 1 Do
           For J:=0 To 1 Do
                  For K:=0 To 1 Do 
                         For L:=0 To 1 Do
WriteLn(I,J,K,L); ReadKey End.

Problema 2. Scrieti un program care afiseaza la ecran numerele norocoase de 6 cifre
Uses CRT;
Var I,J,K,L,M,N:Integer;
Begin ClrScr;
    For I:=1 To 9 Do
           For J:=0 To 9 Do
                  For K:=0 To 9 Do 
                         For L:=0 To 9 Do
                                For M:=0 To 9 Do
                                       For N:=0 To 9 Do

If I+J+K=L+N+M Then WriteLn(I,J,K,L,N,M); ReadKey End.

clasa XI-A, 21.04-24.04. Tema: Rezolvarea problemelor utilizind tipul string.

Problema 1. Scrieti o functie care calculeaza numarul de litere mici dintr-un sir de caractere.

Function Nr(X:String):Integer;
Var N,I:Integer;
Begin  N:=0;
    For I:=1 To Length(X) Do
    If X[I] in ['a'..'z'] Then Inc(N);
Nr:=N
End;

Problema 2. Scrieti o functie care exclude imbinarea OA dintr-un sir de caractere.

Function Ex(X:String):String;
Var I:Integer;
Begin  I:=1;
   While I<=Length(X) Do
    If (UpCase(X[I])='O') And (UpCase(X[I+1])='A') Then Delete(X,I,2) Else Inc(I);
Ex:=X
End;

Problema 3. Scrieti o functie care adauga semnul + intr-un sir de caractere in fata fiecarei cifre.

Function Ex(X:String):String;
Var I:Integer;
Begin  I:=1;
   While I<=Length(X) Do
    If X[I] in ['0'..'9'] Then Begin Insert('+',X,I); Inc(I,2) End Else Inc(I);
Ex:=X
End;

Problema 4. Scrieti o functie care calculeaza suma cifrelor dintr-un sir de caractere.

Function Suma(X:String):Integer;
Var S,I,Cod,C:Integer;
Begin  S:=0;
    For I:=1 To Length(X) Do
   Begin Val(X[I],C,Cod);
    If Cod=0 Then S:=S+C End; 
Suma:=S
End;

clasa IX,X. 21.04-24.04. Tema: Tipuri de date array. Rezolvarea problemelor.

Problema 1. Scrieti un program care calculeaza suma si produsul numerelor prime dintr-un tablou unidimensional A[1..N], N<=100, cu numere naturale.

Uses CRT;
Type T=Array[1..100] Of Integer;
Var A:T; N,I,K,S:Integer; P:Longint; V:Boolean;
Begin ClrScr; Write('introdu nr de elemente=:'); Read(N);
     For  I:=1 To N Do Begin
             Write('A[',I,']='); Read(A[I]) 
                                    End;
S:=0; P:=1;
For I:=1 To N Do Begin
K:=2; V:=True;
While V And (K<=A[I] Div 2) Do
If A[I] Mod K=0 Then V:=False Else Inc(K);
If V Then Begin S:=S=A[I]; P:=P*A[I] End
                              End;
Write('Suma=',S,' Produsul=',P);
ReadKey End.

Problema 2. Scrieti un program care calculeaza miinim  si numarul de elemente minime dintr-un tablou unidimensional A[1..N], N<=100, cu numere intregi.

Uses CRT;
Type T=Array[1..100] Of Integer;
Var A:T; N,I,Min,K:Integer; 
Begin ClrScr; Write('introdu nr de elemente=:'); Read(N);
     For  I:=1 To N Do Begin
             Write('A[',I,']='); Read(A[I]) 
                                    End;
Min:=A[1]; K;=1;
For I:=2 To N Do 
If A[I]<Min Then Begin Min:=A[I]; K:=1 End
Else If A[I]=Min Then Inc(K);
Write('Minim=',Min,' Numarul=',K);
ReadKey End.

Problema 3. Scrieti un program care ordoneaza tabloul unidimensional A[1..N], N<=100, cu numere intregi  in ordine descresctoare.

Uses CRT;
Type T=Array[1..100] Of Integer;
Var A:T; N,I,C:Integer; V:Boolean;
Begin ClrScr; Write('introdu nr de elemente=:'); Read(N);
     For  I:=1 To N Do Begin
             Write('A[',I,']='); Read(A[I]) 
                                    End;
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;
WriteLn('Tabloul ordonat');
For I;=1 To N Do Write(A[I],' ');
ReadKey End.

Atentie!!! Pentru saptamina viitoare ne pregatim de evaluare la tema: Tablouri unidimensionale.




clasa VIII, 21.04-24.04. Tema: Tipuri simple de date. Rezolvarea problemelor.

Problema 1. Scrieti un program care calculeaza aria unui hexagon regulat cu latura A, A-real.

Uses CRT;
Var A,S:Real;
Begin ClrScr; Write('introdu lungimea laturii:'); Read(A);
     S:=3*Sqr(A)*Sqrt(3)/2;
Write('Aria=',S:0:2); ReadKey End.

Problema 2. Scrieti un program care calculeaza suma patratelor dintre ultima si penultima cifra a aunui numar natural.
Uses CRT;
Var N,U,P,S:Integer;
Begin ClrScr; Write('introdu numarul:'); Read(N);
U:=N Mod 10; P:=N Mod 100 Div 10;
     S:=Sqr(U)+Sqr(P);
Write('Suma=',S); ReadKey End.

Problema 3. Scrieti un program care afiseaza la ecran valoarea true, daca printre numerele A,B,C-intregi exista un numar care poate fi reprezentat ca suma la celelalte doua si false-in caz contrar.
Uses CRT;
Var A,B,C:Integer; R:Boolean;
Begin ClrScr; Write('introdu 3 numere:'); Read(A,B,C);
     R:=(A=B+C) Or (B=A+C) Or (C=A+B);
Write(R); ReadKey End.

Problema 4. Scrieti un program care afiseaza la ecran valoarea true, daca  numerele A,B,C-reale reprezinta lungimile laturilor unui triunghi si false-in caz contrar.
Uses CRT;
Var A,B,C:Integer; R:Boolean;
Begin ClrScr; Write('introdu 3 numere:'); Read(A,B,C);
     R:=(A+B>C) And (B+C>A) Ana (A+C>B);
Write(R); ReadKey End.

Problema 5. Scrieti un program care afiseaza la ecran valoarea true, daca  caracterul citit este consoana si false-in caz contrar.
Uses CRT;
Var A:Char; R:Boolean;
Begin ClrScr; Write('introdu un caracter:'); ReadLn(A);
     R:=Upcase(A) in ['A'..'Z']-['A','E','I','O','U'];
Write(R); ReadKey End.

miercuri, 15 aprilie 2020

clasa VIII. Atentie!!!

1.   Cind aveti de citit valorile pentru mai multe variabile de tipul Char, le cititi pe fiecare in parte, utilizind comanda ReadLn. 
2.    La scriera conditiilor compuse utilizati operatorii logici And sau Or.

Exemple:

1. De la tastatura se citesc 2 caractere. De afisat la ecran true, daca ambele sunt consoane si false in caz contrar.

Uses CRT; Var X,Y:Char; R:Boolean;
Begin ClrScr; 
Write('1 car:'); ReadLn(X);
Write('2 car:'); ReadLn(Y);
R:=( UpCase(X) in ['A'..'Z']-['A','E','I','O','U']) And (UpCase(Y) in ['A'..'Z']-['A','E','I','O','U']);
Write(R); ReadKey
End.

2. De la tastatura se citesc 2 caractere. De afisat la ecran true, daca macar unul este paranteza si false in caz contrar.

Uses CRT; Var X,Y:Char; R:Boolean;
Begin ClrScr; 
Write('1 car:'); ReadLn(X);
Write('2 car:'); ReadLn(Y);
R:=( ) in ['(',')','{','}','[',']']) Or(Y in ['(',')','{','}','[',']']);
Write(R); ReadKey
End.

duminică, 12 aprilie 2020

clasa XII-A,B, 13.04-17.04, Tema: Liste

Pentru reprezentarea structurata a informatiei in HTML se utilizeaza 3 tipuri de liste:
1. neordonate
2. ordonate
3. de definitii

Lista neordonata-o succesiune de elemente marcate printr-un simbol.
Pentru definire se folosesc etichetele <Ul>...</Ul>
Fiecare element e precedat de <Li>
<Ul> poate avea atributul type cu valorile Circle, Square, Disc.

Lista ordonata-o succesiune de elemente numerotate.
Pentru definire se folosesc etichetele <Ol>...</Ol>
Fiecare element e precedat de <Li>
<Ol> poate avea atributul type cu valorile A,a,I,i,1.

Lista de definitii-pentru organizarea glosarelor
Pentru definire se folosesc etichetele <Dl>...</Dl>
Fiecare notiune e precedata de <Dt>, iar definitia de <Dd>

Exemple:









1.       




























 Sarcini pentru realizare:

      1.Creaţi o pagină WEB care va afişa titlul Disciplinele şcolare” pe fundal alabstru, mărimea 5, după care va urma o listă neordonată cu disciplinele respective. În calitate de semn de marcare vom folosi pătratul.
2     
           2. Creaţi o pagină WEB care va afişa 2 liste ordonate cu produse culinare. Prima listă va fi însoţită de un text cursiv: „Aceste produse culinare sunt pe placul meu”, iar a doua -„Nu consum aceste produse  culinare, fiindcă nu-mi plac”. Titlul listei „Produse culinare” va avea mărimea 3 şi culoarea albastră.
3     
      3. Creaţi o pagină WEB care va afişa titlul “Matematica” pe fundal violet, mărimea  4, după care va urma o listă de definiţii cu 5 noţiuni din matematică. Titlul va avea culoare neagră, aliniat la dreapta şi despărţit de noţiuni printr-o linie orizontală de culoare verde, înălţimea 3.

           4. Creaţi o pagină WEB care va afişa lista neordonata fructe si legume, utilizind in calitate de semn de marcare cercul. Fiecare element al listei va contine cite o lista ordonata marcata cu litere mici cu fructe, respectiv legume. Fundalul azuriu, marimea pentru lista neordonata 6, culoare rosie, pentru listele ordonate marimea 3, culoare albastra.










Problemele rezolvate le transmiteti la adresa: toloaca.svetlana@gmail.com pina la data de 17.04.2020
Succese!!!

clasa XI-B, 13.04-17.04, Tema: Metoda trierii.

Metoda trierii este o tehnica de programare bazata pe trierea multimii tuturor solutiilor posibile si selectarea acedlora care respecta anumite conditii.
Exemplu 1.
De afisat la ecran toate secventele binare pe 3 biti.
Uses CRT;
Var I,J,K:0..1;
Begin  ClrScr;
     For I:=0 To 1 Do
             For J:=0 To 1 Do
                     For K:=0 To 1 Do
WriteLn(I,J,K); ReadKey End.
Exemplu 2.
De la tastatura se citeste un numar natural. De afisat la ecran toate descompunerile acestui numar in suma de 4 termeni diferiti de zero. Descompunerile la care difera doar ordinea termenilor sunt considerate aceleasi.
Uses CRT;
Var I,J,K,L,N:Integer;
Begin  ClrScr;
     Write('N='); Read(N);
     For I:=1 To N-3 Do
             For J:=I To N-3 Do
                     For K:=J To N-3 Do
                             For L:=K  To N-3 Do 
If I+J+K+L=N Then WriteLn(I,' ',J,' ',K,' ',L); ReadKey End.
Exemplu 3.
De afisat la ecran toate numerele norocoase de 6 cifre.
Uses CRT;
Var I,J,K,L,N,M:Integer;
Begin  ClrScr;
         For I:=1 To 9 Do
             For J:=0 To 9 Do
                     For K:=0 To 9 Do
                             For L:=0  To 9 Do 
                                    For N:=0 To 9 Do
                                            For M:=0 To 9 Do
If I+J+K=L+N+M Then WriteLn(I,J,K,L,N,M); ReadKey End.
Sarcini pentru realizare:
De studiat par. 5.2, pag.118, de rezolvat: pr.6,8,9,10, pag. 122
De realizat un proiect la tema: Metoda trierii

Problemele rezolvate le transmiteti la adresa: toloaca.svetlana@gmail.com pina la data de 17.04.2020, proiectul pina la data 24.04.2020
Notarea ( proiectul+problemele rezolvate)
Succese!!!


clasa XI-A, 13.04-17.04, Tema: Proceduri si functii utilizind tipul de date string..

Tipul string - tip de date sir de caractere cu lungime variabila nu mai mare de 256.
Operatii:
1. + alipirea, juxtapunerea a 2 siruri
2. copy(sir,poz,nr) -copierea unui subsir de lungime nr din sir incepind cu pozitia poz
3. insert(subsir,sir,poz)- inserarea subsir in sir la pozitia indicata
4. delete(sir,poz,nr)-excluderea din sir a caracterelor incepind cu pozitia indicata
5. length(sir)-determinarea lungimii unui sir de caractere

Exemplu 1. Scrieti o functie care determina numarul semnelor ? dintr-un sir de caractere.
Function Nr(X:String):Integer;
Var N,I:Integer;
Begin N:=0;
    For I:=1 To Length(X) Do
If X[I]='?' Then Inc(N);
Nr:=N End;

Exemplu 2. Scrieti o functie care determina numarul vocalelor dintr-un sir de caractere.
Function Nr(X:String):Integer;
Var N,I:Integer;
Begin N:=0;
    For I:=1 To Length(X) Do
If UpCase(X[I])  in ['A','E','I','O','U']' Then Inc(N);
Nr:=N End;

Exemplu 3. Scrieti o functie care exclude cifrele dintr-un sir de caractere.
Function F(X:String):String;
Var I:Integer;
Begin I:=1;
   While I<= Length(X) Do
If X[I]  in ['0'..'9']' Then  Delete(X,I,1) Else Inc(I);
F:=X End;

Exemplu 4. Scrieti o functie care adauga semnul + in fata fiecarei litere mici  dintr-un sir de caractere.
Function F(X:String):String;
Var I:Integer;
Begin I:=1;
   While I<= Length(X) Do
If X[I]  in ['a'..'z']' Then  Begin Insert('+',X,I); Inc(I,2) End  Else Inc(I);
F:=X End;

Exemplu 5. Scrieti o functie care adauga codul ASCII idupa fiecare litera mare  dintr-un sir de caractere.
Function F(X:String):String;
Var I,Cod:Integer; Cx:String;
Begin I:=1;
   While I<= Length(X) Do
If X[I]  in ['A'..'Z']' Then
Begin Cod:=Ord(X[I]); Str(Cod,Cx); Insert(Cx,X,I+1); Inc(I,Length(Cx)+1) End  Else Inc(I);
F:=X End;

Exemplu 6. Scrieti o functie care verifica daca un sir de caractere este simetric.
Function F(X:String):Boolean;
Var I:Integer; V:Boolean;
Begin I:=1; V:=True;
   While V And (I<= Length(X) Div 2) Do
If X[I] =X[Length(X)-I+1] Then   Inc(I) Else V:=False;
F:=V End;

Sarcini pentru realizare:
1. Scrieti o functie care determina numarul de operatii aritmetice dintr-un sir de caractere.
2. Scrieti o functie care determina numarul de consoane dintr-un sir de caractere.
3. Scrieti o functie care exclude cifrele dintr-un sir de caractere.
4. Scrieti o functie care adauga cuvintul cifra in fata fiecarei cifre.
5. Verificati daca sirul de caractere contine numai litere mici.
6. Verificati daca sirul de caractere contine macar o cifra.


Rezultatele le transmiteti la adresa: toloaca.svetlana@gmail.com pina la data de 17.04.2020
Succese!!!

clasa IX,X. 13.04-17.04 Tema: Tipuri de date array. Probleme de sortare.


Probleme de sortare.
Sortarea se aplică pe larg în viaţa de toate zilele. În cadrul sistemelor automatizate de conducere datele sunt supuse unor sortări permanente. Păstrarea datelor sortate simplifică operaţiile de prelucrare a acestor date. Studierea metodelor de sortare prezintă un interes deosebit datorită importanţei sale practice de aplicare. Vom analiza 3 algoritmi de sortare:
1.      sortarea prin selecţie;
2.      sortarea prin inserţie;
3.      sortarea prin metoda bulelor.
 Problemă. Fie dat tabloul unidimensional A[1..N], N≤200, elementele căruia sunt numere întregi. Scrieţi un program care ordonează crescător elementele tabloului.
Intrare: numărul N şi elementele tabloului se citesc de la tastatură.
Ieşire: pe ecran se afişează elementele tabloului ordonat, separate prin spaţiu.
Algoritmul metodei prin selecţie: se determină elementul cu valoarea minimă din tot tabloul şi se schimbă cu locul cu primul element, în continuare se caută elementul cu valoare minimă, începînd cu elementul al doilea al tabloului şi se schimbă cu locul cu elementul al doilea ş.a.m.d. pînă la sfîrşitul tabloului.
Program Metoda_prin_selectie;
Uses CRT;
Type  Lin=Array[1..200] Of  Integer;
Var A:Lin;
    N,I,J,L:Byte; Min:Integer;
Begin     ClrScr;
     Write(’Numarul de elemente=’);ReadLn(N);
     WriteLn(’Introduceti elementele tabloului’);
     For I:=1 To N Do
         Begin
     Write(’Elementul ’,I,’ este:’); ReadLn(A[I])
          End;
             ClrScr;
     WriteLn(’Tabloul initial’);
For I:=1 To N Do Write(A[I], ’ ’); WriteLn;
       (* metoda prin selectie *)
      For I:=1 To N-1 Do
           Begin
             Min:=A[I]; L:=I;
           For J:=I+1 To N Do
      If A[J]<Min Then Begin
                         Min:=A[J]; L:=J
                       End;
       A[L]:=A[I]; A[I]:=Min
             End;             
      (* sfirsitul metodei *)
      WriteLn(’Tabloul ordonat crescator’);
For I:=1 To N Do Write(A[I], ’ ’); WriteLn;
  ReadLn End.
Algoritmul metodei prin inserţie: Înainte de examinarea elementului A[i], i:=2,…,n al tabloului A[1..n] vom considera, că elementele precedente A[1], A[2],…,A[i-1] au fost în prealabil ordonate şi se cere inserarea elementului A[i] în locul, care îi revine între elementele ordonate anterior. În urma operaţiei de includere se va obţine un sector din i elemente ordonate. Următorul element A[i+1] va fi inclus între cele ordonate în mod analog ş.a.m.d., pînă cînd va fi ordonat tot tabloul A. Pentru includerea elementului A[i] printre cele ordonate vom compara pe rînd elementul A[i] cu A[i-1], A[i-2],… până cînd vom găsi poziţia j (1≤j≤i), unde va fi scris elementul A[i]. Concomitent cu compararea vom efectua şi deplasarea elementelor A[i-1], A[i-2],…,A[j] cu o poziţie la dreapta.
Program Metoda_prin_insertie;
Uses CRT;
Type  Lin=Array[1..200] Of  Integer;
Var A:Lin;
    N,I,L:Byte;
    X:Integer;
Begin
  ClrScr;
     Write(’Numarul de elemente=’);ReadLn(N);
     WriteLn(’Introduceti elementele tabloului’);
     For I:=1 To N Do
          Begin
     Write(’Elementul ’,I,’ este:’); ReadLn(A[I])
           End;
           ClrScr;
     WriteLn(’Tabloul initial’);
For I:=1 To N Do Write(A[I], ’ ’); WriteLn;
         (* metoda prin insertie *)
     For I:=2 To N Do
          Begin
            X:=A[I]; L:=I-1;
          While (L>0) And (A[L]>X) Do                           
                 Begin    
                   A[L+1]:=A[L]; Dec(L)
                        End;
          A[L+1]:=X
          End;             
      (* sfirsitul metodei *)
    WriteLn(’Tabloul ordonat crescator’);
For I:=1 To N Do Write(A[I], ’ ’);
  ReadLn End.
Algoritmul metodei bulelor: se compară elementele adiacente A[i] cu A[i+1]. Dacă nu sunt ordonate, valorile lor sunt interschimbate. Procedura se repetă pînă cînd parcurgînd tabloul nu vom face nici o schimbare.  
Program Metoda_bulelor;
Uses CRT;
Type  Lin=Array[1..200] Of  Integer;
Var A:Lin;
    N,I:Byte;
    X:Integer; S:Boolean;
Begin
     ClrScr;
     Write(’Numarul de elemente=’);ReadLn(N);
     WriteLn(’Introduceti elementele tabloului’);
      For I:=1 To N Do
             Begin
      Write(’Elementul ’,I,’ este:’); ReadLn(A[I])
              End;
       WriteLn(’Tabloul initial’);
For I:=1 To N Do
            Write(A[I], ’ ’); WriteLn;
       (* metoda bulelor *)
             S:=True;
       While S Do Begin  S:=False;    
       For I:=1 To N-1 Do
       If A[I]>A[I+1] Then Begin
                         S:=True;
                             X:=A[I]; A[I]:=A[I+1]; A[I+1]:=X
                           End
                   End;             
      (* sfirsitul metodei *)
   WriteLn(’Tabloul ordonat crescator’);
For I:=1 To N Do
            Write(A[I], ’ ’);
  ReadLn End.
Sarcini pentru realizare:
1. Este dat un tablou unidimensional cu numere intregi A[1..N], N,=200. Numarul de elemente si elementele tabloului se citesc de la tastatura. Ordonati tabloul descrescator.
2. Este dat un tablou bidimensional cu numere reale A[1..N,1..M], N,M<=20. Numarul de lini, coloane si elementele tabloului se citesc de la tastatura. Ordonati crescator fiecare linie a tabloului.
3. Este dat un tablou patrat cu numere intregi A[1..N,1..N], N<=10. Dimensiunea tabloului si elementele se citesc de la tastatura. Ordonato descrescator fiecare coloana a tabloului.

Rezultatele le transmiteti la adresa: toloaca.svetlana@gmail.com pina la data de 17.04.2020
Succese!!!