Programarea calculatoarelor CURS 1

Similar documents
Algoritmică şi programare Laborator 3

VISUAL FOX PRO VIDEOFORMATE ŞI RAPOARTE. Se deschide proiectul Documents->Forms->Form Wizard->One-to-many Form Wizard

Parcurgerea arborilor binari şi aplicaţii

GRAFURI NEORIENTATE. 1. Notiunea de graf neorientat

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Modalităţi de redare a conţinutului 3D prin intermediul unui proiector BenQ:

SUBIECTE CONCURS ADMITERE TEST GRILĂ DE VERIFICARE A CUNOŞTINŢELOR FILIERA DIRECTĂ VARIANTA 1

Ghid de instalare pentru program NPD RO

Split Screen Specifications

Aplicatii ale programarii grafice in experimentele de FIZICĂ

declarare var <identif>:array[<tip1>,<tip2>,...] of <tip_e>; var a: array[1..20] of integer; (vector cu 20 elemente)

2. PORŢI LOGICE ( )

Pasul 2. Desaturaţi imaginea. image>adjustments>desaturate sau Ctrl+Shift+I

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE. LUCRĂRILE DE LABORATOR Nr. 12, 13 şi 14

6. MPEG2. Prezentare. Cerinţe principale:

Application form for the 2015/2016 auditions for THE EUROPEAN UNION YOUTH ORCHESTRA (EUYO)

9.1. Structura unităţii de I/E. În Figura 9.1 se prezintă structura unui sistem de calcul împreună cu unitatea

3. CPU 3.1. Setul de regiştri. Copyright Paul GASNER

4 Caracteristici numerice ale variabilelor aleatoare: media şi dispersia

Exerciţii Capitolul 4

22METS. 2. In the pattern below, which number belongs in the box? 0,5,4,9,8,13,12,17,16, A 15 B 19 C 20 D 21

10 Estimarea parametrilor: intervale de încredere

Split Screen Specifications

Anexa 2. Instrumente informatice pentru statistică


Curriculum vitae Europass

Click pe More options sub simbolul telefon (în centru spre stânga) dacă sistemul nu a fost deja configurat.

Tehnici de programare

Capitolul 1. Noţiuni de bază

Hama Telecomanda Universala l in l

Mail Moldtelecom. Microsoft Outlook Google Android Thunderbird Microsoft Outlook

Defuzzificarea într-un sistem cu logică fuzzy. Aplicaţie: maşina de spălat cu reguli fuzzy. A. Obiective. B. Concepte teoretice ilustrate

Laboratorul 1. MS Word

DIRECTIVA HABITATE Prezentare generală. Directiva 92/43 a CE din 21 Mai 1992

Capitolul V MODELAREA SISTEMELOR CU VENSIM

b) Sa se afiseze numele salariatilor al caror salariu este mai mare decat salariul lui Kevin Mourgos.

OLIMPIADA DE MATEMATIC ¼A ETAPA JUDEŢEAN ¼A 3 martie 2007

Clasele de asigurare. Legea 237/2015 Anexa nr. 1

PROBLEME DE TEORIA NUMERELOR LA CONCURSURI ŞI OLIMPIADE

Press review. Monitorizare presa. Programul de responsabilitate sociala. Lumea ta? Curata! TIMISOARA Page1

Circuite Basculante Bistabile

Un tip de data este caracterizat de: o O mulţime de date (valori є domeniului) o O mulţime de operaţii o Un identificator.

PROCESOARE NUMERICE DE SEMNAL DIGITAL SIGNAL PROCESSORS

ARHITECTURA CALCULATOARELOR 2003/2004 CURSUL 10

Consideraţii statistice Software statistic

Maria plays basketball. We live in Australia.

Alexandrina-Corina Andrei. Everyday English. Elementary. comunicare.ro

riptografie şi Securitate

Reprezentări grafice

Ghidul administratorului de sistem

Sistemul de operare Windows (95, 98) Componenta My Computer

Operaţiile de sistem de bază

