Învață programare de la zero (primul pas)

  

    Cel mai probabil nu trece nicio zi din viața ta fără să folosești o mulțime de aplicații software. Sisteme de operare, drivere, playere audio și video, browsere, și așa mai departe. Iar dacă faci o muncă de birou este aproape cert că folosești zilnic editoare de text, programe de calcul tabelar sau diverse aplicații specifice domeniului tău de lucru.
    Fie că vorbim de calculator, tabletă sau telefon, programele software sunt o prezență ubicuă în viața noastră. E greu, așadar, de găsit o altă activitate umană care să egaleze ca impact asupra vieții noastre de astăzi programarea. (O voi numi în continuare programarea calculatoarelor, căci toate dispozitivele a căror funcționare se bazează pe software sunt în esență niște calculatoare.)
    Nu e de mirare, deci, numărul mare de oameni care fie își doresc în mod deschis, fie visează în secret să aibă abilitățile unui programator. Își doresc să-și poată crea singuri o aplicație care le e necesară (și care poate fie nu există, fie este prea scumpă), sau își doresc să transpună în realitate o idee de joc ce le-a încolțit în minte. Își doresc, cu alte cuvinte, să-și poată transpune gândurile într-un șir de comenzi care rulate de un calculator să dea rezultatele așteptate.
    Poate că și tu îți dorești aceste lucruri.
    Ba poate chiar te-ai și apucat, dar ți s-a părut prea dificil și ai lăsat-o baltă.
    Am o veste pentru tine: Nu există nicio știință dificilă pe lumea asta, atâta timp cât este explicată pe înțelesul tău. În aceste condiții, mai trebuie doar să îți dorești s-o înțelegi și să fii dispus să depui și ceva efort.
    Din start îți spun: Cu efort zero obții rezultat zero. E valabil în orice domeniu, nu doar în învățarea programării calculatoarelor. Fie că vrei să îți îmbunătățești stilul de viață, fie că vrei să arăți mai bine, fie că vrei să cunoști oameni interesanți, fie că vrei să înveți să dansezi sau să desenezi, trebuie să fii dispus să depui ceva efort.
    Față de alte activități, însă, programarea calculatoarelor oferă avantajul unei recompense foarte rapide pentru efortul depus. Vei vedea cum cu un minim de cunoștințe deprinse vei putea deja să îți exersezi creierul creând lucruri foarte simpatice și fascinante (chiar dacă destul de simple, la început).
 
    Hai să ne apucăm de treabă!
    Mai întâi, ce îți trebuie pentru a începe să înveți să programezi un calculator?
    Probabil deja te gândești că un prim lucru absolut necesar este calculatorul. Ei bine, nu! Consider că primele lecții pe care ar trebui să le învețe un viitor programator nu au nicio trebuință de calculator. Adevărată creație nu se întâmplă acolo. Ci adevărata creație rezultă dintr-o reorganizare a minții, dintr-o antrenare a creierului în direcția dobândirii unei noi abilități, a unui nou mod de a vedea lumea.
(Poate ultima afirmație ți se pare un pic exagerată. Poate că îți dorești doar să înveți să faci programe de calculator, și nu să îți schimbi modul de a vedea lumea. În cazul acesta, te rog să nu mai citești restul articolului și nici articolele ulterioare pe această temă, fiindcă n-or să te ajute. Eu nu vreau să te învăț să devii zugrav, ci pictor.)
 
    O foaie de hârtie și un pix. Atât îți trebuie pentru a învață cea mai importantă lecție din programarea calculatoarelor.
    Și în ce constă această lecție?
    Constă în a înțelege faptul că un calculator poate să execute doar un set foarte limitat de instrucțiuni. Și că orice lucru pe care ne dorim că un calculator să-l facă trebuie să-l putem “sparge” într-un șir format din aceste intructiuni pe care calculatorul le cunoaște și le poate execută. (La fel că în jocul Tetris — avem doar câteva tipuri de piese și trebuie să ne descurcăm cu ce avem pentru a construi linii.)
Să luăm un exemplu simplu. Să zicem că avem un calculator care știe doar să aprindă și să stingă un punct situat la coordonate oarecare pe un ecran de 10×10 astfel de puncte. Te rog să desenezi pe foaia de hârtie o schița a acestui ecran. Ar trebui să arate în felul următor. 
Pentru a identifica fiecare dintre cele 100 de puncte putem, de exemplu, denumi coloanele și liniile folosind numere. Astfel, punctul marcat cu roșu se găsește pe coloana 7 și pe linia 3, deci la coordonatele (7, 3). (Punctul negru din stânga jos este situat la coordonatele (1, 1).)
    Am spus că acest calculator imaginar de care vorbim știe să aprindă și să stingă oricare dintre cele 100 de puncte. Altfel spus, el poate execută doar două instrucțiuni:
  • Aprinde punctul de la coordonatele (x, y).
  • Stinge punctul de la coordonatele (x, y).            
Putem simplifică lucrurile simplificând denumirile acestor comenzi în Aprinde(x, y) și, respectiv Stinge(x, y).
    Iată, în continuare, cum am putea folosi acest calculator imaginar pentru a desena o floare.Marchează-ți, te rog, pe foaia de hârtie punctele care trebuie aprinse pentru a desena această floare. Apoi notează-ți pentru fiecare dintre aceste puncte coordonatele. Tot ce mai trebuie acum pentru a instrui calculatorul nostru virtual să deseneze această floare este să îi dăm comenzile pentru aprinderea fiecărui punct. Te rog să îți notezi pe foaie succesiunea de comenzi rezultată.
 
    



