curs 5 - infoanul1.files.wordpress.com file22.10.2013 2 lăcr ămioara stoicu-tivadar introducere...

8
22.10.2013 1 Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Arh. László Székely, arhitect-şef al Timişoarei la începutul sec. XX Palatul Hilt Palatul Hilt-Vogel Vogel Curs 5 Curs 5 22.10.201 .10.2013 Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Probleme Probleme de de etic etică în n programare programare Cod etic al programatorului Cod etic al programatorului Precizie: Precizie: un programator trebui să creeze programe un programator trebui să creeze programe cât mai precise posibil; aceasta implică nu doar ca cât mai precise posibil; aceasta implică nu doar ca programul să fie conform cu cerinţele clientului sau programul să fie conform cu cerinţele clientului sau angajatorului, ci că angajatorului, ci că nu există erori de logică sau de nu există erori de logică sau de securitate în cod securitate în cod Plagiat: Plagiat: un programator trebuie un programator trebuie să recunoască şi să recunoască şi să precizeze să precizeze pe cei care i pe cei care i-au ajutat să realizeze o au ajutat să realizeze o aplicaţie software aplicaţie software Confuzie: Confuzie: un programator trebuie să scrie un programator trebuie să scrie cod cod simplu şi logic, uşor de înţeles simplu şi logic, uşor de înţeles de către cei cu care de către cei cu care lucrează. Un program ilogic şi scris neglijent lucrează. Un program ilogic şi scris neglijent creează confuzie şi are ca rezultat costuri ridicate creează confuzie şi are ca rezultat costuri ridicate http://www.acm.org/about/code-of-ethics - Association for Computing Machinery Code of Ethics and Professional Conduct Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Probleme Probleme de de etic etică în n programare programare Cod etic al programatorului Cod etic al programatorului Intenţii răuvoitoare Intenţii răuvoitoare: un programator : un programator nu va crea nu va crea niciodată direct sau indirect aplicaţii software niciodată direct sau indirect aplicaţii software răuvoitoare, viruşi răuvoitoare, viruşi, etc. şi nu va face public în mod , etc. şi nu va face public în mod voit nici un program defect sau ineficient. voit nici un program defect sau ineficient. Documentaţie: Documentaţie: toată documentaţia creată de un toată documentaţia creată de un programator va fi programator va fi logică şi uşor de citit logică şi uşor de citit. Nu va . Nu va conţine remarci defăimătoare, acuzaţii false sau conţine remarci defăimătoare, acuzaţii false sau aluzii. Va conţine citări ale resurselor folosite. Orice aluzii. Va conţine citări ale resurselor folosite. Orice documentaţie făcută publică va trebui să aibă documentaţie făcută publică va trebui să aibă acordul programatorului, angajatorului şi clientului. acordul programatorului, angajatorului şi clientului. Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Responsabilitate Responsabilitate Dispozitive performante Dispozitive performante – bazate pe aplicaţii software bazate pe aplicaţii software – complexe complexe Mai mult de jumătate din dispozitivele medicale vândute în SUA Mai mult de jumătate din dispozitivele medicale vândute în SUA (cea mai mare piaţă pentru îngrijirea sănătăţii) au un software (cea mai mare piaţă pentru îngrijirea sănătăţii) au un software Software în Software în Pacemaker Pacemaker - 80 000 linii cod 80 000 linii cod Pompă de medicaţie Pompă de medicaţie - 170 000 linii cod 170 000 linii cod MRI MRI scanner scanner (magnetic magnetic-resonance imaging resonance imaging) ) - 7 milioane linii cod 7 milioane linii cod Erori, vulnerabilitate Erori, vulnerabilitate 1 din 3 aplicaţii software medicale din SUA au fost rechemate 1 din 3 aplicaţii software medicale din SUA au fost rechemate datorită erorilor, între 1999 datorită erorilor, între 1999-2005 (studiu realizat de cercetătorii de la 2005 (studiu realizat de cercetătorii de la Universitatea din Patras, Grecia). Universitatea din Patras, Grecia). Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Responsabilitate Responsabilitate În anii 80 o eroare în aplicaţia maşinilor de În anii 80 o eroare în aplicaţia maşinilor de radioterapie Therac radioterapie Therac-25 a cauzat supradoze de 25 a cauzat supradoze de radiaţii, conducând la decesul a cel puţin 5 radiaţii, conducând la decesul a cel puţin 5 pacienţi pacienţi FDA (Food and Drug Administration) a raportat FDA (Food and Drug Administration) a raportat probleme la pompele de infuzare a medicaţiei probleme la pompele de infuzare a medicaţiei – erorile în software au fost cele mai citate erorile în software au fost cele mai citate 20,000 de pacienţi serios afectaţi şi peste 700 de 20,000 de pacienţi serios afectaţi şi peste 700 de decese între 2005 şi 2009 decese între 2005 şi 2009 Dispozitivele wireless sunt vulnerabile Dispozitivele wireless sunt vulnerabile