OLIMPIADA INTERNAŢIONALĂ DE MATEMATICĂ FORMULA OF UNITY / THE THIRD MILLENIUM 2014/2015 RUNDA A DOUA

Laboratorul 1. Primii paşi în Visual Basic.NET

CUPRINS CAP. 1. PREZENTARE GENERALĂ

Paradoxuri matematice 1

O VARIANTĂ DISCRETĂ A TEOREMEI VALORII INTERMEDIARE

Teoreme de Analiză Matematică - II (teorema Borel - Lebesgue) 1

ZOOLOGY AND IDIOMATIC EXPRESSIONS

Curs 3 Word 2007 Cuprins

FIŞA DISCIPLINEI. 3.7 Total ore studiu individual Total ore pe semestru Număr de credite 4

ice~felix' COMPUTER S.A.

Precizări metodologice cu privire la evaluarea inińială/ predictivă la disciplina limba engleză, din anul şcolar

Tehnologia Informaţiei şi a Comunicaţiilor

Conferinţa Naţională de Învăţământ Virtual, ediţia a IV-a, Graph Magics. Dumitru Ciubatîi Universitatea din Bucureşti,

ANEXA NR. 1. Caracteristicile tehnice ale interfeţelor echipamentelor. Exemplu schema de interconectare TRONSON XX: A A1 A2 A3 - B STM-4 A2 A3 STM-1

9. MENIURI si OBIECTE MULTIMEDIA

LESSON FOURTEEN

FIŞA DISCIPLINEI Anul universitar

Anexa nr.1. contul 184 Active financiare depreciate la recunoașterea inițială. 1/81

Introducere De ce această carte?... 8 Eficienţă maximă... 8 Scurt Istoric... 9 De ce C#? Capitolul I : Să ne pregătim...

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

OPTIMIZAREA GRADULUI DE ÎNCĂRCARE AL UTILAJELOR DE FABRICAŢIE OPTIMIZING THE MANUFACTURING EQUIPMENTS LOAD FACTOR

PREZENTARE INTERFAŢĂ MICROSOFT EXCEL 2007

Curs 1: Generalităţi despre calculatoare şi programarea lor

FIŞA DISCIPLINEI1 1. Date despre program 2. Date despre disciplină 3. Timpul total estimat 3.7 Total ore studiu individual

Ministerul Educaţiei Naţionale Centrul Naţional de Evaluare şi Examinare

1. Funcţii speciale. 1.1 Introducere

Microsoft Excel partea 1

VERBUL. Are 3 categorii: A. Auxiliare B. Modale C. Restul. A. Verbele auxiliare (to be si to have)

LIMBAJUL SQL 1. GENERALITĂŢI

CE LIMBAJ DE PROGRAMARE SĂ ÎNVĂŢ? PHP vs. C# vs. Java vs. JavaScript

EPI INFO. - Cross-tabulation şi testul 2 -

FIŞA DISCIPLINEI. - Examinări 4 Alte activităţi. 3.7 Total ore studiu individual Total ore pe semestru Număr de credite 5

TTX260 investiţie cu cost redus, performanţă bună

SISTEME DE ACHIZIŢIE DE DATE CU PC

GREUTATE INALTIME IMC TAS TAD GLICEMIE

Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare

Curs 10: Analiza seriilor de timp. Data mining - Curs 10 1

Managementul Proiectelor Software Principiile proiectarii

Raionul Şoldăneşti la 10 mii locuitori 5,2 4,6 4,4 4,8 4,8 4,6 4,6 Personal medical mediu - abs,

2 MEDIUL BAZELOR DE DATE

Curriculum vitae Europass

Ghid de configurare fără fir

FIŞA DISCIPLINEI Semestrul Tipul de evaluare. Obligatorie. 2.7 Regimul disciplinei

PROGRAMA CONCURSULUI NAŢIONAL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI ANUL ŞCOLAR

Îţi dorim mult succes!

Biostatistică Medicină Generală. Lucrarea de laborator Nr Intervale de încredere. Scop: la sfârşitul laboratorului veţi şti:

