Sunteți pe pagina 1din 7

CAP. 2.

ALGORITMI ELEMENTARI

A. ALGORITMI
A1. OBIECTELE CU CARE LUCREAZA ALGORITMII. 1. Date Datele pot fi: - numerice , care pot fi intregi sau reale ; - logice , care au doua valori TRUE (adevarat) si FALSE(fals) ; - sir de caractere , reprezinta un sir de caractere cuprins intre apostrofuri ex. 'mesaj' 2. Variabile Sunt urmatoarele tipuri de variabile: - variabile de tip intreg notate integer ; - variabile de tip real notate real ; - variabile de tip logic notate boolean ; - variabile de tip sir notate string ; Pentru ca un algoritm sa poata folosii o variabila aceasta trebuie declarata astfel: integer a, b; real c; string b. 3. Expresii O expresie este alcatuita din doi sau mai multi operanzi legati intre ei prin operatori. Operanzii reprezinta valorile care intra in calcul si care pot fii variabile sau constante. Operatorii desemneaza operatiile care se executa spre a obtine rezultatul. Pot fi aritmetici, relationali, logici 3.1. Operatori aritmetici + (adunare) ; - (scadere) ; * (inmultire) ; / (impartire) - div (impartire intreaga) - operanzii trebuie sa fie de tip intreg si furnizeaza rezultatul corect daca ambele valori ale operanzilor sunt naturale. Ex. 14 div 5 rezultatul va fi 2 (5 intra de 2 ori in 14)

- mod (rest al impartirii) - operanzii trebuie sa fie de tip intreg si furnizeaza rezultatul corect daca ambele valori ale operanzilor sunt naturale Ex. 14 mod 5 rezultatul va fi 4 (restul impartirii lui 14 la 5 este 4) 3.2. Operatori relationali
<(mai mic); >(mai mare); =(egal); <>(diferit); <=(mai mic sau egal); >=(mai mare sau egal)

3.3 Operatori logici NOT (negare) ; AND (si) ; OR(sau) ; XOR (sau exclusiv)

A2. OPERATIILE PE CARE LE EFECTUEAZA UN ALGORITM 1. Operatii de intrare / iesire Operatia de intrare (citire) este read Operatia de iesire (scriere) este write Exemplu: real a,b,c; read a,b,c write a,b,c tastatura// 2. Atribuiri Prin operatia de atribuire se retine o anumita data intr-o variabila. Tipul variabilei trebuie sa coincida cu tipul valorii atribuite, cu exceptia ca unei variabile de tip real i se poate atribui o data de tip intreg. 3. Operatii de decizie Forma generala: if expresie logica then operatia1 else operatia2 endif Mod de executie: se evalueaza expresia logica, daca este adevarata se executa operatia 1, iar daca este falsa se executa operatia 2 // se declara variabilele a,b,c// // se citesc variabilele a,b,c// // se afiseaza valorile variabilelor a,b,c introduse de la

B. PRINCIPIILE PROGRAMARII STRUCTURATE


1. Structura liniara Exemplul1. Se citesc 2 valori si se afiseaza valoarea cea mai mare real a, b; read a, b if a>b then write a else write b endif 2.Structura alternativa Exemplul1. Se citeste o valoare intreaga. Daca aceasta este para se tipareste mesajul"am citit un numar par" integer a; read a if a mod 2 = 0 write 'am citit un numar par' endif 2

3. Structura repetitiva 3.1. Structura WHILE DO Forma generala. Fie E o expresie si S o structura. while E do S endwhile Se evalueaza expresia logica E, daca este adevarata se executa structura S apoi se repeta executia pina ce expresia logica devine falsa.

3.2. Structura FOR Forma generala. Fie o variabila i (variabila de ciclare) si doua valori intregi a(valoare initiala) si b(valoare finala) si o structura S for i:=a, b S repeat Variabila de ciclare i ia valoarea initiala a, si se executa structura S pina ce se ajunge la valoarea finala b

3.3 Structura REPEAT UNTIL Forma generala. Fie o structura S si o expresie logica E repeat S until E Se executa structura S, se evalueaza expresia E, daca este falsa se executa din nou structura S, iar daca este adevarata se trece mai departe

C.EXEMPLE DE ALGORITMI ELEMENTARI: -interschimbare -determinarea minimului/maximului -prelucrarea cifrelor unui numar -calcularea celui mai mare divizor comun -testarea unui numar prim -conversii ntre sisteme de numeratii -generarea sirurilor recurente 3

