Invatare Atomica

Structura liniara

Progres lectie:
0%
🎯

Obiectivul lectiei

Dupa aceasta lectie, vei sti sa scrii programe care executa instructiuni pas cu pas, in ordine.

Dupa aceasta lectie vei putea:

  • Sa analizezi structura liniara (secventiala)
  • Sa scrii un algoritm in pseudocod
  • Sa citesti o schema logica (diagrama flux)
  • Sa utilizezi sablonul clasic: citire - prelucrare - afisare
  • Sa utilizezi exemplu complet: conversia temperaturii
  • Sa analizezi probleme tipice cu structura liniara

Incearca singur!

🎯 INCEARCA

Calculeaza aria unui dreptunghi!

Scrie acest program si ruleaza-l:
#include <iostream> using namespace std; int main() { float lungime, latime, aria; cout << "Lungimea: "; cin >> lungime; cout << "Latimea: "; cin >> latime; aria = lungime * latime; cout << "Aria dreptunghiului este: " << aria << endl; return 0; }
🚀 Ruleaza pe OnlineGDB

Observa: Instructiunile se executa exact in ordinea in care sunt scrise!

1

Structura liniara (secventiala)

Structura liniara (secventiala)
Un program cu structura liniara executa instructiunile una dupa alta, in ordinea in care sunt scrise.
Analogie: reteta de gatit. Cand faci o prajitura, pasii trebuie urmati exact in ordine:
  1. Amesteca faina cu zaharul.
  2. Adauga ouale si untul.
  3. Toarna in tava si baga la cuptor.
  4. Scoate prajitura dupa 30 de minute.
Daca sari pasul 2 (ouale) sau inversezi pasii 1 si 3, prajitura nu iese. La fel, in structura liniara, fiecare instructiune depinde de ce s-a calculat inainte: nu poti afisa rezultatul inainte sa-l calculezi, si nu poti calcula inainte sa citesti datele. Ordinea conteaza intotdeauna.
Instructiune 1
Instructiune 2
Instructiune 3
...
2

Cele doua reprezentari: pseudocod si schema logica

Inainte de a scrie cod C++, un algoritm poate fi reprezentat in doua moduri standard cerute de programa (competenta VII-2.2):

📝
Pseudocodul

O descriere structurata a algoritmului folosind cuvinte din limbajul natural (romana sau engleza) combinate cu cuvinte-cheie conventionale (CITESTE, SCRIE, DACA, CAT TIMP etc.). Nu are sintaxa stricta — scopul lui este claritatea, nu executia pe calculator.

🔷
Schema logica (diagrama flux)

O reprezentare grafica a algoritmului cu simboluri standardizate: oval = Start/Stop, paralelogram = Citire/Afisare, dreptunghi = Prelucrare (calcul), romb = Conditie (da/nu). Sagetile indica ordinea de executie.

Exemplu — conversia temperaturii in trei forme:

📝 Pseudocod
INCEPUT CITESTE celsius fahrenheit ← celsius * 9.0 / 5.0 + 32 SCRIE fahrenheit SFARSIT
C++ — implementare
cin >> celsius; fahrenheit = celsius * 9.0 / 5.0 + 32; cout << fahrenheit;
🔷 Schema logica — structura liniara
START
CITESTE celsius
fahrenheit ← celsius × 9/5 + 32
SCRIE fahrenheit
STOP

In schema logica pentru structura liniara, toate blocurile sunt dreptunghiuri (prelucrare) sau paralelograme (citire/afisare), conectate in ordine de sus in jos. Nu exista ramificatii — fiecare pas se executa exact o data.

💡 De ce invatam ambele?
Pseudocodul si schema logica sunt independente de limbaj — poti descrie acelasi algoritm in pseudocod si apoi implementa in C++, Python sau orice alt limbaj. La evaluare, se cere adesea pseudocodul inainte de cod.
3

Sablonul clasic: Citire - Prelucrare - Afisare

Sablonul clasic: Citire - Prelucrare - Afisare
// 1. CITIRE - luam datele de intrare cin >> a; cin >> b; // 2. PRELUCRARE - facem calculele suma = a + b; produs = a * b; // 3. AFISARE - aratam rezultatele cout << "Suma: " << suma << endl; cout << "Produs: " << produs << endl;
4

Exemplu complet: Conversia temperaturii

Exemplu complet: Conversia temperaturii
#include <iostream> using namespace std; int main() { float celsius, fahrenheit; // Citire cout << "Temperatura in Celsius: "; cin >> celsius; // Prelucrare (formula: F = C * 9.0/5.0 + 32) fahrenheit = celsius * 9.0 / 5.0 + 32; // Afisare cout << celsius << "C = " << fahrenheit << "F" << endl; return 0; }
5

Probleme tipice cu structura liniara

💡 Probleme tipice cu structura liniara
  • Calcul arie/perimetru figuri geometrice
  • Conversii unitati (km-m, C-F, ore-minute)
  • Calcule matematice simple
  • Interschimbarea valorilor a doua variabile

Exercitii practice

Exercitiul 1 (Nivel minim) - Programare

Cerinta: Citeste doua numere intregi a si b de la tastatura si afiseaza suma lor.

Exercitiul 2 (Nivel standard) - Programare

Cerinta: Se dau lungimea L si latimea l unui dreptunghi. Calculeaza si afiseaza perimetrul.

Exercitiul 3 (Nivel performanta) - Programare

Cerinta: Citeste doua numere a si b. Interschimba valorile lor si afiseaza-le (prima valoarea lui b, apoi valoarea lui a).

Exercitiul 4 (Nivel performanta) - Programare

Cerinta: Citeste 3 numere intregi si calculeaza media lor aritmetica (cu zecimale).

Exercitiul 5 (Nivel performanta) - Programare

Cerinta: Creeaza un program care converteste intre diferite unitati de masura. Urmeaza pasii:

  1. Declara variabile float pentru: distanta in kilometri, distanta in metri, greutate in kilograme, greutate in grame.
  2. Citeste de la tastatura distanta in kilometri si greutatea in kilograme.
  3. Calculeaza: metri = kilometri * 1000 si grame = kilograme * 1000.
  4. Afiseaza rezultatele, de exemplu: "5 km = 5000 m" si "2.5 kg = 2500 g".
  5. (Optional) Adauga conversia orelor in minute: citeste ore, calculeaza minute = ore * 60, afiseaza.

Ce ai invatat astazi

  • Ai invatat structura liniara (secventiala) — instructiunile se executa in ordine, una dupa alta
  • Ai invatat pseudocodul: descrierea unui algoritm in cuvinte, independent de orice limbaj de programare
  • Ai invatat schema logica: reprezentarea grafica a algoritmului cu simboluri standardizate (oval, dreptunghi, paralelogram)
  • Acum stii sablonul clasic: citire - prelucrare - afisare
  • Ai descoperit exemplu complet: conversia temperaturii (in pseudocod, schema logica si C++)
  • Ai explorat probleme tipice cu structura liniara

Urmatoarea lectie

Continua cu lectia urmatoare pentru a aprofunda cunostintele.

Continua →