LECTIA 3

Operatori Logici - SI, SAU, NU

Citeste fiecare concept, apoi raspunde la intrebari pentru a continua

Progres lectie:
0%
🎯

Obiectivul lectiei

"Dupa aceasta lectie vei sti sa combini mai multe conditii folosind operatorii logici SI, SAU si NU, pentru a crea decizii complexe in programele tale Scratch!"

Dupa aceasta lectie vei putea:

  • Sa identifici de ce avem nevoie de operatori logici
  • Sa identifici operatorul si (and)
  • Sa demonstrezi operatorul sau (or)
  • Sa aplici operatorul nu (not)
  • Sa aplici blocurile in Scratch
1

De ce avem nevoie de operatori logici?

In lectiile anterioare ai invatat sa verifici o singura conditie : "DACA nota >= 5 ATUNCI..." sau "DACA ploua ATUNCI...". Dar in viata reala, deciziile sunt rareori atat de simple. De cele mai multe ori, trebuie sa verifici mai multe lucruri simultan .

De exemplu, parintii tai iti spun: "Poti iesi afara DACA ai terminat tema SI e frumos afara." Aici ai doua conditii care trebuie indeplinite amandoua. Nu e suficient sa fi terminat tema daca afara ploua, si nu e suficient sa fie frumos afara daca nu ai terminat tema.

Alt exemplu: "Poti merge la film DACA e sambata SAU duminica." Aici e suficient ca una din cele doua conditii sa fie adevarata. Daca e sambata, merge! Daca e duminica, merge! Nu trebuie sa fie amandoua.

Si mai exista situatii in care vrei sa inversezi o conditie: "DACA NU ploua, mergem la plimbare." Aici nu verifici daca ploua, ci daca NU ploua - adica inversul.

Acesti trei operatori - SI (AND), SAU (OR) si NU (NOT) - se numesc operatori logici . Ei sunt instrumentele care ne permit sa construim conditii complexe din conditii simple. Sunt fundamentali in programare si ii vei folosi in toate limbajele de programare pe care le vei invata.

De ce avem nevoie de operatori logici?
A Pentru a face calcule matematice
B Pentru a combina mai multe conditii intr-o singura decizie
C Pentru a desena pe ecran
2

Operatorul SI (AND)

Operatorul SI (in engleza AND) combina doua conditii si rezultatul este ADEVARAT doar cand AMBELE conditii sunt adevarate . Daca cel putin una este falsa, rezultatul este FALS.

Gandeste-te la SI ca la un profesor foarte strict: vrea sa fie totul perfect. Daca una singura din conditii nu e indeplinita, raspunsul e NU.

Tabelul de adevar pentru SI:

  • ADEVARAT SI ADEVARAT = ADEVARAT
  • ADEVARAT SI FALS = FALS
  • FALS SI ADEVARAT = FALS
  • FALS SI FALS = FALS

Observa: din cele 4 combinatii posibile, doar una da rezultat ADEVARAT - cea in care ambele conditii sunt adevarate. In toate celelalte cazuri, rezultatul este FALS.

Exemplu din viata reala: "Pot merge la excursie DACA am permisiunea parintilor SI am platit taxa." Sa analizam toate cazurile:

  • Am permisiune SI am platit = Merg la excursie!
  • Am permisiune SI NU am platit = Nu pot merge (nu am platit)
  • NU am permisiune SI am platit = Nu pot merge (nu am permisiune)
  • NU am permisiune SI NU am platit = Nu pot merge (niciuna)
Daca folosesti operatorul SI, cand este rezultatul ADEVARAT?
A Cand cel putin o conditie este adevarata
B Cand AMBELE conditii sunt adevarate
C Cand nicio conditie nu este adevarata
3

Operatorul SAU (OR)

Operatorul SAU (in engleza OR) combina doua conditii si rezultatul este ADEVARAT cand cel putin UNA din conditii este adevarata. Rezultatul este FALS doar cand ambele sunt false.

Gandeste-te la SAU ca la un profesor mai indulgent: e multumit daca macar un lucru e indeplinit. E destul sa fie una din conditii adevarata si raspunsul e DA.

Tabelul de adevar pentru SAU:

  • ADEVARAT SAU ADEVARAT = ADEVARAT
  • ADEVARAT SAU FALS = ADEVARAT
  • FALS SAU ADEVARAT = ADEVARAT
  • FALS SAU FALS = FALS

