d
-
Upload
gianina-ella -
Category
Documents
-
view
1 -
download
0
description
Transcript of d
S e m i n a r 9Limbajul C & Matrice part. II
I. Aspecte teoretice
1. Software folosit la seminar: Visual Studio 2010.
Alt compilator pentru rularea programelor: Dev C++http://dev-c.soft32.com/free-download/?lp=dsa&tg=ro&kw=_cat%3Asoft32.com&mt=b&ad=33378748619&pl=&ds=sExemplu de program C:#include /* contine declaratiile functiilor de intrare/iesire */#include
int main() /* program principal */{ int i; printf("Introduceti un nr:"); scanf("%d",&i); /* citire numar introdus la tastatura */ printf("%d", i); /* afiare numr citit */ getch(); /*asteapta o tasta pentru a inchide fereastra in care au fost afisate datele*/ return 0;}
1. Generalitati
Tipurile de date n C
Dup modul de alocare a memorieiDup numrul de valori memorateTipuri existente
StaticeSimplentregi
Reale
Caracter
StructurateMasiv
Articol
Fiier
DinamiceSimplePointer
Referin
Tipuri simple, predefiniteGrupa de datTipulLungime(octei)Domeniu de valoriMod de reprezentare
ntregunsigned char10..255 (0..28-1)Codul ASCII al caracterului. Poate fi prelucrat ca un caracter sau ca un ntreg cu/fr semn.
[signed] char1-128..127 (-27..27-1)
unsigned [int]20..65535Virgul fix aritmetic
[signed] [int]2-32768..32767Virgul fix algebric
unsigned long40..232-1Virgul fix aritmetic
[signed] long [int]4-231..231-1Virgul fix algebric
Realfloat43.4*10-38..3.4*1038Virgul mobil simpl precizie
double81.7*10-308.. 1.7*10308Virgul mobil dubl precizie
long double103.4*10-4932..3.4*104932Virgul mobil extra precizie
Expresii
Operatorii de atribuire
Operatorii aritmetici
Operatorii logici i relaionali
Operatorii la nivel de bit
Operatorul virgul
Operatorul de conversie explicit
Operatorul dimensiune
Operatorii paranteze
Operatorul condiional
Semnificaie operaieOperator
Schimbare semn-
Pstrare semn (nici un efect, nu este folosit)+
Decrementare (post sau pre)--
Incrementare (post sau pre)++
Adunare+
Scdere-
nmulire*
mprire/
mprire ntreag (ctul)/
mprire ntreag (restul)%
Semnificaie operaieOperator
Negare!
i logic&&
Sau logic||
Sau exclusiv logicNu exist
Semnificaie operaieOperator
Mai mare>
Mai mare sau egal>=
Mai mic0) {
Printf (mesaj);
}
c) DO-WHILE
do statement while (condition);
Exemplu:
do {
------// corp instructiuni
} while (n != 0);
d) FOR
forma general:
for (expresion1; expresion2; expresion3) statement;
Un caz particular al lui for este:
for (initialization; condition; increase) statement;
e) SWITCH - structura alternativ multipl ce permite alegerea unei instruciuni dintr-un grup, in funcie de valorile pe care le poate lua un selector
switch (expresie)
{ case c_1: instruciune_1;
case c_2: instruciune_2;
....
case c_n: instruciune_n;
[default: instructiuni;]} Exemplu:
char litera;
printf (Tastati o litera intra a si c);
scanf (%c, &litera);
switch (litera)
{case a:
case A: printf (litera a sau A); break;
case b:
case B: printf (litera b sau B); break;
case c:
case C: printf (litera c sau C); break;
defaul: printf (ati tastat alta litera;
}9. Descriptori de formatFunctiile de intrare / iesire cu format cu urmatoarea structura a parametrilor:(, )
Fiecrui element din lista de intrare/ieire a operaiei de citire/scriere trebuie s-i corespund un descriptor de format n irul descriptor. Descriptorii de format se pun n coresponden cu elementele listei de intrare/ieire de la stnga la dreapta.Exemplu:
.......
int a,b:
printf(nr1 = %i, nr2 = %i, a, b);
.......
Tabel Semnificaia codurilor de conversie
Nr.crt.Cod conversieSemnificaieObservaii
1dZecimal cu semn (int)ntregi
2iZecimal cu semn (int)ntregi
3ooctal fr semn (int)ntregi
4uZecimal far semn (int)ntregi
5xprintf: hexazecimal fara semn (int) litere mici
scanf: hexazecimal (int) ntregi
6Xprintf: hexazecimal fara semn (int) litere mariscanf: hexazecimal (int)ntregi
7fVirgul mobil [-]dddd.ddd (format matematic)virgul mobil
8eVirgul mobil [-]d.ddd.e[+/-] (format tiinific)virgul mobil
9gCa i f sau e, depinde de precizievirgul mobil
10ECa i e, utilizeaz litera E pentru exponentvirgul mobil
11GCa i g, utilizeaz litera E pentru exponentvirgul mobil
12cImprim un singur caracterntregi
13sImprim caractere pnla \0 (NULL) iruri
14l sau LPoate s precead descriptorii d,o,x sau u, caz in care se face conversia din int spre long; dac precede descriptorul f, se face conversie din float spre doublentregi
15%Caracterul %%%=>%
10. Funcii de scriere/citire cu format
Operaiile de citire/scriere cu format, se realizeaz folosind urmtoarele funcii din biblioteca stanfard stdio.h: printf si scanfa) funcia printf
printf(, , ...);- apelul funciei transfer valori care vor fi afisate- execut scriere datelor pe unitatea de ieire (implicit pe monitor)
- returneaz caracterele afiate in caz de succes i -1 in caz de eroare
- parametrul poate conne caractere care se afiseaz ca atare i descriptori de format care definesc conversiile care se aplic asupra obiectelor precizate. - n irul ce definete formatul pot fi incluse secvene escape constituite din caracterul backslash si un alt catacter (de ex. \n, \t, \a, etc)Exemple:
1. printf (abc);
printf (%s, abc);Se va afisa acelai lucru
abc
abc
2. n=10; printf (Numarul este: \n %d , n);
...
Se va afisa:
Numarul este:
10b) funcia scanf
scanf(, , ...);
- apelul funciei transfer adrese ale variabilelor ale cror valori se vor citi- funcia execut citirea datelor de la unitatea standard de intrare (implicit tastatur) si returneaz campurile corect procesate- poate conine, n afara codurilor de conversie, caractere care vor trebui introduse ca atare de la tastatur n cadrul cmpului respectiv (ex: daca sirul descriptor conne x=%d, atunci de la tastatur trebuie introdus x=)Exemple:
scanf (%i %i, &x, &y) -> numere separate prin spatiu
scanf (%i ,%i, &x, &y) -> numere separate prin virgula
11. Functia getch
- funcia getch() este definit in biblioteca conio.h si este destinat citirii de la tastatura a unui caracter ns fr ecou;- nu are parametrii;
- returneaza codul ascii al caracterului citit;Folosirea acestei funcii poate reprezenta o soluie pentru a vizualiza rezultatele afisate pe ecran. Aplelarea funciei se realizeaz fr ecou pe ecran, astfel nct se va atepta apsarea unei taste pentru nchiderea ferestrei in care au fost afiate rezultatele (consola).II. Probleme
1. Scrieti programul C care numara cate elemente negative sunt intr-un vector. Exemplu:
Dati lungimea vectorului:4
p[0]= -1
p[1]= -2
p[2]= 3
p[3]= 4
rezNumarare = 2
Indicatii:
a) se vor include bibliotecile:
#include
#include
b) in functia main:
- declarari de variabile
int p[10];
int i,n, rezNumarare;
-se citesc datele de intrare
printf("Dati lungimea vectorului:");
scanf ("%d", &n);
for (i=0;i