Proiect Practic

Proiect: Algoritm Complet

Implementeaza un algoritm care rezolva o problema practica

Progres lectie:
0%
🎯

Obiectivul proiectului

"Vei crea un algoritm complet in pseudocod care rezolva o problema reala si il vei implementa intr-un mediu de programare real (Scratch sau Python), demonstrand intelegerea structurilor de control!"

Dupa aceasta lectie vei putea:

  • Sa evaluezi alegerea problemei
  • Sa explici analiza problemei: input / output / prelucrare
  • Sa analizezi structura alternativa: daca-atunci-altfel
  • Sa analizezi structura repetitiva: pentru si cat timp
  • Sa aplici validarea datelor de intrare
  • Sa implementezi algoritmul intr-un mediu de programare real (Scratch sau Python)
1

Alegerea problemei

Un algoritm este o secventa finita de pasi clar definiti care rezolva o problema. Gandeste-te la un algoritm ca la o reteta de bucatarie: ai ingrediente (date de intrare), urmezi pasii (instructiuni) si obtii un rezultat (date de iesire). Diferenta este ca un algoritm trebuie sa fie suficient de precis incat un calculator (care nu gandeste ca un om) sa il poata executa.

Alege una din problemele de mai jos pentru proiectul tau. Fiecare problema necesita structuri de control diferite si are un nivel de dificultate variat:

  • Calculator de medie: Citeste note de la utilizator si calculeaza media aritmetica. Afiseaza daca elevul a promovat sau nu. Necesita: bucla PENTRU, decizie DACA
  • Verificator de an bisect: Determina daca un an introdus de utilizator este bisect sau nu. Necesita: decizii DACA imbricate (un an este bisect daca este divisibil cu 4, dar nu cu 100, exceptie daca este divisibil cu 400)
  • Convertor de unitati: Converteste intre km/mile, grade Celsius/Fahrenheit, kg/lb. Necesita: decizii DACA pentru alegerea conversiei, formule matematice
  • Joc "Ghiceste numarul": Calculatorul alege un numar secret, iar utilizatorul incearca sa il ghiceasca. Necesita: bucla CAT TIMP, decizii DACA pentru a da indicii ("mai mare", "mai mic")
  • Calculator de varsta: Citeste data nasterii si calculeaza varsta in ani, luni si zile. Necesita: calcule cu date, decizii DACA

Alege o problema care te intereseaza, dar care iti si provoaca gandirea algoritmica. Daca te simti sigur pe structurile de control, alege o problema mai complexa (cum ar fi jocul "Ghiceste numarul" sau calculatorul de varsta). Daca vrei sa consolidezi bazele, alege calculatorul de medie sau convertorul de unitati.

Indiferent de problema aleasa, procesul de rezolvare este acelasi: mai intai intelegi ce trebuie facut, apoi planifici solutia, o scrii in pseudocod, o testezi cu exemple si o corectezi daca este nevoie. Acest proces se numeste ciclul de dezvoltare software si este folosit de toti programatorii din lume.

Care este primul pas in rezolvarea unei probleme algoritmic?
A Scrierea codului imediat, fara planificare
B Intelegerea problemei si identificarea datelor de intrare si iesire
C Testarea programului inainte de a-l scrie
2

Analiza problemei: INPUT / OUTPUT / PRELUCRARE

Inainte de a scrie o singura linie de pseudocod, trebuie sa faci o analiza completa a problemei . Aceasta analiza raspunde la trei intrebari esentiale: Ce primeste algoritmul? Ce trebuie sa produca? Ce operatii face cu datele?

Cele trei componente ale analizei:

  • Date de intrare (INPUT): Ce informatii primeste algoritmul de la utilizator? Acestea sunt datele pe care le introduce cineva de la tastatura. De exemplu: notele unui elev, un an calendaristic, o temperatura
  • Date de iesire (OUTPUT): Ce rezultat trebuie sa afiseze algoritmul? Acesta este raspunsul la problema. De exemplu: media calculata, daca anul este bisect, temperatura convertita
  • Prelucrari (PROCESSING): Ce operatii trebuie facute asupra datelor de intrare pentru a obtine datele de iesire? Acestea sunt calculele, comparatiile si deciziile din algoritm

