Curs 1 - Introducere în Programarea Calculatoarelor - Limbaje (2024-2025)

Summary

This document provides an introduction to computer programming, outlining fundamental concepts of algorithms, programming languages and the general structure of a program.

Full Transcript

PROGRAMAREA CALCULATOARELOR - LIMBAJE Curs 1 - Introducere ÎN ACEST CURS... 1. Algoritmi 2. Limbaje de programare 3. Etapele dezvoltării unui program 4. Reprezentarea informaţiei în calculator 5. Tipuri de date şi de instrucţiuni in programare...

PROGRAMAREA CALCULATOARELOR - LIMBAJE Curs 1 - Introducere ÎN ACEST CURS... 1. Algoritmi 2. Limbaje de programare 3. Etapele dezvoltării unui program 4. Reprezentarea informaţiei în calculator 5. Tipuri de date şi de instrucţiuni in programare 2 1. ALGORITM Ce este ?  Problema → Algoritm → Soluție  Date intrare → Algoritm → Date ieșire || Mulțime finită și ordonată de operații Caracteristici  Clar  Universal  Finit 3 Cum reprezentăm algoritmii?  Limbaje dedicate formalizate – ALGOL (ALGorithmical Language)  Pseudo limbaj, convențional/neconvențional  Scheme logice  Diferite diagrame: Booch sau mai general UML (succesiunea operaţiilor prin aşa-numitele “activity diagrams”) 4 PSEUDOCOD Algoritm Examen begin read P, T, L if(P>4) and (T>4) and (L>4) then nota= (P+T+L)/ 3.;//ceil, floor, ?0.5 else nota=4 if(nota>=5) then write “Ai promovat” else write “Poate data viitoare…” 5 end SCHEMA LOGICĂ Start read T, P, L Nu if(P>4) and Da (T>4) and (L>4) nota=4 nota=(P+T+L)/3.; Nu Da if(nota> =5) write “Ai write “Poate promovat” data viitoare…” 6 Stop Care sunt elementele cu care lucrează algoritmii? Date intrare Algoritm Date ieşire Date Instrucţiuni Operatori Funcţii Primitive Utilizator 7 2. Limbaje de programare Ce înţelegem printr-un program? Program = rezultatul exprimării algoritmilor într-un limbaj de programare. Programele (software ) se execută pe mașini hardware.  Programare:  ansamblul comunicării om-calculator algoritm Programarea - HMI (Human Machine Interaction) 8 Ce implică asta? Universul: problemei, limbajului, calculatorului LIMBAJE DE PROGRAMARE Ce limbaj înţelege calculatorul? Limbaj propriu = limbaj maşină (cod maşină):  programarea dificilă  programul va funcţiona numai pe acel tip de calculator (neportabil)  depanarea – greoaie 9 EVOLUŢIA PROGRAMĂRII cod mașină → valori numerice, fiecare cu o anumită semnificaţie 10110000010101012=45141 limbaje de asamblare → programare simbolică folosind mnemonice MOV BL, 055H limbaje de programare → vocabular apropiat de limbajul natural reguli precise, lipsite de ambiguităţi [register] int b=85; 10  Un LP poate fi definit prin sintaxa și semantica sa: Sintaxa set de reguli ce guvernează alcătuirea programelor; pentru descrierea sintaxei se folosesc meta- languages cum este BNF (Backus Naur Form) sau van Wijngaarden Form Semantica set de reguli ce determină semnificația propozițiilor unui limbaj 11 LIMBAJE DE PROGRAMARE LP - "compilator“  verifică corectitudinea unui text scris într-un LP (PS- Program Sursă)  faza de analiză → obținerea unei forme intermediare  faza de sinteză → Programul Obiect (PO) ce poate fi ulterior executat în faza de execuție Ex: C/C++, C# LP - "interpretor“ analizează programul sursă şi execută fiecare instrucţiune fără a genera program obiect Ex: Basic, PHP, Python, Perl, Ruby 12 LP mixte Ex: Java LIMBAJE DE PROGRAMARE  Clasificarea LP  după dependenţa de hardware:  LP de nivel jos: cod maşină, asamblare  LP de nivel înalt: nu depind de hardware  LP de nivel mediu: combină avantajele LP de nivel înalt cu funcţionalitatea LP de nivel scăzut  după prelucrările pe care le efectuează:  LP procedurale → Basic, Pascal, C  LP declarative → Lisp, Prolog, SQL, HTML, CSS  LP obiectuale → C++, C#, Java, Eiffel, Smalltalk  LP funcționale, matematizabile → Haskell, ML (MetaLanguage) , etc. 13 Obs! C++1y/2z are facilităţi funcţionale 3. ETAPELE DEZVOLTĂRII UNUI PROGRAM  Codare vs Programare? In general, ambele se referă la utilizarea instrucțiunilor pe care un calculator le poate înțelege și executa, in scopul implementării unui algoritm. Codarea (coding) - actul de a scrie instrucțiuni într-un limbaj de programare specific - scrierea liniilor de cod folosind sintaxa și convențiile unui anumit limbaj de programare. Nou suport in codare → ChatGPT și alte instrumente AI Programarea - un set mai larg de activități → proiectare, planificare și creare a unui program sau a unui sistem software. - rezolvarea problemelor, proiectarea algoritmilor, arhitectura software, testarea, depanarea și întreținerea. - logica și structura generală a software-ului, inclusiv de organizarea codului, de selectarea structurilor de date și a algoritmilor adecvați și de integrarea diferitelor componente. În esență, codarea este un subset al programării. Se concentrează pe implementarea instrucțiunilor specifice folosind un limbaj de programare, în timp ce programarea cuprinde procesul mai larg de creare a software-ului, care implică proiectarea, planificarea și implementarea codului. 14 ETAPELE DEZVOLTĂRII UNUI PROGRAM  Programarea →activitatea de elaborare a unui program Analiza şi  Etape: specificarea Intretinerea Proiectarea Documentarea Implementarea Testarea 15 ETAPELE DEZVOLTĂRII UNUI PROGRAM  Etapele implementării:  editarea programului ➔ programul sursă  compilarea modulelor ➔ modulele obiect  legarea modulelor obiect (ediţie de legături sau "link- editare") ➔ programul executabil final  depanare program: cu un depanator  Mediu de programare: integrează fazele de editare, compilare, editare legături şi depanare 16 4. REPREZENTAREA INFORMAŢIEI ÎN CALCULATOR - CODIFICAREA  DOAR CIFRELE BINARE 0,1 --- numite şi biţi  Aceştia se grupează în:  octeţi (bytes) sau  cuvinte (words) (2, 4, 8 octeţi)  Organizarea informaţiei în biţi, octeţi, cuvinte → în toate componentele unui calculator (unitate centrală, memorie internă, 17 dispozitive periferice) ARHITECTURA VON NEUMANN 18 Unde este stocată o anumită informaţie în memorie?  adresa: număr de ordine al unui octet (cuvânt) în memorie (L-value);  locaţia: zona din memorie rezervată unei anumite informaţii (octet sau cuvânt ce are o valoare estimată, R-value) 19 Location 20 Cum poate informaţia de un anumit tip (text, valoare numerică, imagine, sunet, etc.) să fie reprezentată în calculator prin cifre binare (0 şi 1)?  R: prin codificare  Cu ajutorul cifrelor binare se pot reprezenta direct numai numere naturale  Reprezentarea numerelor întregi negative, a numerelor reale sau a caracterelor → folosind convenţii de reprezentare 21  Codul:  o corespondenţă între simbolurile a două alfabete, având drept scop trecerea de la o formă de reprezentare a informaţiei la alta  La calculatoare - codificarea:  realizează reprezentarea informaţiei într-o formă accesibilă calculatorului pornind de la forma uzuală de reprezentare 22 REPREZENTAREA CARACTERLOR  Cod alfanumeric  Se foloseşte pentru reprezentarea caracterelor (cifre, litere şi alte caractere)  Codul ASCII (American Standard Code for Information Interchange) foloseşte 7 cifre binare pentru a reprezenta cifre zecimale, litere mari şi mici, semne de punctuaţie, operatori aritmetici şi logici, simboluri pentru controlul comunicării şi simboluri pentru editare Codurile 0-31 → caractere de control neprintabile - control periferice (imprimanta), 32-127 → caractere printabile  Pentru reprezentarea caracterelor speciale → codul ASCII8 (ASCII extins) pe 8 cifre binare (ex: Ä, ¼, ©)  Exemple: A - 41h (65) a - 61h (97) 0 - 30h (48) B - 42h (66) b - 62h (98) 1 - 31h (49) 23 LF - 0ah (10) CR - 0dh (13) ESC - 1bh (27) REPREZENTAREA CARACTERELOR  Cod alfanumeric  Codul UNICODE ( din 10 Septembrie 2024 – 16.0.0): https://www.unicode.org/versions/Unicode16.0.0/ standard pe 32 de biți ce permite reprezentarea și manipularea textelor în majoritatea sistemelor de scriere (154,998 caractere în prezent) - 8 biți (UTF-8), 16 biți (UTF-16) și 32 biți (UTF-32) “UTF” - Unicode Transformation Format (modul de codificare) Fiecare dintre cele 3 forme de codare oferă un mecanism pentru reprezentarea caracterelor Unicode, fiecare prezintă anumite avantaje în medii diferite 24 ! poate fi folosit și în limbajul C/C++ prin setarea unei opţiuni REPREZENTAREA NUMERELOR Cod BCD (Binary Coded Decimal) Permite codificarea binară a numerelor zecimale, fără a le transforma efectiv în binar  Fiecare cifră zecimală este codificată separat în binar  Exemplu: 245 0010.0100.0101  In general se poate folosi structura: | Semn | Nr. cifre | Cifre...|  Exemplu: -12345 1111.0101.0001.0010.0011.0100.0101 Formatele de reprezentare BCD în virgulă fixa şi mobilă - domeniile financiar, comercial şi industrial (evită erorile prin rotunjire) 25 REPREZENTAREA NUMERELOR INTREGI Cod complement față de 2 (C2)  Numerele întregi pozitive sunt reprezentate în calculator în binar, pe multiplu de 8 biţi  Conversia numerelor întregi pozitive din baza 10 în baza 2 – regula împărţirii cu baza  împărțiri succesive la 2, până când câtul împărțirii este egal cu 0  restul fiecărei împărțiri = un simbol din reprezentarea numărului binar  rezultatul se obţine prin considerarea simbolurilor în ordine inversă (de la ultimul rest la primul) 2 2 2 2 2 23 11 5 2 1 0 Rezultat pe 8 biţi: 000101112 1 1 1 0 1 26 REPREZENTAREA NUMERELOR INTREGI Reprezentarea numerelor întregi negative  Deoarece nu se pot reprezenta semnele +, - se foloseşte o cifră binară (prima din stânga MSB) pentru semn, cu următoarea convenţie:  0 - pozitiv  1 - negativ  Există mai multe posibilităţi, dintre care s-a impus reprezentarea în C2 (Complement față de 2) 27 Reprezentarea în complement faţă de 1 (C1)  Se reprezintă numărul pozitiv în baza 2  se complementează fiecare cifră binară (0->1 şi 1 ->0)  Ex. reprezentarea numărului întreg -7 POZ: (7)10 = (00000111)2 reprezentare pe 1 octet C1: (-7)10 = (11111000)2 Reprezentarea în complement faţă de 2 (C2)  Se reprezintă numărul în C1  Se adună numărul 1 în binar POZ: (7)10 = (00000111)2 C1: (-7)10 = (11111000)2 C2=C1+1 -> 11111000 + 1= 11111001 C2: (-7)10 = (11111001)2 28 Legătura între numărul de biți și domeniul de valori N=1 0001 C1 1110 + 1 C2: 1111 → -1 N=0 0000 C1 1111 + 1 C2: 0000 → 0 (ultimul 1 se pierde) N=7 0111 C1 1000 + 1 C2: 1001 → -7 N=8 1000 (!!! un număr pozitiv nu poate fi reprezentat cu 1 pe prima poziţie (poziţia de semn)) C1 0111 + 1 C2: 1000 → -8 OBS: Pentru 4 biţi : -23

Use Quizgecko on...
Browser
Browser