CAPITOLUL 2. FACILITATILE SI ARHITECTURA SISTEMULUI ORACLE

2.Transferul de date. Transferul de date

Transcription:

Limbajul C CURS 1 Ş.l. Carmen Odubăşteanu

Bibliografie: curs.cs.pub.ro Programarea Calculatoarelor seria 1CC elf.cs.pub.ro/programare laboratoare si simulator http://posdru62485.discipline.upb.ro/ - curs detaliat Negrescu L - Limbajele C şi C++ pentru începători, volumul 1: Limbajul C, Ed. Albastră, Cluj-Napoca, 2002 Florian Moraru Programarea Calculatoarelor Brian W. Kernighan, Dennis M. Ritchie - The C Programming Language

Cuprins Introducere Algoritm şi obiectele acestuia Limbaje de programare Programare structurată Scheme logice, pseudocod Exemple Istoric limbaj C Elemente de bază ale limbajului C Tipuri de date şi constante Variabile şi operatori Expresii Funcţii I/O Instrucţiuni Directive de preprocesare Tablouri

Cuprins Funcţii Pointeri Vectori şi pointeri Funcţii şi pointeri Şiruri de caractere Structuri Alocare dinamică Fişiere text şi fişiere binare Tipuri generice Programe complexe. Compilări separate. Fişiere proiect. Convenţii de programare

Obiective Cursanţii vor dobândi următoarele abilităţi: Să scrie, să compileze şi să ruleze un program simplu C Să utilezeze corect elementele de bază ale limbajului C Să foloseasca tipurile structurate de date (vectori, matrici, structuri) Să proiecteze şi să implementeze programe modulare utilizând definirea de funcţii proprii Să acceseze memoria folosind pointeri Să acceseze şi să prelucreze date aflate in fişiere

Obiective Să proiecteze şi să implementeze programe complexe sub formă de proiecte Să testeze şi să depaneze un program C Să folosească un stil de scriere a programelor cât mai eficient (comentarii, codificări) Să treacă examenul de PC şi examenele de programare care vor urma în anii următori. Uraaaaaa!

Obiective Condiţiile pentru dobândirea acestor capabilităţi? Dar beneficiile?

Nota finală Prezenţa laborator Activitate laborator Teme de casă Cei care au temele asemănătoare 0 p Total din timpul semestrului: 4 p Examen final condiţie de intrare în examen: 50% din punctajul maxim din timpul semestrului

Introducere in programare x 2-2, x<0 F(x)= 3, x=0 x+2, x>0 x = {-3, 0,1,7, 2.23, etc} 100 valori Etape 1. Elaborare algoritm 2. Transpunere algoritm în limbaj de programare 3. Rulare şi... din nou etapa 1 dacă nu am obţinut ce trebuia

Algoritm Succesiune de etape ce se poate aplica mecanic pentru rezolvarea unei clase de probleme Redactare Scheme logice Pseudocod Mental cine îşi permite? Cerinţe Claritate fără ambiguităţi Generalitate pentru o întreagă clasă de probleme Finitudine furnizare rezultat în timp finit Obs: O problemă poate avea mai mulţi algoritmi de rezolvare cel mai bun?

Obiecte cu care lucrează algoritmii Date Intrare Ieşire După tipul lor: Întregi: 2, -4 Reale: 3.25 Logice: true şi false Caracter: y Şir de caractere: ab23_c Constante: date conţinute în program fără a fi citite sau calculate - π

Obiecte cu care lucrează algoritmii Variabile: nume unic, conţinut diferit Nume Tip Valoarea la un moment dat Locul în memorie (adresa) x1, x2, x3... -> x F(x1), F(x2), F(x3),... -> F x este de tipul real, are valoarea 3 la un moment dat şi se află în memorie la adresa 0xFF32