Exemplu complet - Calculator de medie:

  • INPUT: numarul de materii (n) si notele la fiecare materie (nota1, nota2, ..., notan)
  • OUTPUT: media aritmetica si mesajul "Promovat" sau "Nepromovat"
  • PRELUCRARE: suma = nota1 + nota2 + ... + notan; media = suma / n; daca media >= 5 atunci "Promovat", altfel "Nepromovat"

Exemplu complet - Verificator an bisect:

  • INPUT: un an calendaristic (de exemplu: 2024)
  • OUTPUT: mesajul "Anul X este bisect" sau "Anul X nu este bisect"
  • PRELUCRARE: verificam daca anul este divisibil cu 4, dar nu cu 100, sau daca este divisibil cu 400

Aceasta analiza pare simpla, dar este pasul cel mai important. Daca nu stii exact ce primeste si ce produce algoritmul, nu il poti scrie corect. Multi programatori experimentati petrec mai mult timp pe analiza decat pe scrierea codului. Un plan bun duce la un algoritm bun, in timp ce un plan slab duce la un algoritm cu erori.

Sfat: scrie analiza pe o foaie de hartie sau intr-un document Word inainte de a incepe pseudocodul. Aceasta documentatie va fi parte din proiectul tau final.

Ce reprezinta datele de intrare (INPUT) intr-un algoritm?
A Rezultatul final afisat pe ecran
B Informatiile primite de la utilizator pe care algoritmul le prelucreaza
C Variabilele temporare folosite in calcule
3

Structura alternativa: DACA-ATUNCI-ALTFEL

Structura DACA-ATUNCI-ALTFEL (IF-THEN-ELSE) este fundamentala in programare. Ea permite algoritmului sa ia decizii - sa execute un set de instructiuni daca o conditie este adevarata si un alt set daca conditia este falsa. Fara decizii, un algoritm ar face mereu acelasi lucru, indiferent de datele primite.

Sintaxa in pseudocod:

DACA conditie ATUNCI // instructiuni executate cand conditia e adevarata ALTFEL // instructiuni executate cand conditia e falsa SFARSIT DACA

Exemplu practic - verificarea notei:

SCRIE "Introdu nota:" CITESTE nota DACA nota >= 5 ATUNCI SCRIE "Felicitari, ai promovat!" ALTFEL SCRIE "Din pacate, nu ai promovat." SFARSIT DACA

Poti avea si decizii imbricate (una in interiorul alteia) pentru situatii mai complexe. De exemplu, daca nota este peste 9 afisezi "Excelent", intre 7 si 9 "Bine", intre 5 si 7 "Suficient" si sub 5 "Nepromovat":

DACA nota >= 9 ATUNCI SCRIE "Excelent!" ALTFEL DACA nota >= 7 ATUNCI SCRIE "Bine!" ALTFEL DACA nota >= 5 ATUNCI SCRIE "Suficient." ALTFEL SCRIE "Nepromovat." SFARSIT DACA

Un aspect important: ordinea conditiilor conteaza. In exemplul de mai sus, verificam mai intai daca nota este >= 9, apoi >= 7, apoi >= 5. Daca am inversa ordinea si am verifica mai intai nota >= 5, un elev cu nota 10 ar primi mesajul "Suficient" (pentru ca 10 >= 5 este adevarat). Gandeste intotdeauna de la conditia cea mai restrictiva la cea mai permisiva.

Ce structura folosesti cand trebuie sa alegi intre doua variante?
A Structura repetitiva (CAT TIMP)
B Structura alternativa (DACA-ATUNCI-ALTFEL)
C Structura secventiala (instructiuni una dupa alta)
4

Structura repetitiva: PENTRU si CAT TIMP

Structurile repetitive (buclele) permit algoritmului sa execute aceleasi instructiuni de mai multe ori. Fara bucle, daca ai vrea sa citesti 10 note, ar trebui sa scrii 10 instructiuni CITESTE separate. Cu o bucla, scrii instructiunea o singura data si specifici de cate ori sa se repete.

Bucla PENTRU se foloseste cand stii dinainte de cate ori trebuie sa se repete operatia:

PENTRU i ← 1 , n EXECUTA // instructiuni repetate de n ori // variabila i ia valorile 1, 2, 3, ..., n SFARSIT PENTRU

Exemplu: Citirea a 5 note si calcularea sumei lor:

suma ← 0 PENTRU i ← 1 , 5 EXECUTA SCRIE "Nota " , i, ": " CITESTE nota suma ← suma + nota SFARSIT PENTRU SCRIE "Suma notelor: " , suma

Bucla CAT TIMP se foloseste cand nu stii de cate ori trebuie sa se repete operatia, dar stii conditia de continuare:

CAT TIMP conditie EXECUTA // instructiuni repetate cat timp conditia e adevarata SFARSIT CAT TIMP

Diferenta esentiala: PENTRU stie de la inceput cate repetitii face (de exemplu, "repeta de 10 ori"). CAT TIMP nu stie - se repeta pana cand o conditie devine falsa (de exemplu, "repeta pana cand utilizatorul introduce 0"). Alege PENTRU cand numarul de repetitii este cunoscut si CAT TIMP cand depinde de ce face utilizatorul.

O greseala frecventa cu CAT TIMP este bucla infinita - cand conditia nu devine niciodata falsa si bucla se repeta la infinit. Pentru a evita acest lucru, asigura-te ca in corpul buclei exista cel putin o instructiune care modifica variabila din conditie. De exemplu, daca conditia este "nota < 1 SAU nota > 10", in corpul buclei trebuie sa existe "CITESTE nota" care permite utilizatorului sa introduca o valoare valida.

Ce structura folosesti cand trebuie sa repeti o actiune de un numar cunoscut de ori?
A DACA-ATUNCI pentru fiecare repetitie
B PENTRU i de la 1 la n
C CAT TIMP, fara conditie de oprire
5

Validarea datelor de intrare

Validarea datelor inseamna verificarea ca informatiile introduse de utilizator sunt corecte si in limitele acceptate. Un algoritm bun nu presupune ca utilizatorul va introduce intotdeauna date corecte - el verifica si cere reintroducerea daca datele sunt invalide. Aceasta practica se numeste programare defensiva .

De ce este importanta validarea? Gandeste-te: ce se intampla daca un utilizator introduce -5 ca nota? Sau litera "abc" in loc de un numar? Sau 0 cand algoritmul trebuie sa faca o impartire? Fara validare, algoritmul ar produce rezultate gresite sau ar crapa (s-ar opri cu eroare).

Pattern-ul clasic de validare foloseste o bucla CAT TIMP:

SCRIE "Introdu nota (1-10):" CITESTE nota CAT TIMP nota < 1 SAU nota > 10 EXECUTA SCRIE "Nota invalida! Trebuie sa fie intre 1 si 10." SCRIE "Reintrodu nota:" CITESTE nota SFARSIT CAT TIMP // Aici nota este garantat intre 1 si 10

Aceasta bucla functioneaza astfel: dupa prima citire, verifica daca nota este in afara intervalului valid. Daca da, afiseaza un mesaj de eroare si cere reintroducerea. Procesul se repeta pana cand utilizatorul introduce o valoare corecta. Dupa bucla, poti fi sigur ca nota are o valoare valida.

Alte exemple de validare:

  • Numar pozitiv: CAT TIMP numar <= 0 (rejecteaza numerele negative si zero)
  • An calendaristic rezonabil: CAT TIMP an < 1 SAU an > 9999
  • Optiune din meniu: CAT TIMP optiune < 1 SAU optiune > 3 (daca meniul are 3 optiuni)
  • Evitarea impartirii la zero: CAT TIMP n = 0 (cererea unui numar nenul)

Regula de aur: orice data introdusa de utilizator trebuie validata . Nu presupune niciodata ca utilizatorul va introduce ce trebuie. Chiar si in cazul unor date aparent simple (ca un numar de materii), adauga o verificare. Aceasta mentalitate te va face un programator mult mai bun pe termen lung.

De ce este importanta validarea datelor de intrare?
A Nu este importanta, utilizatorul stie ce sa introduca
B Pentru a evita erori cand utilizatorul introduce date gresite sau invalide
C Pentru a face algoritmul mai lung si mai complex
6

Variabile si atribuiri

O variabila este un spatiu de memorie care are un nume si stocheaza o valoare. Gandeste-te la ea ca la o cutie cu eticheta: eticheta este numele variabilei, iar continutul cutiei este valoarea. Poti pune o valoare in cutie (atribuire), poti citi ce este in cutie (utilizare) si poti schimba continutul (reatribuire).