Observa: din cele 4 combinatii posibile, trei dau rezultat ADEVARAT. Doar cand ambele sunt false rezultatul e FALS. SAU este mult mai "generous" decat SI.

Exemplu din viata reala: "Pot ajunge la scoala DACA merg cu autobuzul SAU ma duce tata cu masina." Sa analizam:

  • Vine autobuzul SI ma duce tata = Ajung la scoala (am doua optiuni!)
  • Vine autobuzul SI NU ma duce tata = Ajung la scoala (cu autobuzul)
  • NU vine autobuzul SI ma duce tata = Ajung la scoala (cu masina)
  • NU vine autobuzul SI NU ma duce tata = Nu ajung la scoala

Diferenta cheie: SI cere TOTUL, SAU cere MACAR UNUL. Aceasta diferenta este fundamentala si trebuie s-o retii foarte bine.

Cand este rezultatul operatorului SAU ADEVARAT?
A Doar cand ambele conditii sunt adevarate
B Cand cel putin UNA din conditii este adevarata
C Doar cand ambele conditii sunt false
4

Operatorul NU (NOT)

Operatorul NU (in engleza NOT) este diferit de SI si SAU: el se aplica pe o singura conditie si ii inverseaza rezultatul. Daca conditia era adevarata, devine falsa. Daca era falsa, devine adevarata.

Gandeste-te la NU ca la un oglinda magica care transforma totul in opusul sau: alb devine negru, zi devine noapte, adevarat devine fals.

Tabelul de adevar pentru NU:

  • NU ADEVARAT = FALS
  • NU FALS = ADEVARAT

Exemple din viata reala:

  • "DACA NU ploua, mergem la plimbare" - inversam conditia "ploua": daca e fals ca ploua (adica nu ploua), mergem
  • "DACA NU e ora de culcare, poti sta la calculator" - inversam "e ora de culcare"
  • "DACA NU ai alergii, poti manca prajitura cu nuci" - inversam "ai alergii"

Operatorul NU este foarte util cand e mai natural sa exprimi o conditie in forma negativa. De exemplu, e mai usor sa spui "NU ploua" decat sa verifici "este senin SI nu sunt nori SI nu cade apa din cer". NU simplifica exprimarea.

Un lucru important: dubla negatie . Ce se intampla daca aplici NU de doua ori? NU(NU ADEVARAT) = NU(FALS) = ADEVARAT. Dubla negatie se anuleaza! E ca si cum ai spune "nu este adevarat ca nu ploua" - adica ploua. In practica, evita dubla negatie pentru ca face codul greu de inteles.

Ce face operatorul NU (NOT)?
A Combina doua conditii
B Inverseaza rezultatul: adevarat devine fals si invers
C Sterge o conditie
5

Blocurile in Scratch

In Scratch, operatorii logici se gasesc in categoria Operatori (blocurile verzi). Au forma hexagonala (cu colturi ascutite), la fel ca blocurile de comparatie (<, =, >). Aceasta forma speciala le permite sa fie inserate in spatiul de conditie al blocurilor DACA... ATUNCI sau DACA... ALTFEL.

Cele trei blocuri de operatori logici in Scratch:

<> si <> - blocul verde pentru SI (AND)

Are doua spatii hexagonale unde pui cele doua conditii. Ambele trebuie sa fie adevarate.

<> sau <> - blocul verde pentru SAU (OR)

Are doua spatii hexagonale. E suficient ca una sa fie adevarata.

nu <> - blocul verde pentru NU (NOT)

Are un singur spatiu hexagonal. Inverseaza rezultatul conditiei din interior.

Ca sa le folosesti, trage blocul operator logic in spatiul de conditie al unui bloc DACA, apoi pune conditiile in spatiile hexagonale ale operatorului. Poti combina operatorii: pune un SI in interiorul unui SAU, sau un NU in interiorul unui SI. Aceasta combinare permite conditii foarte complexe.

Un sfat practic: daca conditia devine prea complicata (3-4 operatori combinati), imparte-o in mai multi pasi folosind variabile. De exemplu, creeaza o variabila "conditie_ok" si seteaz-o in functie de verificari separate. Apoi foloseste "DACA conditie_ok = 1 ATUNCI...".

Ce culoare au blocurile operatorilor logici (SI, SAU, NU) in Scratch?
A Portocaliu
B Verde
C Mov
6

Exemplu SI - Trasare pas cu pas