Obiecte cu care lucrează algoritmii Expresii Construite cu constante, variabile, operatori De mai multe tipuri, ca şi variabilele: 3*x+7, x<y, etc Operaţii Intrare: preluarea unei date de la un dispozitiv de intrare Ieşire: trecerea unei date din memorie către un dispozitiv de ieşire Atribuire: x=3; y=x; y=x+y Se evaluează expresia din dreapta atribuirii Valoarea obţinută este atribuită variabilei din stânga, care îşi pierde vechea valoare Decizie

Program Descriere precisă şi concisă a unui algoritm într-un anumit limbaj de programare

Limbaje de programare Limbaje de nivel coborât, dependente de calculator: Limbaj maşină Limbaj de asamblare mnemonice pentru operaţiuni simboluri pentru adrese greu, dar interesant!

Limbaje de programare Limbaje de nivel înalt, independente de structura calculatorului: Fortran (FORmula TRANslation) 1955, IBM, probleme tehnico-ştiinţifice Cobol 1959, probleme economice Programare structurată 70 Programare orientată pe obiecte 80

Programare structurată Dijkstra şi Hoare Programarea in care abordarea este topdown: descompunerea problemei complexe în subprobleme mai simple - modul Teorema de structură a lui Bohm şi Jacopini: orice algoritm poate fi compus din numai trei structuri de calcul: structura secvenţială - secvenţa; structura alternativă - decizia; structura repetitivă - ciclul. o singură intrare şi o singură ieşire pentru fiecare

Operaţii auxiliare Start/Stop Start Stop Acţiuni nedetaliate Prelucrare

Secvenţa Atribuirea: operaţia prin care unei variabile i se atribuie o valoare. Operaţiile de intrare/ieşire: programatorul ia de la tastatură o valoare (intrarea) afişează pe ecran o valoare (ieşirea) Pseudocod: Exemplu: Citirea şi scrierea unei valori. i=7; citeste a; scrie a;

Decizia O întrebare ridicată de programator la un moment dat în program. In funcţie de răspunsul la întrebare - care poate fi ori Da, ori Nu - programul se continuă pe una din ramuri. daca conditie adevarata instructiuni1; altfel instructiuni2; Să se afişeze maximul dintre două valori a şi b.

Structura alternativă Caz particular decizie Condiţie Instrucţiunile care se execută dacă respectiva condiţie este adevarată Instrucţiunile care se execută dacă este falsă. Rezolvarea ecuaţiei de grad 1: ax+b=0

Structura repetitivă cu conditie iniţială O condiţie, care se află la început Un bloc de instrucţiuni, care se execută dacă rezultatul evaluarii condiţiei este adevărat atata timp cat conditie adevarata instructiuni Să se afişeze suma primelor n numere naturale, n citit de la tastatură.

Structura repetitivă cu condiţie finală Bloc de instrucţiuni, apoi condiţie. Obs: Blocul de instrucţiuni se execută minim o dată, spre deosebire de structura repetitivă cu test iniţial, unde blocul de instrucţiuni era posibil să nu se execute deloc, dacă rezultatul evaluării condiţiei iniţiale era fals. executa { instructiuni } atata timp cat conditie adevarata

Structura repetitivă cu contor Caz particular al structurii de control cu test iniţial. Utilizează o variabilă pe care o foloseşte ca un contor. pleacă de la o valoare; ajunge la o valoare; înaintează cu un pas. pentru contor de la val_initiala la val_finala cu pasul pas instructiuni Suma primelor n numere naturale

Probleme propuse 1. Interschimbul valorilor a două variabile a şi b. 2. Rezolvarea ecuaţiei de grad 2: ax 2 +bx+c=0. 3. Să se afişeze în ordine crescătoare valorile a 3 variabile a, b şi c. 4. Să se calculeze şi să se afişeze suma: S=1+1*2+1*2*3+..+n! 5. Să se calculeze şi să se afişeze suma cifrelor unui număr natural n. 6. Să se calculeze şi să se afişeze inversul unui număr natural n. 7. Să se afişeze dacă un număr natural dat x este prim. 8. Să se afişeze primele n numere naturale prime. 9. Să se descompună în factori primi un număr dat n. 10. Să se afişeze toate numerele naturale mai mici decât 10000 care se pot descompune în două moduri diferite ca sumă de două cuburi.