Reguli pentru numele variabilelor:

  • Alege nume descriptive : "suma", "nota", "media", "contor" - nu "x", "a", "b" (cu exceptia variabilelor de bucla ca "i")
  • Nu folosi spatii sau caractere speciale in nume: "numar_materii" sau "numarMaterii" sunt corecte, "numar materii" nu
  • Incepe cu o litera, nu cu o cifra: "nota1" este corect, "1nota" nu

Operatia de atribuire pune o valoare intr-o variabila. In pseudocod folosim sageata ←:

suma ← 0 // suma primeste valoarea 0 contor ← 1 // contor primeste valoarea 1 suma ← suma + nota // suma primeste valoarea veche + nota media ← suma / n // media primeste rezultatul impartirii

O linie importanta de inteles este suma ← suma + nota . Aceasta NU este o ecuatie matematica (unde suma = suma + nota ar fi imposibil). Este o instructiune care spune: "Ia valoarea actuala a sumei, adauga nota la ea, si pune rezultatul inapoi in suma". Este ca si cum ai scoate banii dintr-un portofel, ai adauga inca ceva si ai pune totul la loc.

Initializarea variabilelor: Inainte de a folosi o variabila intr-un calcul, trebuie sa ii dai o valoare initiala. De exemplu, daca vrei sa calculezi o suma, incepi cu suma ← 0 (suma goala). Daca vrei sa numeri ceva, incepi cu contor ← 0 . Uitarea initializarii este una dintre cele mai frecvente greseli in programare.

In algoritmul tau, vei folosi mai multe variabile. Fa o lista cu toate variabilele necesare inainte de a incepe scrierea pseudocodului. Pentru fiecare variabila, noteaza: numele, ce stocheaza si valoarea initiala (daca este cazul). Aceasta lista te va ajuta sa iti organizezi gandurile si sa eviti erori.

Ce este o variabila intr-un algoritm?
A Un numar care nu se schimba niciodata
B Un spatiu de memorie cu un nume, care stocheaza o valoare ce poate fi modificata
C O instructiune care afiseaza text pe ecran
7

Mesaje pentru utilizator (interfata)

Un algoritm bun nu doar calculeaza corect - el comunica clar cu utilizatorul. Imagineaza-ti ca rulezi un program si pe ecran apare doar un cursor care clipeste, fara nicio explicatie. Nu stii ce trebuie sa introduci, cate numere, in ce format. Un algoritm fara mesaje explicative este inutilizabil, chiar daca logica este perfecta.

Tipuri de mesaje necesare:

  • Mesaje de instructiune: Spun utilizatorului ce trebuie sa faca. Exemplu: "Introdu numarul de materii (1-15):"
  • Mesaje de eroare: Informeaza utilizatorul ca a introdus ceva gresit. Exemplu: "Nota invalida! Trebuie sa fie intre 1 si 10."
  • Mesaje de rezultat: Afiseaza rezultatul calculului. Exemplu: "Media ta este: 8.75"
  • Mesaje de context: Dau informatii suplimentare. Exemplu: "Nota 3 din 5:" (arata progresul)
  • Mesaje de confirmare: Confirma ca o actiune s-a realizat. Exemplu: "Datele au fost procesate cu succes!"

Exemplu de algoritm cu mesaje bune vs. mesaje proaste:

// PROST - fara mesaje clare CITESTE n CITESTE nota SCRIE media // BINE - cu mesaje explicative SCRIE "=== Calculator de Medie ===" SCRIE "Cate materii ai? (1-15):" CITESTE n SCRIE "Nota 1 din " , n, ":" CITESTE nota SCRIE "Media ta este: " , media

Observi diferenta? Varianta cu mesaje este mult mai prietenoasa si mai usor de folosit. Utilizatorul stie exact ce se asteapta de la el la fiecare pas.

Un sfat suplimentar: adauga un titlu la inceputul algoritmului (de exemplu, "=== Calculator de Medie ===") si un mesaj final la sfarsit (de exemplu, "Multumim pentru utilizare!"). Aceste detalii mici fac algoritmul tau sa para mai profesional si mai complet. Gandeste-te la mesaje ca la ambalajul unui cadou - continutul conteaza cel mai mult, dar ambalajul frumos creeaza o experienta mai placuta.