Upload: others

Post on 04-Sep-2019

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Curs 5 - infoanul1.files.wordpress.com file22.10.2013 2 Lăcr ămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Lăcr ămioara Stoicu-Tivadar Introducere în

22.10.2013

1

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Arh. László Székely, arhitect-şef al Timişoarei la începutul sec. XX

Palatul HiltPalatul Hilt--VogelVogel

Curs 5Curs 5

2222.10.201.10.20133

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

ProblemeProbleme de de eticetic ăă îîn n programareprogramare

Cod etic al programatoruluiCod etic al programatoruluiPrecizie:Precizie: un programator trebui să creeze programe un programator trebui să creeze programe

cât mai precise posibil; aceasta implică nu doar ca cât mai precise posibil; aceasta implică nu doar ca programul să fie conform cu cerinţele clientului sau programul să fie conform cu cerinţele clientului sau angajatorului, ci că angajatorului, ci că nu există erori de logică sau de nu există erori de logică sau de securitate în codsecuritate în cod

�� Plagiat:Plagiat: un programator trebuie un programator trebuie să recunoască şi să recunoască şi să precizezesă precizeze pe cei care ipe cei care i--au ajutat să realizeze o au ajutat să realizeze o aplicaţie softwareaplicaţie software

�� Confuzie:Confuzie: un programator trebuie să scrie un programator trebuie să scrie cod cod simplu şi logic, uşor de înţelessimplu şi logic, uşor de înţeles de către cei cu care de către cei cu care lucrează. Un program ilogic şi scris neglijent lucrează. Un program ilogic şi scris neglijent creează confuzie şi are ca rezultat costuri ridicatecreează confuzie şi are ca rezultat costuri ridicate

http://www.acm.org/about/code-of-ethics - Association for Computing Machinery Code of Ethics and Professional Conduct

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

ProblemeProbleme de de eticetic ăă îîn n programareprogramareCod etic al programatoruluiCod etic al programatorului

�� Intenţii răuvoitoareIntenţii răuvoitoare: un programator : un programator nu va crea nu va crea niciodată direct sau indirect aplicaţii software niciodată direct sau indirect aplicaţii software răuvoitoare, viruşirăuvoitoare, viruşi, etc. şi nu va face public în mod , etc. şi nu va face public în mod voit nici un program defect sau ineficient.voit nici un program defect sau ineficient.

�� Documentaţie:Documentaţie: toată documentaţia creată de un toată documentaţia creată de un programator va fi programator va fi logică şi uşor de cititlogică şi uşor de citit. Nu va . Nu va conţine remarci defăimătoare, acuzaţii false sau conţine remarci defăimătoare, acuzaţii false sau aluzii. Va conţine citări ale resurselor folosite. Orice aluzii. Va conţine citări ale resurselor folosite. Orice documentaţie făcută publică va trebui să aibă documentaţie făcută publică va trebui să aibă acordul programatorului, angajatorului şi clientului. acordul programatorului, angajatorului şi clientului.

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

ResponsabilitateResponsabilitate

�� Dispozitive performante Dispozitive performante –– bazate pe aplicaţii software bazate pe aplicaţii software –– complexecomplexe

