Sie sind auf Seite 1von 0

CAPITOLUL 4

4. Tipuri de date predefinite


4.1. Date numerice
/LPEDMXO & HVWH SUHY]XW FX XQ VHW GH GDWH predefinite. Aceste tipuri de date sunt
FRQFUHWL]DWH SULQ IRORVLUHD XQXL QXPU GH ORFD LL GH PHPRULH SHQWUX VWRFDUHD FRQIRUP
XQXLDOJRULWPELQHGHILQLWIXQF LHGHWLSXOGHGDWDXQXLWLSGHGDWHH[LVWHQWHQFD]XO
tipului de date FKDU GHL D IRVW LQWURGXV SHQWUX VWRFDUHD GDWHORU GH WLS DOIDQXPHULF HO
SRDWHILIRORVLWvQFDOFXOHPDWHPDWLFHLORJLFHvQLQWHUYDOXOGHYDORULQXPHULFHSHFDUHOH
poate stoca.
3HQWUXWLSXULOHGHGDWHFHVWRFKHD]YDORULQXPHULFHvQWUHJL SUHVFXUWDWLQW VDXGXS
cum am spus FKDUQXPUXOHVWHVWRFDWvQPHPRULHGLUHFWVXEIRUPDUH]XOWDWODFRQYHUVLD
n binar.
n cazul datelor de tip real, float, sau GRXEOHODFRQYHUVLDGLUHFWDQXPUXOXLvQED]D
GRLVDUILSLHUGXWSUHDPXOWHORFD LLGHPHPRULHLGHDFHHDHOHVH SVWUHD] VXE IRUPD
WLLQ LILF$FHDVWIRUPVHUHIHUODIDSWXOFH[LVWR]RQGHPHPRULHFDUH LQHPDQWLVD
L R ]RQ GH PHPRULH FDUH LQH H[SRQHQWXO 8Q H[HPSOX GH UHSUH]HQWDUH WLLQ LILF GLQ
punct de vedere matematic ar fi:
123344445455454=1.23344445455454 * 1014 =1.23344445455454E+14
unde mantisa=1,23344445455454 iar exponentul = 14.
0DLMRVSUH]HQWPRVHULHGHWLSXULGHGDWHSUHGHILQLWHGLPHQVLXQLOHORULGRPHQLXO
YDORULORU FDUH SRW IL VWRFDWH 6H REVHUY F VDX IRORVLW PRGLILFDWRUL GH WLS 3ULP
PRGLILFDWRULGHWLSVHvQ HOHJFXYLQWHFKHLHFDUHDXFDHIHFWODFRPSLODUHFDGLPHQVLXQHD
vQRFWH L SHFDUHHVWHUHSUH]HQWDWXQWLSGHGDWHVFUHDVF FXXQIDFWRUFDUHHVWHVDXR
putere a lui doi)).
char {128, 127}
unsigned char {0, 255}
IUVHPQ
signed char {128, 127}
semn
int {32768, 32767 }
cuvnt (2 octeti)
unsigned int {0, 65535}
semn
signed int {32768, 32767}
semn
short int {32768, 32767}
semn
unsigned short int {0, 65535}
semn

1 octet
1 octet
1

octet

cu

1
 FXYkQW IU
1 cuvnt cu
1 cuvnt cu
 FXYkQW IU

signed short int 32768 to 32767


semn
long int {2147483648, 2147483647}
signed long int {2147483648, 2147483647}
float {3.4E38, 3.4E+38}
double {1.7E308, 1.7E+308}
long double {3.4E4932, 1.1E+4932}

1 cuvnt cu
2 cuvinte
2 cuvinte cu semn
2 cuvinte
4 cuvinte
5 cuvinte