Probleme propuse Să se calculeze valoarea minimă, respectiv maximă, dintr-o secvenţă de n numere reale. Se dă o secvenţă de n numere întregi pozitive. Să se afişeze cele mai mari numere de 2 cifre care nu se află în secvenţa respectivă. Se dă o secvenţă de n numere întregi, ale căror valori sunt cuprinse în intervalul 0-100. Să se afişeze valorile care apar cel mai des. (vectori).

Limbajul C - Scurt istoric 1972, Dennis Ritchie (Laboratoarele AT&T Bell) pentru programe de sistem 1973, sistemul de operare UNIX este în totalitate scris în C cartea de referinţă care defineşte un standard minim: Brian W. Kernighan, Dennis Ritchie - "The C Programming Language" - Prentice Hall 1978 a fost dezvoltat un standard internaţional (1983-1989)- ANSI C (ANSI - American National Standards Institute) sunt dezvoltate medii de programare C performante sub UNIX şi DOS, care contribuie la utilizarea masivă a limbajului.

Limbajul C - Scurt istoric gruparea structurilor de date cu operaţiile care prelucrează respectivele date - obiect sau clasa. 1980, Bjarne Stroustrup: "C with Classes 1983, C-with-classes a pătruns şi în lumea academică şi a instituţiilor de cercetare. Denumirea finală a acestui limbaj a fost C++. Succes: a extins cel mai popular limbaj al momentului, C. Programele scrise în C funcţionează şi în C++, şi ele pot fi transformate în C++ cu eforturi minime. Cea mai recentă etapă în evoluţia acestui limbaj - limbajul JAVA (SUN)

Structura unui program C Un program C este compus dintr-o ierarhie de funcţii, orice program trebuind să conţină cel puţin funcţia main, prima care se execută la lansarea programului C. Un program C are, în principiu, următoarea structura: directive preprocesor definiţii de tipuri prototipuri de funcţii - tipul unei funcţii (tipul valorii returnate) şi tipurile parametrilor transmişi funcţiei definiţii de variabile globale definiţii de funcţii

Primul program C #include<stdio.h> void main(void) { printf( Hello World! ); } Sau: #include<stdio.h> void main() { printf( Hello World! ); }

Primul program C fără warning la compilare #include<stdio.h> int main() { } printf( Hello World! ); return 0;

Observaţii execuţia programului începe cu prima linie din main() cuvintele cheie sunt scrise cu litere mici instrucţiunile se termină cu ';' şirurile de caractere sunt incluse între ghilimele limbajul C este case sensitive \n poziţionează cursorul la începutul liniei următoare printf() poate fi utilizată pentru afişare pe ecran { } delimitează începutul şi sfârşitul unui blocprogram #include: directivă de preprocesare (includerea unor funcţii de bibliotecă)

Elemente de bază ale limbajului C Alfabetul şi atomii lexicali Identificatorii Cuvintele cheie Tipurile de date Constantele şi variabilele Comentariile Operatorii şi expresiile

1. Alfabetul limbajului Caracterele se codifică conform codului ASCII (American Standard Code for Information Interchange ) Codificare pe 8 biţi (un octet); sunt 256 (0-255) de caractere în codul ASCII. alfabetul cuprinde simboluri grafice şi simboluri fără corespondent grafic spaţiul are codul mai mic decat simbolurile grafice (32) cifrele (în ordine crescătoare), literele mari şi literele mici (în ordine alfabetică) ocupă cate trei zone compacte.

2. Atomi lexicali identificatori constante (explicite) - numerice, caracter, şir operatori semne de punctuatie. Separati de separatori: spaţiul caracterul de tabulare orizontală terminatorul de linie comentariul orice text aflat între combinaţiile de caractere /* şi */ textul început cu // până la sfârşitul liniei