- citește N
- pentru k de la 2 la radical din N
- dacă N este divizibil cu k
- adaugă k și N/k la suma divizorilor (inițializată cu 0)
- sfârșit dacă
- sfârșit pentru
- dacă N este pătrat perfect
- scade radical din N din sumă
- sfârșit dacă
D4rk0 wrote:1) Ce este "Durata de viata a unei variabile " ? un exemplu sugestiv ?
D4rk0 wrote:2)(subiectul suna asa) Formulati "problema de cautare". Descrieti in pseudocod 2 algoritmi de cautare si discutati nivelul de complexitate al acestora.
Cam atat. Am cautat enorm dupa un raspuns si nu am gasit nimic , niciunde.
), poti cauta in ce fel vrei tu 
D4rk0 wrote:3)
Am un pseudocod
algoritm ceface
Citeste N(N>0,natural)
s<-0
k<-2
cattimp k<n executa
daca n mod k = 0 atunci
s<-s+k
sfdaca
k<-k+1
sfcattimp
tipareste s
sfalgoritm
Desi algoritmul este simplu luand in considerare ca tot ce face este sa calculeze suma divizorilor unui numar mai putin 1 is el insusi ,una dintre cerinte este sa dau o varianta OPTIMA a acestui algoritm.
Din punctul meu de vedere algoritmul acesta este cat de optim se poate avand in vedere ca dintre while repeat si for , while este chiar cel mai optim.
N-am nervi sa ma uit pe pseudocod (sunt la birou - poate se indura altcineva), dar sunt mai multe metode de a calcula suma divizorilor (uite aici o alternativa).
Totusi, altceva mi-a sarit in ochi: while e chiar cel mai optim dintre buclele din Pascal ? Nici nu stiu de unde sa incep, da' sa vedem ce pot face:
cel mai optim ? "Optim" nu are grad de comparatie.
while este mai bun decat repeat ? Nici vorba, sunt similare. Orice bucla while poate fi rescrisa cu repeat (si invers !) fara a afecta cu nimic complexitatea unui algoritm.
Daca ai un array de 2000 de numere intregi (unice in array - sau nu) si vrei sa afli pozitia numarului 17 (sau sa vezi daca exista), trebuie sa cauti in array.
D4rk0 wrote:Am scris in pascal pseudocodul inlocuind while-ul acela cu repeat si for la randul sau , am rulat si ca rezultat am primit while ca fiind cel mai optim insa diferenta este foarte mica , de aceea am spus ca dintre cele 3 , while e cel mai eficient.
. În pseudocod, ar veni cam așa:
Great !WhiteAngel wrote:Am gasit lucrurile care ma interesau.![]()
Mersi frumos!
Dimpotriva ! Oricand ai intrebariWhiteAngel wrote:Voi reveni daca mai am alte intrebari, daca nu te superi.


Users browsing this forum: No registered users and 0 guests