Faceți căutări pe acest blog

miercuri, 30 iulie 2014

Paranteze drepte și acolade

Avem oare nevoie și de paranteze drepte sau de acolade? Nu am putea învăța doar parantezele rotunde? Sunt sau nu sunt suficiente parantezele rotunde? Răspunsul direct ar fi că parantezele rotunde sunt suficiente pentru a scrie orice expresie matematică la care folosim parantezele drepte și acoladele, doar că ultimele sunt folosite pentru o lizibilitate mai bună a expresiilor, pentru o separare mai clară a unor componente ale expresiei date. Așa că, întotdeauna unde vedeți o paranteză dreaptă e bine să știți că acea paranteză dreaptă ne ajută să nu confundăm anumite expresii între ele.

De exemplu, vrem să înmulțim expresia 5∙(7-3)+9 cu expresia 4-11. Cum am putea scrie acest lucru? Vom scrie prima expresie în partea stângă și a doua expresie în partea dreaptă, iar între cele două expresii va trebui să punem semnul înmulțirii. Doar cu paranteze rotunde și fără paranteze drepte rezultatul ar arăta așa
(5∙(7-3)+9)∙(4-11),
iar cu paranteze drepte rezultatul ar arăta așa
[5∙(7-3)+9]∙(4-11).
Există vreo diferență între cele două expresii? Desigur, prima ne poate induce în eroare, căci ar putea să ne facă să credem că paranteza rotundă închisă după numărul 9 este paranteza deschisă înaintea numărului 7, deoarece ambele sunt paranteze rotunde și putem uita de paranteza închisă după 3. Tocmai de aceea, ne bucurăm că avem la dispoziție și parantezele drepte, care ne ajută să evităm asemenea greșeli.

Problema de confuzie ridicată poate apărea mai ales la expresii foarte stufoase. Dorința de a evita această confuzie este motivul pentru care se introduc parantezele drepte și trebuie să recunoașteți că este o soluție elegantă și inteligentă. Evident, mutatis mutandis, același motiv argumentează și introducerea acoladelor.

Vom intra în amănunte și mai mult, doar știți, eu sunt fanul amănuntelor. Vom studia, ca exemplu, expresia urâtă de tot:

7-(4-1)∙(6+1-8)+(-3)∙{2+(6-3)∙[15:(8-5)∙(-2)3+1]-[-7∙(65-52+3)-8+2∙(7-4)2∙(6-4)]}-(8+4):[31-2∙(15+22)]

ca să putem înțelege structura expresiei.

Putem ierarhiza componentele care apar în această expresie. Mai exact, putem vorbi despre „expresii de nivel 0”, „expresii de nivel 1”, „expresii de nivel 2”, „expresii de nivel 3” și așa mai departe. Vom identifica asemenea expresii în șirul de caractere scris mai sus.
  1. În primul rând, expresiile de nivel 0 sunt cele care nu au nevoie de paranteze pentru a fi scrise. Fiecare număr în parte scris aici este o expresie de nivel zero și sunt foarte multe numere.
  2. Apoi, expresiile care sunt construite cu paranteze rotunde sunt expresii de nivel 1. Exemple de asemenea expresii (culese din expresia dată, desigur) sunt în ordine de la stânga (4-1), apoi (6+1-8), apoi (-3), apoi (6-3) și așa mai departe.
  3. Expresii de nivelul 2 sunt cele construite cu paranteze drepte, adică [15:(8-5)∙(-2)3+1], apoi [-7∙(65-52+3)-8+2∙(7-4)2∙(6-4)] și apoi [31-2∙(15+22)].
  4. În fine, expresiile de nivelul 3 sunt cele construite cu acolade, adică {2+(6-3)∙[15:(8-5)∙(-2)3+1]-[-7∙(65-52+3)-8+2∙(7-4)2∙(6-4)]}
Dacă ar mai fi cazul, am mai putea continua, dar nu mai avem paranteze de nivel mai înalt, așa că nu trebuie să ne mai strofocăm cu alte paranteze. În programare sau în alte domenii în care sunt necesare paranteze de nivel foarte înalt se folosesc de regulă parantezele rotunde, cum sunt, de exemplu, în Prolog.

Observați că expresiile de nivel înalt sunt din ce în ce mai puține decât cele de nivel coborât într-o anumită expresie, dar sunt și din ce în ce mai stufoase. Am identificat prin subliniere și colorare diversele componente ale expresiei anterioare:
7-(4-1)(6+1-8)+(-3){2+(6-3)[15:(8-5)(-2)3+1]-[-7∙(65-52+3)-8+2∙(7-4)2∙(6-4)]}-(8+4):[31-2∙(15+22)]
De exemplu, nu m-am atins de numere, dar am subliniat expresiile de nivelul 1 (din care avem 11 bucăți). De asemenea, expresiile de nivelul 2 au fost îngroșate și colorate cu roșu (avem 3 asemenea expresii). În fine, expresiile de nivelul 3 (din care aici avem doar una singură) au fost scrise pe un fundal galben. Așa cum e și firesc, expresiile de nivel mare conțin expresii de nivel mic, dar nu și invers.

Ok. Acum, după ce am văzut care este structura unei expresii, să vedem cum facem calculele în interiorul acesteia. Dacă am avea o expresie doar cu numere (deci numai cu expresii de ordinul 0), am putea trece la calculul lor direct, căci nu am mai avea nicio paranteză de luat în calcul. De exemplu, dacă am avea de calculat expresia 6-2+5∙3-1 (care conține numai expresii de nivelul 0), am putea spune că este ea însăși o expresie de nivelul 0 și nu ar mai trebui să ne batem capul cu expresii de nivel mai înalt. Cu toate acestea, am putea să scriem această expresie și sub forma echivalentă (6-2)+5∙3-1, în care am introdus deja expresia de nivelul 1 dată de (6-2). Desigur, procedând astfel, în loc să simplificăm lucrurile, le-am complica. De ce să introducem paranteze inutile acolo unde nu e cazul? Dimpotrivă, pentru a calcula o expresie trebuie să scăpăm de cât mai multe paranteze.

Așadar, scopul nostru atunci când facem calcule cu paranteze este să aducem în ordine toate expresiile de nivel superior la nivelul 0. Acest lucru se face în ordine crescătoare. Mai exact, după ce am calculat expresiile de ordinul 0 trecem la calculul expresiilor de ordinul 1. Prin acest calcul ajungem să putem transforma expresiile de nivelul 1 în expresii de nivelul 0. Atunci când am terminat acest calcul, toate expresiile componente coboară cu un nivel. În cazul nostru, după ce am calculat valorile din parantezele rotunde și am eliminat aceste paranteze acolo unde s-a putut, expresia urâtă de la început devine:

7-3∙(-1)+(-3)∙{2+3∙[15:3∙(-8)+1]-[-7∙16-8+2∙32∙2]}-12:[31-2∙37]=
=7+3-3∙{2+3∙[-15:3∙8+1]-[-7∙16-8+2∙32∙2]}-12:[31-2∙37]=
=10-3∙{2+3∙[-40+1]-[-120+2∙81]}-12:[31-74]

Observați că am scris și pașii intermediari ca să puteți înțelege în ce ordine am realizat operațiile de calcul. Dar nu erau obligatorii acești pași, căci puteam scrie și finalul direct, dacă ne-ar fi dus mintea. Altfel spus, de noi depinde câți pași intermediari facem. Ei nu sunt obligatorii, dar sunt recomandați, mai ales pentru începători, așa cum sunteți voi. Nu faceți economie de scris. Cu cât scrieți mai mult, cu atât scade efortul de memorare pe care trebuie să-l faceți. Lăsați asemenea eforturi mai spre finalul evoluției voastre, pe când veți fi devenit experimentați în asemenea calcule și veți putea să țineți minte mai multe operații.

Așa. Acum, mai observați că expresia finală rezultată în calculul anterior, adică expresia:

10-3∙{2+3∙[-40+1]-[-120+2∙81]}-12:[31-74]

nu este de fapt „finală”, căci mai urmează să facem un pas important de calcul: transformarea parantezelor. Mai precis, observați că din moment ce nu mai avem paranteze rotunde, este inutil să mai folosim acoladele. Nu este interzis, dar este inutil. Tocmai de aceea, este recomandat să le transformăm. Transformarea constă în coborârea cu o unitate a nivelului, înlocuind parantezele drepte cu paranteze rotunde, iar acoladele cu paranteze drepte, fără a schimba poziția în care se află parantezele. În urma acestei transformări, expresia devine:

10-3∙[2+3∙(-40+1)-(-120+2∙81)]-12:(31-74)

Din acest moment, se procedează recursiv și se reia pasul inițial de calcul al parantezelor rotunde, întocmai cum am făcut în expresia inițială, doar că acum expresia este mai simplă.

Am speranța că acest articol vă va ajuta pe cei mai mulți dintre voi să câștigați mult timp pe care altfel l-ați fi pierdut chinuindu-vă să înțelegeți problema parantezelor.