Prin interschimbare ntelegem ca 2 variabile a si b si schimba reciproc valorile initiale prin intermediul unei variabile auxiliare sau fara. Ex a=12 b=-3 nceput

Pseudocod

Citeste a,b aux=a a=b b=aux Scrie a,b Sfrsit

Determinarea maximului Ex: Se da un sir de numere ntregi formate din 3 cifre. Sa se determine maximul acestui sir. n=5 -2,14,-32,158,4 nceput

Pseudocod

Citeste n max=-999 Pentru contor=1,n executa citeste a Daca(max<A) atunci max=a Sfrsit_daca Sfarsit_pentru Scrie max Sfrsit

Explicatii: n este lungimea sirului; am initializat maximul cu cel mai mic nr ntreg de 3 cifre si anume -999. Mai departe va compara acest numar cu primul din sir si evindent fiind mai mic noul maxim va fi primul nr din sirul dat. Tot asa si mai departe prin comparatii repetate se va determina maximul.

Prelucrarea cifrelor unui numar 1. Extragerea cifrelor 2. Compunerea numarului stiind cifrele 3. Inversul unui numar

1. Algoritmul consta in extragerea pe rand a fiecarei cifre c(incepand cu cifra unitatilor) cu operatia

Pseudocod Intreg n,c; nceput citeste n; cat timp n<>0 executa c<-nMOD10; scrie c; n<-nDIV10; Sfrsit cat timp Sfrsit

nMOD10, si eliminarea din numar a cifrei extrase cu operatia nDIV10, cat timp mai exista cifre de extras din n(n<>0).

2. Algoritmul consta in citirea cifrelor numarului incepand cu cifra cea mai semnificativa, pana cand se introduce un numar care nu poate fi cifra. Se foloseste reprezentarea numarului in baza 10.

Pseudocod Intreg nr,c; nceput Nr<-0; citeste c; cat timp c>=0AND c<=9 executa nr<-nr*10+c; citeste c; Sfrsit cat timp Scrie nr; Sfrsit

3. Algoritmul

determina

inversul

Pseudocod Intreg n,inv; nceput citeste nr; inv<-0; cat timp nr<>0 executa inv<-inv*10+nMOD10; n<-nDIV10; Sfrsit cat timp Scrie inv; Sfrsit

numarului n, prin extragerea pe rand a fiecarei cifre (incepand cu cifra unitatilor-cea din numar numar mai si cu

nesemnificativa) compunerea acestea.

noului

Calcularea cmmdc adoua numere naturale a si b 1. Algoritmul lui Euclid consta in atribuirea lui b restul impartirii lui a la b, iar lui a valoarea lui b, cu conditia ca restul impartirii lui a la b sa fie <>0. Pseudocod Intreg a,b,r; inceput citeste a,b; cat timp b<>0 executa r<-aMODb; a<-b; b<-r; sfarsit cat timp; scrie cmmdc=, a; sfarsit.

2. Algoritmul prin scaderi repetate consta in scaderea valorii celei mai mici din valoarea cea mai mare cat timp cele doua numere sunt diferite.

Intreg a,b; inceput citeste a,b; cat timp a<>b executa daca a>b atunci a<-a-b; altfel b<-b-a; sfarsit daca sfarsit cat timp; scrie cmmdc=, a;

Pseudocod

sfarsit.

Algoritmul pentru testarea unui numar prim Algoritmul de verificare daca un numar natural este prim consta in generarea tuturoe numerelor naturale mai mari sau egale cu 2 si mai mici sau egale su sqrt(n) si verificarea pentru fiecare divide pe n, se va folosi o variabila logica x, care va avea laloarea True daca numarul este prim si False daca numarul nu este prim. Se presupune ca numarul este prim si pentru primul numar gasit in sir care il divide pe n, se va schimba valoarea variabilei x in False(numarul nu mai este considerat prim). Pentru generarea sirului de 6

numar in generat, daca il divide pe n. Daca exista cel putin un astfel de numar, numarul n nu este prim. Pentru a sti daca exista cel putin un numar care il

numere se foloseste o variabila contor i care va fi initializata cu 2 si care se va incrementa cu 1 pana va avea valoarea sqrt(n).

x<-T; i<-2; cata timp i<=sqrt(n) and x executa daca nMODi =0 atunci x<-F; altfel i<-i+1; sfarsit daca;

Pseudocod

sfarsit cat timp; daca x atunci scrie numarul nu este prim; altfel scrie numarul este prim; sfarsit daca; sfarsit.

Intreg n,i; logic x; inceput citeste n;