Sa construim un program in Scratch care verifica daca un elev poate participa la concurs. Conditiile sunt: nota >= 8 SI absente < 5.

Algoritmul in pseudocod:

CITESTE nota
CITESTE absente
DACA (nota >= 8) SI (absente < 5) ATUNCI
SCRIE "Poti participa la concurs!"
ALTFEL
SCRIE "Nu indeplinesti conditiile."

Trasare pentru nota=9, absente=3:

  1. Verificam prima conditie: 9 >= 8? ADEVARAT
  2. Verificam a doua conditie: 3 < 5? ADEVARAT
  3. Aplicam SI: ADEVARAT SI ADEVARAT = ADEVARAT
  4. Rezultat: "Poti participa la concurs!"

Trasare pentru nota=9, absente=7:

  1. Verificam prima conditie: 9 >= 8? ADEVARAT
  2. Verificam a doua conditie: 7 < 5? FALS
  3. Aplicam SI: ADEVARAT SI FALS = FALS
  4. Rezultat: "Nu indeplinesti conditiile." (prea multe absente)

Trasare pentru nota=6, absente=2:

  1. Verificam prima conditie: 6 >= 8? FALS
  2. Verificam a doua conditie: 2 < 5? ADEVARAT
  3. Aplicam SI: FALS SI ADEVARAT = FALS
  4. Rezultat: "Nu indeplinesti conditiile." (nota prea mica)

Observa: pentru a trece, trebuie sa indeplinesti ambele criterii. Doar nota buna nu e suficienta daca ai prea multe absente, si doar prezenta buna nu e suficienta daca nota e mica.

"Pot iesi afara DACA am terminat tema SI e frumos afara." Daca am terminat tema dar ploua, pot iesi?
A Da, pentru ca am terminat tema
B Nu, pentru ca SI cere AMBELE conditii adevarate
C Depinde de alte conditii
7

Exemplu SAU - Trasare pas cu pas

Sa construim un program care verifica daca un elev primeste diploma de merit. Conditia: nota la matematica >= 9 SAU nota la romana >= 9 (e suficient sa excelezi la una din materii).

Algoritmul in pseudocod:

CITESTE nota_mate
CITESTE nota_romana
DACA (nota_mate >= 9) SAU (nota_romana >= 9) ATUNCI
SCRIE "Primesti diploma de merit!"
ALTFEL
SCRIE "Continua sa inveti!"

Trasare pentru mate=10, romana=7:

  1. Verificam: 10 >= 9? ADEVARAT
  2. Verificam: 7 >= 9? FALS
  3. Aplicam SAU: ADEVARAT SAU FALS = ADEVARAT
  4. Rezultat: "Primesti diploma de merit!" (matematica e excelenta)

Trasare pentru mate=6, romana=10:

  1. Verificam: 6 >= 9? FALS
  2. Verificam: 10 >= 9? ADEVARAT
  3. Aplicam SAU: FALS SAU ADEVARAT = ADEVARAT
  4. Rezultat: "Primesti diploma de merit!" (romana e excelenta)

Trasare pentru mate=7, romana=6:

  1. Verificam: 7 >= 9? FALS
  2. Verificam: 6 >= 9? FALS
  3. Aplicam SAU: FALS SAU FALS = FALS
  4. Rezultat: "Continua sa inveti!" (nicio nota nu e >= 9)

Compara cu SI: daca am fi folosit SI in loc de SAU, elevul ar fi trebuit sa aiba note >= 9 la ambele materii. Cu SAU, e suficient sa exceleze la una . Alegerea operatorului schimba complet logica programului!

"Pot merge cu autobuzul SAU cu metroul." Daca vine autobuzul dar metroul e defect, pot ajunge?
A Nu, pentru ca metroul e defect
B Da, pentru ca SAU cere MACAR O conditie adevarata
C Trebuie sa astept metroul
8

Exemplu NU - Inversarea conditiei

Sa vedem cum folosim operatorul NU intr-un program Scratch. Vom face un sprite care se misca doar cand NU atinge marginea ecranului.

Algoritmul in pseudocod:

REPETA mereu
DACA NU (atinge marginea?) ATUNCI
mergi 5 pasi
ALTFEL
intoarce-te 180 grade

Trasare cand sprite-ul e in mijlocul ecranului:

  1. "atinge marginea?" = FALS (nu atinge, e in mijloc)
  2. Aplicam NU: NU FALS = ADEVARAT
  3. Conditia e ADEVARATA, deci: sprite-ul merge 5 pasi