�� Mai mult de jumătate din dispozitivele medicale vândute în SUA Mai mult de jumătate din dispozitivele medicale vândute în SUA (cea mai mare piaţă pentru îngrijirea sănătăţii) au un software(cea mai mare piaţă pentru îngrijirea sănătăţii) au un software

�� Software înSoftware în�� PacemakerPacemaker -- 80 000 linii cod80 000 linii cod�� Pompă de medicaţie Pompă de medicaţie -- 170 000 linii cod170 000 linii cod�� MRI MRI scannerscanner ((magneticmagnetic--resonance imagingresonance imaging) ) -- 7 milioane linii cod7 milioane linii cod

�� Erori, vulnerabilitateErori, vulnerabilitate

�� 1 din 3 aplicaţii software medicale din SUA au fost rechemate 1 din 3 aplicaţii software medicale din SUA au fost rechemate datorită erorilor, între 1999datorită erorilor, între 1999--2005 (studiu realizat de cercetătorii de la 2005 (studiu realizat de cercetătorii de la Universitatea din Patras, Grecia). Universitatea din Patras, Grecia).

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

ResponsabilitateResponsabilitate�� În anii 80 o eroare în aplicaţia maşinilor de În anii 80 o eroare în aplicaţia maşinilor de

radioterapie Theracradioterapie Therac--25 a cauzat supradoze de 25 a cauzat supradoze de radiaţii, conducând la decesul a cel puţin 5 radiaţii, conducând la decesul a cel puţin 5 pacienţipacienţi

�� FDA (Food and Drug Administration) a raportat FDA (Food and Drug Administration) a raportat probleme la pompele de infuzare a medicaţiei probleme la pompele de infuzare a medicaţiei ––erorile în software au fost cele mai citateerorile în software au fost cele mai citate�� 20,000 de pacienţi serios afectaţi şi peste 700 de 20,000 de pacienţi serios afectaţi şi peste 700 de

decese între 2005 şi 2009decese între 2005 şi 2009

�� Dispozitivele wireless sunt vulnerabileDispozitivele wireless sunt vulnerabile

Page 2: Curs 5 - infoanul1.files.wordpress.com file22.10.2013 2 Lăcr ămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Lăcr ămioara Stoicu-Tivadar Introducere în

22.10.2013

2

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

� Util pentru a scrie compilatoare, editoare, sisteme de operare, aplicaţii

� A fost dezvoltat şi implementat pe sistemul de operare UNIX pentru DEC (Digital Equipment Corporation) PDP11 (1972)

� Limbajul B (Ken Thomson) – BCPL (Martin Richards)

� 1978 Brian Kernighan &Dennis M. Ritchie: “The C Programming Language” (ed. 2:1989)

Brian Kernighan Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Dennis M. Ritchie

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

� ~ 5000 limbaje de programare

� Unix (prima versiune) – pentru PDP 11 în limbaj de asamblare

� C – pentru Unix –> pentru sisteme de operare

� Pentru a scrie programe care fac apel la serviciile SO se folosesc uşor rutinele scrise în C (citirea unui fişier, crearea unui proces, etc.)

� Număr mare de biblioteci scrise în C.

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Linux operating system

Image credit: Screenshot by Cujo359

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

� C are cel mai bun echilibru pe care l-am văzut vreodată între putere şi expresivitate.

� Poţi face aproape orice vrei programând într-un fel destul de evident şi ai întotdeauna un model mental bun a ceea ce se va întâmpla pe calculator; poţi prezice destul bine cât de repede o să meargă, înţelegi ce se petrece şi îţi dă libertate totală să faci ce vrei. … dar în ceea ce priveşte realizarea a ceva fără prea mult efort, nu am văzut nimic mai bun până în ziua de azi.

� Există alte limbaje reuşite pentru aplicaţii specifice, dar dacă ar fi să eşuez pe o insulă pustie cu un singur compilator, aş vrea un compilator de C.

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