2EVHUYD LH $FHVWH LQWHUYDOH VXQW GH RELFHL VSHFLILFH VLVWHPXOXL GH RSHUDUH VXE FDUH
OXFUHD]FRPSLODWRUXOLPDLQLLSHFDUHDFHVWDHVWHH[HFXWDW'RPHQLLOHGHPDLVXVVXQW
valabile pentru compilatorul de C++ realizat de Borland.
2SHUDWRUXOYLUJXO
a,b HYDOXHD]DHYDOXHD]E
$FHVWRSHUDWRUSHUPLWHHYDOXDUHDDGRXVDXPDLPXOWHH[SUHVLLGLVWLQFWHLQORFXULOHLQ
FDUHRVLQJXUH[SUHVLHHVWHDGPLVDILIRORVLW DVWDHUD LXQHDLQWURGXFHULLOXL
De ex:
for ( j=0,k=100 ; k-j>0 ; j++,k-- ) este chivalent cu
j=0 ; k=100;
j=0 , k=100
{
{

j++;
sau
j++;
k--;
k--;
}
}
8QDOWH[HPSOXIXQF LDbreak_line:
break_line (int interval)
{ int c,j;
for (c=getchar(),j=0 ; c!=EOF ; c=getchar (),putchar (c),j++)
if (j % interval = = 0 ) printf( \n ) ;
}
4.2. Date alfanumerice
Q FDGUXO SURLHFWULL XQHL DSOLFD LL SRW DSDUH SH OkQJ FHULQ H OHJDWH GH FDOFXOH
QXPHULFHFRPSOH[HLFHULQ HSHQWUXSURFHVDUHDGHWH[WHVDXDXQRUED]HGHGDWH
ToWDOLWDWHDFDUDFWHUHORUFHSRWILDILDWHVDXOLVWDWHvQFD]XOOXFUXOXLVXEXQVLVWHP
GH RSHUDUH FODVLF 81,; VDX '26  VH QXPHVF FDUDFWHUH DOIDQXPHULFH DOIDEHWLFH L
QXPHULFH  )LHFDUH FDUDFWHU DUH R LPDJLQH SH HFUDQ $FHDVW LPDJLQH HVWH VWRFDW vQ
memoria QHYRODWLODFDOFXODWRUXOXLLDUHDWDDWXQFRGXQLFODFDUHVHIDFHDSHOFkQGVH
GRUHWHDILDUHDVDXOLVWDUHDHL
'DWRULW QHFHVLW LL FD XQ WH[W HGLWDW  SH XQ VLVWHP IDEULFDW GH R DQXPH ILUP VL
SVWUH]H vQ HOHVXO VD WUHFXW OD VWDQGDUGL]DUHD FRGULL LPDJLQLORU FDUDFWHUHORU $VWIHO D
UH]XOWDWVWDQGDUGXO$6&,,IRORVLWODRUDDFWXDOGHWRDWHFDOFXODWRDUHOHGLQVHULD;
([LVWGHFDUDFWHUHvQDFHVWVWDQGDUG1XYRPIDFHUHIHULULODVHWXULOH H[WLQVHGH
caractere specifice editoarelor de teste sau sistemelor de operare de tip Windows sau
XWindows.

3HQWUXVWRFDUHDXQXLLUGHFDUDFWHUHOLPEDMXO&IRORVHWHXQWDEORXmonodimensional
GH FDUDFWHUH FDUH SRDWH VWRFD FRGXULOH D PD[LPXP  GH FDUDFWHUH R GDW vQ FD]XO
GHFODUULLVWDWLFH
2EVHUYD LD  'DF VD GHILQLW YDULDELOD V FD DYkQG FDSDFLWDWHD GH VWRFDUH GH  GH
caractere iar la citirea ei sunt introduse mai mult de 25, atunci numai pentru primele 25
QXH[LVWULVFXOSLHUGHULLORUSHSDUFXUVXOH[HFX LHLSURJUDPXOXL Q DFHVWFD] SRW DSUHD
erori mascate n cod.
2EVHUYD LDQFD]XOvQFDUHQXDPGHILQLWQXPUXOGHFDUDFWHUHFDUHSRDWHILVWRFDW
vQ UHVSHFWLYD YDULDELO IXQF LH GH PRGXO GH FRQVWUXF LH DO FRPSLODWRUXOXL ILH VH DORF
GLPHQVLXQHDPD[LPSRVLELOILHODSULPDLQL LDOL]DUHVHDORFH[DFWFkWHVWHQHFHVDUGDU
nu peste maximul definit.
2EVHUYD LD 1XH[LVWQLFLROHJWXUvQWUHYDORDUHDQXPHULF[LFDUDFWHUXO[FDUH
apare pe ecran. De exemplu 2 2.
,QL LDOL]DUHDXQHLGDWHFXRYDORDUHXWLOSRDWHDYHDORFvQXUPWRDUHOHPRGXUL
- la declararea ei;
- la citirea datelor de intrare;
- oriunde n program .
4.2.1. Caractere speciale de control
3HOkQJFDUDFWHUHOHGLUHFWDILDELOHPDLH[LVWvQOLPEDMXO&RVHULHGHFDUDFWHUHGH
FRQWURO$FHVWHDSURYLQGLQQHFHVLWDWHDGHFRQWURODXQHLLPSULPDQWHLVLPXOWDQDXIRVW
IRORVLWHLODDILDUHDSHWHUPLQDOHOHDOIDQXPHULFH
6HFYHQD

\a
\b
\f

Cod
07h
08h
0Ch

\n
\r

0Ah
0Dh

\t
\v
\\
\
\
\?
\ooo
\xhh

09h
0Bh
5Ch
27h
22h
3Fh
ooo
hh

Caracter
BEL (alert produce un semnal sonor)
BS (backspace)
FF (form feed PXW FXUVRU OD
XUPWRDUHD SDJLQ

LF
CR (carriage return, salt la inceput de
linie QRX
HT (horizontal tab)
VT (vertical tab)
\ (backslash)
(apostrof)
(ghilimele)
? (semnul vQWUHEULL)
Caracterul cu codul ooo n octal
Caracterul cu codul hh n hexa

3HQWUX MXVWLILFDUHD LQWURGXFHULL DFHVWRU FDUDFWHUH GH FRQWURO VH YD SUH]HQWD XUPWRUXO
FD]HUDLQXWLOWULPLWHUHDXQLQXPUIL[GHFDUDFWHUHLGHQWLFHGHILHFDUHGDWFkQGVHGRUHD
XQ WDEXODWRU XQ DQXPLW QXPU GH VSD LL JRDOH  OD vQFHSXWXO XQXL SDUDJUDI L DWXQFL VD
FRQYHQLW V VH IRORVHDVF XQ FDUDFWHU GH FRQWURO XUPkQG FD LPSULPDQWD VO
UHFRQYHUWHDVF LQWHUQ vQ VSD LL JRDOH $QWHULRU VD SUH]HQWDW XQ WDEHO FH FRQ LQH DFHVWH
caractere.
2SHUD LXQLVLPSOHGHFLWLUHVDXDILDUHDGDWHORU

/LPEDMXO&DUHODGLVSR]L LHRVHULHGHIXQF LLSHQWUXFLWLUHDGDWHORUGHODWDVWDWXU


VDX SHQWUX DILDUHD ORU SH HFUDQ &HOH PDL IRORVLWH GLQWUH HOH VXQW JUXSDWH vQ GRX
biblioteci conio.h (&21VROH,QSXW2XWSXW+HDGHU  L StandardInputOutput.Header)
stdio.h.
)XQF LLGHLQWUDUHVDXLHLUHFXXWLOL]DWRUXO
Pentru a putea discuta primele programe este necesar studierea modului n care un
SURJUDP SRDWH VFKLPED GDWH GLVSR]LWLYHOH VWDQGDUG GH LQWUDUH VDX LHLUH PRQLWRU
WDVWDWXU 'LQDFHVWSXQFWGHYHGHUHH[LVWGRXFODVHGHIXQF LL
-

)XQF LL GH LQWUDUH FX DMXWRUXO FURUD VLVWHPXO GH FDOFXO SULPHWH GH OD WDVWDWXU
YDORUL QXPHULFH FRPHQ]L L RULFDUH DOW WLS GH LQIRUPD LH FH SRDWH IL IXUQL]DW SULQ
intermediul acelui dispozitiv.
)XQF LLGHLHLUHFXDMXWRUXOFURUDVLVWHPXOGHFDOFXOOLYUHD]UH]XOWDWHOH DILHD]
IRORVLQGXQGLVSR]LWLYVWDQGDUGGHLHLUH PRQLWRUVDXLPSULPDQW 

