23
e scrie un algoritm care citeste patru numere intregi a, b, c, d si determin d c b a Ex. 24 22 24 18 4 4 3 6 1 Citeste a, b, c, d Numarator = a * d + c * d Numitor = b * d Tipareste Numarator, “/”,Numitor

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

  • Upload
    greg

  • View
    49

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: 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

d

c

b

a

Ex. 24

22

24

184

4

3

6

1

Citeste a, b, c, d

Numarator = a * d + c * d

Numitor = b * d

Tipareste Numarator, “/”,Numitor

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

Citeste an1, ln1, z1, an2, ln2, z2

Daca an1>an2 atunci

Tipareste “Ionel”

Altfel

Daca an1<an2 atunci

Tipareste “Marius”

Altfel

Daca ln1 > ln2 atunciTipareste “Ionel”

Altfel Daca ln1<ln2 atunci

Tipareste “Marius” Altfel

Daca z1 > z2 atunciTipareste “Ionel”Altfel Daca z1<z2 atunci

Tipareste “Marius”

Altfel Tipareste “Au aceeasi varsta”

II Ionel este 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

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

Se citesc trei numere a, b, c. Sa se afiseze care numar este mai mare

1. Citeste a, b, c

2. Daca a > b atunci

3. Daca a > c atunci

4. Tipareste “Maximul este “, a

5. Altfel { a>b si c>a}

6. Tipareste “Maximul este “, c

7. SfDaca

8. Altfel {b>a}

9. Daca b > c atunci

10. Tipareste “Maximul este “, b

11. Altfel {b>a si b < c}

12. Tipareste “Maximul este “, c

13. SfDaca

14.SfDaca

15.Stop

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

Se citesc trei numere a, b, c. Sa se afiseze numerele in ordine crescatoare.

1. Citeste a, b, c

2. Daca a > b atunci

3. Daca b > c atunci

4. Tipareste c,” ”, b, “ ”,a

5. Altfel { a>b si c>b}

6. Daca a > c atunci

7. Tipareste b,” ”, c, “ ”,a

8. Altfel {a>b si c>b si c>a}

9. Tipareste b,” ”, a, “ ”,c

10. SfDaca

11. SfDaca

12.Altfel {b>a}

13. Daca a > c atunci

14. Tipareste c,” ”, a, “ ”,b

15. Altfel {b>a si a < c}

16. Daca b > c atunci17. Tipareste a,” ”, c, “ ”,b

18. Altfel19. Tipareste a,” ”, b, “ ”,c20. SfDaca21. SfDaca22.SfDaca23.Stop

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

Sa se scrie un algoritm care determina daca un numar intreg n este prim.

1. Citeste n

2. Prim = 1

3. Pentru i = 2 la n-1 executa

4. Daca Rest(n, i) = 0 atunci

5. Prim = 0

6. SarsitfDaca

7. SfarsitPentru

8. Daca Prim = 1 atunci

9. Tipareste “Numarul “, n, “ este prim”

10.Altfel

11. Tipareste “Numarul “, n, “ nu este prim”

12.SfarsitDaca

13.Stop

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

Sa se scrie un algoritm care determina numerele prime mai mici decat 100.

1. Pentru n = 1 la 99 executa

2. Prim = 1

3. Pentru i = 2 la n-1 executa

4. Daca Rest(n, i) = 0 atunci

5. Prim = 0

6. SarsitfDaca

7. SfarsitPentru

8. Daca Prim = 1 atunci

9. Tipareste n, “ ”

10.SfarsitDaca

11.SfarsitPentru

12.Stop

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

Sa se scrie un algoritm care afiseaza toate numerele prime mai mici decat n..

1. Citeste n

2. Pentru k = 1 la n executa

3. Prim = 1

4. Pentru i = 2 la k-1 executa

5. Daca Rest(k, i) = 0 atunci

6. Prim = 0

7. SarsitfDaca

8. SfarsitPentru

9. Daca Prim = 1 atunci

10. Tipareste k,” ”

11.SfarsitDaca

12. SfarsitPentru

13. Stop

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

Sa se scrie un algoritm care afiseaza toate numerele prime cuprinse in intervalul [a, b].

1. Citeste a,b

2. Pentru k = a la b executa // luam in k pe rand toate numerele de la a la b

3. Prim = 1

4. Pentru i = 2 la k-1 executa

5. Daca Rest(k, i) = 0 atunci // k % i = 0

6. Prim = 0

7. SarsitfDaca

8. SfarsitPentru

9. Daca Prim = 1 atunci

10. Tipareste k,” ”

11.SfarsitDaca

12. SfarsitPentru

13. Stop

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

Se citesc trei numere a, b, c. Sa se determine daca ele pot fi laturile unui triungi.