� Nu pot comenta despre trăsăturile negative; îţi reamintesc că C este în întregime creaţia lui Dennis Ritchie. Eu am contribuit doar la popularizarea sa, şi în particular nu pot spune ce e greu şi ce e uşor de compilat în C.

� Sunt câteva lucruri greşite în C: instrucţiunea switch putea fi mai bine proiectată, precedenţa unora dintre operatori este greşită, dar astea sunt lucruri mărunte şi lumea a învăţat să le evite.

� Cred că adevărata problemă a limbajului C este că nu-ţi pune la dispoziţie destule mecanisme pentru a scrie programe cu adevărat mari, pentru a crea ziduri de protecţie în interiorul programelor, care izolează feluritele bucăţi. Nu se pune problema că nu poţi face astfel de lucruri, că nu poţi simula programare orientată pe obiecte sau alte metodologii de programare în C, poţi să faci toate astea, dar compilatorul şi limbajul nu te vor ajuta.

� Dar dacă luăm în considerare că C are aproape 30 de ani şi că a fost creat când calculatoarele erau minuscule în comparaţie cu ceea ce avem acum, cred că e o creaţie admirabilă, care a trecut de testul scurgerii timpului extrem de bine. Nu sunt multe lucruri pe care le-aş schimba în C.

Page 3: Curs 5 - infoanul1.files.wordpress.com file22.10.2013 2 Lăcr ămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Lăcr ămioara Stoicu-Tivadar Introducere în

22.10.2013

3

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

� American National Standard Institute:ANSI C standard (1983 - 1989) –numărul documentului: #X3J11/99-090

� Update: 1999

� Defineşte: arhitectura, sintaxa, funcţiile bibliotecii C standard.

� Este standardul internaţional pentru C

ANSI C - portabilitateISO/IEC 9899:1990.Lăcrămioara Stoicu-Tivadar

Introducere în programarea calculatoarelor, 2013

o ISO/IEC 9899:2011 is designed to promote the portability of C programs among a variety of data-processing systems

It specifieso the representation of C programs;o the syntax and constraints of the C language;o the semantic rules for interpreting C programs;o the representation of input data to be processed by C

programs;o the representation of output data produced by C

programs;o the restrictions and limits imposed by a conforming

implementation of C.

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Mediul de programareMediul de programare

Pune la dispoziţie� Un editor de texte� Un compilator� Un link-editor� Un sistem de "help"� Ferestre multiple� Posibilitatea de depanare a programului

(Debug)

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

� Mainframes� Personal computers (Borland

C++, Microsoft Visual C++)� Microcontrolere� Procesoare numerice de

semnal (Digital Signal Processors:DSP)

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Compilator

Extensie fişier intrare

.CExtensie fişier ieşire

.asm

Asamblor .asm .obj, .lib

Link-editor

.obj

.lib .exe

Page 4: Curs 5 - infoanul1.files.wordpress.com file22.10.2013 2 Lăcr ămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Lăcr ămioara Stoicu-Tivadar Introducere în

22.10.2013

4

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

o Fazele compilării� Analiza lexicală: conversia caracterelor din programul

sursă în unităţi lexicale (UL- elemente simple de sine stătătoare; simboluri, etichete, comentarii, etc)

� Analiza sintactică: transformă unităţile lexicale înstructuri sintactice ale programului (parse trees)

� Analiza semantică: generarea codului intermediar� Generarea codului: se generează codul maşină

Compilare

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Un program este structurat în general în trei părţi:

�Secţiunea “#”�Declaraţii�Instrucţiuni

3.2. Structura unui program3.2. Structura unui program

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

� Declaraţii de funcţii� Declaraţii de variabile

externe

� Apelul funcţiei main() {� Declaraţii de variabile

locale� Instrucţiuni }

� Definiţii de funcţii {� Declaraţii de variabile

locale� Instrucţiuni� return valoare }

Pe parcurs - Comentarii /*…*/

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Criterii de evaluare ale unui limbaj de Criterii de evaluare ale unui limbaj de programareprogramare

o Readability: uşurinţa cu care programele pot fi citite şi înţelese