De ce sunt importante mesajele explicative pentru utilizator?
A Nu sunt importante, algoritmul functioneaza si fara ele
B Pentru ca utilizatorul trebuie sa stie ce sa introduca si ce a obtinut
C Doar pentru a face algoritmul mai lung
8

Testarea algoritmului (Trace Table)

Testarea este procesul prin care verifici ca algoritmul tau produce rezultate corecte pentru diferite seturi de date de intrare. Un algoritm care functioneaza pentru un singur exemplu nu este neaparat corect - trebuie sa il testezi cu mai multe cazuri, inclusiv cazuri limita (edge cases).

Metoda Trace Table (Tabelul de urmarire) este cea mai eficienta metoda de testare a unui algoritm pe hartie. Creezi un tabel cu o coloana pentru fiecare variabila si o coloana pentru output. Apoi parcurgi algoritmul pas cu pas, notand valorile variabilelor dupa fiecare instructiune.

Exemplu de Trace Table pentru calculul mediei a 3 note (7, 9, 5):

Pas | i | nota | suma | media | Output ----|---|------|------|-------|------------------------ 1 | | | 0 | | "Cate note?" 2 | | | 0 | | n=3 3 | 1 | 7 | 7 | | "Nota 1: " citeste 7 4 | 2 | 9 | 16 | | "Nota 2: " citeste 9 5 | 3 | 5 | 21 | | "Nota 3: " citeste 5 6 | | | 21 | 7 | "Media: 7" 7 | | | | 7 | "Ai promovat!"

Ce seturi de date sa folosesti pentru testare:

  • Date normale: Valori obisnuite care ar fi introduse in mod normal (de exemplu: note 7, 8, 9)
  • Date limita: Valori la granita intervalului valid (de exemplu: nota 1 si nota 10, sau exact nota 5 pentru promovare)
  • Date invalide: Valori pe care algoritmul ar trebui sa le respinga (de exemplu: nota -3, nota 15, numar de materii 0)
  • Cazuri speciale: Situatii neobisnuite (de exemplu: o singura nota, toate notele identice, impartire la zero)

Pentru proiectul tau, trebuie sa testezi algoritmul cu minim 3 seturi de date diferite si sa documentezi rezultatele. Aceasta documentatie demonstreaza ca algoritmul tau functioneaza corect si ca ai inteles procesul de testare.

Un sfat profesional: programatorii experimentati scriu testele inainte de a scrie algoritmul. Aceasta practica (numita "Test-Driven Development") te ajuta sa intelegi mai bine problema si sa te asiguri ca algoritmul tau acopera toate cazurile.

Ce inseamna sa testezi un algoritm cu seturi de date?
A Sa il scrii de mai multe ori
B Sa il rulezi mental sau pe hartie cu diferite valori de intrare si sa verifici rezultatele
C Sa il copiezi intr-un alt document
9

Documentarea algoritmului

Documentarea inseamna adaugarea de explicatii si comentarii care ajuta pe oricine sa inteleaga algoritmul tau. Un algoritm bine documentat poate fi inteles si de cineva care nu l-a scris. Comentariile sunt ignorate de calculator - ele exista exclusiv pentru oameni.

Cum se scriu comentariile in pseudocod:

// Aceasta este o linie de comentariu // Comentariul incepe cu // si se intinde pana la sfarsitul liniei suma ← suma + nota // Adaug nota curenta la suma totala

Ce sa documentezi:

  • Antetul algoritmului: La inceput, scrie numele algoritmului, ce face, cine l-a scris si data. Scrie si lista de variabile cu rolul fiecareia
  • Sectiunile principale: Inainte de fiecare bloc logic (validare, calcul, afisare), pune un comentariu care explica ce face acel bloc
  • Logica complexa: Daca ai o conditie complicata sau un calcul neevident, explica-l intr-un comentariu
  • Cazuri speciale: Daca tratezi un caz special (de exemplu, impartire la zero), noteaza de ce

Exemplu de algoritm bine documentat:

// ALGORITM: Calculator de medie scolara // AUTOR: Popescu Maria, clasa a VII-a B // DATA: 15 ianuarie 2026 // DESCRIERE: Citeste note, calculeaza media si afiseaza rezultatul // VARIABILE: n=numar materii, nota=nota curenta, suma=suma notelor, media=rezultat INCEPUT // Sectiunea 1: Citirea numarului de materii cu validare SCRIE "Cate materii ai?" CITESTE n // ... restul algoritmului SFARSIT

