Recapitulare generală II

Recapitulare extinsă pentru lecțiile 34-40: algoritmi, fizică, chimie, eficiență și pregătire de proiect

50 minute
Modulul 5
Partea 2 din 2
Sigla liceului
RECAPITULARE EXTINSĂ - LECȚIILE 34-40

Continuarea recapitulării

Ora 42 este a doua parte a recapitulării finale. Ea acoperă lecțiile 34-40, adică partea în care am trecut de la formule geometrice la algoritmi, fizică, chimie și eficiență. Dacă ora 41 a insistat pe verificări și formule, această oră insistă pe alegerea metodei potrivite și pe explicarea codului.

În această parte apar idei care se potrivesc foarte bine cu proiectele finale: CMMDC, fracții simplificate, mișcare uniformă, întâlnirea a două mobile, mase moleculare, calculatoare cu meniu și comparații între metode. Toate pot fi implementate într-un singur fișier C++ și toate pot fi explicate clar în fața clasei.

Un lucru important pentru această recapitulare este să nu confundăm "mai mult cod" cu "cod mai bun". Uneori un algoritm scurt este mai bun decât o parcurgere lungă. Uneori o constantă declarată la început face codul mai clar. Uneori o verificare simplă salvează tot calculul.

Harta comună a lecțiilor 34-40

Lecțiile 34-40 au o direcție comună: alegerea unei metode eficiente și explicabile. Nu este suficient să obții un rezultat. Trebuie să poți spune de ce metoda ta este potrivită, ce valori primește programul, ce valori refuză și ce face când utilizatorul alege o opțiune greșită.

LecțieIdee centralăÎntrebare de verificare
34CMMDC și fracțiinumitorul este diferit de zero?
35mișcare rectilinie uniformăunitățile sunt compatibile?
36întâlnirea mobilelorîmpart la zero?
37mase atomiceformula este una cunoscută?
38calculator molecularmeniul este clar?
39eficiențăfac pași inutili?
40analiză comparativăpot justifica metoda aleasă?

Lecția 34: CMMDC și simplificarea fracțiilor

CMMDC este cel mai mare divizor comun al două numere. Algoritmul lui Euclid îl calculează folosind resturi succesive. Ideea este elegantă: în loc să verifici toți divizorii posibili, reduci perechea de numere până când al doilea devine zero.

Pentru simplificarea fracțiilor, CMMDC are o utilizare directă. Dacă fracția este a/b, iar d = CMMDC(a,b), fracția simplificată este (a/d)/(b/d). Înainte de asta, numitorul trebuie verificat, deoarece o fracție cu numitor zero nu are sens.

Algoritmul lui Euclid
while (b != 0) {
    int r = a % b;
    a = b;
    b = r;
}
  1. Citești numărătorul și numitorul.
  2. Verifici dacă numitorul este diferit de zero.
  3. Lucrezi cu valori pozitive pentru CMMDC, dacă este nevoie.
  4. Împarți numărătorul și numitorul la CMMDC.
  5. Afișezi fracția simplificată.
Capcană: dacă modifici direct valorile în algoritmul lui Euclid și ai nevoie de ele la final, salvează copii înainte de buclă.

Pe înțelesul proiectului: dacă după bucla lui Euclid mai vrei să afișezi fracția inițială sau să calculezi CMMMC, păstrează copii ale numerelor citite. Altfel, a și b se schimbă în timpul algoritmului.

Lecția 35: Mișcare rectilinie uniformă

Mișcarea rectilinie uniformă folosește formula x = x0 + v*t. Ea descrie poziția după un timp t, pornind de la poziția inițială x0 și viteza constantă v. Formula este scurtă, dar interpretarea ei cere atenție la unități.

Dacă viteza este în kilometri pe oră, timpul trebuie să fie în ore. Dacă timpul este în minute, trebuie convertit înainte. Un program bun afișează și unitatea rezultatului, pentru ca utilizatorul să știe ce reprezintă numărul obținut.

MărimeSemnificațieObservație
x0poziția inițialăpunctul de plecare
vvitezapoate fi negativă dacă sensul este invers
ttimpulde obicei nenegativ
xpoziția finalărezultatul formulei

Într-un proiect simplu, această lecție poate deveni un calculator de drum: distanță, viteză, timp, cost estimat sau pauze. Important este să nu fie încărcat cu funcții inutile.

Lecția 36: Întâlnirea a două mobile

Când două mobile se mișcă pe aceeași axă, întâlnirea lor se calculează egalând pozițiile. Dacă primul are x1 și v1, iar al doilea are x2 și v2, timpul de întâlnire se poate obține cu formula t = (x2 - x1) / (v1 - v2).

Formula nu se aplică în orice situație. Dacă vitezele sunt egale, numitorul devine zero. Dacă pozițiile sunt deja egale, mobilele sunt împreună de la început. Dacă timpul calculat este negativ, întâlnirea ar fi fost în trecut, deci pentru o simulare viitoare trebuie afișat un mesaj separat.