o Writability: uşurinţa cu care poate fi folosit un limbaj pentru a scrie programe

o Fiabilitatea: conformitatea cu specificaţiileo Costul: costul total final

Page 5: Curs 5 - infoanul1.files.wordpress.com file22.10.2013 2 Lăcr ămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Lăcr ămioara Stoicu-Tivadar Introducere în

22.10.2013

5

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

ReadabilityReadability

o Simplitatea globală� O mulţime de proprietăţi şi construcţii flexibile� O gamă restrânsă de posibilităţi de rezolvarea ale aceleaşi operaţii

o Ortogonalitate*� Un număr relativ mic de construcţii primitive poate fi combinat într-un

număr relativ mic de moduri� Orice combinaţie posibilă este legală

o Instrucţiuni de control� Prezenţa unor structuri de control bine cunoscute (ex. while)

o Tipuri si structuri de date� Prezenţa facilităţilor adecvate pentru a defini structuri de date

o Considerente sintactice� Forma identificatorilor: prin compoziţii flexibile� Cuvinte şi metode speciale pentru instrucţiunile compuse� Forma şi înţelesul: construcţii autodescriptive şi cuvinte cheie cu

înţeles implicit*gradul de asemănare între două sau mai multe entităţi

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

WritabilityWritability

o Simplitate şi ortogonalitate� Un mic număr de primitive, un set mic de construcţii

şi o mulţime redusă de reguli pentru a le combina

o Suport pentru abstractizare� Capacitatea de a defini şi utiliza structuri sau operaţii

complexe în moduri care permit ignorarea detaliilor

o Expresivitate� O mulţime convenabilă de modalităţi pentru

specificarea operaţiilor (ex. for)

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

FiabilitateFiabilitate

o Verificarea tipului� testare

o Gestiunea erorilor� Depistarea erorilor de execuţie şi propunerea de corecţii

o Dedublarea (Aliasing)� Existenţa a două sau mai multe metode de referire pentru

aceeaşi locaţie de memorie

o Readability/writability� Un limbaj care nu furnizează posibilităţi “naturale” de

exprimarea ale unui algoritm va folosi abordări nenaturale care vor reduce uşurinţa de citire a programului (caracteristica readability)

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

CostCost

o Instruirea programatorilor pentru a utiliza limbajul

o Scrierea programeloro Compilarea programeloro Execuţia programeloro Modalitatea de implementare a programelor –

compilatoare gratuite disponibile?o Fiabilitatea – un grad scăzut de fiabilitate

creşte costurileo Întreţinerea programelor

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Stil de programare

Convenţii de codificare

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

http://www.flickr.com/photos/73807667@N02/8021619893/sizes/c/

Page 6: Curs 5 - infoanul1.files.wordpress.com file22.10.2013 2 Lăcr ămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Lăcr ămioara Stoicu-Tivadar Introducere în

22.10.2013

6

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Stil de programareStil de programare

o un set de reguli utilizat în scrierea codului sursă având drept scop facilitarea citirii şi înţelegerii rapide� indentare şi spaţiere� amplasarea acoladelor� numele entităţilor� funcţiile� comentariile

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Stil de programareStil de programare

o scriuunprogramincfoartebunsiapoimaduclaplimbare

o Scriu un program în C foarte bun şi apoi mă duc la plimbare

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

De ce?

o uniformizează modul de scriere a codului o facilitează citirea şi înţelegerea unui programo pentru că 80% din ciclul de viaţă al unui program se

regăseşte în mentenanţa acestuia - facilitează întreţinerea aplicaţiilor

o majoritatea programelor complexe nu sunt întreţinute şi actualizate de către acelaşi programator

o facilitează comunicarea între membrii unei echipe având ca rezultat un randament sporit al lucrului în echipă

o facilitează testarea mai uşoară a aplicaţiei

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Indentare şi spaţiereIndentare şi spaţiere

o unde începe un bloc de control şi undese încheieo folosirea taburilor nu a spaţiilor(mărimea recomandată pentru tab este 4 )o un spaţiu după fiecare variabilă, operator,