La mine programul rezultat astfel este următorul:
Aprinde(1, 5)
Aprinde(1, 6)
Aprinde(2, 2)
Aprinde(2, 3)
Aprinde(2, 4)
Aprinde(2, 7)
Aprinde(2, 8)
Aprinde(2, 9)
Aprinde(3, 2)
Aprinde(3, 4)
Aprinde(3, 7)
Aprinde(3, 9)
Aprinde(4, 2)
Aprinde(4, 3)
Aprinde(4, 5)
Aprinde(4, 6)
Aprinde(4, 8)
Aprinde(4, 9)
Aprinde(5, 1)
Aprinde(5, 4)
Aprinde(5, 5)
Aprinde(5, 6)
Aprinde(5, 7)
Aprinde(5, 10)
Aprinde(6, 1)
Aprinde(6, 4)
Aprinde(6, 5)
Aprinde(6, 6)
Aprinde(6, 7)
Aprinde(6, 10)
Aprinde(7, 2)
Aprinde(7, 3)
Aprinde(7, 5)
Aprinde(7, 6)
Aprinde(7, 8)
Aprinde(7, 9)
Aprinde(8, 2)
Aprinde(8, 4)
Aprinde(8, 7)
Aprinde(8, 9)
Aprinde(9, 2)
Aprinde(9, 3)
Aprinde(9, 4)
Aprinde(9, 7)
Aprinde(9, 8)
Aprinde(9, 9)
Aprinde(10, 5)
Aprinde(10, 6)    
Poate că programul tău aprinde punctele într-o altă ordine, însă ce e important e faptul că efectul final este același.
Acum haide să vedem cum am putea face că discul din centrul florii să dispară. Evident, va trebui să folosim instrucțiunea Sterge(x, y), unde (x, y) vor fi pe rând coordonatele fiecăruia dintre punctele ce construiesc acel cerc. Notează-ți și acest program, după care te rog să-l compari cu programul listat în continuare:
Sterge(4, 5)
Sterge(4, 6)
Sterge(5, 4)
Sterge(5, 5)
Sterge(5, 6)
Sterge(5, 7)
Sterge(6, 4)
Sterge(6, 5)
Sterge(6, 6)
Sterge(6, 7)
Sterge(7, 5)
Sterge(7, 6)
 
    E simplu, nu? (Este că și cum am avea un robot pe care îl putem programa să deseneze sau să sterga un punct pe o tablă la o poziție indicată.     După cum ai văzut, prin succesiuni de astfel de instrucțiuni simple putem realiza pe acea tablă o mulțime uriașă de desene. (Dacă facem un mic calcul, observăm că putem construi un număr de 2^100 desene distincte. Cel mai probabil, însă, cea mai mare parte dintre aceste desene vor arată doar că niște împrăștieri aleatoare de puncte, fără nicio semnificație.) Practic, singurul lucru care ne limitează este faptul că tabla permite doar 10×10 puncte și doar două culori (stins, și aprins). Însă într-un calculator real aceste limitări nu sunt prezente — ci dispunem de peste 1000000 de puncte și peste 10000000 de culori.)
    Poate că ceea ce ai făcut până aici ți s-a părut o joacă mult prea simplă, și care nu are mare legătură cu ideea de programare a calculatoarelor. Însă te asigur că dacă ai înțeles acesta lecție și ai făcut singur cele două mici “programe” ai făcut un pas uriaș în a înțelege cum se programează un calculator, căci ai înțeles unul dintre conceptele de bază — acela de “instrucțiune”.
    Ce ne-am face, însă, dacă ne-am propune că după ce am desenat această floare să desenăm altceva? Cel mai indicat ar fi că mai întâi să ștergem toate punctele, după care să le aprindem pe cele care compun noul desen. În cazul în care am cunoaște desenul ce a fost afișat anterior am putea, evident, să înlocuim în programul ce l-a generat fiecare instrucțiune de tip Afișează(x, y) cu o intructiune de tip Șterge(x, y).
    Însă hai să ne gândim la o situație mai avansată, în care dintr-un motiv sau altul nu ne rămâne altă soluție decât să ștergem toate punctele de pe ecran înainte de a face noul desen. Ar trebui, așadar, să scriem 100 de instrucțiuni de tip Sterge(x, y). Cam mult de muncă pentru un simplu ecran de 10×10 pixeli, nu? (Nici nu vreau să mă gândesc la cazul unui ecran de 1280×800.)
    Bănuiești deja, sunt convins, că există o soluție mult mai facilă decât cele 100 de instrucțiuni de tip Sterge(x, y). Pentru a o înțelege, însă, este nevoie de conceptul de “variabilă” (care este doar o denumire dată unei mici bucăți dintr-o memorie în care putem scrie și din care putem citi valori). Voi diseca acest concept într-o lecție ulterioară.
Link articol:
https://igotopia.ro/invata-programare-de-la-zero-primul-pas/
Mulțumim, Florin Bîrleanu
 



x
Acest website utilizează cookie-uri pentru a creea o experiență cât mai plăcută. Învață mai multe Acceptă