Trasare cand sprite-ul e la margine:

  1. "atinge marginea?" = ADEVARAT (atinge marginea)
  2. Aplicam NU: NU ADEVARAT = FALS
  3. Conditia e FALSA, deci: sprite-ul se intoarce 180 grade

De ce am folosit NU? Pentru ca blocul de senzori din Scratch verifica daca "atinge marginea", dar noi voiam sa verificam daca NU atinge marginea. NU ne permite sa inversam orice conditie existenta fara sa o rescriem.

Alt exemplu practic cu NU: in Scratch nu exista un bloc direct pentru "tasta NU apasata". Dar poti folosi NU (tasta spatiu apasata?) ca sa verifici daca tasta spatiu nu este apasata. Operatorul NU transforma orice bloc de senzori in opusul sau.

"DACA NU ploua, mergem la plimbare." Ce inseamna NU ploua?
A Ploua foarte tare
B Afara este senin, nu ploua
C Nu conteaza vremea
9

Combinarea operatorilor - Conditii complexe

Puterea reala a operatorilor logici apare cand ii combini . Poti pune un operator in interiorul altui operator pentru a crea conditii foarte precise.

Exemplu 1: Verifica daca un numar este intre 1 si 10

DACA (numar >= 1) SI (numar <= 10) ATUNCI
SCRIE "Numarul este in interval!"

Aici avem nevoie de SI pentru ca numarul trebuie sa indeplineasca ambele conditii simultan: sa fie mai mare sau egal cu 1 SI mai mic sau egal cu 10.

Exemplu 2: Verifica daca un caracter este vocala

DACA (litera = "a") SAU (litera = "e") SAU (litera = "i") SAU (litera = "o") SAU (litera = "u") ATUNCI
SCRIE "Este vocala!"

Aici folosim SAU pentru ca litera trebuie sa fie una din cele 5 vocale - nu poate fi toate deodata.

Exemplu 3: Combinatie SI + NU

DACA (varsta >= 12) SI ( NU (are_bilet)) ATUNCI
SCRIE "Trebuie sa cumperi bilet!"

Aceasta conditie verifica daca persoana are 12 ani sau mai mult SI nu are bilet. Combinam SI cu NU pentru a exprima exact ce ne trebuie.

Regula de prioritate: NU se aplica primul (pe conditia individuala), apoi SI, apoi SAU. Daca vrei sa schimbi ordinea, foloseste paranteze. In Scratch, ordinea este data automat de modul in care imbricezi blocurile.

Ce operator folosesti cand vrei ca un numar sa fie intre 1 SI 10?
A SAU, pentru ca sunt doua conditii
B SI, pentru ca AMBELE conditii trebuie indeplinite simultan
C NU, pentru ca inversezi conditia
10

Greseli frecvente si cum le eviti

Operatorii logici sunt puternici, dar si o sursa frecventa de greseli. Iata cele mai comune erori si cum le eviti:

Greseala 1: Confuzia intre SI si SAU. Aceasta este cea mai frecventa greseala. Regula simpla: daca vrei ca toate conditiile sa fie indeplinite, foloseste SI. Daca e suficient ca macar una sa fie indeplinita, foloseste SAU.

Greseala 2: Conditii redundante. De exemplu: "DACA nota >= 9 SI nota >= 7" - a doua conditie este inutila! Daca nota e >= 9, automat e si >= 7. O conditie redundanta nu strica programul, dar il face mai greu de citit si inteles.

Greseala 3: Conditii imposibile. De exemplu: "DACA nota > 10 SI nota < 5" - aceasta conditie nu poate fi niciodata adevarata! Un numar nu poate fi simultan mai mare decat 10 si mai mic decat 5. Programul merge, dar ramura ATUNCI nu se executa niciodata.

Greseala 4: Uitarea lui NU in conditii negative. Cand vrei sa verifici "daca nu ploua", nu scrie "DACA ploua = fals" (care nu functioneaza in Scratch). Scrie corect: "DACA NU (ploua?) ATUNCI...".

Cum verifici daca ai ales operatorul corect:

  • Citeste conditia cu voce tare si gandeste-te daca are sens logic
  • Testeaza cu exemple concrete: pune valori si verifica manual daca rezultatul e corect
  • Daca ai "si" in propozitie, de obicei ai nevoie de operatorul SI
  • Daca ai "sau" in propozitie, de obicei ai nevoie de operatorul SAU
  • Daca ai "nu" sau "fara" in propozitie, ai nevoie de operatorul NU

