Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Documente similare
Microsoft Word - CarteC.doc

Programarea şi utilizarea calculatoarelor

E_d_Informatica_sp_SN_2014_bar_10_LRO

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Programarea şi utilizarea calculatoarelor

Microsoft Word - O problema cu bits.doc

tehnologii web

Microsoft Word - CarteC.doc

Microsoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]

Limbaje de Programare Curs 6 – Functii de intrare-iesire

PCLPII-C16(9)

Lecţia 2 Structura liniară, alternativă şi repetitivă Clasa a V-a Structuri de bază(liniară, alternativă şi repetitivă) Programarea structurată este o

Programarea calculatoarelor. Note de curs Marius Minea 1 Introducere în programarea în C 1.1 Funcţii în limbajul C Calcule şi funcţii La origine, rolu

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Microsoft Word - PCLP2_Curs_4_2019.doc

1. a. Să se scrie un algoritm care să afişeze toate numerele de patru cifre care au cifra sutelor egală cu o valoare dată k, şi cifra zecilor cu 2 mai

E_d_Informatica_sp_MI_2015_bar_02_LRO

SUBPROGRAME

-

L7

SSC-Impartire

Microsoft Word - CarteC.doc

Slide 1

Declararea variabilelor

Slide 1

Coman Marinela Furnizor program formare acreditat: CCD BRĂILA Denumire program: INFORMATICĂ ŞI TIC PENTRU GIMNAZIU Clasa a V-a Categorie: 1; Tip de co

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Microsoft Word - Curs1.docx

Paradigme de Programare

Slide 1

PowerPoint-Präsentation

Slide 1

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XI 1.Fişierul text bac.in conţine cel mult 1000 de

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

MergedFile

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Microsoft Word - Lab1a.doc

Microsoft Word - Lucrarea_10_t.doc

Clasa IX 1. O lăcustă face salturi, fiecare salt în linie dreaptă şi de două ori mai lung ca precedentul. Poate vreodată lăcusta să revină în punctul

Laborator 2 Incompatibilităţi/Diferenţe între C şi C++ Completări C++ Supraîncărcarea (redefinirea) numelui de funcţii În C nu este permisă existenţa

Anexa nr. 2 FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior UNIVERSITATEA DE VEST TIMISOARA 1.2 Facultatea FIZICA 1.3 De

Top

Diapositive 1

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

Limbaje de Programare Curs 8 – Fisiere

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

proiectarea bazelor de date

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

MINISTERUL EDUCAŢIEI, CULTURII ŞI CERCETĂRII AL REPUBLICII MOLDOVA UNIVERSITATEA DE STAT ALECU RUSSO DIN BĂLŢI FACULTATEA DE ŞTIINŢE REALE, ECONOMICE

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Microsoft Word - D_ MT1_II_001.doc

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace

Declaraţii. Instrucţiuni 19 octombrie 2005 Programarea calculatoarelor 2. Curs 3b Marius Minea

Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare

Microsoft Word - Software pentru ordonarea multirang a componentelor unei colectivitati.doc

Subiectul 1

L4. TEOREMELE ALGEBREI BINARE. FUNCȚII LOGICE ELEMENTARE. OPERAȚII LOGICE PE BIT. SINTEZA FUNCȚIILOR LOGICE DIN TABELE DE ADEVĂR 1. Obiective Prin par

LUCRAREA NR

PROGRAMARE ORIENTATA PE OBIECTE

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

Paradigme de programare

Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XII 1.Să se scrie în limbajul C/C++ definiţia comp

ALGORITHMICS

Slide 1

Tablouri unidimensionale Problema 1 Să se determine mulţimea cifrelor unui număr natural n > 0, dat. Exemplu: n= Cifre = {1,2,3,7} Se cere să s

Aggregating Data

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Microsoft PowerPoint - Fp_2.ppt

PHP (II)

MergedFile

Backtracking_2018

COMENTARII FAZA JUDEŢEANĂ, 9 MARTIE 2013 Abstract. Personal comments on some of the problems presented at the District Round of the National Mathemati

Microsoft Word - Raspunsul la niste provocari. Partea III..doc

Analiză statică Analiza fluxului de date 23 octombrie 2014

Analiză de flux de date 29 octombrie 2012

Ecuatii si sisteme de ecuatii neliniare 1 Metoda lui Newton Algorithm 1 Metoda lui Newton pentru ecuaţia f(x) = 0. Date de intrare: - Funcţia f - Apro

Subiecte_funar_2006.doc

Microsoft Word - Notiuni de arhitectura calculatoarelor.doc

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Managementul Resurselor Umane

CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: ALTERESCU V. IULIA-CRI

Microsoft Word - lab1_2007.doc

Microsoft PowerPoint - Curs_SDA_4_RO_2019_v2.pptx

CONCURSUL DE MATEMATICĂ APLICATĂ "ADOLF HAIMOVICI" ETAPA JUDEȚEANĂ 18 martie 2017 Filiera Tehnologică : profilul Tehnic Clasa a IX -a Problema 1. 2 Se

Limbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012

ALGORITHMICS

UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs MATE-INFO UBB 6 aprilie 2019 Proba scrisă la MATEMATICĂ NOTĂ IM

Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA 45 Matematică. Clasa a VII-

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

Notiuni de algebra booleana

Structuri de date pentru partiţii de mulţimi O partiţie finită a unei mulţimi nevide S este o mulţime finită de submulţimi ale lui S: {S 1, S 2,..., S

Limbaje de ordinul I LOGICA DE ORDINUL I Un limbaj L de ordinul I este format din: o mulţime numărabilă V = {v n n N} de variabile; conectorii şi ; pa

Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S

DAN LASCU ADRIANA-LIGIA SPORIŞ ANDA OLTEANU PAUL VASILIU MATEMATICĂ. CULEGERE DE PROBLEME TIP GRILĂ PENTRU ADMITEREA ÎN ACADEMIA NAVALĂ MIRCEA CEL BĂT

Microsoft Word - Prezentare - A4 - cernavoda.doc

Logică și structuri discrete Mulțimi Casandra Holotescu

Transcriere:

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici Operatii pe biti Operatorul conditional Operatori Logici && si sau! negare (operator unar)!((a>1)&&(a<10)) ((a<-1)&&(a>-10)) Operatori logici pe biti Operatorii din această categorie acţionează asupra biţilor de pe aceeaşi poziţie din operanzi. Ei sunt: & - şi logic pe biţi - sau logic pe biţi ^ - sau exclusiv pe biţi ~ - complement faţă de unu >> - deplasare spre dreapta << - deplasare spre stanga Aceşti operatori se aplică la operanzi de tip întreg. & Şi pe biti SAU pe biti x= 0xFFF0 1111 1111 1111 0000 y= 0x002F & 0000 0000 0010 1111 x&y= 0x0020 0000 0000 0010 0000

x y = 0xFFFF 1111 1111 1111 0000 0000 0000 0010 1111 1111 1111 1111 1111 ^ SAU EXCLUSIV pe biti x^y= 0xFFDF ~ COMPLEMENT pe biţi ~ y= 0xFFD0 Inlocuieste fiecare bit 0 cu 1 şi fiecare bit 1 cu 0 Operatorul deplasare (shift): x << n (la stinga) Deplaseaza bitii cu n pozitii la stinga, punind zero in dreapta. Daca x = 1111 1111 1111 00002 x << 1 este 1111 1111 1110 00002 x >> n (la dreapta) Deplaseaza bitii cu n pozitii la dreapta: Punind 1 in partea stinga daca este un intreg cu semn Punind 0 in partea stinga daca este un intreg fara semn x >> 1 este 0111 1111 1111 10002 (fara semn) x >> 1 este 1111 1111 1111 10002 (cu semn) Inmultire si Impartire cu 2 Inmultirea si impartirea cu 2 este adesea mai lenta decat deplasarea pe biti. Inmultirea cu 2 poate fi inlocuita cu deplasarea cu 1 bit la stinga: n = 10 printf( %d = %d, n*2, n<<1); printf( %d = %d, n*4, n<<2); Impartirea cu 2 poate fi inlocuita cu deplasarea cu 1 bit la dreapta: n = 10 printf( %d = %d, n/2, n>>1); printf( %d = %d, n/4, n>>2); Operatorul Conditional Sintaxa: exp1? exp2 : exp3 exp2 Exemplu: z = (x > y)? x : y; max_a_b_c=a>b?(a>c?a:c):(b>c?b:c); daca exp1 este true (non-zero) valoarea este daca exp1 este falsa (0), valoarea este exp3

Tabelul de mai jos sintetizează regulile de pondere şi asociativitate pentru toţi operatorii. Operatorii de pe aceeaşi linie au aceeaşi pondere; liniile sunt în ordinea ponderii descrescătoare, astfel că, de exemplu, "*", "/" şi "%" au aceeaşi pondere, care este mai mare decât a operatorilor "+" şi "-". Tabela cu ordinea de precedenţă a operatorilor limbajului C este preluată din B.Kernigham, D. Ritchie, - The C Programming Language, 2 nd ed. OPERATORII Asociativitatea ( ) [ ] -->. de la stânga la dreapta! ~ ++ -- + - * de la dreapta la stânga & * (type) sizeof / % de la stânga la dreapta + - de la stânga la dreapta << >> de la stânga la dreapta < <= > >= de la stânga la dreapta ==!= de la stânga la dreapta & de la stânga la dreapta ^ de la stânga la dreapta de la stânga la dreapta && de la stânga la dreapta de la stânga la dreapta?: de la dreapta la stânga = += -= *= /= %= &= ^= de la dreapta la stânga =, de la stânga la dreapta

INSTRUCŢIUNILE LIMBAJULUI C Într-un program, indicarea prelucrărilor care urmează a fi realizate pentru rezolvarea unei probleme se face prin intermediul instrucţiunilor adresate calculatorului. Instrucţiunile sunt separate unele de altele prin caracterul punct şi virgulă (;) cu excepţia cazurilor în care sintaxa instrucţiunii specifică altfel. Ordinea în care se execută instrucţiunile unui program defineşte aşa numita structură de control a programului. Pentru exprimarea proceselor de calcul sunt definite şi necesare trei structuri de control: structura secvențială structura alternativă şi structura repetitivă condiţionată anterior. Limbajul C a fost prevăzut cu instrucţiuni menite să permită realizarea simplă a structurilor proprii programării structurate. Structura secvenţială se realizează cu ajutorul instrucţiunii compuse, structura alternativă cu ajutorul instrucţiunii if, structura repetitivă condiţionată anterior, prin

intermediul instrucţiunilor while şi for, structura selectivă se realizează cu ajutorul instrucţiunii switch, iar structura repetitivă condiţionată posterior cu ajutorul instrucţiunii do while. În afară de aceste instrucţiuni, limbajul C are şi alte instrucţiuni care reprezintă elemente de bază în construirea structurilor de mai sus şi anume: instrucţiunea expresie şi instrucţiunea vidă. Instrucţiunile return, break, continue şi goto sunt o categorie specială de instrucţiuni în C, ele asigurând o flexibilitate mare în programare. Instrucţiunea vidă Instrucţiunea vidă se reduce la caracterul punct şi virgulă (;). Ea nu are nici un efect. Instrucţiunea vidă se utilizează în construcţii în în cadrul structurii alternative şi repetitive. Instrucţiunea expresie Instrucţiunea expresie se obţine scriind punct şi virgulă după o expresie. Deci, ea are formatul: expresie; În cazul în care expresia din compunerea unei instrucţiuni expresie este expresie de atribuire, se spune că instrucţiunea respectivă este o instrucţiune de atribuire. Dacă expresia este un operand ce reprezintă apelul unei funcţii, instrucţiunea expresie este o instrucţiune de apel a funcţiei respective. Exemple: 1. int x; x=10; 2. double y; y = y + 4;

3. double a; a++; 4. int a,b,c; scanf( %d %d %d, &a,&b,&c); printf( suma=%d\t produsul=%d\n, a+b+c, a*b*c); Instrucţiunea compusă Instrucţiunea compusă este o succesiune de instrucţiuni incluse între acolade, succesiune care poate fi precedată şi de declaraţii: { // declaraţii // instrucţiuni Exemplu: Presupunem că într-un anumit punct al programului este necesar să se permute valorile variabilelor întregi a şi b. Aceasta se poate realiza astfel: { int t; *t = a; a = b; b = t; Instrucţiunea alternativă Instrucţiunea alternativă este instrucţiunea care corespunde structurii alternative din programarea structurată şi este reprezentată de instucţiunea if. Ea are următoarele

formate: if (expresie) instructiune; sau if (expresie) instructiune1; else instrucțiune2ș La întâlnirea instrucţiunii if întâi se evaluează expresia din paranteze. Apoi, în cazul formatului 1, dacă expresia are valoarea diferită de zero (adică are valoarea adevărat), se execută instrucţiune; altfel se trece în secvenţă la instrucţiunea următoare instrucţiunii if. In cazul formatului 2, dacă expresia are o valoare diferită de zero, atunci se execută instructiune1 şi apoi se trece la execuţia instrucţiunii următoare instrucţiunii if. Dacă expresia are o valoarea zero, atunci se execută instrucţiune2 şi apoi se trece la execuţia instrucţiunii următoare instrucţiunii if. Instrucţiunile din compunerea lui if pot fi instrucţiuni compuse, chiar instrucţiuni if. În acest caz se spune că instrucţiunile if sunt imbricate. Exemple: Ex. 1 Să se scrie un program care calculează şi afişează rădacina ecuaţiei de gradul I, ax+b=0. Valorile coeficienţilor a şi b se vor citi de la tastaură. #include <stdio.h> int main() { double a,b; printf( a= ); scanf( %lf, &a); printf( b= ); scanf( %lf,&b);

if( a!= 0) printf( a=%g\ tb=%g\ tx=%g\ n, a,b, -b/a); else if( b= =0) printf( ecuaţie nedeterminată\n ); else printf( ecuaţia nu are soluţie\n); return 0; Ex.2 Să se scrie un program care citeşte un număr întreg format din trei cifre de la tastatură, ordonează descrescător cifrele din care este alcătuit numărul şi formează şi afişează numărul cu cifrele ordonate descresător. #include <stdio.h> int main() { int c1,c2,c3,n,aux; printf(" n="); scanf("%3d",&n); aux=n; c1=aux%10; aux=aux/10; c2=aux%10; c3=aux/10; printf("cifrele = %d, %d, %d \n",c1,c2,c3); if (c2>c1) { aux=c2; c2=c1; c1=aux;

if (c3>c1) { aux=c3; c3=c1; c1=aux; if (c3>c2) { aux=c3; c3=c2; c2=aux; printf("cifrele ordonate = %d, %d, %d \n",c1,c2,c3); aux=c1*100+c2*10+c3; printf("nr = %d \n",aux); return 0;