1. Citeste a, b, c

2. Daca a > 0 si b > 0 si c > 0 atunci

3. Daca a + b > c si a + c > b si b + c > a atunci

4. Tipareste “Lungimile pot reprezenta laturile unui triungi.”

5. Altfel

6. Tipareste “Suma a doua laturi < a treia”

7. Altfel

8. Tipareste “Valori negative sau egale cu 0”

9. SfDaca

10.Stop

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

Se citesc trei numere a, b, c. Sa se determine daca ele pot fi laturile unui triungi – echilateral sau isoscel sau dreptunghic.

1. Citeste a, b, c

2. Daca a > 0 si b > 0 si c > 0 atunci

3. Daca a + b > c si a + c > b si b + c > a atunci

4. Tipareste “Lungimile pot reprezenta laturile unui triungi.”

5. Daca a = b = c atunci

6. Tipareste “Triunghi echilateral”

7. Altfel

8. Daca a = b sau b = c sau a = c atunci

9. Tipareste “Triunghi isoscel”

10. Altfel

11. Daca a*a = b*b + c*c sau b*b = a*a + c*c sau c*c = b*b + a*a atunci

12. Tipareste “Triunghi dreptunghi”

13. Altfel

14. Tipareste “Triunghi oarecare”

15. SfDaca

16. SfDaca

17. SFDaca

18. Altfel

19. Tipareste “Suma a doua laturi <= a treia”

20. SfDaca

21. Altfel

22. Tipareste “Valori negative sau egale cu 0”

23. SfDaca

24. Stop

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

1. Citeste a, b, c, d

2. Daca a >0 si b >0 si c >0 si d >0 atunci

3. Daca a = b sau b = c sau c = d sau a = c sau a = d sau b = d atunci

4. Tipareste “Poate fi vorba de un trapez isoscel”

5. P = a + b + c + d

6. Tipareste “Perimetrul “, P

7. Altfel

8. Tipareste “NU poate fi vorba de un trapez isoscel”

9. SfDaca

10.SfDaca

B. 2I 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.

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

1. Pentru i = 100 la 999 executa

2. Daca Rest(i, 10) = 7 atunci

3. Tipareste i,” “

4. SfDaca

5. SfPentru

II Sa se scrie un algoritm care afiseaza toate numerele de trei cifre care se termina cu cifra 7 (au ultima cifra 7).

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

1. Citeste n

2. S = 0

3. Cat timp (n>0) executa

4. Daca Rest (Rest (n, 10), 2) = 0 atunci // ( n % 10) % 2 = 0

5. S = S * 10 + Rest (n, 10)

6. SfDaca

7. SfCat timp

8. Stop

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.

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

1. Citeste a, b, c

2. Daca a >0 si b >0 si c >0 atunci

3. Daca a + b + c = 180 atunci

4. Tipareste “Poate fi vorba de un triungi”

5. Daca a > 90 sau b > 90 sau c > 90 atunci

6. Tipareste “Optuz unghic”

7. Altfel

8. Daca a < 90 si a < 90 si a < 90 atunci

9. Tipareste “ascutit unghic”

10. Altfel

11. Tipareste “dreptunghic”

12. SfDaca

13. SfDaca

14. Altfel

15. Tipareste “NU poate fi vorba de un triunghi”

16. SfDaca

17. SfDaca

B. 1I 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).

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

1. Pentru i = 100 la 999 executa

2. Daca Rest(i, 10) = 3 atunci

3. Tipareste i,” “

4. SfDaca

5. SfPentru

II Sa se scrie un algoritm care afiseaza toate numerele de trei cifre care se termina cu cifra 3 (au ultima cifra 3).

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

1. Citeste n

2. S = 0

3. Cat timp (n>0) executa

4. Daca Rest (Rest (n, 10), 2) = 1 atunci

5. S = S *10 + Rest (n, 10)

6. SfDaca

7. SfCat timp

8. Stop

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.

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

Algoritmi

Noţiuni introductive

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

1.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 parcurgerea unei succesiuni de paşi (cum este de exemplu utilizarea unui telefon public sau a unui bancomat).

Î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.

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

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.

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

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ă.

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

Exemple

3. Un algoritm trebuie sa se oprească.

Se consideră următoarea secvenţă de prelucrări:Pas 1. Atribuie variabilei x valoarea 1;Pas 2. Măreste valoarea lui x cu 2;Pas 3. Daca x este 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 x valoarea 0;Pas 2. Fie se măreşte x cu 1 fie se micşorează x cu 1;Pas 3. Daca x aparţine [-10; 10] se reia de la Pas 2, altfel se opreşte algoritmul.

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

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.

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

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.