Nu exagera cu comentariile - nu trebuie sa comentezi fiecare linie. Comentariile trebuie sa adauge informatii pe care codul nu le transmite singur. De exemplu, linia suma ← 0 nu are nevoie de comentariul "suma devine 0" (este evident), dar poate beneficia de "Initializez suma pentru calculul mediei".

Documentatia completa a proiectului tau trebuie sa includa: analiza problemei (INPUT/OUTPUT/PRELUCRARE), lista de variabile, algoritmul in pseudocod cu comentarii si rezultatele testarii cu cele 3 seturi de date.

Ce rol au comentariile intr-un algoritm?
A Sunt instructiuni executate de calculator
B Explica ce face fiecare parte a algoritmului, pentru intelegere mai usoara
C Sunt obligatorii pentru ca algoritmul sa functioneze
10

Cerinte proiect si criterii de evaluare

Ai invatat toate conceptele necesare pentru a crea un algoritm complet si bine documentat. Acum este timpul sa pui totul in practica. Citeste cu atentie cerintele si criteriile de evaluare.

📋 Cerinte obligatorii:

  1. Alege o problema din lista propusa (sau propune una proprie de complexitate similara)
  2. Scrie analiza problemei: INPUT (ce date primeste), OUTPUT (ce rezultat produce), PRELUCRARE (ce operatii face)
  3. Listeaza variabilele: Numele, rolul si valoarea initiala a fiecarei variabile
  4. Scrie algoritmul in pseudocod: Complet, cu INCEPUT/SFARSIT, instructiuni clare si indentare corecta
  5. Foloseste minim o structura DACA-ATUNCI-ALTFEL pentru a lua o decizie
  6. Foloseste minim o structura repetitiva (PENTRU sau CAT TIMP)
  7. Include validarea datelor de intrare cu mesaje de eroare clare
  8. Adauga mesaje explicative pentru utilizator (instructiuni, erori, rezultate)
  9. Adauga comentarii care explica sectiunile principale ale algoritmului
  10. Testeaza algoritmul cu minim 3 seturi de date diferite si documenteaza rezultatele
  11. Implementeaza algoritmul intr-un mediu de programare (Scratch sau Python) si demonstreaza ca programul ruleaza corect si produce rezultatele asteptate
    (Competente obligatorii OMEN 3393/2017: VII-1.4 si VII-3.3)

⭐ Bonus pentru nota maxima:

  • Deseneaza schema logica (flowchart) a algoritmului pe hartie sau in Word (Insert → Shapes)
  • Trateaza cazuri speciale (de exemplu: impartire la 0, valori extreme, o singura nota)
  • Adauga un meniu care permite utilizatorului sa aleaga intre mai multe optiuni
  • Adauga o functie de repetare : dupa afisarea rezultatului, intreaba utilizatorul daca vrea sa ruleze din nou

Criteriile de evaluare sunt: (1) Corectitudinea algoritmului - produce rezultate corecte pentru toate seturile de test (30%); (2) Structurile de control - foloseste corect DACA si bucle (20%); (3) Validarea datelor - respinge date invalide cu mesaje clare (15%); (4) Implementarea in mediu de programare (Scratch sau Python) - programul ruleaza si produce rezultate corecte (20%); (5) Documentatia - analiza completa, comentarii, teste documentate (10%); (6) Mesaje pentru utilizator - interfata clara si prietenoasa (5%).

Proiectul se preda intr-un document Word care contine: pagina de titlu (nume, clasa, data, titlu proiect), analiza problemei, lista de variabile, algoritmul in pseudocod si tabelele de testare cu cele 3 seturi de date. Salveaza documentul ca: Algoritm_Problema_NumeleTau.docx. Atasaza si fisierul de implementare: Algoritm_Problema_NumeleTau.sb3 (Scratch) sau Algoritm_Problema_NumeleTau.py (Python).

Ce trebuie sa contina documentatia completa a proiectului?
A Doar pseudocodul algoritmului
B Analiza problemei, pseudocodul cu comentarii, testarea cu 3 seturi de date si implementarea in Scratch sau Python
C Doar rezultatele testarii

Exercitii practice