3HQWUXDFLWLRGDWVDXXQLUGHGDWHGHODWDVWDWXUDYHPRIXQF LHVSHFLDOL]DWFDUH
poate citi orice tip SUHGHILQLWGHGDWH)XQF LDDUHSURWRWLSXOSUH]HQWDWPDLMRV
int scanf (const char *format [,address, ...]);
7LSXOGHGDWHHVWHVSHFLILFDWGHFWUHSURJUDPDWRUSULQPRGLILFDUHDXQRUSDUDPHWULDL
IXQF LHL0DLMRVHVWHGDWXQVFXUWH[HPSOX
#include <stdio.h>
#include <conio.h>
void main (void)
{
int a;
char c;
char b[20];
float d;
FOUVFU WHUJHHFUDQXO
VFDQI G D FLWHWHXQvQWUHJLOGHSR]LWHD]vQ
// variabila a
VFDQI F F FLWHWHXQFDUDFWHU
VFDQI VE FLWHWHXQLUGHFDUDFWHUH
VFDQI I G FLWHWHXQQXPU]HFLPDO
getch();
}
$FHDVW IXQF LHOD DSHODUHSUHLDLQIRUPD LDLQWURGXV GH OD WDVWDWXU  GXS DSVDUHD
WDVWHL (17(5 &D HIHFW XWLOL]DWRUXO YHGH GRDU F SURJUDPXO vL RSUHWH GHUXODUHD L

DWHDSW FHYD GDU IU D SULPL XQ PHVDM FDUH V vL FRPXQLFH FH WUHEXLH V IDF VDX
LQIRUPD LLGHVSUHQDWXUDGDWHORUFDUHWUHEXLHVFOLYUDWH
0DLMRVHVWHSUH]HQWDWSURWRWLSXOXQHLIXQF LLGHVIRORVLWvQDILDUHDGLYHUVHORUWLSXUL
de date.
int printf (const char *format [, argument, ...]);
Ex: SULQWI $ILHD]FHOHQXPHUHGGGQUQUQU 

