Upload
filipeot3240
View
212
Download
0
Embed Size (px)
DESCRIPTION
Aula
Citation preview
LinguagemC:variveis,operadores,entrada/sada
Prof.CrstonAlgoritmoseProgramao
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
LinguagemC
Linguagemdeusogeral(qualquertipodeaplicao) Umadaslinguagensmaisutilizadas FoiutilizadaparadesenvolverosistemaUNIX(eoutros
baseadosneste,comoLinux,FreeBSD) Disponvelemvriossistemasoperacionaise
arquiteturas Porm,algumascaractersticaspodemdependerdaarquitetura
(ex.:tamanhoembytesdostiposdedados) Possuivriosdialetos
Em1988surgiuapadronizaoANSIC,queincluiutambmumabibliotecadefunesmnima.
Nabibliotecatemosmuitosalgoritmosquepodemosreutilizar!
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
LinguagemC Relativamentebaixonvel
Permiteenderearqualquerposiodamemria Noforneceoperaesparamanipulardiretamentetextos,conjuntos,
listas.Ex.:comparartextos. Noforneceoperaesparaentrada/sada Maspodemosutilizarumaamplabibliotecasdefunes!
Desvantagem:oprogramadorcometemaiserrosqueemlinguagensdemaisaltonvel Acessoindevidomemria Muitoserrosnosoavisados:assumequeoprogramadorsabeoque
estfazendo Vantagens
Linguagempequena(rpidoaprendizado) Eficincia(podemoscodificarpensandoemumproblemaespecfico)
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
LinguagemC
Compilada Cdigofonte(.c)-> cdigoobjeto(.o) Linkediotransformavriosobjetosemumexecutvel(.exe) Assim,bastacompilarcdigoobjetodecdigofontemodificado
Compiladorgcc #>mangcc #>geditprimeiro.c& #>gccprimeiro.c #>./a.out hello! #>_ ansiWallc..gccprimeiro.o
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
main(){ printf("Hello!\n"); }
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
ProgramandoemC AlinguagemCpossui32palavraschaves. Aspalavraschavesnopodemserusadasparanenhum
outropropsito. Cdiferenciapalavrasmaisculasdeminsculas.Todas
aspalavraschavesdevemserescritasemminsculo. Exempo:
if(A>B) IF(a>b)
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
ProgramandoemC
Palavrasreservadas(palavraschave) auto,break,case,char,const,continue, default,do,double,else,enum,extern, float,for,goto,if,int,long,register,return, short,signed,sizeof,static,struct,switch, typedef,union,unsigned,void,volatile,while.
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
ProgramandoemC
TodososprogramasescritosemCconsistemdeumaoumaisfunes.
Afunomain()sempreprecisaestarpresenteemumprograma.
Afunomain()aprimeirafunoaserexecutadaquandooprogramaforcarregado.
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
ProgramandoemC
FormageraldeumprogramaemC:
declaraodevariveisglobaistipodevolvidofn(listadeparmetros){seqnciadecomandos}
tipodevolvidomain(listadeparmetros){seqnciadecomandos}
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Comentriosemprogramas
Comentartrechosdocdigofonteumaformadedocumentaroprograma.
Adocumentaoserveparaqueosprogramaspossamserusados,corrigidoseaperfeioadospeloprprioprogramadorouporoutraspessoas.
Oscomentrionoinfluenciamemnadanaexecuodoprograma.
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Comentriosemprogramas
EmCcomentriossocadeiasdecaracteresdelimitadaspelassubcadeias/**/.
OscomentriosemCpodemtambmserdeapenasumalinha,usandooscaracteres//.
Exemplo: /*Esteprograma...*/
//Estafunofaz...
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
/*Este programa altamente complexo escreve Hello! na tela.*/main(){ printf("Hello!\n"); // escreve Hello!}
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Variveis
Nomes: Qualquertamanho,masapenasos31primeiroscaracteresso
considerados Nopodemosutilizarpalavrasreservadas Podemterletrasoudgitos Deveminiciarcomletraou_,masdevemosevitarcomearcom_,
paranodarconflitocomfunesdabiblioteca Diferenciamaisculasdeminsculas
(ex.:xeXsovariveisdiferentes) Prticatradicional:
quandoavarivelnomodificaovalorduranteoalgoritmo(constante),utilizeapenasletrasmaisculas
paraasoutrasvariveis,utilizeapenasminsculas devesugerirautilizaco:idade,altura,numero_eleitores..
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Tiposdedados Bsicos:
Inteiros: char1byte,permitearmazenar1caracterASCII inttamanhodependedamquinahospedeira shortpossivelmentemenorqueint longpossivelmentemaiorqueint
Pontoflutuante(aproximaodenmerosreais): floatprecisosimples(quantidadededgitosrepresentativos) doubleprecisodupla
Qualificadorunsignedindicaqueonmerointeironotemsinal,assimganhamos1bitnarepresentao.
Podemosutilizarsizeof()paradeterminaronmerodebytesdecadatipo.Ex.:sizeof(char)retorna1.
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Declaraodevariveis
Variveisdevemserdeclaradasantesdeutilizadas Emqualquerpontodocdigo,preferencialmentenoincio
Formato: , , ..., ; Ex.:int inicio, fim, incremento;
Podemosinicializarumavarivelnadeclarao Ex.:int inicio = 0, fim, incremento = 1;
Variveisnoinicializadastemvalorindefinido! Podemosutilizaroqualificadorconstparaindicarqueovalorda
varivelnopodesermodificadonocdigo Amodificaopodegerarerrodecompilao(dependedocompilador) Inicializaonecessria Ex.:const double PI = 3.14;
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Declaraodevariveis
Tiposdefinidospelousurio typedefcharletra,digito; typedefinttamanho; typedeffloatpreco; Exemplo:
precovalor; letraa,b,c;
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Comandodeatribuio
Ocomandodeatribuioserveparaguardar(atribuir)umavaloraumavarivel. Exemplo:
soma=A+B fat=fatorial(x)
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
main(){ int i; // NO INICIALIZADA!! printf("%d\n", i); }
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
main(){ const int i = 0; i = 1; // TENTATIVA DE MODIFICAR VARIVEL const
printf("%d\n", i); }
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
main(){ char c; int i; short s; long l; float f; double d; printf("%d\n", sizeof(double)); printf("%d\n", sizeof(d));}
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Tiposdedados Tamanhosemnossasmquinas(inteirosem32bits)...
char(sempre 8 bits), short(16 bits), int(32 bits), long(igual ao int), float(32 bits), double(64 bits)
Maior char: 27 - 1 = 127 = 01111111 Menor char: -27 = -128 = 10000000
Maior unsigned char: 28 - 1 = 255 = 11111111 Menor unsigned char: 0 = 00000000
Maior short: 215 - 1 = 32.767 = 01111111 11111111 Menor short: -215 = -32.768 = 10000000 00000000
Maior unsigned short: 2161 =65.535= 11111111 11111111 Menor unsigned short: 0= 00000000 00000000
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Tiposdedados Tamanhosemnossasmquinas(inteirosem32bits)...
char(sempre 8 bits), short(16 bits), int(32 bits), long(igual ao int), float(32 bits), double(64 bits)
Maior int: 231 - 1 = 2.147.483.64701111111 11111111 11111111 11111111
Menor int: -231 = -2.147.483.64810000000 00000000 00000000 00000000
Maior unsigned int: 232 - 1 = 4.294.967.29511111111 11111111 11111111 11111111
Menor unsigned int: 000000000 00000000 00000000 00000000
Omenorvalordecadatipointeiropodeserobtidosporoverflow:omaior+1.(representaoemcomplementode2)
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
main(){ char c = 128; unsigned char uc = 128; printf("%d\n", c); printf("%d\n", uc);}
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Tiposdedados
Tamanhosemnossasmquinas... char(sempre 8 bits), short(16 bits), int(32 bits),
long(igual ao int), float(32 bits), double(64 bits)
Representao de ponto flutuante: 1. * 2^ (se expoente 0) * 2^ (se expoente = 0) Expoente somado com 2^ - 1 Mantissa normalizada: M.MMMMMMM
Ex.: 1.0*2127 = 01111111 00000000 00000000 00000000 01111111(127) + 01111111(127) = 11111110
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Tiposdedados Tamanhosemnossasmquinas...
float: 1bit(sinal) +8bits(exp) +23bits(mant) = 32bits Expoente: -27 + 1 at 27 1 => -127 at 127
128 = Inf Menor positivo: 2-126-23 = 2-149 = 1.4*10-45
2-126 = 00000000 10000000 00000000 00000000 2-127 = 00000000 01000000 00000000 00000000 2-128 = 00000000 00100000 00000000 00000000 2-149 = 00000000 00000000 00000000 00000001 2-150 = 0.0 (underflow)
Maior: 01111111 01111111 11111111 11111111 224 1 = 01001011 01111111 11111111 11111111 00010111(23) + 01111111(127) = 10010110 (224 1)*2127-23 = 3.4*1038
7 dgitos significativos: 224 = 16,777,216 Cuidado: 224 + 1 = 224 (erro de preciso)
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Tiposdedados Tamanhosemnossasmquinas...
double: 1bit(sinal)+11bits(exp) +52bits(mant)= 64bits Expoente: -210 + 1 at 210 1 => -1023 at 1023
1024 = Inf Menor positivo: 2-1022-52 = 2-1074 = 4.9*10-324
2-1022 = 00000000 00010000 ... 00000000 00000000 2-1023 = 00000000 00001000 ... 00000000 00000000 2-1024 = 00000000 00000100 ... 00000000 00000000 2-1074 = 00000000 00000000 ... 00000000 00000001 2-1075 = 0.0 (underflow)
Maior: 01111111 11101111 ... 11111111 11111111 253 1 = 01000011 00111111 ... 11111111 11111111 110100(52) + 11111111(1023) = 10000110011 (253 1)*21023-52 = 1.8*10308
15 dgitos significativos: 253 = 9,007,199,254,740,992 Cuidado: 253 + 1 = 253 (erro de preciso)
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
main(){ float f1 = 16777216; // 2^24 float f2 = 16777217; // 2^24 + 1 double d = 16777217; printf("%f\n", f1); printf("%f\n", f2); printf("%f\n", d);}
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
main(){ // 45 zeros float f1 = 0.000000000000000000000000000000000000000000001; // 46 zeros float f2 = 0.0000000000000000000000000000000000000000000001; printf("%e\n", f1); // %e escreve em potncia de 10 printf("%e\n", f2);}
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
main(){ float f1 = 3.402823e+38; // 3.402823 * 10^38 float f2 = 3.402824e+38; // 3.402824 * 10^38 printf("%e\n", f1); // %e escreve em potncia de 10 printf("%e\n", f2);}
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Constantes Valoresfixosqueaparecemnocdigo Todonmerointeiroquecabeemum intumint
Senocabe,eleumlong Paratornlolong,colocaseumL(oul)nofinal:ex.:123L Zeroantesdonmerointeiroindicavaloremoctal,0X(ou0x)antes
donmeroindicavalorhexadecimal Ex.:31=037=0x1F
Paraconstantesunsigned,colocamosU(ouu)nofinal Paraunsigned long,colocamosUL(ouul)nofinal
Todonmerocompontodecimal(12.3)ouexpoente(1e2)consideradodouble Paraserconsideradofloat,colocaseumF(ouf)nofinal
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Constantes
Paraconstanteschar(1caractere)utilizamosaspassimples,erepresentadacomoointeirocorrespondentenatabelaASCII Ex.:Arepresentadocomoointeiro65,0como48 Podemosrealizaroperaesaritmticascomcaracteres!
Algunscaracteresespeciais: \nnovalinha \ttabulao \\barrainvertida \aspassimples \aspasduplas \0armazenaonmerozero '%%'representao%
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
main(){ char c = A; printf("%d\n", c); printf("%c\n", c); // %c escreve o caracter (tabela ASCII)}
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Conversesdetipo Implcitas(automticas):
Expressesenvolvendomaisde1tipo Resultanomaiortipo.Ex.:intelong>long,floateint>float
Atribuiodeexpressodeumtipoemvariveldeoutro Informaopodeserperdida(truncagem)seotipodaexpressoformaior,
masaoperaopermitidaEx.:charc=300;(algunscompiladoresdoumaadvertncia)
Explcita(forada) Formato: () expresso Ex.: float x; sqrt((double) x); Mesmoefeitodaatribuioaumavariveldonovotipo Utilidades:
Algumasfunesexigemumtipoespecfico Evitaadvertnciasefacilitaverificao
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Operadoresaritmticos
Binrios:+(soma)(subtrao)*(multiplicao)/(diviso) %(restodadiviso)
Unrios:(trocadesinal) Quandoosoperandossointeiros,adivisointeira(a
partefracionriatruncada) Ooperador%nopermiteoperandosfloatoudouble
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
main(){ int a = 7, b = 2; printf("%d\n", a + b); printf("%d\n", a - b); printf("%d\n", a * b); printf("%d\n", a / b); printf("%f\n", ((double) a) / b); printf("%d\n", a % b); printf("%d\n", -a);}
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Operadoresrelacionaiselgicos >>=
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
#include
main(){ int a = 7, b = 2; printf("%d\n", a == b); printf("%d\n", a != b); printf("%d\n", (a > 0) && (b
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Operadoresdeincrementoedecremento ++(soma1varivel)(subtrai1varivel)
int x = 3; x++; // agora x vale 4
Prefixado(++/antesdavarivel):utilizanaexpressoovalordavariveldepoisdoincremento
Psfixado(++/depoisdavarivel):utilizanaexpressoovalordavarivelantesdoincremento
int x = 3, y; y = x++; // agora x vale 4 e y vale 3 y = ++x; // agora x e y valem 5
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Operadoresbitabit &(e)|(ou)^(ouexclusivo)~(complemento)
(deslocamentoadireita)
char x = 1, y = 2; // x = 00000001 // y = 00000010 printf(%d\n, x & y); // vale 0 = 00000000 printf(%d\n, x | y); // vale 3 = 00000011 printf(%d\n, x ^ y); // vale 3 = 00000011 printf(%d\n, ~y); // vale -3 = 11111101 printf(%d\n, x > 1); // vale 1 = 00000001
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Operadoresdeatribuio =(atribuiosimples) += -= *= /= %= = &= |= ^=
int x = 2; x = 2*3 + 1 // x vale 7 x += 2; // x vale 9 (o mesmo que x = x + 2) x -= 5; // x vale 4 (o mesmo que x = x - 5) x *= 2; // x vale 8 (o mesmo que x = x * 2) x /= 3; // x vale 2 (o mesmo que x = x / 3) x %= 3; // x vale 2 (o mesmo que x = x % 3) x
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Precednciadeoperadores()! ~ ++ -- +(unrio) -(unrio) () sizeof* / %+ ->< >=== !=&^|&&||= += -= *= /= %= = &= |= ^=
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Sadaformatada
printf(, arg1, arg2, ..., argN); Converteosargumentosemcaracteredeacordocom
eimprimenatela :
Caracterescomunssomantidos Onsimo%associadoaonsimo
argumento
int i = 1; double media = 7.0; printf(resultado do aluno %d = %f\n, i, media);
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Sadaformatada
Caracteresdeconverso d,i:int,nmerodecimal o:int,nmerooctal x:int,nmerohexadecimal u:int,semsinal c:int,1caractere s:cadeiadecaracteres(veremosposteriormente) f:double,[]m.dddddd(default6casasdecimais) e:double,noformatox.xe+y(ex.:1.2e+3==1200) g:double,formatodofseexpoentemenorque4oumaior
queonmerodecasasdecimais,formatodoecasocontrrio %:caractere%
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
int x = 31; printf("%d\n", x); // 31 printf("%o\n", x); // 37 printf("%x\n", x); // 1f
x = -1; printf("%u\n", x); // 4294967295
x = 64; printf("%c\n", x); // A
double d = 1200.0; printf("%f\n", d); // 1200.000000 printf("%e\n", x); // 1.200000e+003 printf("%g\n", x); // 1200.000000
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Sadaformatada Entreo%eocaracteredeconversopodemoster
Nmeroindicandoalarguramnimadocampo
double d = 1.0; printf("%10f\n", d); // [ 1.000000]
Umpontoseparandoalarguradonmerodecasasdecimais printf("%10.2f\n", d); // [ 1.00]
Sinaldemenos,indicandoalinhamentoaesquerda printf("%-10f\n", d); // [1.000000 ]
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Entradaformatadascanf(, &var1, &var2, ..., varN);
Ldaentradapadro(teclado)umasequnciadecaracteres,interpretadeacordocom,egravaosvaloresobtidosnasvariveis(naordemencontrada)
int i, r; float d; r = scanf(%d, %f, &i, &d); // espera inteiro e real separados p/ vrgula
Espaosetabulaosoignorados Outroscaracteresdevemcasarexatamente Retornanmerodecamposcasados Caracteresdeconverso:uselfparadouble
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Diretivasdeprprocessamento
Prprocessamentoumafasedecompilaoanteriortraduodoprogramaparaalinguagemassembly.
Oprprocessamentoengloba,entreoutras,tarefastaiscomoainclusodearquivosauxiliares,atraduodeconstantessimblicasedemacros.
Asdiretivasdeprprocessamentosocomandosauxiliaresquesinalizamaocompiladoranecessidadederealizartarefasdeprprocessamento.
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Diretivasdeprprocessamento NalinguagemCocaractere#adiretivaqueindicaa
necessidadedeprprocessamento. Ocompiladorpodeincluirarquivosquandoistofor
indicadonocontedodeoutroaquivo. Exemplo:
#include #include
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Diretivasdeprprocessamento
AlinguagemCpossuiadiretiva#definequeserveparaincluirnoprogramaconstantessimblicaseexpressesdenominadasmacros.
Exemplo: #definePI3.14159 #defineseif #defineeq=
AlgoritmoseProgramao:linguagemC(variveis,operadores,entradaAlgoritmoseProgramao:linguagemC(variveis,operadores,entrada//sada)sada)
Diretivasdeprprocessamento
Macrossoexpressesusadasparaabreviarconstruesmuitolongas,usadascomomuitafreqncianumprograma.
Exemplo: #defineEHPAR(X)(((x)%2)?0:1) #defineERRO(mens)printf(ERRO:%s\n,mens)
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50