Exercitiul 1 (Nivel minim) - Identifica partile unui algoritm simplu

Citeste algoritmul de mai jos — este un algoritm liniar simplu, fara bucle sau decizii imbricate. Raspunde la cele 3 intrebari de mai jos.

INCEPUT SCRIE "Introdu temperatura in grade Celsius:" CITESTE celsius fahrenheit ← celsius * 9 / 5 + 32 SCRIE "Temperatura in Fahrenheit este: " , fahrenheit SFARSIT
  1. Care este data de intrare (INPUT) a algoritmului? Dar data de iesire (OUTPUT)?
  2. Algoritmul de mai sus are o singura variabila de intrare si una de iesire. Scrie pe hartie numele ambelor variabile si rolul lor (ce reprezinta fiecare).
  3. Ce structura de control este folosita in acest algoritm: secventiala, alternativa sau repetitiva? Motiveaza raspunsul.

Raspunde numerotat: 1. ... 2. ... 3. ...

Sfat: INPUT = ce introduci de la tastatura; OUTPUT = ce afiseaza algoritmul pe ecran. Structura secventiala inseamna ca instructiunile se executa una dupa alta, fara ramificatii sau repetari.

Exercitiul 2 (Nivel standard) - Mini-proiect: Scrie algoritmul tau complet

Urmeaza acesti pasi pentru a crea proiectul tau de algoritm. Parcurge fiecare pas in ordine si bifeaza-l cand l-ai terminat.

Cerinte obligatorii:

⭐ Bonus (pentru nota maxima):

  • Deseneaza schema logica (flowchart) in Word folosind Insert → Shapes (dreptunghiuri pentru instructiuni, romburi pentru decizii, sageti pentru fluxul de executie)
  • Adauga un meniu care permite utilizatorului sa aleaga tipul de calcul (de exemplu: "1-Medie, 2-Suma, 3-Minim/Maxim")
  • Trateaza cel putin un caz special (impartire la 0, valoare extrema, input gol)

Salveaza documentul complet si trimite-l profesorului. Documentul trebuie sa contina: pagina de titlu, analiza, lista variabile, pseudocod cu comentarii si tabelele de test.

Exercitiul 3 (Nivel performanta) - Compunere - Gandirea algoritmica

Cerinta: Scrie un text de 8-10 randuri in care explici ce inseamna gandirea algoritmica si de ce este importanta, chiar si pentru cineva care nu va deveni programator. Descrie cele trei structuri de control (secventiala, alternativa, repetitiva) si da un exemplu din viata reala pentru fiecare. Argumenteaza de ce validarea datelor si testarea sunt la fel de importante ca scrierea algoritmului.

Indicii pentru structurarea raspunsului:

  • Incepe prin a defini ce este un algoritm si ce este gandirea algoritmica
  • Explica cele 3 structuri de control cu exemple din viata de zi cu zi (nu din informatica)
  • Mentioneaza de ce validarea datelor este importanta (ce se intampla fara ea?)
  • Explica de ce testarea este necesara, chiar daca crezi ca algoritmul este corect
  • Incheie cu un argument despre utilitatea gandirii algoritmice in alte domenii (medicina, afaceri, stiinta)

Cuvinte cheie de folosit: algoritm, pseudocod, structura de control, DACA-ATUNCI, PENTRU, CAT TIMP, validare, testare, variabila, gandire algoritmica

Format: Scrie raspunsul intr-un document Word, folosind paragrafe coerente (nu liste!). Salveaza documentul si trimite-l profesorului.

Ce ai invatat astazi

  • Alegerea problemei
  • Analiza problemei: INPUT / OUTPUT / PRELUCRARE
  • Structura alternativa: DACA-ATUNCI-ALTFEL
  • Structura repetitiva: PENTRU si CAT TIMP
  • Validarea datelor de intrare
  • Variabile si atribuiri
  • Mesaje pentru utilizator (interfata)
  • Testarea algoritmului (Trace Table)
  • Documentarea algoritmului
  • Implementarea algoritmului in Scratch sau Python (cerinta obligatorie - competentele VII-1.4 si VII-3.3 conform OMEN 3393/2017)
  • Cerinte proiect si criterii de evaluare

Urmatoarea lectie

Continua cu lectia urmatoare pentru a aprofunda cunostintele.

Continua →