Vom prezenta un prim exemplu despre unele din SRVLELOLW LHGHDILDUHDOHIXQF LHLprintf
.
#include <stdio.h>
main()
{
int a;
/*ntreg simplu
*/
long int b;
/* ntreg lung
*/
short int c;
/* ntreg scurt
*/
unsigned LQWG vQWUHJIUVHPQ 
char e;
/* caracter simplu
*/
IORDWI QXPU]HFLPDOvQVLPSOSUHFL]LH 
GRXEOHJ QXPU]HFLPDOvQGXESUHFL]LH 
a = 1023;
b = 2222;
c = 123;
d = 1234;
e = 'X';
f = 3.14159;
g = 3.1415926535898;
printf("a = %G?QD  DILDUHIRORVLQGED]DGHQXPHUD LH 
printf("a = %R?QD  DILDUHIRORVLQGED]DGHQXPHUD LH 
printf("a = %[?QD  DILDUHIRORVLQGED]DGHQXPHUD LH 
printf("b = %OG?QE  DILDUHVSHFLILFSHQWUXvQWUHJOXQJ 
printf("c = %G?QF  DILDUHVSHFLILFSHQWUXvQWUHJVFXUW 
printf("d = %X?QG  DILDUHVSHFLILFSHQWUXvQWUHJIUVHPQ 
printf("e = %F?QH  DILDUHVSHFLILFSHQWUXFDUDFWHU 
printf("f = %I?QI  DILDUHVSHFLILFSHQWUXQXPUvQVLPSOSUHFL]LH 
printf("g = %I?QJ  DILDUHVSHFLILFSHQWUXQXPUvQGXEOSUHFL]LH 
printf("\n");
/*salt la line QRX 
printf("a = %G?QD  DILDUHVSHFLILFSHQWUXvQWUHJ 
SULQWI D G?QD  DILDUHVSHFLILFSHQWUXXQvQWUHJGDUDORFkQG
caractere n dreapta */

SULQWI D G?QD  DILDUHVSHFLILFSHQWUXXQvQWUHJGDU


alocnd 7 caractere n stnga */
c = 5;
d = 8;
printf("a = %*d\n",c,a); /* folosim un cmp de 5 caractere */
printf("a = %*d\n",d,a); /* folosim un cmp de 8 caractere */
printf("\n");
printf("f = %I?QI  DILDUHSHQWUXQXPUvQVLPSOSUHFL]LH 
printf("f = %12f\n",f); /* folosim un cmp de 12 caractere */
SULQWI I I?QI  IRORVLPXQFkPSGHFDUDFWHUHGXS
YLUJXO 
SULQWI I I?QI  IRORVLPXQFkPSGHFDUDFWHUHGXS
YLUJXO 
SULQWI I I?QI  DILDUHVSHFLILFSHQWUXXQQXPUvQ
VLPSOSUHFL]LHGDUDORFkQGFDUDFWHUHvQVWkQJD 
}
6UHOXPH[HPSOXOSUH]HQWDWODFLWLUHDGDWHORULQWURGXFkQGGHDFHDVWGDWL
mesajele pentru utilizator.
#include <stdio.h>
#include <conio.h>
void main (void)
{
int a;
char c;
char b[20];
float d;
FOUVFU WHUJHHFUDQXO
printf(Introduceti o valoare intreaga)
VFDQI G D FLWHWHXQvQWUHJLOGHSR]LWHD]vQ variabila a
printf(\nValoarea citita este %d, a);
printf(\nDati un caracter )
VFDQI F F FLWHWHXQFDUDFWHU
printf(\nCaracterul citit este %c,c);
prinf(\nDati un sir de caractere );
VFDQI VE FLWHWHXQLUGHFDUDFWHUH
printf(\nS-a citit urmatoarea propozitie %s,b);
printf(\nDati un numar zecimal);
VFDQI I G FLWHWHXQQXPU]HFLPDO
printf(\n Sa citi numarul %f,d)
printf(\nApasa orice tasta pentru a continua)
getch();
}

Das könnte Ihnen auch gefallen