1 / 23

I Sa se scrie un algoritm care citeste patru numere intregi a, b, c, d si determina rezultatul

I Sa se scrie un algoritm care citeste patru numere intregi a, b, c, d si determina rezultatul. Ex. Citeste a, b, c, d Numarator = a * d + c * d Numitor = b * d Tipareste Numarator, “/”,Numitor. Citeste an1, ln1, z1 , an2, ln2, z2 Daca an1 > an2 atunci Tipareste “Ionel” Altfel

greg
Télécharger la présentation

I Sa se scrie un algoritm care citeste patru numere intregi a, b, c, d si determina rezultatul

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. I Sa se scrie un algoritm care citeste patru numere intregi a, b, c, d si determina rezultatul Ex. Citeste a, b, c, d Numarator = a * d + c * d Numitor = b * d Tipareste Numarator, “/”,Numitor

  2. Citeste an1, ln1, z1, an2, ln2, z2 • Daca an1>an2 atunci • Tipareste “Ionel” • Altfel • Daca an1<an2 atunci • Tipareste “Marius” • Altfel • Daca ln1 > ln2 atunci • Tipareste “Ionel” • Altfel • Daca ln1<ln2 atunci • Tipareste “Marius” • Altfel • Daca z1 > z2 atunci • Tipareste “Ionel” • Altfel • Daca z1<z2 atunci • Tipareste “Marius” • Altfel • Tipareste “Au aceeasi varsta” II Ioneleste nascut in anul an1, luna ln1 si ziua z1, iar Marius este nascut in anul an2, luna ln2 si ziua z2. Sa se scrie un algoritm care citeste aceste date si determina care din cei doi este mai tanar

  3. Se citesc trei numere a, b, c. Sa se afiseze care numar este mai mare • Citeste a, b, c • Daca a > b atunci • Daca a > c atunci • Tipareste “Maximul este “, a • Altfel { a>b si c>a} • Tipareste “Maximul este “, c • SfDaca • Altfel {b>a} • Daca b > c atunci • Tipareste “Maximul este “, b • Altfel {b>a si b < c} • Tipareste “Maximul este “, c • SfDaca • SfDaca • Stop

  4. Se citesc trei numere a, b, c. Sa se afiseze numerele in ordine crescatoare. • Citeste a, b, c • Daca a > b atunci • Daca b > c atunci • Tipareste c,” ”, b, “ ”,a • Altfel { a>b si c>b} • Daca a > c atunci • Tipareste b,” ”, c, “ ”,a • Altfel {a>b si c>b si c>a} • Tipareste b,” ”, a, “ ”,c • SfDaca • SfDaca • Altfel {b>a} • Daca a > c atunci • Tipareste c,” ”, a, “ ”,b • Altfel {b>a si a < c} • 16. Daca b > c atunci • Tipareste a,” ”, c, “ ”,b • Altfel • Tipareste a,” ”, b, “ ”,c • SfDaca • SfDaca • SfDaca • Stop

  5. Sa se scrie un algoritm care determina daca un numar intreg n este prim. • Citeste n • Prim = 1 • Pentru i = 2 la n-1 executa • Daca Rest(n, i) = 0 atunci • Prim = 0 • SarsitfDaca • SfarsitPentru • Daca Prim = 1 atunci • Tipareste “Numarul “, n, “ este prim” • Altfel • Tipareste “Numarul “, n, “ nu este prim” • SfarsitDaca • Stop

  6. Sa se scrie un algoritm care determina numerele prime mai mici decat 100. • Pentru n = 1 la 99 executa • Prim = 1 • Pentru i = 2 la n-1 executa • Daca Rest(n, i) = 0 atunci • Prim = 0 • SarsitfDaca • SfarsitPentru • Daca Prim = 1 atunci • Tipareste n, “ ” • SfarsitDaca • SfarsitPentru • Stop

  7. Sa se scrie un algoritm care afiseaza toate numerele prime mai mici decat n.. • Citeste n • Pentru k = 1 la n executa • Prim = 1 • Pentru i = 2 la k-1 executa • Daca Rest(k, i) = 0 atunci • Prim = 0 • SarsitfDaca • SfarsitPentru • Daca Prim = 1 atunci • Tipareste k,” ” • SfarsitDaca • 12. SfarsitPentru • 13. Stop

  8. Sa se scrie un algoritm care afiseaza toate numerele prime cuprinse in intervalul [a, b]. • Citestea,b • Pentru k = a la b executa // luam in kpe rand toatenumerele de la a la b • Prim = 1 • Pentru i = 2 la k-1 executa • Daca Rest(k, i) = 0 atunci// k % i = 0 • Prim = 0 • SarsitfDaca • SfarsitPentru • Daca Prim = 1 atunci • Tipareste k,” ” • SfarsitDaca • 12. SfarsitPentru • 13. Stop

  9. Se citesc trei numere a, b, c. Sa se determine daca ele pot fi laturile unui triungi. • Citeste a, b, c • Daca a > 0 si b > 0 si c > 0 atunci • Daca a + b > c si a + c > b si b + c > a atunci • Tipareste “Lungimile pot reprezenta laturile unui triungi.” • Altfel • Tipareste “Suma a doua laturi < a treia” • Altfel • Tipareste “Valori negative sau egale cu 0” • SfDaca • Stop

  10. Se citesc trei numere a, b, c. Sa se determine daca ele pot fi laturile unui triungi – echilateral sau isoscel sau dreptunghic. • Citeste a, b, c • Daca a > 0 si b > 0 si c > 0 atunci • Daca a + b > c si a + c > b si b + c > a atunci • Tipareste “Lungimile pot reprezenta laturile unui triungi.” • Daca a = b = c atunci • Tipareste “Triunghi echilateral” • Altfel • Daca a = b sau b = c sau a = c atunci • Tipareste “Triunghi isoscel” • Altfel • Daca a*a = b*b + c*c sau b*b = a*a + c*c sau c*c = b*b + a*a atunci • Tipareste “Triunghi dreptunghi” • Altfel • Tipareste “Triunghi oarecare” • SfDaca • SfDaca • SFDaca • Altfel • Tipareste “Suma a doua laturi <= a treia” • SfDaca • Altfel • Tipareste “Valori negative sau egale cu 0” • SfDaca • Stop

  11. B. 2 I Sa se scrie un algoritm care citeste patru numere reale a, b, c, d si determina daca ele pot reprezenta laturile unui trapez isoscel iar in caz afirmativ sa se determine perimetrul si aria acestuia. • Citeste a, b, c, d • Daca a >0 si b >0 si c >0 si d >0 atunci • Daca a = b sau b = c sau c = d sau a = c sau a = d sau b = d atunci • Tipareste “Poate fi vorba de un trapez isoscel” • P = a + b + c + d • Tipareste “Perimetrul “, P • Altfel • Tipareste “NU poate fi vorba de un trapez isoscel” • SfDaca • SfDaca

  12. II Sa se scrie un algoritm care afiseaza toate numerele de trei cifre care se termina cu cifra 7 (au ultima cifra 7). • Pentru i = 100 la 999 executa • Daca Rest(i, 10) = 7 atunci • Tipareste i,” “ • SfDaca • SfPentru

  13. III Sa se scrie un algoritm care citeste un numar natural n si determina numarul citit invers fara numerele impare. Ex. n = 56721 => 26, n = 68329 => 286. • Citeste n • S = 0 • Cat timp (n>0) executa • Daca Rest (Rest (n, 10), 2) = 0 atunci // ( n % 10) % 2 = 0 • S = S * 10 + Rest (n, 10) • SfDaca • SfCat timp • Stop

  14. B. 1 I Sa se scrie un algoritm care citeste trei numere reale a, b, c si determina daca ele pot reprezenta unghiurile unui triunghi iar in caz afirmativ sa se determine tipul de triunghi (ascutitunghic, dreptunghic sau obtuzunghic). • Citeste a, b, c • Daca a >0 si b >0 si c >0 atunci • Daca a + b + c = 180 atunci • Tipareste “Poate fi vorba de un triungi” • Daca a > 90 sau b > 90 sau c > 90 atunci • Tipareste “Optuz unghic” • Altfel • Daca a < 90 si a < 90 si a < 90 atunci • Tipareste “ascutit unghic” • Altfel • Tipareste “dreptunghic” • SfDaca • SfDaca • Altfel • Tipareste “NU poate fi vorba de un triunghi” • SfDaca • SfDaca

  15. II Sa se scrie un algoritm care afiseaza toate numerele de trei cifre care se termina cu cifra 3 (au ultima cifra 3). • Pentru i = 100 la 999 executa • Daca Rest(i, 10) = 3 atunci • Tipareste i,” “ • SfDaca • SfPentru

  16. III Sa se scrie un algoritm care citeste un numar natural n si determina numarul citit invers fara numerele pare. Ex. n = 56721 => 175, n = 68329 => 93. • Citeste n • S = 0 • Cat timp (n>0) executa • Daca Rest (Rest (n, 10), 2) = 1 atunci • S = S *10 + Rest (n, 10) • SfDaca • SfCat timp • Stop

  17. Algoritmi Noţiuni introductive

  18. Noţiunea de algoritm. Def. Prin algoritm se înţelege o metodă de soluţionare a unei clase de probleme, reprezentată de o succesiune finită de operaţii bine definite, numite instrucţiuni . Primul algoritm se considera a algoritmul lui Euclid (utilizat pentru determinarea celui mai mare divizor comun a doua numere naturale). Termenul de algoritm poate fi înţeles în sens larg nefiind neapărat legat de rezolvarea unei probleme cu caracter ştiinţific, ci doar pentru a descrie într-o manieră ordonată activităţi care constau în parcurgereaunei succesiuni de paşi (cum este de exemplu utilizarea unui telefon public sau a unuibancomat). În matematică există o serie de algoritmi: cel al rezolvării ecuaţiei de gradul doi, algoritmul lui Eratostene (pentru generarea numerelor prime mai mici decât o anumita valoare), schema lui Horner (pentru determinarea câtului şi restului împărţirii unui polinom la un binom) etc. Soluţia problemei se obţine prin execuţia algoritmului. Algoritmul poate fi executat pe o maşină formală (în faza de proiectare şi analiză) sau pe o maşină fizică (calculator) după ce a fost codificat într-un limbaj de programare.

  19. 2. Caracteristicile unui algoritm Generalitate. Un algoritm destinat rezolvării unei probleme trebuie să permită obţinerea rezultatului pentru orice date de intrare şi nu numai pentru date particulare de intrare. Finitudine. Adică se termină după un număr finit de paşi, indiferent cât de mulţi. Rigurozitate. Prelucrările algoritmului trebuie specificate riguros, fără ambiguităţi. În orice etapă a execuţiei algoritmului trebuie să se ştie exact care este următoarea etapă ce va executată. Eficienţă. Algoritmii pot fi efectiv utilizaţi doar dacă folosesc resurse de calcul în volum acceptabil. Prin resurse de calcul se înţelege volumul de memorie şi timpul necesar pentru execuţie.

  20. Exemple 1.Nu orice problemă poate rezolvată algoritmic. a. Fiind dat un număr n să se determine toţi divizorii săi. Pentru această problemă se poate scrie un algoritm foarte uşor. b. Fiind dat un număr n să se determine toţi multiplii săi. Pentru această problemă nu se poate scrie un algoritm deoarece nu cunoaştem un criteriu de oprire a operaţiilor. 2.Un algoritm trebuie să funcţioneze pentru orice date de intrare. Fiind date numerele a, b, c să se afişeze maximul dintre ele. O posibilă soluţie ar fi: se compară a cu b şi c şi dacă e mai mare se afişează a, iar apoi se compară b cu a şi c şi dacă e mai mare se afişează b, iar apoi se compară c cu b şi a şi dacă e mai mare se afişează c Algoritmul nu funcţionează dacă 2 valori sunt identice şi de valoare maximă.

  21. Exemple 3. Un algoritm trebuie sa se oprească. Se consideră următoarea secvenţă de prelucrări: Pas 1. Atribuie variabilei xvaloarea 1; Pas 2. Măreste valoarea lui xcu 2; Pas 3. Daca xeste egal cu 100 atunci se opreşte prelucrarea altfel se reia de la Pas 2. Este usor de observat ca x nu va lua niciodată valoarea 100, deci succesiunea de prelucrări nu se termină niciodată. Din acest motiv nu poate considerată un algoritm corect. 4. Prelucrările dintr-un algoritm trebuie să fie neambigue. Consideram următoarea secvenţă de prelucrări: Pas 1. Atribuie variabilei xvaloarea 0; Pas 2. Fie se măreşte xcu 1 fie se micşorează xcu 1; Pas 3. Daca x aparţine [-10; 10] se reia de la Pas 2, altfel se opreşte algoritmul.

  22. Exemple 5. Un algoritm trebuie să se oprească după un interval rezonabil de timp. Fiind dat un număr n se cere să se determine de câte ori a apărut o cifră c în reprezentarea tuturor numerelor naturale mai mici ca n. O rezolvare simplă ar fi să luăm toate numere mai mici ca n şi să vedem de câte ori apare cifra c în fiecare dinte ele. Soluţia e simplă şi pentru valori mici ale lui n algoritmul se termină într-un interval de timp rezonabil, dar pentru valori mari timpul de terminare al algoritmului creşte nepermis de mult.

  23. Paşii realizării unui algoritm 1. Citirea cu atenţie a enunţului problemei. 2. Identificarea datelor de intrare şi a celor de ieşire. 3. Rezolvarea propriu-zisă a problemei pe cazuri particulare şi reprezentative. În acest moment nu se încearcă scrierea programului ci doar determinarea metodei de rezolvare, generalizarea şi înţelegerea acesteia. 4. Descrierea în limbaj natural a soluţiei problemei. Dacă nu sunteţi capabili să descrieţi metoda folosită în limbaj natural e puţin probabil să o puteţi face într-un limbaj de programare care e mai restrictiv decât limbajul natural. 5. Scrierea programului într-un limbaj de programare. 6. Testarea programului. Testarea se face pe mai multe seturi de date care să acopere cazurile posibile ce pot apărea.

More Related