Cuprins

Lecția 1: Funcții

Astăzi vom învăța ce sunt funcțiile, cum să scriem funcții și la ce ne folosec acestea. Vom folosi noile cunoștințe pentru a crea programe interesante în Khan (animații, joculețe etc.).

Recapitulare șiruri de caractere

Intraţi pe următorul link şi completaţi formularul acesta

Tutorial

Ce este o funcție?

O funcție este o parte separată de cod căreia îi atribuim un nume. Astfel, putem folosi acea parte de cod de mai multe ori fără să o rescriem.

Pe parcursul lecțiilor trecute am folosit funcții care exista deja in Khan (text, fill, rect etc.). Acum le vom explica mai în detaliu, și vom crea funcțiile noastre.

Exemplu

Pentru a desena un dreptunghi avem 2 variante:

Pentru a desena o imagine cu 4 dreptunghiuri ar trebui să folosim 16 linii. Mult mai simplu este să folosim funcția rect de patru ori.

Pentru a testa cele afirmate mai sus, copiați codul din imagine într-un nou program în Khan Academy.

Pentru a desena o linie folosim line care este tot o funcție. Funcția line desenează de fapt o mulțime de puncte care formează linia.

Cum se definește o funcție?

Toate funcțiile se scriu într-un anumit fel pentru a putea fi recunoscute de calculator. Când scriem o funcție se numește că definim o funcție. În Khan funcțiile se definesc astfel:

var primaFunctie = function() {
    fill(255, 0, 0);
    text("hello world", 100, 100);
};

Numele funcției este primaFunctie, iar ce face funcția se află între acolade și se numește corpul funcției.

Exemplu

Mai jos este definită o funcție care desenează un fulg de nea.

Cum se apelează o funcție?

Pentru a folosi o funcție aceasta trebuie apelată (chemată). O funcție poate fi apelată numai după ce a fost declarată. Din această cauză vom declara toate funcțiile la începutul programului.

Apelarea unei funcții se face folosind numele funcției urmat de paranteze și punct și virgula: numeFunctie();.

Exercițiu

Mergeți la exemplul Fulgi de nea de mai sus și sub funcția desenFulg scrieți mai multe apeluri la această funcție.

Când am definit funcția desenFulg am specificat cum se construiește un fulg de nea. Ca să construim fizic (pe spațiul de desen) fulgul de nea am apelat funcția.

Pentru a desena mai mulți fulgi de nea a fost suficient să apelăm funcția de mai multe ori, dar nu am mai rescris codul care construiește un fulg de nea.

Parametrii unei funcții

Parametrii unei funcții reprezintă valori care sunt transmise funcției din afara acesteia. Funcția își va modifica rezultatul în funcție de parametri transmiși.

Funcția ellipse primește patru parametri, primi doi stabilesc pozitia elipsei iar următorii doi dimensiunea acesteia: ellipse(150, 150, 50, 30);

Exercițiu

Funcții care întorc valori

Funcțiile nu se folosesc numai pentru desen. Câteodată dorim ca o funcție să calculeze un rezultat sau să modifice un text. În aceste cazuri o să dorim ca funcția să ne întoarcă un rezultat acolo unde am apelat-o.

Exemplu

Să presupunem că avem mai multe propoziții și dorim să aflăm numărul de vocale din fiecare. Pentru a nu scrie cod care face același lucru de mai multe ori vom folosi o funcție care primește ca parametru o propoziție, apoi calculează și întoarce numărul de vocale din aceasta.

Click pe imagine ca să o puteți vedea la o dimensiune mai mare.

Exercițiu

Modificați codul astfel încât funcția să returneze numărul de consoane din propoziție.

Pentru a întoarce o valoare trebuie să scriem la sfârșitul funcției return ceVremSaIntoarca. Rezultatul va fi întors exact în locul de unde am făcut apelul funcției. O funcție poate întoarce un singur rezultat.

Exerciții

Figuri geometrice custom

* Scrieți o funcție cerc care desenează un cerc în funcție de poziție, rază și culoare. Testați funcția.

* Folosind funcțiile de mai sus creați un desen pe ce temă vreți voi (Exemple: lumea roboților, micul dejun, în parc …). Puteți folosi și funcțiile din Khan, dar folosiți cel puțin două dintre funcțiile scrise de voi.

Zmeie

* Va trebui să scrieți o funcție care să deseneze zmeie ca în desenul de mai jos.

În funcție veți folosi: quad(x1, y1, x2, y2, x3, y3, x4, y4) o data line(x1, y1, x2, y2) de doua ori

Aveți aici un desen cu proprietățile rombului.

Bonus

Construiți o funcție care desenează o bucată dintr-un gard.

Folosiți funcțiile beginShape() și endShape().

Desenați un gard apelând funcția definită într-un loop.

Exerciții pentru acasă

Noaptea: