Dezvoltarea Unei Aplicații Didactice Pentru Laboratorul de Computer Programming
CUPRINS
Capitolul 1: INTRODUCERE
1.1 Contextul
În decursul anilor de facultate am apreciat foarte mult suportul didactic al cursurilor, modul de prezentare și materialele care ne-au fost oferite pentru aprofundarea cunoștințelor. Prezentarea acestora în format electronic ne-a ajutat foarte mult în urmărirea facilă a cursurilor și a explicațiilor. Toate acestea m-au determinat să aleg această temă, “Dezvoltarea unei aplicații didactice pentru laboratorul de Computer Programming”, în speranța că va fi de ajutor celor care vor urma acest curs. Studenții vor avea posibilitatea să consulte materialul de curs și laborator chiar și în afara orelor de laborator. Bineînțeles acest fapt nu presupune o participare pasivă a studentului la curs sau la laborator.
Celor care participă la cursul și laboratorul de Introducere în Programarea Calculatoarelor vor avea ocazia să consulte materialul din cursul și laboratorul curent. Totodată, cei care doresc să parcurgă materia în avans vor putea realiza cu success acest lucru cu ajutorul suportului de curs și de laborator oferit. Odată terminat cursul și laboratorul, studentul va avea posibilitatea să recapituleze materia parcursă pe perioada semestrului, pregătindu-se astfel pentru examenul semestrial și nu numai.
Materialele în format electronic ajută studentul să își îndrepte atenția înspre partea explicativă sau practică a cursului, respectiv a loboratorului, fară a mai fi nevoit să noteze tot ceea ce se discută la curs, deoarece suportul teoretic îl va regăsi în materialele oferite. În același timp, cursanții au posibilitatea să acceseze materialele ori de câte ori au nevoie, chiar și în afara orelor din programul de studiu. Suportul electronic oferit are o mare utilitate în pregatirea materiei în vederea susținerii examenelor finale de către fiecare student în parte.
În concluzie, studenții care vor participa la laboratorul de “Programarea Calculatoarelor” vor accesa cu mare ușurință toate materialele necesare înțelegerii și pregătirii acestui laborator.
1.2 Conturarea domeniului exact al temei
Cei care vor urma acest curs vor avea posibilitatea de a invăța noțiuni de bază despre informatică și despre programarea structurată. De asemenea, cursul se adresează și celor care deja au noțiuni de bază, acesția urmând să aprofundeze si să structureze informațiile. Participarea la acest curs ajută studentul să învețe noțiuni fundamentale despre informatică și despre programarea calculatoarelor utilizând limbajul C.
Infomația are o largă diversitate fiind corelată îndeaproape cu: control, date, comunicare, instrucțiuni, bază de cunoștinte, înțelegere, percepție, reprezentare și pattern-uri. În lumea calculatoarelor, datele și bazele de cunoștințe nu reprezintă adevarata definiție a informației; acestea sunt direct corelate cu informația. Datele reprezintă partea brută; informațiile sunt datele procesate; cunoștințele sunt informații cu înțelesuri speciale – informații interpretate.
Informațiile caracterizează un obiect al cunoașterii. Pentru a descrie corect un obiect(sau un fenomen), ele trebuie sa fie: consistente(suficient de cuprinzătoare si necontradictorii), relevante(să furnizeze cunoștiințele de care avem nevoie), exacte(să constituie o reflectare reala a obiectului/ fenomenului), oportune(să fie furnizate în timp util) și să fie accesibile subiectului. Un ansamblu de informații trebuie să fie neredundant, adică să nu fie furnizată aceeași informație de mai multe ori.
În informatică se consideră că o informație este o dată căreia i se va atribui o anumită semnificație și un nume(atribut de dată). Informațiile sunt importante mai ales în masura în care sunt prelucrate – în informatică prelucrarea lor se realizează automat, cu ajutorul calculatorului. Se poate spune că informatica este știința prelucrării raționale(de către om), cu ajutorul calculatorului, a informațiilor reprezentănd cunștințe din diverse domenii.
Informatica studiază structura, comportamentul și interacțiunea sistemelor naturale și artificiale care pastrează, procesează si schimbă informații. De la apariția calculatoarelor, atât individual cât și în organizații se procesează informații. Informatica are atât aspect tehnologic cât și cognitiv social.
Comunicarea este foarte importantă atăt intre personae – limbaj – cât și între persoană și calculator – limbaj de programare. Limbajul de programare este utilizat pentru a da instrucțiuni calculatorului pentru a realize diverse operațiuni. Ca și limbajul interuman, limbajul de programare are cuvinte, propoziții si reguli sintactice bine definite. Propozițiile sunt structurate astfel încât să se realizeze un program responsabil pentru comunicarea între persoană și calculator.
Programarea structurată este un stil de programare apărut în urma experienței primilor ani de activitate. Ea cere respectarea unei discipline de programare și folosirea riguroasă a câtorva structuri de calcul. Ca rezultat se va ajunge la un algoritm ușor de urmărit, clar și corect.
Termenul programare este folosit aici în sens larg și nu este identic cu cel de programare propriu-zisă. Este vorba de întreaga activitate depusă pentru obținerea unui program, deci atât proiectarea algoritmului căt si traducerea acestuia în limbajul de programare ales.
Programarea este dispunerea cronologică a unor mișcări, operații, acțiuni sau activități astfel încât în finalul perioadei să se realizeze o stare posibilă a unui system. Programarea este cunoscută ca activitate umană, dar există semnalmente că pot exista forme de programare naturale, fără intervenția omului, cum sunt dispunerile proceselor genetice sau comportamentale dirijate instinctual la animale.
Programarea informatică este o activitate informatică de elaborare a produselor-program, a programelor(software) necesare activităților realizate cu ajutorul calculatorului. Programarea informatică conține următoarele activități: specificarea, proiectarea, implementarea, documentarea și întreținerea produsului program.
Un algoritm(cuvantul are la origine numele matematicianului persan Al-Khwarizmi) înseamnă în matematică și informatică o metodă sau o procedură de calcul, alcătuită din pașii elementari necesari pentru rezolvarea unei probleme sau categorii de probleme. De obicei algoritmii se implementează în mod concret prin programarea adecvată a unui calculator, sau chiar și a mai multora. Din diverse motive există și algoritmi încă neimplementați, teoretici. Algoritmul este noțiunea fundamentală a informaticii. Totul este construit în jurul algoritmilor și al structurilor de date, cum ar fi listele sau grafurile). Cele mai importante proprietăți ale unui algoritm, îndeplinite de diversi algoritmi într-o măsură mai mare sau mai mica, sunt următoarele: corectitudinea (proprietatea algoritmului de a furniza o soluție corectă a problemei date), caracterul univoc sau determinist (rezultatul este unic, sau altfel spus, repetarea execuției algoritmului duce întotdeauna la același rezultat), generalitatea (proprietatea unui algoritm de a rezolva o clasă sau o categorie de probleme și nu doar o singură problemă particulară), claritatea (proprietatea algoritmului de a descrie cu exactitate și fără ambiguități pașii care trebuiesc parcurși în rezolvarea problemei), verificabilitatea (acea proprietate a algoritmilor care permite ca fiecare pas să poată fi verificat într-un timp rezonabil de catre om), optimalitatea (proprietatea unui algoritm de a se finaliza dupa un număr minim de pași), finititudinea (proprietatea algoritmului de a se finaliza într-un număr finit de pași), eficiența (proprietatea unui algoritm de a se finaliza nu numai într-un număr finit, ci și rezonabil de pași, chiar dacă acesta nu este cel mai mic posibil – nu este optim), existența unei intrări (date de prelucrat), existența unei ieșiri (rezultatele).
Bohm si Jacopini au demonstrate că orice algoritm poate fi compus din numai trei structuri de calcul: structura secvențială, structura repetitivă și structura alternativă. Knuth considera programarea structurată ca fiind un mijloc de a face produsele program mai ușor de citit. De asemenea, programarea structurată este definită ca fiind programarea în care abordarea este top-down, iar în proiectarea algoritmilor se folosesc cele trei structuri de calcul definite de Bohm – Jacopini
Alți autori consideră programarea structurată nu ca o simplă metodă de programare ci ansamblul tuturor metodelor de programare cunoscute. Dar programarea modulară, programarea top-down, sau botton-up(ascendentă sau descendentă) au apărut înaintea programării structurate. Important este faptul că programarea structurată presupune o disciplină în activitatea de programare.
Un program pe computer reprezintă un set de instrucțiuni prin care se comunică unui calculator cum să efectueze un anumit grup de operații. Acestea se numesc cod sau 'sursă'. Această compunere de instructiuni este scrisă de un programator. De obicei persoana care scrie programul folosește fie un editor text (pentru un program simplu), fie un mediu integrat de dezvoltare. Multe limbaje de programare utilizează sursa scrisă de o persoană ca să creeze un format inteligibil de către calculator. Acest proces de transformare al codului înțeles de oameni în limbaj binar se numește compilare. Un program eficient trebuie să implementeze un algoritm eficient. Etapele pentru creearea eficientă a unui algoritm sunt următoarele:
Fig 1.1 Etapele pentru creearea eficientă a unui algoritm
Una din marile paradigme ale programării este programarea structurată. Există trei moduri de realizare a unui program, astfel încât să se poată defini orice funcție: secvențial, prin selecție sau iterativ.
Structurile de control reprezintă componentele programării structurate. Pentru a înțelege bine această noțiune, în programarea strcturată este interzisă folosirea instrucțiunii gen Go To, care face un salt de la o linie de cod la alta. Aceste salturi există – nu se poate fără ele – însă într-o forma organizată, structurată. De aici și denumirea de programare structurată.
Un algoritm este o metodă de rezolvare a unei probleme printr-o succesiune de operații simple. Numărul de operații este de obicei foarte mare, dar finit. Spre deosebire de aplicarea unor formule de calcul, un algoritm conține operații executate condiționat, numai pentru anumite date, și operații repetate de un număr de ori, în funcție de datele problemei. Exemplul clasic este algoritmul lui Euclid pentru determinarea celui mai mare divizor comun a doi întregi, care nu poate fi exprimat sub forma unei expresii(formule). Tipic pentru un algoritm este faptul că anumite operații se execută condiționat(în funcție de valorile datelor inițiale), iar alte operații se execută în mod repetat(iar numărul de repetări poate depinde de datele inițiale). Practic nu există un program fără decizii și cicluri, deci un program în care să se execute mereu aceleași operații, în aceeași ordine, indiferent de datele inițiale. Altfel spus, anumite operații dintr-un program pot să nu fie executate de loc sau să fie executate de un număr de ori, funcție de datele inițiale. Algoritmii mai simpli pot fi exprimați direct într-un limbaj de programare, dar pentru un algoritm mai complex se practică descrierea algoritmului fie sub formã grafică(organigrame sau scheme logice), fie folosind un “pseudocod”, ca un text intermediar între limbajul natural și un limbaj de programare. Un pseudocod are reguli mai puține și descrie numai operațiile de prelucrare(nu și variabilele folosite). Nu există un pseudocod standardizat sau unanim acceptat. Descrierea unor prelucrări în pseudocod se poate face la diferite niveluri de detaliere.
Un program este o descriere precisă și concisă a unui algoritm într-un limbaj de programare. Un program are un caracter general și de aceea are nevoie de date inițiale(diferite de la o utilizare la alta a programului), date care particularizează programul pentru o situație concretă.
Scrierea unui program într-un limbaj de programare este doar primul pas dintr-un proces care mai cuprinde și alți pași. Mai corect ar fi să spunem scrierea unei versiuni inițiale a programului, pentru că întotdeauna această formă inițială este corectată, modificată sau extinsă pentru eliminarea unor erori, pentru satisfacerea unor noi cerințe sau pentru îmbunătățirea performanțelor în execuție. Un program scris într-un limbaj independent de mașină(C, Pascal, s.a.) trebuie mai întâi tradus de către un program translator sau compilator. Compilatorul citește și analizează un text sursă(de exemplu în limbajul C) și produce un modul obiect(scris într-un fișier), dacă nu s-au găsit erori în textul sursă. Pentru programele mari este uzual ca textul sursă să fie format din mai multe fișiere sursă, care să poată fi scrise, compilate, verificate și modificate
separat de celelalte fișiere sursă.
Limbajul C s-a impus în principal datorită existenței unui standard care conține toate facilitățile necesare unui limbaj pentru a putea fi folosit într-o mare diversitate de aplicații, fără a fi necesare abateri sau extinderi față de standard(cazul limbajului Pascal). Un exemplu este recunoașterea posibilității ca un program să fie format din mai multe fișiere sursă și a compilării lor separate, inclusiv referiri dintr-un fișier în altul. În plus, există un număr relativ mare de funcții uzuale care fac parte din standardul limbajului și care contribuie la portabilitatea programelor C.
Limbajul C permite scrierea unor programe foarte compacte, ceea ce poate fi un avantaj dar și un dezavantaj, atunci când programele devin criptice și greu de înțeles. Scurtarea programelor C s-a obținut prin reducerea numărului de cuvinte cheie, prin existența unui număr mare de operatori exprimați prin unul sau prin două caractere speciale dar și prin posibilitatea de a combina mai mulți operatori și expresii într-o singură instructiune(acolo unde alte limbaje folosesc mai multe instrucțiuni pentru a obține același efect).
Pentru a rezolva o problemă este necesară urmarea a trei etape. Prima etapă presupune analizarea problemei – stabilirea cu exactitate a cerințelor. În a doua etapă se seprezintă problema astfel încât calculatorul sa poată oferi o soluție. Ultima etapa o constituie implementarea – scrierea unui program care va rezolva problema(într-un limbaj de programare adecvat).
Fig 1.2 Etapele rezolvării unei probleme
1.3 Tema propriu-zisă
Acest proiect presupune realizarea unei aplicații didactice, suport de curs și de laborator, în cadrul căreia să se explice în mod grafic mecanismele programării în C. Dat fiind faptul că acest curs este în limba engleză, toate explicațiile trebuie scrise în engleză. Se dorește ca produsul final sa fie integrat într-o pagină web.
Aplicația presupune implementarea în mod grafic a celor zece laboratoare ale cursului de Programarea Calculatoarelor. În prima etapă se va implementa pagina de start a aplicației , care va cuprinde titlul fiecarei lucrări și o legatură între prima pagina și fiecare laborator în parte. În urmatoarele etape vor fi implementate laboratoarele propriu-zise. Acestea sunt formate dintr-o parte introductivă – teoretică – in care sunt prezentate, pe scurt, noțiunile de bază necesare unei bune înțelegeri a parții aplicative integrate în respectivul modul.
Pentru laboratoarele introductive se pune accentul pe partea teoretică, aceasta fiind prezentată și explicată în mod grafic. În încheierea fiecarui laborator teoretic sunt prezentate exemple concrete în care sunt utilizate noțiunile prezentate inițial. Vor fi alese exemple concludente și relevante pentru fiecare modul în parte.
În cadrul laboratoare în care accentul se pune pe partea practică se va implementa o interfață cu utilizatorul. Astfel, se vor prezenta exemple din cadrul laboratorului, utilizatorul avand posibilitatea de a stabili datele de intrare ale fiecărui exemplu în parte, putând astfel obține datele de ieșire conforme cu parametrii introduși. Utilizatorul va putea în acest mod testa fiecare exemplu în parte fără a fi necesar să aibe un compilator C.
Aplicație va fi realizată astfel încât trecerea de la un laborator la altul să se poată face numai din cadrul paginii principale. Accesarea primei pagini se va putea face, indiferent de punctul în care utilizatorul se află la un moment dat, prin apăsarea unui buton care permite întoarcearea la începutul aplicației.
Pentru parcurgerea unui laborator se vor implementa butoane de tip “Next” și “Back”, fiecare din acestea oferind posibilitatea utilizatorului să parcurgă fiecare modul pas cu pas.
Capitolul 2: FUNDAMENTARE TEORETICĂ
Având în vedere că se dorește suprotului de curs și de laborator într-un mod grafic, am ales să utilezez programul de grafică Macromedia Flash MX Professional 2004. Macromedia Flash este o aplicație standard pentru dezvoltarea animatiilor web. Permite realizarea de animații, efecte pentru textile utilizate, chiar și a aplicațiilor web interactive complexe. Macromedia Flash se imbunătațeste constant. La început a fost utilizat mai mult ca utilizar pentru animații, dar a evoluat intr-un utilitar mult mai complex. Ultima versiune oferta posibilitatea realizării unei întregi pagini web într-un mod rapid și eficient.
Macromedia Flash MX Professional 2004 este o aplicație multimedia cu ajutorul căreia designerii web și programatorii au posibilitatea de a crea aplicații, animații și site-uri web atractive și bogate în conținut. Astfel de aplicații pot fi create prin integrarea imaginilor, desenelor, clipurilor audio, clipurilor video si a textului. Fișierele publicate din Flash pot fi publicate în diferite sisteme de calcul, dispozitive portabile, televizoare și chiar televizor. Flash Player poate fi instalat în majoritatea sistemelor de calcul actuale, facând posibilă vizualizarea aplicațiilor Flash de către majoritatea utilizatorilor paginilor web. Flash MX 2004 conține o mare varietate de instrumente cu ajutorul cărora se pot crea aplicații similare prin adaugarea unor scriptul ActionScript(limbajul de programare utilizat de Flash).
Pentru că în momentul de față toate browser-ele au incorporate Macromedia Flash player în pachetul de bază, utilizarea Flash-ului în paginile web a devenit aproape la fel de utilizat ca și paginile în format HTML. Un număr tot mai mare site-uri utilizează atât Flash cât și HTML pentru a adăuga animații, sunete și aplicații video la aplicațiile care altfel ar fi fost statice sau foarte puțin interactive.
Programul Macromedia Flash a fost conceput și utilizat ca software de desenat. În timp, programul a evoluat și a devenit un program de animație, care poate fi utilizat și ca program de desenare.
În momentul pornirii aplicației, fereastra arată ca în figura de mai jos:
Fig. 2.1 Mediul de dezvoltare Flash
Scena (Stage area) – 1 – zona în care conținutul vizibil al aplicației trebuie să fie plasat.
Zona de lucru (Work area) – 2 – zona în care se vor plasa obiecte care nu vor fi vizibile din aplicația finală. Poate fi utilizată pentru punctul de început sau final al unei animatii. Zona de lucru poate fi de asemenea utilizată pentru plasarea elementelor ajutătoare în dezvoltarea proiectului.
Straturi (Layers) – 3 – conținutul unei aplicații e in general plasat în straturi care pot fi stivuite și organizate în directoare.
Zona de timp (Timeline) – 4 – zona în care se derulează acțiunea aplicației.
Zona de panouri (Panels area) – 5 – in Flash, panourile pot fi grupate, ascunse sau minimizate, fiind toate accesibile meniul principal.
Zona de proprietăți (Property inspector) – 6 – inspectorul de proprietăti este o unealtă contextuală care modifică în concordanță cu selecția curentă.
Bara de unelte (Toolbar) – 7 – bara de unelte conține toate uneltele necesare dezvoltării unei aplicații. Acestea sunt împărțite în 5 categorii: unelte de selecție, unelte pentru desenare, unelte pentru modificări, selectarea culorilor și opțiuni pentru unelte contextuale.
Pentru editarea imaginilor utilizare în aplicația prezentată am utilizat Macromedia Fireworks. Este o aplicație profesională destinată aplicațiilor grafice. Inițial a fost dezvoltat de Macromedia si era destinată în principal designerilor web. Este conceput astfel încât sa poată interacționa cu ușurință cu alte produse ale Macromedia, cum ar fi Adobe Dreamweaver sau Adobe Flash. Este disponibil atât ca aplicație de sine stătătoare cât și împreună cu alte aplicații.
Adobe Creative Suite 3 Web Premium este soluția completă pentru crearea unor site-uri web interactive, aplicații, interfețe ale utilizatorului, prezentări, conținut pentru dispozitivele mobile și a altor experiențe în sfera digitală. Obțineți tot ce vă interesează pentru a realiza prototipul proiectului dorit, elemente de tip “asset” pentru design, pentru a construi experiențe web deosebite si pentru a vă ocupa eficient de întreținerea și actualizarea conținutului. Apoi dați viață proiectului cu Adobe Dreamweaver CS3 și Adobe Flash CS3 Professional, instrumente de top din domeniul designului web și dezvoltării. Cu Adobe Acrobat 8 Professioanl se pot folosi rapid, în comun, ideile de design și se poate colecta feedback-ul de la colegi și clienți și, în final, se paote realiza întreținerea proiectului utilizând Adobe Contribute CS3. [web 5]
Fireworks este o aplicație pentru crearea, editarea și optimizarea graficii web. Se pot crea și edita atât imagini de tip bitmap și imagini vectoriale, efecte pentru designul web cum ar fi meniuri de tip pop-up, optimizarea graficii pentru reducerea mărimii fișierelor, optimizarea timpului prin automatizarea task-urilor repetitive. Documentul final poate fi exportat sau salvat în format JPEG, GIF sau ca fișier de alt tip – împreuna cu fișiere HTML – pentru a putea fi utilizate în aplicații web. De asemenea, se poat exporta fișierele și către un alt program, cum ar fi Adobe Photoshop sau Adobe Flash dacă se dorește utilizarea acestora în continuare.
ActionScript este un limbaj folosit în principal pentru dezvoltarea de site-uri web și software prin generarea fișierelor cu extensia .swf ce rulează în Adobe Flash Player. A fost dezvoltat inițial de compania Macromedia. Limbajul de programare are la bază standardul ECMAScript, fiind un limbaj simplu de învățat și înteles.
Pentru dezvoltarea aplicației de față s-a utilizat ActionScript 2.0. Acesta este un limbaj îmbunătațit, suportând și dezvoltare POO. Această versiune a limbajului poate compila și scripturi scrise în ActionScript 1.0. Cu noua versiune a limbajului, codul/ aplicația poate avea o arhitectură mai complexă și mult mai bine organizată. POO-ul în ActionScript este o aliniere la noile standarde în programare.
Fig. 2.2 Exemplu de utilizare a ActionScript 2.0 folosind Macromedia Flash 8
Majoritatea dezavantajelor utilizarii Flash-ului sunt legate de faptul că programatorii nu structurează în mod corect aplicația, moment în care aceasta se încarcă încet și este dificil de utilizat.
Avantajul utilizării ActionScript-ului este compatibilitatea cu majoritatea web browser-elor deoarece platforma Flash este universală și nu există inconsistență de modele cum sunt cele din JavaScript. De asemenea, Animațiile și formele non-dreptunghiulare sunt doua lucruri pe care Flash-ul le tratează foarte bine nativ pentru a obține o interfață cu utilizatorul foarte ușor.
Pentru a crea un nou fișier Flash, după pornirea aplicației, la apariția paginii de start a Macromedia Flash este necesară apăsarea pur și simplu a butonului “Flash Document” din coloana Create New, cum este arătat și în imaginea de mai jos:
Fig. 2.3 Pagina de start a Macromedia Flash MX Professional 2004
De asemenea, pentru a crea un nou document Flash se poate utiliza și meniul, selectând secțiunea File, după care New.
După crearea unui nou document Flash vor trebui setate proprietățile acestuia. Acest lucru se poate realiza prin deschiderea inspectorului de proprietăți (prin selectarea Window > Proprerties). Odată selectată scena de lucru, se poate utiliza inspectorul de proprietăți pentru a seta dimensiunea, rata frame-urilor, culoarea de fundal a întregului document. Dimensiunea scenei va fi dimensiunea filmului Flash în momentul când acesta va fi incorporate intr-o pagină HTML.
Fig. 2.4 Inspectorul de proprietăți – setări standard
În Flash, scenele sunt filme Flash independente, componente ale filmului final. Acestea permit lucrul cu timpi diferiți fără a influența într-un fel sau altul documentul inițial și fără a concatena alte documente de tip .swf deja existente. Se poate trece de la o scenă la alta fie utilizând ActionScript sau prin acțiune directă. La crearea unui fișier nou există doar o singură scenă, dar se pot adăuga scene noi. Pentru a crea o scenă nou se selectează Window > Design Panels > Scene.
Fig. 2.5 Panou pentru adăugarea/modificarea scenelor
Pentru realizarea unui film Flash se utilizează panoul Timeline. Panoul Timeline este zona în care se lucrează cu straturi (layers) și cadre (frame) pentru adăugarea de conținut și animație filmului.
Un film Flash este o coleție de frame-uri, timeline-ul fiind zona unde se pot configura aceste cadre. Principiul după care se poate realiza acest lucru este cel al unui desen animat, unde cu un număr de desene statice miscate în același timp foarte repede se obține o iluzie de mișcare.
Începutul secțiunii de rulare a filmului
Frame
Frame-uri pe secundă
Frame-ul curent Lungimea curentă a filmului
în secunde
Fig. 2.6 Timeline – descriere
Frame-ul curent indică numărul cadrului ale cărui elemente sunt direct vizibile în scenă și este poziția curentă de unde va începe rularea filmului. Deci, ceea ce este vizibil într-o scenă în momentul în care un film nu rulează este cadrul curent.
Frame-uri pe secundă (fps) reprezintă numărul de cadre pe care filmul le va rula într-o secundă atunci când filmul nu rulează. În momentul în care filmul rulează, dinamicitatea sa indică de fapt vizteza de rulare efectivă. Numărul de frame-uri pe secundă și viteza efectivă a filmului pot diferi foarte mult, acest lucru fiind influențat și de procesorul utilizat.
Lungimea curentă a filmului în secunde reprezintă de fapt timpul dintre primul frame al fimului și frame-ul current, fiind influențată de poziția de început a rulării filmului.
Începutul secțiunii de rulare a filmului permite selectarea cadrului de la care să înceapă filmul. Se poate vizualiza filmul și prin mutarea acestuia de-a lungul timeline-ului.
Straturile (layers) sunt modul de organizare a unui film. Cu ajutorul layer-elor proiectul va avea un aspect structrurat, fiind în același timp ușor de realizat. Crearea și configurarea unui layer nou este relativ facilă. Vom trata în continuare următoarele aspecte ale configurării unui layer: modificarea numelui unui layer, cum să arătăm/ascundem un layer, blocarea unui layer, adăugarea, respectiv ștergerea unui layer.
Nume unui layer: după cum se poate observa și în figura de mai jos, tabloul de straturi este poziționat direct în interfață. Numele stratului este cel din chenarul roșul care încadrează “Layer 1”. Standard, acesta este numele unui layer, numărul fiind adăugat secvențial, odată cu introducerea de noi straturi în document. Pentru simplificarea este indicată denumirea fiecărui layer din tabloul de straturi. Acesta se face prin dublu click pe numele layer-ului, după care se tipărește pur și simplu denumirea dorită, urmată de apăsarea tastei “<Enter>”.
Fig. 2.7 Redenumirea și ascunderea straturilor
Ascunderea/ arătarea layer-ului. Scopul acestui buton (ochiul) este de a ascunde sau de a arăta conținutul unui layer. Este de folos atunci când se lucrează cu multe straturi, ajutând astfel la înlaturarea fundalului sau a aceea ce este peste conținului present. Atunci când ochiul este evidențiat, stratul este ascuns și vice versa.
Blocarea layer-ului este de asemenea un mod foarte eficient de a lucra cu straturi. Atunci când se lucrează cu foarte multe straturi, utilizatorul poate accidental să modifice un alt strat decât cel dorit. Acest aspect nedorit este înlaturat prin blocarea layer-elor.
Adăugarea de noi layer-e este utilă atunci când se dorește ca un film să arate mai complicat, fără ca aceasta să fie foarte complicată din punct de vedere a structurii. Adăugarea unui nou layer este facilă, aceasta realizându-se printr-un simplu click. În mod automat acesta va fi adăugat deasupra celui current.
În Flash există trei tipuri de Textbox-uri: Static, Input și Dinamic (Dynamic). Textele statice (Static) sunt utilizate pentru titluri, etichete sau alte texte care apar în document ca fiind standarde. Textele de tip input sunt folosite pentru a crea o oarecare interactivitate, cum ar fi scrierea unor nume de utilizator sau alte informații utilizate în documentul respectiv. Al treilea tip de text este cel dynamic, utilizat pentru afișarea textelor care se modifică în decursul rulării filmului realizat.
Pentru realizarea unui Textbox este suficientă trasarea unui chenar cu ajutorul uneltei pentru texte. Aceasta se găsește în bara din stânga a ferestrei. Selectarea unui tip sau altul pentru Textbox se face din panoul de proprietăți, descris în figura de mai jos:
Fig. 2.8 Textbox static – panoul de proprietăți
Textboxul static reprezintă un dreptunghi care poate fi modificat din colțul dreapta sus. Proprietățile unui textbox, cum ar fi font-ul, dimensiunea font-ului, tipul font-ului, culoarea acestuia, alinierea etc. pot fi modificate din inspectorul de proprietăți, după cum se poate observa și în figura de mai sus. Texboxurile care se dimensionează în funcție de lungimea textului se realizează printr-un simplu click în scena de lucru, după care se începe scrierea în acel textboxt. Dimensionarea acestora ulterior se face utilizănd cercul din partea dreaptă sus.
Textboxul de tip input are un dreptunghi în partea dreapta jos care poate fi utilizat pentru dimensionarea ulterioară a textboxului. Pe lângă proprietățile care se gasesc și la textele de tip static se mai găsesc opțiuni cum ar fi dispunerea într-o singură linie a textului, încadrarea textului pentru a oferi o delimitare vizibilă a acestuia. De asemenea se poate asigna un nume de variabilă acestui câmp pentru a reține ulterior conținutul acestuia. Panul de prorietăți al unui textbox de tip input arată ca în figura de mai jos:
Fig. 2.9 Textbox input – panoul de proprietăți
Un text de tip dinamic sau input este o instanță a unui obiect de tip TextField în ActionScript. În momentul realizării unui câmp de tip text i se poate atribui un nume din inspectorul de proprietăți. Acel nume se poate utiliza ulterior în programarea ActionScript pentru a modifica sau pentru a formata conținutul acelui textbox, utilizând obiecte de tip TextField si TextFormat.
Obiectul de tip TextField are aceleași proprietăți ca și un obiect de tip MovieClip și proprietăți care să permită setări, selectări și lucrul cu acel text. Obiectul de tip TextFormat permite setarea de valori pentru caractere și paragrafe ale textului. Se pot utiliza aceste obiecte predefinite direct din ActionScript în loc de a le modifica din inspectorul de proprietăți pentru a modifica setări ale câmpului text.
De asemenea, se poate utiliza numele unui câmp sau numele unei instanțe pentru a atribui conținutului un text care conținele elemente HTML.
Dacă se atribuie o variabilă unui câmp de tip text, câmpul text va afișa valoarea acelei variabile. Se poate utiliza ActionScript pentru a transmite variabila unui alt modul al aplicației, spre o aplicație de tip server pentru a fi reținută într-o bază de date și așa mai departe. De asemenea, se poate înlocui valoarea variabilei prin citirea de la o aplicației de tip server sau prin încarcarea acesteia dintr-un alt modul al aplicației curente.
Pentru crearea unui câmp nou de tip text se poate utiliza metoda createTextField a obiectului MovieClip. Câmpul creat va fi o instanță a clipului care apelează această metodă. Dacă se dorește ștergerea unui câmp text care a fost creat cu createTextField se utilizează removeTextField. Medota aceasta nu funcționează pe un camp creat în mod manual în Timeline.
C este un limbaj de programare relativ minimalist ce operează în strânsă legătură cu hardware-ul, fiind cel mai apropiat de limbajul de asamblare față de marea majoritate a celorlalte limbaje de programare. Întradevăr, C este prezentat uneori ca "asamblor portabil", făcându-se astfel diferențele principale față de limbajele de asamblare: codul unui program C poate fi compilat și rulat pe aproape orice tip de mașină, în comparație cu alte limbaje de programare, în timp ce limbajele de asamblare sunt specifice unui model specific de mașină. Limbajul C este plasat în clasa limbajelor de nivel scăzut sau de nivel mediu, indicând cât de strânsă este legătura de interoperabilitate cu echipamentul hardware.
Nu este un accident; C a fost creat având un scop important: de a face ca programele mari să poată fi scrise mai ușor și cu mai puține erori în paradigma programării procedurale, dar fără a pune un obstacol în scrierea compilatorului de C, care este încărcat de caracteristicile complexe ale limbajului. În concluzie, C are urmatoarele caracteristici importante:
Este un limbaj de bază simplu, cu importante funcționalități cum ar fi funcțiile matematice sau cele de manipulare ale fișierelor
Este focalizat pe paradigma programării procedurale, care facilitează programarea într-un mod structurat
Utilizează un set simplu de tipuri de date ce previne multe operații neintenționate
Folosește un limbaj preprocesor, preprocesorul C, pentru sarcini cum ar fi definirea de macrouri și includerea mai multor fișiere sursă
Permite accesarea la nivel scăzut a memoriei calculatorului prin utilizarea pointerilor
Permite folosirea parametrilor care sunt pasați funcțiilor prin valoare, și nu prin referință
Pointeri la funcții, ce permit forme rudimentare de closure și polimorfism
Declarea variabilelor
Strucuri de date sau tipuri de date agregate definite de utilizator (struct) ce permite ca date înrudite să fie combinate și manipulate ca un întreg
Printre caracteristicile ce lipsesc în C dar care pot fi regăsite în alte limbaje de programare se enumeră:
Un sistem automat de colectare a reziduurilor
Clasele și obiectele (programarea orientată pe obiecte)
Un sistem avansat de tipuri de date
Programarea generică
Supraîncărcarea
Metaprogramarea
Suport nativ pentru programarea multifir și funcțiile de rețea
Procesarea listelor
Deși lista minusurilor limbajului C este destul de lungă, aceasta nu reprezintă un dezavantaj important pentru a face limbajul C să nu fie acceptat în practică, deoarece permite ca noi compilatoare să poată fi scrise pe noi tipuri de platforme și pentru că permite programatorului să țină bine sub control programul pe care îl scrie. Acesta este unul din motivele care face ca un cod scris în C să fie mult mai eficient decât dacă ar fi scris în alte limbaje de programare. În mod normal numai un cod scris într-un limbaj de asamblare, cu foarte mare grijă să poată fi mai performant, deoarece are control integral asupra mașinii, dar performanța avansată a compilatoarelor, combinată cu complexitatea noilor tipuri de procesoare, au făcut ca limbajul C să fie preferat și să fie acceptat din ce în ce mai mult de programatori.
Una din consecințele acceptării și eficienței C-ului este acela că multe compilatoare, biblioteci și interpretoare ale limbajelor de nivel înalt sunt adesea implementate în C.
Etapa inițială de dezvoltare a limbajului de programare C a avut loc în cadrul laboratoarelor AT&T Bell între anii 1969 și 1973. După spusele lui Dennis Ritchie, cea mai creativă perioadă a avut loc în1972. A fost denumit „C“ deoarece multe din caracteristicile sale au fost derivate din limbajul de programare „B“.
Sunt multe legende despre originea limbajului C și legătura sa cu sistemul de operare Unix, cum ar fi:
Dezvoltarea limbajului C a fost rezultatul dorinței programatorilor de a juca un joc de tipul Asteroids. Aceștia îl jucau pe calculatorul principal al companiei, dar din lipsa de resurse și datorită faptului că acesta trebuia să suporte mai mult de 100 de utilizatori, Thompson și Ritchie, nemulțumiți de controlul pe care îl aveau asupra navei în încercarea de a evita asteroizii, au decis să porteze jocul pe un PDP-7, nefolosit, din birou. Dar această mașină nu avea un sistem de operare, așa că au hotărât să scrie unul. Au decis ca eventual să porteze acest sistem de operare pe mașinile PDP-11 pe care aceștia le foloseau în birou, dar era o muncă destul de dificilă având în vedere că totul era scris în limbaj de asamblare. Așa că au decis să folosească un limbaj portabil de nivel înalt astfel încât sistemul de operare să poată fi portat cu ușurință de pe un computer pe altul. Au încercat folosind limbajul de programare B, dar îi lipseau unele din funcționalitățile care ar fi făcut facilă folosirea unor caracteristici avansate a mașinii PDP-11. Astfel, a apărut un nou limbaj de programare, numit C.
Justificarea pentru obținerea primului computer care a fost utilizat pentru dezvoltarea sistemului de operare Unix a fost acela de a crea un sistem pentru a automatiza completarea autorizațiilor. Prima versiune a sistemului de operare Unix a fost scrisă în limbaj de asamblare. Mai târziu, limbajul de programare C a fost folosit pentru a rescrie sitemul de operare.
Începând cu anul 1973, limbajul de programare C a devenit destul de robust, astfel încât mare parte a kernelului Unix, scris inițial în limbaj de asamblare pentru PDP 11/20, a fost rescris în C. Acesta a fost unul din primele kernele ale unui sistem de operare scris într-un limbaj de programare, altul decât limbajul de asamblare. Încercări anterioare au fost pentru scrierea sistemului Multics (scris în PL/I) și TRIPOS (scris în BCPL).
Începând cu anul 1973, limbajul de programare C a devenit destul de robust, astfel încât mare parte a kernelului Unix, scris inițial în limbaj de asamblare pentru PDP 11/20, a fost rescris în C. Acesta a fost unul din primele kernele ale unui sistem de operare scris într-un limbaj de programare, altul decât limbajul de asamblare. Încercări anterioare au fost pentru scrierea sistemului Multics (scris în PL/I) și TRIPOS (scris în BCPL).
În 1978, Dennis Rithie și Brian Kernighan au publicat prima ediție a cărții Limbajul de programare C (eng. The C Programming Language). Această carte, cunoscută în cercul programatorilor sub numele K&R, a servit pentru mulți ani ca un mijloc de informare asupra specificațiilor limbajului C. Versiunea limbajului C descrisă este cunoscută sub numele K&R C.
K&R aduce în discuție următoarele caracteristici ale limbajului:
Tipul de dată struct
Tipul de dată long int
Tipul de dată unsigned int
Operatorul =+ a fost schimbat în +=, precum și ceilalți operatori înrudiți (=+ producea confuzii analizorului lexical al compilatorului limbajului C; de exemplu: i += 10 comparat cu i = +10)
K&R C este adesea considerat limbajul de bază pe care orice compilator C trebuie să-l suporte. Pentru mulți ani, chiar și după introducerea standardului ANSI C, a fost considerat ca fiind „cel mai mic numitor comun“ pe care programatorii în C trebuie să-l respecte atunci când se vorbește de portabiliitate maximă, deoarece nu toate compilatoarele sunt scrise încă să suporte standardul ANSI C, iar o secvență de cod scrisă în K&R C respectă și ANSI C.
În primele versiuni C, numai funcțiile care returnau o valoare non-integer trebuiau să fie definite sau declarate înainte de folosire. Despre o funcție folosită fără ca aceasta să fi fost declarată în prealabil se presupunea că întoarce un întreg. Parametrii funcțiilor nu erau verificați după tip, totuși unele compilatoare afișau un mesaj de atenționare dacă o funcție era apelată cu un număr greșit de argumente.
În anii ce au urmat publicației K&C R, câteva caracteristici „neoficiale“ au fost adăugate limbajului C, fiind suportate de compilatoarele celor de la AT&T, precum și de alți producători. Acestea includ:
funcțiile void și tipul de date void *
funcțiile care întorc tipul struct sau union
numele câmpurilor unei structuri struct într-un spațiu de nume pentru fiecare tip de structură
atribuirea pentru tipurile de date de tip struct
calificatorul const pentru a face un obiect de tip „read only“
bibliotecă standard încorporând funcții implementate de diverși dezvoltatori
enumerațiile
tipul float în precizie simplă.
C are un sistem de tipuri de date similar cu cel al descendenților ALGOL cum ar fi Pascal, dar totuși cu anumite diferențe. Cuprinde tipuri de date cum ar fi întregi de diferite dimensiuni cu sau fără semn, numere în virgulă mobilă, enumerări (enum), structuri de date (struct) și uniuni (union).
C utilizează foarte mult pointerii, un tip de referință foarte simplu care păstrează adresa locației din memorie. Adresa poate fi manipulată cu ajutorul atribuirilor și a aritimeticii pointerilor. În momentul rulării unui program, un pointer reprezintă o adresă de memorie. În momentul compilării, un pointer este un tip de dată complex ce reprezintă atât adresa de memorie cât și tipul de dată. Acest lucru permite expresiilor ce utilizează pointeri să fie evaluate după tipul de dată. Pointerii au mai multe utilizări în C. De exemplu, șirurile de caractere (text string) sunt adesea reprezentate printr-un pointer la un vector de caractere. Alocarea dinamică a memoriei este realizată tot cu ajutorul pointerilor.
Un pointer null are o valoare rezervată indicând faptul că face referire la o locație nevalidă. Acest lucru este folositor în cazuri speciale cum ar fi pointerul next (următorul) în nodul final al unei liste înlănțuite. Dereferențierea unui pointer null poate cauza un comportament nepredictibil al aplicației. De asemenea, există și pointeri de tip void, fapt ce indică că aceștia fac referire la un obiect de tip necunoscut. Acești pointeri sunt foarte folositori în programarea generică. Deoarece dimensiunea și tipul obiectelor la care acest tip de pointeri face referire sunt necunoscute, aceștia nu pot fi dereferențiați, dar pot fi convertiți la alt tip de pointeri.
În C, tablourile sunt de dimensiune fixă, statică cunoscută la momentul compilării; în practică acest lucru nu reprezintă o piedică, având în vedere că se pot aloca blocuri de memorie în momentul rulării, tratându-le ca pe tablouri utilizând librăria standard. Spre deosebire de multe alte limbaje de programare, C reprezintă tablourile ca și pe pointeri: o adresă și un tip de dată. Prin urmare, valorile index pot depăși dimensiunea actuală a unui tablou.
De asemenea, C oferă posibilitatea de lucru cu tablouri multidimensionale. Din punct de vedere semantic tablourile multidimensionale sunt tablouri de tablouri, dar din punct de vedere fizic acestea sunt stocate ca un singur tablou unidimensional cu un offset calculat.
C este adesea folosit în programarea de nivel scăzut, unde poate fi necesar ca un întreg să fie tratat ca o adresă de memorie, un număr în virgulă mobilă ca un întreg sau un tip de pointer ca un alt tip de pointer. Pentru astfel de cazuri C oferă operatorul de casting, care forțează explicit conversia unei valori dintr-un tip de dată în alt tip de dată.
Capitolul 3: SPECIFICAȚIILE APLICAȚIEI
3.1 Schema bloc a sistemului
Aplicația are o pagină principală – Index. La această pagină se poate reveni din orice punct al aplicației prin simpla apăsare a butonului “Index” care se găsește pe tot parcursul aplicației în colțul din stânga jos.
Fig 3.1 Schema bloc a programului
O dată accesat unul din laboratoarele cursului, pentru a putea vizualiza un alt laborator, va trebui accesată mai întâi pagina Index, după care laboratorul dorit. Fiecare din cele zece laboratoare are o parte teoretică și o parte practică. În cadrul părții teoretice sunt prezentate, pe scurt, informații importante din cadrul cursului, necesare pentru buna înțelegere a laboratorului. Partea aplicativă se bazează pe intracțiunea cu utilizatorul. Astfel, utilizatorul va avea posibilitatea de a rula programele prezentate în cadrul laboratorului direct din aplicația de față fără a mai fi necesară existența unui compilator C.
Fig. 3.2 Structura laboratorului 3
De exemplu, in Laboratorul 3 sunt prezentate principalele instrucțiuni utilizate în programare (if(condition)… else…, while(condition){…}, do{…} while(condition) ș.a.m.d.). La sfârșit sunt prezentate câteva exemple de utilizare a acestor instrucțiuni, cum ar fi ecuația de gradul I, suma a n numere, calculul suprafeței unui patrat etc. Aceste aplicații au rolul de a simula programul C, utilizatorul având posibilitatea de a introduce datele de intrare și accesarea rezultatului.
Pentru a trece dintr-o secțiune în alta din cadrul unui laborator sunt utilizate butoanele “Next >” și “< Back”. O accesare directă a parții applicative din cadrul laboratorului nu este, motiv pentru care utilizatorul va fi nevoit să parcurgă mai întâi partea teoretică.
Funcțiile aplicației
Primul modul al aplicației este un cuprins al întregii structuri. Aici este prezentat titlul fiecarui laborator în parte, utilizatorul având posibilitatea de a alege pe cel care îl dorește să parcurgă. Revenirea în acest punct al aplicației se poate face din oricare alt punct al aplicației. Pentru aceasta, în cele toate cele zece module ulterioare s-a implementat o legatură cu acest prim modul.
Pentru primul laborator aplicația a fost implementată pentru a prezenta o introducere în programarea calculatoarelor. Sunt prezentate principalele structuri logice necesare pentru realizarea schemei logice a unui program iar la sfârșitul parcurgerii laboratorului, studentului îi sunt exemplificate modul de utilizare a blocurilor logice prin descrierea a doua probleme matematice (calcularea ariei unui pătrat și rezolvarea ecuației de gradul al doilea).
Pe parcursul celui de-al doilea laborator studentului i se prezintă tipurile de date utilizabile în C și modul în care se poate opera cu acestea. De asemenea se face o introducere a funcțiilor de citire și scriere și o prezentare a posibilelor erori care pot apărea în momentul rulării unui program C.
În al treilea laborator sunt explicate instrucțiunile C necesare implementării unui program. În cadrul aplicației acest lucru se face prin exemple, implementându-se o interfață de citire – scriere. Studentul are posibilitatea de “rula” un program direct din cadrul aplicației. Accesând unul din exemple, utilizatorului i se va afișa codul C al exemplului, după care va avea posibilitatea de a introduce datele de intrare aferente programului, urmând să se simuleze rularea acestuia, astfel că în cadrul aplicației va fi prezentată iesirea corespunzătoare.
Laboratorul patru are la bază prezentarea utilizării structurilor de date de tip array și string. Ca și în cadrul laboratorului anterior, și aici este prezentă o interfață de citire-scriere, principiul de funcționare fiind același. În plus, ca și parte introductivă, sunt explicate cele două tipuri de structuri de date.
În continuare, studenților li se prezintă modul în care poate defini, apela sau modifica o funcție. Laboratorul cinci – “Funcții definite de utilizator” – este implementate pe același principiu ca și laboratoarele trei și patru, adică prezintă o interfață în care se pot citi date și alta în care sunt afișate rezultatele simulării programului C.
Laboratorul șase constituie o recapitulare a noțiunilor prezentate până în acest moment. Acest modul este implementat pe aceeași structură ca și a primului modul – Index, făcându-se astfel legături spre laboratoarele prezentate anterior.
Structurile de date definite de utilizator sunt explicate succint în laboratorul șapte. În cadrul acestui laborator exemplificare se va face în mod grafic. Totodată, la începutul modulului este o prezentare a modului de definire a structurilor de date de catre utilizator.
Utilizarea fișierelor în C este prezentată în cadrul laboratoarelor opt și nouă. În laboratorul opt sunt descrise funcții de deschidere a fișierelor, citire și scriere dintr-un, respectiv într-un fișier și închidere a unui fișier. După prezentarea părții teoretice, tot în cadrul laboratorului opt, sunt exemplificate aceste funcții. Laboratorul nouă descrie modul în care un fișier poate fi utilizat ca fișier de tip header în cadrul unei aplicații C.
Pentru ultimul modul s-a propus prezentarea implementărilor grafice cu ajutorul limbajului de programare C. Laboratorul zece include o parte grafică de simulare a programelor C, utilizatorul având posibilitatea să introducă datele de intrare după care va fi făcută simularea.
3.3 Interfața cu utilizatorul
Fiind un suport de curs, întreaga aplicație se bazează pe interacțiunea cu utilizatorul. Interfața pe care acesta o utilizează este realizată în Flash, codul care descrie funcționarea întregii interfețe fiind realizat cu ajutorul ActionScript.
Utilizatorul interacționează cu interfața aplicației înca de la începutul rulării acesteia. Într-o primă etapă, acesta va trebui să aleagă unul din laboratoarele prezentate. Acest lucru se realizează prin apăsarea butonului corespunzător fiecărui laborator în parte.
Odată ales un laborator, utilizatorul îl va putea parcurge tot prin butoane – în cazul laboratoarelor teoretice, sau a părților în care sunt descrise noțiuni teoretice – prin introducerea datelor de intrare necesare simulării exemplelor prezentate în modulele în care acest lucru este posibil. Astfel, utilizatorului i se oferă posibilitatea de a introduce datele pentru care doreste să ruleze acel exemplu.
3.4 Analiza de risc
În cadrul acestui paragraf va fi realizată, pe scurt, o analiză de risc a aplicației dezvoltate.
Aplicația este prezentată sub forma deja compilată (fișier .swf), astfel că, modificarea acesteia se va putea face doar dacă utilizatorul are acces la codul sursă (fișier .fla). O modificare ulterioară în vederea imbunătățirii aplicației se va putea face doar din fișierul care conține codul sursă, adică fișierul .fla. Din punct de vedere al siguranței codului aplicației, acesta este protejat prin aplicația în sine.
Pentru că programul prezentat presupune introducerea de date de intrare, câmpurile în care aceastea sunt introduse au fost concepute astfel încât să nu se poată introduce decât date de tipul celor dorite (revenind la exemplul prin care se rezolvă ecuația de gradul întâi, aici nu se pot introduce în câmpul destinat datelor de intrare decât valori numerice).
Pentru funcționarea în condiții optime a aplicației este necesară instalarea Flash Player 8 sau o alta versiune mai mare a Flash Player. Dacă aplicația este incorporată intr-o pagină web, atunci pentru a o putea utiliza este necesar ca browser-ul web utilizat de către student să aibe instalat un plugin ce permite rularea aplicațiilor Flash.
Capitolul 4: PROIECTAREA DE DETALIU
4.1. Arhitectura programului
În acest capitol se dorește detalierea modului de realizare a aplicației. Acest lucru presupune o analiză minimă a fiecărui modul în parte a programului. Aplicația este formată dintr-o structură de unsprezece modul, fiecare având o arhitectură diferită.
Primul modul – Index – este format din butoane care fac legătura cu celelalte module din componența programului. Din punct de vedere structural aceste legături sunt realizate astfel: din aceast modul se poate ajunge în orice alt modul al aplicației, după care se poate face revenirea in puctul inițial. Grafic, aceste legături arată ca în figura de mai jos:
Fig. 4.1 Exemplificare grafică a legăturii între module
Al doilea modul – Curs1 – este format dintr-o structură de butoane și text. Butoanele permit utilizarea într-un mod facil a acestei părți a aplicației pentru că utilizatorul este cel care comandă partea care să fie vizualizată.
Fig. 4.2 Laborator 1 – structura butoanelor de navigare
(valabilă pentru toate laboratoarele prezentate)
Următorul modul – Curs2 – are în componență tot o structură de butoane și text, principiul de funcționare find același ca și al modulului anterior. Fiind un modul teoretic și fără o exemplificare practică, este format doar din butoane simple cu ajutorul cărora pagina să dispusă într-un mod dinamic.
Modulele patru și cinci – Curs3, respectiv Curs4 – prezintă o structură arhitecturală similară, în sensul că ambele prezintă câte o interfață de citire-scriere. Din punct de vedere arhitectural, interfața de citire-scriere este alcătuită din zone pentru text (input și output). Datele din câmpul de intrare sunt prelucrate cu ajutorul limbajului de programare ActionScript, după care rezultatele sunt afișate în campul de ieșire. Grafic, această structură se poate reprezenta astfel:
Fig. 4.3 Reprezentarea grafică a structurii de citire-scriere
Cursul numărul cinci descrie modul de definire a funcțiilor de către utilizator. Ca și modulele doi, respectiv trei, este o secțiune teoretică, astfel ca structura acestuia este una liniară. S-au și utilizat pentru dezvolvatarea acestui modul module pentru a crea un aspect cât mai dinamic al laboratorului.
În structura laboratorului de Computer Programming, laboratorul șase este unul recapitulativ. Modulul aferent acestui laborator – Curs6 – are o structură similară cu cea a primului modul – Index – fiind format din butoane care fac legătura dintre acest modul și modulele anterioare.
Din punct de vedere structural, laboratorul șase poate fi reprezentat ca și în figura de mai jos unde sunt indicate legăturile dintre acest modul și restul structurii.
Fig. 4.4 Laborator 6 – structura de butoane
Cursul numărul șapte descrie modul de definire a structurilor de date de către utilizator. Ca și modulele doi, respectiv trei, este o secțiune teoretică, astfel ca structura acestuia este una liniară. S-au și utilizat pentru dezvolvatarea acestui modul module pentru a crea un aspect cât mai dinamic al laboratorului.
Modulul acestea este format dintr-o structură de butoane și text. Butoanele permit utilizarea într-un mod facil a acestei părți a aplicației pentru că utilizatorul este cel care comandă partea care să fie vizualizată. Are în componență tot o structură de butoane și text, principiul de funcționare find același ca și al modulului anterior. Fiind un modul teoretic și fără o exemplificare practică, este format doar din butoane simple cu ajutorul cărora pagina să dispusă într-un mod dinamic.
Descrierea laboratoarelor opt și nouă, respectiv a modulelor nouă și zece din aplicația de față este aceeași. Cele două module prezintă modul de utilizare al fișierelor in mediul de dezvoltare C. Pe lângă partea teoretică sunt prezentate și exemple propiu-zise pentru o mai bună înțelegere a utilizării fișierelor.
Ultimul modul este destinat laboratorului numărul 10. În cadrul acestui laborator sunt prezentate funcții grafice. Spre deosebire de laboratoarele prezentate până acum, în acest modul interacțiunea cu utilizatorul este mai dezvoltată, astfel utilizatorul poate defini dimensiunile formelor desenate, realizându-se astfel o simulare a codului C.
Descrierea componentelor
În cadrul acestui paragraf vor fi descrise principalele componente utilizate pentru dezvoltarea acestei aplicații. Încă de la startul aplicației, utilizatorul va trebui să folosească butoanele pentru a putea accesa alte module ale programului. Aceste butoane sunt realizate pe același principiu. Pentru exemplificare vom folosi butonul “Course 1: Introduction. Logical schemes”.
Fig. 4.5 Buton – exemplu
Butonul “Course 1: Introduction. Logical schemes” face legătura dinte modulul Index și Curs1. Pentru a realiza acest lucru s-a folosit limbajul de programarea ActionScript. Codul care descrie legătura dintre cele doua module este următorul:
on(release){
gotoAndPlay("Curs1", 1);
}
În momentul apăsării butonului, aplicația merge în primul frame al modulului “Curs1” reluând din acel moment rularea programului. În modulul curent se gasesc butoane de navigație – “<Back” ,“Next >” și “Index”. Butoanele “<Back” și “Next >” permit deplasarea cu un frame înapoi, respectiv înainte in timp a aplicației. Pentru exemplificare vor folosi butonul “Next >” , cel care permite deplasarea cu un frame înainte a aplicației. Codul care descrie această funcționare este:
on(release){
nextFrame();
}
Butonul “Index” este cel care face legătura între scena curentă și scena principală. La fel ca și butoanele descrise mai sus și acesta poate fi utilizat tot unui cod ActionScript. Codul care descrie funcționarea acestui buton este similar cu cel pentru descrierea butoanelor care fac legătura între modulul Index și celelalte zece module ale aplicației:
on(release){
gotoAndPlay("Index", 1);
}
În componența laboratorului trei sunt butoane care simulează rularea unor exemple de programare în C. Acestă simulare este realizată prin citirea unor date de intrare de către utilizator, urmând ca în cadrul aplicației acestea să fie prelucrate și afișate mai apoi ca și rezultat final. Pentru a realiza acest lucru s-a incorporat o interfață de citire a datelor de la tastatură. Pentru a facilita citirea de la tastatură s-a implementat un buton – “Run” – care va citi datele din câmpul de input. Acest buton nu este vizibil din cadrul aplicației, el fiind folosit excusiv pentru citirea dateleor de la tastatură prin apăsarea tastei <”Enter”>.
Exemplificarea utilizării acestui bunot vom lua ca exemplu rezolvarea ecuației de gradul întâi. Simularea acestui exemplu C se face prin apăsarea butonului aferent din cadrul aplicației. O dată pornit exemplul se vor cere introducerea valorilor a și b, reprezentând coeficienții ecuației. Pentru citirea celor doi coeficienți se utilizează următorul cod ActionScript, implementat pentru butonul “Run” :
on (keyPress"<Enter>"){
if(_global.i == 0){
_global.a = varInput;
_global.i ++;
prevFrame();
}else{
_global.b = varInput;
inputText.text = "";
nextFrame();
}
}
Variabila _global.i reprezintă numărul de citiri de la tastatură înaintea prelucrării datelor. Pentru ecuația de gradul întâi acesta trebuie să fie 2 (_global.i = 1). Variabilele _gloabl.a, respectiv _global.b sunt coeficienții a și b ai ecuației, citiți din varInput care reprezintă variabila corespunzătoare câmpului de introducere a datelor.
După citirea acestor date, prelucrarea lor se face tot cu ajutorul ActionScript-ului, codul care face această prelucrare fiind:
if(_global.a == 0){
if(_global.b == 0){
outputText.text = "\n" + "Inf. sol." + varOutput;
}else{
outputText.text = "\n" + "No sol." + varOutput;
}
}else{
x = -_global.b/_global.a;
outputText.text = "\n" + "x = " + x + "\n\n" + varOutput;
}
Codul de mai sus realizează simularea rezolvării ecuației conform codului C descris în laborator.
4.3 Comunicarea între module
Aplicația prezentată este alcatuită din unsprezece scene, fiecare scenă conținând mai multe rame de lucru. Comunicarea între scene se face accesând o scena principală – Index. Scena principală este accesibilă din oricare altă scenă a aplicației prin apăsarea butonului corespunzator.
Fiecare scenaă în parte este alcătuită din mai multe rame care permit o dezvoltare dinamică a aplicației. Acestă regulă este aplicată tuturor laboratoarelor în parte, excepție făcând scena principală care conține doar o singură ramă.
În scena principală se găsește o singură ramă în care sunt incorporate butoane legate la scenele care descriu realizarea fiecărui laborator. Legătura dintre butoanele din prima scena și scenele destinate laboratoarelor se face cu ajutorul ActionScript, codul care descrie această legatură fiind:
on(release){
gotoAndPlay("Curs_i", 1);
}
unde _i poate lua valori de la 1 la 10, reprezentând numărul fiecărui laborator în parte.
Pentru scenele care descriu funcționarea fiecărui laborator în parte s-au utilizat mai multe rame, pentru a facilita o dezvoltare ulterioară mai ușoară. În Flash o aplicație rulează frame cu frame, existând posibilitatea de a opri rularea într-un anumit punct al aplicației cu urmatorul cod:
stop();
care este plasat in frame-ul în care se doreste oprirea aplicației, aceasta putând relua rularea fie din frame-ul următor sau dintr-un alt punct dorit de dezvoltator sau stabilit de utilizator. Punctul din care se reia rularea aplicației poate fi un frame anterior sau ulterior frame-ului curent sau chiar dintr-o alta scena. Pentru a exemplifica acest lucru se vor folosi butoanele dezvoltate in cadrul laboratorului trei, utilizate pentru rularea exemplelor.
Primul buton implementat este cel destinat exemplului “rezolvarea ecuației de gradul întâi”. La pornirea scenei, codul ActionScript care comandă acest buton este:
on(release){
nextFrame();
_global.opt = 1;
}
Pentru ca implementarea funcționării acestei scene s-a realizat secvențial, variabila _global.opt ia valoarea pe care o reprezintă fiecare exemplu in parte (poate avea valori intre 1 și 5), după care trece la frame-ul următor de unde începe simularea propriu-zisă a codului C exemplificat. Începând cu frame-ul de la care se pornește simularea codului până la frame-ul în care se oprește această simulare butoanele sunt inactive, adică, chiar dacă sunt apăsate aceasta nu vor executa nicio instrucțiune.
La sfârșitul simulării codului C butoanele redevin active, dar de această dată codul ActionScript care descrie funcționarea lor este modificat astfel:
on(release){
gotoAndPlay("Curs3", 21);
_global.opt = 1;
}
adică, la apăsarea aceluiași buton după terminarea simulării unui exemplu, variabilei _global.opt i se va atribui aceeași valoare ca și în momentul în care scena rulează pentru prima dată. Spre deosebire de rularea inițială a scenei, când prin apăsarea butonului aplicația va continua rularea cu următorul frame, de această dată rularea va continua de la frame-ul 21 din scena “Curs3” – scena corespunzătoare cursului curent – acesta fiind un frame anterior celui curent.
In cazul laboratoarelor care prezinta parte teoretica rularea aplicatiei se realizeaza frame cu frame fie prin apasarea butoanelor “< Back” sau “Next >”, fie prin apasarea de cuvinte cheie plasate in cadrul scenei. Aceste cuvinte cheie sunt implementate ca butoane, codul care descrie functionarea lor fiind acelasi ca cel care descrie functionarea butoanelor “Next >” care se gasesc pe tot parcursul aplicatiei, si anume:
on(release){
nextFrame();
}
diferența fiind doar la nivel de interfață cu utilizatorul, în sensul că acestuia nu i se va creea impresia de trecere într-un alt modul.
Capitolul 5: UTILIZAREA SISTEMULUI
În momentul în care se pornește aplicația este deschisă pagina de start, cea în care sunt prezentate titlurile tuturor celor zele laboratoare. Pentru accesarea unuia dintre laboratoare este suficientă apasarea butonului corespunzător. Revenirea la acestă se poate face ulterior din oricare modul.
Fig. 5.1 Modulul Index
Laboratorul 1: Introducere. Scheme logice
Accesarea modulului se face prin apasarea butonului “Course 1: Introduction. Logical Schemes”. La încărcarea primei pagini sunt prezentate definiții ale blocurilor logice. Trecerea la pagina următoare se face prin apăsarea butonului “Next >”. Din acest punct al aplicației se poate reveni la pagina inițială prin apăsarea butonului “Index” aflat în partea stânga jos.
Fig. 5.2 Curs 1 – prima pagină
Continuarea explicațiilor schemelor bloc se gasește în pagina următoare. O dată accesată aceasta, revenirea la prima pagină se poate face prin apăsarea butonului “< Back” care este poziționat în partea dreapta jos, lângă butonul “Next>”. Și de aici se poate reveni la pagina principală, prin butonul ”Index”.
Paginile următoare descriu blocurile logice prin exemple în care acestea sunt integrate. Schemele logice sunt realizate pentru descrierea calculării ariei unui pătrat și a rezolvării ecuației de gradul întâi. La fel ca la paginile prezentate anterior, accesul se face prin butoanele “Next >” și “< Back”. În momentul încheierii parcurgerii laboratorului se poate reveni fie la pagina anterioară fie la prima pagină, de unde se poate accesa un alt laborator.
Fig. 5.3 Curs 1 – pagina 2
Laboratorul 2: Tipuri de date
Acest laborator este unul teoretic. Sunt prezentate tipurile de date cu care se poate opera în C și informații generale despre ce înseamna tipul unei date, o definiție a variabilelor, definiție a datelor, a ceea ce înseamnă un bit.
Tipurile de date sunt prezentate ca dimensiune, atât în număr de biți cât și ca valoare reală. Prima parte a laboratorului, cea în care sunt prezentate definiții ale principalilor termeni utilizați este descrisă în imaginea de mai jos:
Fig 5.4 Laboratorul 2 – exemplu
Laboratorul 3: Instrucțiuni
În cadrul acestui laborator sunt prezentate instrucțiunile care se poat utiliza pentru realizarea unui program în C. În prima pagină sunt nominalizate funcțiile pe care se va face exemplificarea instrucțiunilor: ecuația de gradul întâi, calcularea primelor n elemente ale șirului lui Fibbonacci, calcularea ariei unui triunghi, rezolvarea ecuației de gradul al doilea și exemplificarea instrucțiunii switch. Exemplele se pot vizualiza prin apasarea butonului aferent fiecărei funcției. La fel ca și la laboratoarele anterioare se poate reveni la pagina principală cu ajutorul butonului “Index”.
Fig. 5.5 Curs 3 – pagina principală
Toate cele cinci exemple funcționează pe același principiu. Vom folosi pentru exemplificare
rezolvarea ecuației de gradul al doilea. În momentul accesării, în cadranul din partea stângă va fi
descris întregul program C prin care se face rezolvarea acesteia.
Ca și în laboratoarele prezentate mai sus, deplasarea în cadrul modulului se face cu ajutorul butoanelor “Next >” și “< Back”, iar dacă se dorește revenirea la pagina principală a aplicației este necesară utilizarea butonului “Index”.
Pentru explicarea funcționării acestui modul se va utilizia exemplul rezolvării ecuației de gradul întâi. La apăsarea butonului denumit “First degree equation” în partea stăngă va fi scris codul programului C care descrie rezolvarea ecuației, iar în partea dreaptă a ecranului se vor putea introduce datele de intrare necesare acesteia (coeficienții a și b). Citirea acestora se va face prin apăsarea tastei <Enter>. După citirea fiecărei valori, aceasta va fi afișată pe ecran, urmând ca în final să fie afișată forma ecuației și soluția acesteia.
Fig. 5.6 Curs 3 – rezolvarea ecuației de gradul întâi – introducerea coeficienților
Într-o primă etapă se va citi coeficientul lui x, a. Citirea acestuia se face prin apăsarea tastei <Enter>. Odată citita valoarea lui a, aceasta va fi afișată pe ecran, pregătindu-se astfel citirea valorii coeficientului b. Această citire se face în mod similar cu cea anterioară, prin apăsarea tastei <Enter>. În acest moment utilizatorul nu va mai putea introduce date. Aplicația va afișa forma ecuației (a*x + b = 0) după care va calcula valoarea lui x (x = -b/a), afișând-o apoi pe ecran.
Pentru a putea rula un alt exemplu trebuie pentru început apăsat butonul “Reset”, poziționat între modul de afișare a codului și interfața de citire-scriere. După apăsarea acestuia se va putea alege un alt exemplu, modul în care se face acest lucru fiind similar cu el prezentat mai sus.
Fig. 5.7 Curs 3 – rezolvarea ecuației de gradul întâi – rezolvarea propriu-zisă
Laboratorul 4: Arrays. Strings
Pe parcursul acestui modul sunt prezentate modurile de citire, scriere și utilizare a array-urilor și a string-urilor. Ca și în cadrul laboratorului anterior, și acesta are o parte de interacțiune cu utilizatorul. Într-o primă etapă sunt prezentate, pe scurt, cele două tipuri de date, iar ulterior se face referire la utilizarea lor.
Laboratorul începe prin descrierea array-urilor printr-o comparație între șirurile unidimensionale – de tip vector – și cele multidimensionale, în special cele bidimensionale – de tip matrice. Este descris modul general de definire a acestora în C, forma lor matematică și exemple concrete de definire a acestora. Pentru parcurgerea modulului se vor utiliza butoanele “Next >” și “< Back”.
Fig. 5.8 Curs 4 – definirea șirurilor uni și bidimensionale
La încheierea părții introductive sunt descrise codurile C pentru citirea, scrierea și utilizarea șirurilor. Se începe cu exemplificarea pentru un șir unidimensional. Utilizatorul va avea posibilitatea de a introduce dimensiunea șirului (n) și valorile elementelor acestuia (v[i], i = 0; n-1). Pentru aceasta este necesară apăsarea butonului “Next >”. Fiecare valoare este afișată pe ecran după ce este citită.
Pentu exemplificarea utilizării șirurilor s-a ales căutarea valorii celei mai mici a elementelor șirului – a minimului. Codul C pentru descrierea căutarii va fi afișat în partea stângă. Aplicația caută valoarea minimă între valorie introduse inițial.
Dacă în acest punct al aplicației se apasă butonul “< Back” modul acesta se va rula de la început.
Fig. 5.9 Curs 4 – calcularea minimului într-un șir unidimensional
Tot pentru exemplificarea utilizării șirurilor unidimensionale s-a ales și problema calculării vârstei medii a 11 persoane. Vărsta fiecărei persoane în parte este introdusă de la tastatură, aceasta fiind afișată de fiecare dată după citire. După introducerea celor 11 valori aplicația calculează valoarea medie și o afișează pe ecran.
În continuare sunt descrise exemple similare pentru șirurile bidimensionale – matrici. La fel ca și în exemplul de mai sus, și aici utilizatorul are posibilitatea de a introduce dimensiunile șirului (n, m) și de a defini valorile elementelor (a[i][j], i = 0; n-1, j = 0; m-1). Și în acest caz se va calcula minimul și se va afișa pe ecran.
Ca și în laboratoarele prezentate mai sus, deplasarea în cadrul modulului se face cu ajutorul butoanelor “Next >” și “< Back”, iar dacă se dorește revenirea la pagina principală a aplicației este necesară utilizarea butonului “Index”.
Laboratorul 6: Revision
Modulul acesta este destinat unei recapitulări a materiei care a fost parcursă până în acest moment, motiv pentru care în aceast punct al aplicației se vor regasi legături catre modulele anterioare. Dintr-un modul accesat în această parte nu se va putea trece în modulul index ci doar în scena dedicată laboratorului șase. Revenirea în scena “Curs6” se face tot prin apăsarea butonului Index din partea stânga jos a aplicației. Pentru a accesa modulul Index este prima dată necesară revenirea în modulul destinat laboratorului șase.
După cum se poate observa și în imaginea de mai jos, laboratorul șase arată, din punct de vedere vizual, ca și modulul Index.
Ca și în laboratoarele prezentate mai sus, deplasarea în cadrul modulului se face cu ajutorul butoanelor “Next >” și “< Back”, iar dacă se dorește revenirea la pagina principală a aplicației este necesară utilizarea butonului “Index”.
Laboratorul 7: User defined types. Pointers
Acest modul prezintă modul în care programatorul poate defini propriile tipuri de variabile. În laboratorul de față sunt introduse noțiuni teoretice despre modul în care se poate defini un nou tip de date și modul în care se pot acestea utiliza. De asemenea, tot în acest laborator sunt prezentate noțiuni generale despre pointeri și despre modul de folosire al acestora.
Fig. 5.10 Curs 4 – exemple pentru utilizarea matricilor
Ca și în laboratoarele prezentate mai sus, deplasarea în cadrul modulului se face cu ajutorul butoanelor “Next >” și “< Back”, iar dacă se dorește revenirea la pagina principală a aplicației este necesară utilizarea butonului “Index”.
Vizual, modul șapte nu prezintă o interacțiune foarte mare cu utilizatorul, fiind un modul în care sunt prezentate mai mult noțiuni teoretice.
Fig. 5.11 Curs 6 – dispunerea butoanelor
După definirea și exemplificarea structurilor de date definite de utilizator, în cadrul laboratorului șapte sunt prezentate și exemplificate noțiuni generale destre structurile de tip pointer.
Laboratorul 8 – Handling files in C
Secțiunea aceasta a laboratorului de Computer Programming descrie modul de utilizare a facilităților de scriere/citire pentru citirea și scrierea fișierelor, ale mediului de dezvoltare C. Sunt descrise principalele instrucțiuni de citire/scriere, necesare lucrului cu fișiere.
Ca și în laboratoarele prezentate mai sus, deplasarea în cadrul modulului se face cu ajutorul butoanelor “Next >” și “< Back”, iar dacă se dorește revenirea la pagina principală a aplicației este necesară utilizarea butonului “Index”.
Fig. 5.12 Laboratorul 7 – structuri de date – noțiuni teoretice
Capitolul 6: CONCLUZII
6.1 Ce s-a realizat
Proiectul propune realizarea unei aplicații didactice, suport de curs și de laborator, în cadrul căreia să se explice și exemplifice în mod grafic mecanismele programării in C.
S-a realizat o implementare a tuturor celor zece laboratoare a cursului de Computer Programming, aplicația având în total unsprezece module care prezintă în mod interactiv noțiunile prezentate în cadrul cursului. Pentru toate laboratoarele s-a implementat o parte introductivă – teoretică – în care au fost descrise noțiuni de bază pentru o ințelegere cât mai bună și facilă a laboratorului propriu-zis. În cadrul laboratoarelor care prezintă moduri de funcționare sau implementare a anumitor structuri din mediul de programare C accentul s-a pus pe descrierea acestora prin exemple, facilitând astfel o mai bună ințelegere a noțiunilor prezentate.
Exemplele prezentate în cadrul aplicației au fost realizate astfel încât utilizatorul să fie implicat cât mai mult. Pentru aceasta, fiecare exemplu are o parte de cod – afișată în mod direct de către aplicație – și o parte de interacțiune cu utilizatorul în care acesta trebuie să introducă datele de intrare conforme codului prezentat. S-a dorit ca acest mod de a implementa exemplele să simuleze rularea unui program realizat in C fără a mai fi necesar ca cei care urmează acest curs să dețină un compilator C. Bineînțeles, pentru aprofundarea limbajului de programare C va fi necesară instalarea unui mediu de dezvoltare care să permită compilarea și rularea programelor.
Aplicația a fost astfel implementată încât trecerea de la un laborator la altul să se faca prin accesarea meniului principal, utilizatorul având astfel posibilitatea de a parcurge în mod dinamic suportul de laborator. Deplasarea în cadrul unui laborator se face prin butoane de tipul “< Back” și “Next >” care permit accesarea cadru cu cadru a informațiilor prezentate, astfel permițându-se și revenirea asupra noțiunilor care se doresc aprofundate.
În cadrul laboratoarelor în care noțiunile teoretice sunt prezentate prin exemple, parcurgerea unui modul se face prin butoane cu specificarea numelui exemplului respectiv, nefiind necesară o parcurgere cadru cu cadru. La finalizarea exemplului se poate rula înca o data prin apăsarea aceluiași buton sau se poate alege un altul.
Aplicația de laborator este o aplicație ușor de utilizat, cuprinde noțiunile de bază ale programării C precum și exemple concludente pentru o înțelegere cât mai bună a acestora. Cei care vor participa la cursul de Computer Programming îl vor putea utiliza pentru fundamentare teoretică, pentru pregătirea laboratorului curent, a laboratoarelor următoare sau pentru pregătirea examenului.
6.2 Direcții de dezvoltare
Suportul de laborator prezentat este realizat într-o manieră minimală, dezvolarea lui putându-se realiza facil. Aplicația prezentată se poate dezvolta ușor printr-o gamă foarte mare de opțiuni.
O dezvoltare a aplicației se poate face la nivelul interfeței grafice, punându-se astfel accentul pe dezvoltarea grafică a aplicației, cum ar fi o interacțiune mai mare cu utilizatorul, prin dinamicizarea laboratoarelor. Fiecare noțiune poate fi prezentată prin exemple grafice care să exemplifice într-un mod cât mai natural noțiunea prezentată.
De asemenea se poate realiza o dezvoltare la nivel structural, prin adăugarea de noi noțiuni teoretice. Se pot adaugă la nivelul fiecărui laborator noțiuni teoretice avansate, asfel permițându-se aprofundarea programării în C și din cadrul acestei aplicații.
Aplicației i se pot adăuga exemple facilitându-se astfel accesul utilizatorului la o variațiune de programe. Tot la nivel de exemple, se poate modifica suportul de laborator astfel ca utilizatorul să poata simula o rulare pas cu pas a codului C prezentat, având ca fundamentare rularea pas cu pas a unui program C direct din mediul de programare.
Tot ca și o dezvoltare a acestei aplicații poate fi considerată și extinderea acesteia cu alte module care să ofere suport de laborator sau de curs unor alte discipline de studiu. Spre exemplu această aplicație ar putea fi utilizată cu aplicații similare destinate disciplinelor de programare și nu numai.
Aplicația de față poate fi integrată într-o pagină web, astfel, cei care urmează acest curs vor avea acces tot timpul la suportul de laborator oferit. Integrarea acestui modul într-o pagina web se poate face alături de alte aplicații destinate altor discipline studiate de studenți pe parcursul semestrului respectiv sau chiar pe parcursul tuturor anilor de studiu. Astfel se facilitează accesul la informație, studentul având posibilitatea să pregăteasca laboratorul curent, să invețe în avans materia sau să aprofundeze anumite noțiuni din materiile de studiu.
BIBLIOGRAFIE
[web1] www.euro.ubbcluj.ro
[web2] http://nitroglicerine.bubble.ro
[web3] http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary
[web4] http://www.adobe.com/support/flash/action_scripts/actionscript_tutorial
[web5] http://forum.emag.ro/lofiversion/index.php/t460.html
Nielsen J., Flash and Web-Based Applications, Alertbox, Nielsen Norman Group, November 25, 2002 <www.useit.com/alertbox/20021125.html>
Kerman F., ActionScripting in Flash, București, editura Teora
Patti Schulze, Macromedia Fireworks MS, București, editura Teora
James English, Flash 8, București, editura Teora
Tom Green, Jordan L. Chilcott, Macromedia Flash Professional 8, București, editura All
William B. Sanders, Macromedia Flash MX ActionScript, București, editura All
Cosmin Vârlan, Macromedia Flash. Concepte, exemple, studii de caz, București, editura Polirom
Declarație,
Subsemnata, CONSTANTIN Anca-Ofelia, declar pe proprie răspundere că lucrarea Dezvoltarea unei aplicații didactice pentru laboratorul de Computer Programming este rezultatul propriei mele munci intelectuale.
Timișoara, Semnătura,
6.06.2008
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Dezvoltarea Unei Aplicații Didactice Pentru Laboratorul de Computer Programming (ID: 134046)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