Sfat final: cand ai dubii, deseneaza tabelul de adevar pe hartie. Scrie toate combinatiile posibile si verifica daca rezultatul e cel asteptat pentru fiecare. Aceasta metoda functioneaza mereu si te ajuta sa intelegi exact ce face conditia ta.

Care este greseala in: "DACA nota >= 9 SI nota >= 7 ATUNCI Foarte bine"?
A Lipseste ALTFEL
B A doua conditie e inutila: daca nota >= 9, atunci automat nota >= 7
C Trebuie sa folosesti SAU in loc de SI

Exercitii practice

Exercitiul 1 (Nivel minim) - Analiza operatorilor logici

Gandeste-te la situatii din viata reala in care folosesti operatorii logici SI, SAU si NU. Raspunde la urmatoarele intrebari:

  1. Descrie 2 situatii din viata reala care folosesc operatorul SI (unde AMBELE conditii trebuie indeplinite). Scrie pseudocodul pentru fiecare.
  2. Descrie 2 situatii care folosesc operatorul SAU (unde e suficient MACAR UNA). Scrie pseudocodul pentru fiecare.
  3. Descrie o situatie care foloseste operatorul NU (unde inversezi o conditie). De ce este mai simplu sa folosesti NU decat sa scrii conditia direct?
  4. Completeaza tabelul de adevar: daca A = ADEVARAT si B = FALS, cat fac: A SI B? A SAU B? NU A? NU B?

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

Indicii:

  • Pentru SI, gandeste-te la regulile de la scoala care cer mai multe conditii simultan
  • Pentru SAU, gandeste-te la situatii cu alternative (fie... fie...)
  • Pentru NU, gandeste-te la interdictii ("nu ai voie daca...")

Exercitiul 2 (Nivel standard) - Mini-proiect: Parc de distractii in Scratch

Creeaza un program Scratch care simuleaza accesul la un parc de distractii. Programul verifica daca un vizitator poate intra pe un carusel special folosind operatori logici.

Cerinte obligatorii:

⭐ Bonus (pentru nota maxima):

  • Adauga un al doilea carusel cu conditii diferite (varsta >= 14 SI inaltimea >= 150)
  • Schimba fundalul (decorul) in functie de raspunsul vizitatorului
  • Adauga sunete diferite pentru acceptare si respingere
  • Combina operatorii: DACA (varsta >= 10 SI inaltimea >= 130) SAU (are_insotitor = "da")

Salveaza proiectul in Scratch cu numele "ParcDistractii_NumeleTau" si partajeaza link-ul cu profesorul.

Exercitiul 3 (Nivel performanta) - Compunere

Cerinta: Scrie un text de 8-10 randuri in care explici diferenta intre operatorii logici SI, SAU si NU. Pentru fiecare operator, da un exemplu concret din viata reala si explica ce rezultat produce. Mentioneaza si cand ai confunda SI cu SAU si cum eviti aceasta greseala.

Indicii pentru structurarea raspunsului:

  • Paragraful 1: Explica de ce avem nevoie de operatori logici
  • Paragraful 2: Descrie operatorul SI cu exemplu si tabelul de adevar simplificat
  • Paragraful 3: Descrie operatorul SAU cu exemplu si diferenta fata de SI
  • Paragraful 4: Descrie operatorul NU cu exemplu si utilitatea sa

Cuvinte cheie de folosit: SI, SAU, NU, conditie, adevarat, fals, combinare, tabel de adevar, inversare

Format: Scrie raspunsul in caiet sau intr-un document Word cu paragrafe coerente. Foloseste cel putin 6 din cuvintele cheie de mai sus.

Ce ai invatat astazi

  • De ce avem nevoie de operatori logici?
  • Operatorul SI (AND)
  • Operatorul SAU (OR)
  • Operatorul NU (NOT)
  • Blocurile in Scratch
  • Exemplu SI - Trasare pas cu pas
  • Exemplu SAU - Trasare pas cu pas
  • Exemplu NU - Inversarea conditiei
  • Combinarea operatorilor - Conditii complexe
  • Greseli frecvente si cum le eviti

Urmatoarea lectie

Continua cu lectia urmatoare pentru a aprofunda cunostintele.

Continua →