CazInterpretareDecizie
v1 == v2 și x1 == x2pornesc împreunănu calculezi formula
v1 == v2 și x1 != x2distanța rămâne aceeașinu se întâlnesc
v1 != v2se poate calcula timpulverifici semnul lui t
Capcană: la formulele cu împărțire, întrebarea "poate deveni numitorul zero?" trebuie pusă înainte de calcul.

Lecția 37: Masă moleculară pentru formule simple

În chimie, masa moleculară se obține adunând masele atomilor dintr-o moleculă. Pentru nivelul acestui modul, am lucrat cu formule simple și constante cunoscute: H = 1, C = 12, N = 14, O = 16, S = 32. Apoi formula chimică devine o expresie aritmetică.

De exemplu, pentru H2O calculăm 2*H + O, iar pentru CO2 calculăm C + 2*O. Aceasta este o traducere directă: indicele din formula chimică devine multiplicator în C++.

MoleculăCalculMasă
H2O2*H + O18
CO2C + 2*O44
NH3N + 3*H17
CH4C + 4*H16

Este important ca elevul să nu încerce să construiască un cititor universal de formule chimice dacă scopul este un proiect de două ore. Un meniu cu formule alese este suficient și clar.

Limitare sănătoasă: pentru proiectul final este acceptabil să ai formule fixe, de exemplu H2O, CO2, NH3 și CH4. Un parser complet pentru formule cu paranteze, elemente de două litere și indici mari este un proiect separat, nu o cerință obligatorie aici.

Lecția 38: Calculator molecular

Calculatorul molecular a organizat formulele din lecția anterioară într-un meniu. Aceasta este aceeași idee ca la calculatorul geometric: mai multe calcule mici, adunate într-o aplicație de consolă. Diferența este domeniul, nu structura programului.

Un calculator molecular simplu declară constantele o singură dată, afișează opțiunile, citește alegerea și calculează masa pentru formula selectată. Dacă alegerea nu există, programul afișează un mesaj clar și revine la meniu sau se oprește.

Structură minimă
const int H = 1, C = 12, N = 14, O = 16;
int optiune;
cin >> optiune;
switch (optiune) {
    case 1: cout << 2*H + O; break;
    case 2: cout << C + 2*O; break;
    default: cout << "Optiune invalida";
}

Legătură cu proiectul: dacă un proiect are 4-5 opțiuni bine explicate, este deja suficient pentru o prezentare reușită.

Lecția 39: Eficiență

Eficiența înseamnă să observi câți pași face programul și cum crește acest număr când datele devin mai mari. Două metode pot da același rezultat, dar una poate fi mult mai lentă. Pentru nivelul nostru, ideea principală este să comparăm metodele în cuvinte și cu exemple simple.

Dacă vrei suma numerelor de la 1 la n, poți folosi o buclă, dar există și formula n*(n+1)/2. Dacă vrei CMMDC, poți verifica divizori, dar Euclid este mult mai potrivit. Dacă vrei să cauți într-un șir sortat, căutarea binară reduce rapid zona în care mai poate fi răspunsul.

TipÎn cuvinteExemplu
O(1)număr constant de pașiformula sumei
O(n)pașii cresc odată cu nparcurgere cu for
O(log n)spațiul de căutare scade rapidcăutare binară
Capcană: eficiența nu înseamnă să scrii cod greu de citit. Pentru proiect, alege o metodă bună, dar păstrează codul explicabil.

Lecția 40: Analiză comparativă

Lecția 40 a pus metodele una lângă alta. Scopul a fost să observăm când o formulă directă este mai potrivită decât o buclă și când un algoritm clasic este mai potrivit decât încercarea tuturor variantelor. Analiza comparativă nu este doar teorie: ea te ajută să alegi mai bine în proiect.

SituațieVariantă lentăVariantă recomandată
suma 1..nadunare pas cu pasn*(n+1)/2
CMMDCverificarea divizorilorEuclid
număr primverificare până la n-1verificare până la radical
căutare în șir sortatparcurgere completăcăutare binară

Într-o prezentare, elevul poate spune: "Am ales această metodă fiindcă face mai puțini pași" sau "Am ales această formulă fiindcă evită o buclă inutilă". Această explicație arată că programul nu este doar scris, ci și înțeles.

Sinteză pentru finalul orei 42

După lecțiile 34-40, elevul ar trebui să fie pregătit să aleagă un proiect final simplu și să îl explice. Cele mai bune proiecte pentru această etapă sunt cele care combină 2-3 idei: meniu, formulă, validare, buclă, CMMDC sau o comparație ușoară de metode.

  • Știi să folosești Euclid pentru CMMDC și fracții.
  • Știi să traduci formule de mișcare în expresii C++.
  • Știi să lucrezi cu constante pentru formule chimice simple.
  • Știi să construiești un meniu cu opțiuni clare.
  • Știi să explici de ce o metodă este mai eficientă decât alta.
  • Știi să păstrezi proiectul într-un singur fișier C++ pentru compilator online.