parantezăo un program cu mai mult de 3 niveluri de

indentare – de revăzut

Page 7: Curs 5 - infoanul1.files.wordpress.com file22.10.2013 2 Lăcr ămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Lăcr ămioara Stoicu-Tivadar Introducere în

22.10.2013

7

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Amplasarea acoladelorAmplasarea acoladelor

o ultima acoladă deschisă se plasează pe linie cuinstrucţiunea către care face referinţăo acolada închisă va fi plasată pe linie separată

if ( x =0 ) {y=20;

}

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Amplasarea acoladelorAmplasarea acoladelor

o în cazul definirii funcţiilor acolada deschisă se plasează pe rândul următor

int functie( int x ){corpul funcţiei ….}

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Numele entităţilorNumele entităţilorFuncţiile. ComentariileFuncţiile. Comentariile

o nume eficiente� AceastaEsteVariabila – NU; contor –DA

o funcţiile trebuie să fie scurte şi să facă un singur lucru; dimensiunea unei funcţii nu trebuie să depăşească unul sau două ecrane

o lungimea unei funcţii trebuie să fie invers proporţională cu nivelul de indentare şi complexitatea acesteia.

o comentariile descriu CE face funcţia sau secvenţa de cod, nu CUM – evitaţi supracomentariile

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Stil de programareStil de programare

Exemplu:o toate numele funcţiilor utilizator să înceapă cu literă

mare (pentru a le deosebi de cele standard) şi să nu conţină caracterul de subliniere; ex. Adunare(x,y)

o toate variabilele să conţină doar litere mici; ex. int contor

o variabilele să aibă o anumită semnificaţie (i,j,k,l –folosite pentru iteraţii)

o declaraţiile să preceadă funcţiile, funcţiile să preceadă funcţia main

o să nu fie folosită instrucţiunea goto

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

� Recomandări� scrieţi cod eficient: cod scurt şi execuţie rapidă;� folosiţi reguli în aşa fel încât codul să fie uşor de

citit;

� codul să folosească pe cât posibil toate facilităţilebune ale limbajului.

• “Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live, while most people end up writing as if the person maintaining the code is themselves”. (M. Einarsen)

Page 8: Curs 5 - infoanul1.files.wordpress.com file22.10.2013 2 Lăcr ămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013 Lăcr ămioara Stoicu-Tivadar Introducere în

22.10.2013

8

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

int a,b,c=1;…while(b>0) {c=c*a;b=b-1;}

printf(“%d”,c);

int a ,b ,c = 1;…while(b > 0) {

c = c * a;b = b - 1;

}printf(“%d”,c);

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

� La începutul programului scrieţi câteva informaţii despre condiţiile de realizare ale acestuia:� Numele programului� Ce realizează programul� Autorul programului� Copyright� Condiţii de utilizare (limite, capcane)� Orice altă informaţie folositoare

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

/******************************** Textul care descrie programul ** Pe mai multe randuri ********************************/� Folosiţi comentarii – pentru a descrie o variabilă, o linie mai

importantă, detalii de programare, capcane posibile; scrieţicomentariile în timpul editării programului.

� Nu creaţi fişiere foarte mari care sunt incomod de editat şi tipărit.� creaţi fişiere de maxim 2000-3000 de linii

� Liniile unui program nu trebuie să depăşească 72 de caractere(limita ecranului este 80), dar se recomandă linii pe cât posibil descurte

� Folosiţi doar cele 95 de caractere tipăribile din standardul ASCII.

Lăcrămioara Stoicu-Tivadar Introducere în programarea calculatoarelor, 2013

Sumar C6Sumar C6

o Structura unui program în limbaj C� Declaraţii (identificatori, cuvinte rezervate,

cuvinte utilizator, variabile, constante)� Instrucţiuni� Tipuri de date� Tipuri standard

� Modificatori� Tipul întreg (definire, operaţii, funcţii standard)� Tipul real (…)� Tipul caracter (…)

� Tipul logic - definit de utilizator