Você está na página 1de 127
‘TREINAMMENT LINGUAGEM CURSO COMPLETO SUL VICTORINE VIVIANE oO S58588 SEEEESCECEEEEEL EE SESE OES pSESETIEEE SINOPSE .... pREPACIO. LL INTRODUGAO Compares Como Cee Programa vital ‘Artanis deem Programa en © Forma Geral das Fegies © ‘Pungo msi ropes de Programa ‘APenste pnt) Ingrid Cada Cassar Conetates Vari Datei de Vast ‘Tipe Verve ‘Vebuvea Bote iat ‘Tanbo de Compor natimpsto < XIL_Trenamenooinguagen © ws Sumdrio_ xm. ‘ compet ter agate 2 Fat. 0 Comant n InpindsGrcer e > to Ree 2 {nine Gace rte : 2 Ende 3 bars a 4. COMANDOSDE DECISOES ...- 6-2. se sees 2-18 2.OPERADORES ..... - Comendeit oe : n (Progam Prag do tra, = ‘AP sant 28 fewrpin iano Carpe to Comando i Be © Oped de nda) es Seaben anh Ts 3 Coo dn Fornaio Pnso 3 ‘pemenande os pie 5 ¢ sa Puage ce eed 2 Ocomandsteue st ‘Foote 2 Cantar Gro Ticro de abiee ie ‘Pooper 3 Sesntate ina 5 fates crn a imine hee a ‘Operator de Aug: = 33 Operadores Lévcoe ue Spent) & Promise 0 @ freee ati & aaa, Sonate Mats °C comune teat nde it a pets denen (+1) Darsta (==). 3 lets 4 es i cee “a erred de i Rev 2 Oper Art de Arie a Birds we Oper toms “ 5. FUNGORS + 106 § estece s wt a eS ange Barr den Proara wf "te @ Ete Braces 3 Gumands Feet = TACOS 08 DinEzeenlo Sor Ota te a Pagina Un Var on Gl eae to 8 ‘comsndorsare ‘Stealer 3 Rares Hitt re = Unnow Us dessin) Intra Cop sh aie 3 Ui de son er ihe % ‘Puan Dado pr une Chanda otaerte a Puan Vari come Avestan ora Gal doings wie ot Fosand Vr agen igen laa & Uiinisarar ont Foo oleae angen ode oie % Faogn do To i sComandos break continue 70 angie dopo wid es oe ere a nce a cece i goer : ee 2 Se ee esti es 2 ie ee ery panies = E peers “ ‘Varidvels Bettis Extornes 1 Eimepreaees = Se 3 cee cic 4 appt 3 Beate 00002 : ‘Considerasbes Sobre Conflito de Nomes de Varidreis 187 ae . . . a Bis ceeeeens 2 bocead 7 ‘Doclarugio da Matrix 187 ees a oes ca og eee a coma mamee s dicen ee imo s perane i pe 2 Roe peoeciese icc : co ii eit x eae o eee ac 2 Ene cd Se es Reece eee Roe ens = pendrin . eae “ “Matrizes como Argumientos de Fungtes 08 seer a sen = ‘AsTeclas ASCH... 158 dea - reas = sti rs paneer A Scien 2 i 1 ‘Una Tela ~ Cig Esendito 180 ike de ns Disesin como Argues an ar * u Bree, alone & ane 5 aoeene 2 aes a a * re on Sone Ee pee zl Saeco ea es z ees a ee = me : Sp) Conti dn Corvor AurvesloToduie os occ 108 ee a seeped * = a _EU1_Trenanena om ngage Intend Sigs 20 DutasPsges de Manjula oda | = Aung len | m1 ‘Pungo reat) ma A Pug treme 23 Una Mar de ngs 25 ‘AR rpy0 «Apap Cancer a (frogs gue inpine Cari de Nota 2s Enos BI INDICE ANALITICO ... . - 237 al SINOPSE capfruto 1 Arent wna pegens deg sbr snmladoreseeterpretadce aa Insndaeingn nnfeea gl Seo poonnn Gates nd) caPiruto 2 ‘Teta de pradore atten redaoay, fng eanf) pra lure de captruto 3 a on ec aa ome emai dite caPiruLo 4 Nese spl mene at roars de dat que permite prasear ‘texas puncte as aarti oparaores go cAPETULO 5 ‘No upto a aprantr a rir sme ira fogene mip se sngmeion ‘Sin motos ce tio 6 anges foes recurs e fares pra fprsio de mee cotros So prsutar at duets Go Prone Co SESS ie psues demand 829939808989 9999999999299989999999909 PESSSSSSSSSSSESEEESESES SESE EU SESS SESSETS 5V_Trinamento em suse captruro 6 so ane ela wna tet MEPS en cant igus nes Feseconeeno don Spt pis pare Apnea um sora aad or to wr, atin adie so sarctnue Vase eaapun nlica monn son oma mater ‘a media osomputaiar econo sc os ps aur fu Impleci de see ‘Sgramer Ss spesntadaeas npn de ltca Cana tnipulog de ces de PREFACIO Este live foi plancjedo para um curso completo do programagio ‘em linguagem CO estudante dove ter conhecimentos bésicas de sistema ‘peracional nos equipamentos da familia IBM-PC, XT, AT e PS/2 0 objetivo principal 6 0 de apresentar a linguagern C de mancira simples ¢ clara e ‘mostrar como C pode ser usala para a criagio de ‘rogramte aérios. Os exomplea apresentadoe nao estao relacionados @ Benhum sssunto espeiico e podam sor faciimonto adaptados a qualquer frea de aplicagho, © live aprosonta uma organtzagio diética dos temas sbordados fe pode ser adatado em cursos dp cammputasto de escolas Wenices ou {uvereidades, Ao alunointeressado dada a poalbildade de eiar mvs ‘programas e nde dexenvolver novas deias a partir das aproventadss. cortamente possivel aprender C como primeira linguagom de programagio, Entretento sua sintaxe nao é téo fill como a de uma Tnguagei como BASIC programadores inicantesppedem sentir alguna aifeutdade, s exemplos deste livro foram processados uilizando se o com- plludoe TURBO C verato 2.0 da Borland para computadores IBMPC e. ‘sistema operacional MS-DOS versio 3.3, mas podem ser processados em ‘qualquer compilador compativel com 0 MS-DOS ou UNIX. CAPITULO 1 INTRODUGAO 7 ( { ‘ ‘ c c ‘ r c ‘ « t ‘ ‘ ‘ e e e = Compiladores Interpretadores 1 Estrutura Basica de um Programa C As Fungdes main()e printf() = Constantes = Tipos de Variaveis Nomes de Variaveis Palavras-Chaves Caracteres Graficos MDRERELELELLLLELLEUULELELERELEOEES 2 Trine em guage © INTRODUGAO A linguagem © fi primelramente eriada por Dennis M. Ritchie © Ken Thompion no laboratério Bell om 1072, bascada na linguagem B de ‘Thompson que era uma evolugso da antiga linguagem BCPL, B foi nome: acorn aptimeira letrade BCPL.e Ccom ssogunda. A proxima linguagers pprogresiva da iia de C provavelmente se chamardP. [A dafinigio da C este contida no livro The C Programming Lan: guage, ecrto por Brian W, Kernighan e Dennis M. Ritchie (Cuma linguager vtoross como ferramente na programagio de ‘qualquer tipo do sistema (sistemas operacionas,planilhas eletrinicas ‘rocestadores de texto, orensiadores de banco da dados, processdores| krifiens,slatomes de transmiesio de dads, para solug de problemas de fngenbaria ou fisiea ete). Como exemple, osatemna eperacional UNIX Alesenvalvido om C. ‘A linguagem de programagso C tomow se rapidamento um das ‘mais importantes o populares, pnipalmente por ser multo podeross, portatl pola padronizagto dos compiladares exstentes eflexvel, C foi desenhada para que o usuério possa plangjar programas ‘steuturados © modulares. O restltado @ um programa mas level & ‘ocumentado. Os programas em Ctondom a sor bastante compactos e de ‘execugho répida © @ amiga do programadr, sufsientemente estruturada para ‘encorajar bons habites de programas, Programas em © poder ser ‘lesenvolvides em partes separada por pessoas distintas e depois unios jnum produto final, o que significa que bibliotecss de fungtes podem ser ‘riadas on tsadas sm realmente conhecer o cbdigo de cada urna delas, Exstem muitasoutrasvctudes do C que voe#conhecori no longo do seu aprondizado. COMPILADORES E INTERPRETADORES, ‘Amancira do so comuntcar com um computador chama se progr sma oa tinea linguagem que o computador entende chama ee linguagen do méquina Portanto todos os programas que £0 comiunicam com 8 ‘maquina devem estar em linguagers de maquina, {A forma como 0s programes so traduzidos para linguagem de ‘mdquina easifea-os em dias eatogoins: ‘= ovtenpnetapos (CoMitanos 0s programas que fazer estas traugSes sho chamados inter: pretadores © compiladores, INTERPRETADORES ‘Um interpretador I a primeiea instrugto do programs fz wma onsistincia da sun sintaxe e se nia houver erro converte-a para lit ‘uagom de maquina para fnalmonte exocutéla Segue, entao, para a ‘résima instrugdo, repetindoo proceso até que a tim instruchoseja ‘execu ou consisténela sponte algum ert, © interpretador precisa estar presente todas as vezes que vamos ‘executaronosto programa trabalho de checagem dasintaxeetradisho ‘dover sor repetido. Se ums parte do programa necesatar ser exeeuta uitas vezes, o procosso 6 flto o mesmo nimoro de voros. COMPILADORES, ‘Um compiler 10 primeira instrusto do programs, faz urna consatinein de sua sintase e 80 nia howver erro converte-# para lin- ‘guagem de méquina ¢, em ver de exccutéls, sogue para a proxima strug ropotindo o process até qua iltima instragao saa atingida ou sconsistnein apontealgum erro, ‘Sento houver eros, ocomplsdor geraum programa em disco com 0 suflxo .OBJ com as instrustes J traduaida, Este programa nfo pode 4 Treinaent em guage C sor executado até que sejam agrogadas ele rotinas em linguagoin do ‘miquine que Ihe permitirdo asua exocugto, Esto trabalho 6 feito por umn ‘rograma chamado ‘linkeditor” que além de untar as rotinas necessirias ‘0 programa OBJ, cra um produto final em deco com osufxo EXE. quo pode ser exccutado detamente do slatema operacional. Com isto a velocidad do execugto do programa chogn a sor 15 a 20 vezes mais ripida do que quando o programa 6 interpreta. ‘Alm da velosidade, outras vantagens podem ser mencionads 1» 6 domecesséiaa presenga do interpretador ou do compilador para exeeutaro programa jécompilad linkeditado; 1» programas .EXE nto podem car alteradoa, 0 quo protege © cfigofonte, ‘pesar do um compilador ter muita vantagens sobre wm inter pretador, gums consideragtes devem ser felts 0s interpretadores permitem que ae produzam programas com ralor feeldade na fase de aprendizado, pole podem ser cvtados¢ ex Catados imodintamente, enquanta um Sompilador requer multo mat ‘tempe para que um programa possa ser executado. Um compisdor nso eriara um programa em linguagem de mqui- naantesquoeateestejaabeolutamentelivrede eros e durante oprocesso ddeprendizado de una linguagem a quantidada de eros gorudos 6 ola ‘vamence geande,o que faz com que um interpretadar seje muito mals conveniont, ‘BRISTBSN, NO MERCADO, CONPILADORES F INTHRPTETADOTUS DA LIN: ‘ouxcrat COMO CRIAR UM PROGRAMA EXECUTAVEL, 1 Datilografa sou programa com o auxiio de um processador de textos no mod nda documento, Gravar o programa em disco ‘deo a ele umn nome eom o sufxo .C. O programa gerado & ‘chamedo do fonte, —— ea ate ‘= Campilr fonte soguindo as instrugéos do set compllador, 0 {que eriaré um programa com o sufizo .OBJ em disco, 0 pro- rama gerado ¢ chamado de objeto. 1» Linkeditaro objeto soguinde as inetrugoes do seu linkeditr © (que criaré um programa com o suflzo “EXE em disco. O pro. arama gerado é chamado de exeeutdvel. A ESTRUTURA BASICA DE UM PROGRAMA EM C ‘Um programa C eonsisto em uma' ou vrs ungies": Os nomes programa ¢fungto eo confundem om C. FORMA GERAL DAS FUNGOES C ‘Vamos comesar pelo menor programa possivel em C, rain) f ) ate programa compte-se de uma nice fungto chemada main, saln() ——_primeien fungto a ser executads (nein © corpe da fungao ) termina a fingto Osparénteses apéaonome indieam que esta 6uma angio. O nore do uma fungto Cpode ser qualquer urn com excegH demain resetvado para afungio que niin a exeeugo do programa, ‘Toda ungso C deve ser iniiada por uma chavo de abertura,(,¢ cencorrada por uma chavo de fechamento, Onomo da fungto,osparéntoses eas chaves soos inicoselemnen- ‘os obrigatrios de ia fungao, eaeeeseeeeeeeeeceeerrrrretrerraeesen~ PSSST ESSSSCE EEUU EES UES LE UES Se eeseEs Deters em inguogen © ‘Voed pode clocarespagos, caractoros do tabulagioe pula in ‘avontade em seuprograma poise compilador ignora oetesearactrea. Fin Chto hé um estilo obrgatério, Osexemplosa seguir mostram como estilo de progsamagto pode ‘ausar problemas de legibiidade aos programas C. [nw 00 min kc lata Pe ( vo t ; ‘Todes estes exempls sto de programas que no fazem nad, sj, programas varios, AFUNCAO main) {A fungi main( deve exist em algum lugur do seu programa &| ‘marca 0 poato de ineio da exaeugio do programa. Se um programa for fconstitufda de uma dnies funeao asta seed main) INSTRUQOES DE PROGRAMA ‘Vamos adicionar uma intrugio om ness programa, rain() Print (*priseiro programa"); ) ‘Todas as instrugées devom estar dentro das chaves que inisiam € torminam a fungtoe sto executadas na ordem em que as eserevemos. Asinstrugbes Cio sompre encerradas por um ponto-e-virgula() O ponto-e-virgula 6 parte da instrugio abo um simples separader Fata instrugdo ¢ uma chamada dfungto print{Q, os parentoses ‘nos certificam disso e o ponto-o-virgula indica que esta 6 umn instruc, Como om C no existe um estilo obrigatrio, vamos reoserever 0. programa anterior deforma que a sia execugio seri exatamente como 2 So anterior sain()(print#(*primeire prograna);) A FUNGAO printf A fungao printf) ¢ uma das fungbes de B/S (entrada esa) que Didem ser usadas em C. Ela nio faz parte da definigae de C mes todo os Sistemas tom wna Versio de printf implamentada. 0s parénteses indicam que estamos, realmente, procedende com ‘uma fungia Nointeriordospardnteses esto asinformagioe passers) programa main() a fungio printf, isto € primeleo program” Fata ‘nformagio 6 chamada de argumenta de print), Quando o programa encontra est lina, passa o controle pars & fungto printfQ que imprime ns tela do seu computador rimeleo programa «, quando encerra a execugto desta, o controle ¢ transferido novarnonte para. programa. Sintaxe rintexpr do controle ata de argumenton) J &rinaant om ngage © rtrd Osteo exemplo: Asafa srd saint) Yen ert maihoes emits i be printf(*Este e/ 0 mmero dots: Xa,2); Aqui, ldo do cig de frmatagt, a expresao de controle de ) printf eon um conto de carscers etre tm. ete programa impriiréna tela do seu computador: 0 tn 6 um ofdio expect que informa a print) que orestante tntretanto,eclocamos des: "Este eo numero: Sed” que esta eaquetla¢ ‘valor 2 8 dreita, Kates dois argumentos ste separados por uma virgula. ‘Aexpresato de controle pode canter caractores que sero exbids natela cidigos de formstagto que indicam oformatoem que osangumen: ‘tos devem ser impresios. No nosso exemplo 0 eidgo de formaiagao “ed salictam prin impr o segundo srjmento em formato decimal, pprin€f() 6 uma fungio da biblioteca padro de C e pode reoeber uum nomero varidvel de argumentos, Isto €, a endola do caractores do tontrole e mais tantos argumentos quantas oxpocfeaghos de formato a ‘adlola de controle contiver. (Cada argumento deve sor soparado por uma virguls IMPRIMINDO CADEIA DE CARACTERES _Além do cig do formatagto decimal (Sd), printf) acitavirios ‘outros. Opréxim exemplo mostra o uso do cédig Ss para imprimir ume ‘adele do caracteres. saint) c printf(*is esta a sd miThoes de withas\ndo sol*,Verus*,67): ‘da impresso deve ser feito em nova linha. Acombinagiode caractares \n representa, na verdade un dnicocaractereem C,chamadode nova-liaa Em outras palavras, este earactere desempenha a mesma fungio quo a ‘eecutada quando prossianamos tala enter] do tolado. Por que, ent, ‘ho usar tela [enter]? Porque, quando pressionamoe a tecla emer ‘editor do toxins quo estamos ueando para editar nose programa dels nha atual onde estamos rabalhand e passa para outra linha, deixando linha anterior inseabeda,ea fungSo printf) go otomard>paraaimpressio. 0s caracteres que nfo podem ser obtidos diretamente do teclado para dentro do programa (como a mudanga de linha) slo esrits em C, ‘ume acombinagdodosial | (arrainvertida) com outros caracteres, Por ‘exempl, \m representa a mudanea de linha. ‘Vamos agora escever um programa com mais de wma instrugi: rain) C rintt(A tetra se *.'3)s 1 Preemie." ita) Asaida seré: ‘Aletraj promanc-se ota, ‘76 um caractere "jota"é uma cadsia de caractores, Note que 6 delimitado por aspas ciples enquanto que "ota" 6 ts00 Digtealgumcaractor a A fungi geteh() 180 caractare do tclado e nto permite que seje Iimpresso na tale Como getche(), esa fungua nfo eclta angumentos © devolve o earactere ldo para afungio que a cham, programa soguinte chamasafunciogeteh( © atribuo caractere {que ela devolve & varlavel ch para depots imprimir 9 earstore © 0 ed Sueessor na tabola ASCII com printf). main) char eh printf("Digite algun caractere eget); Drintf("\n’A tecla que voce pressioney e” 2e"ych)s Print(*e a sua sucessora ASCIT e” 4c."ychsl}3 A biblioteca padro prove outrasfungtes para @leitura ooscrita de umn caractere por vez AFUNCAO getchar) A fangéo getehax() até definida no arquivo sidio., que acon ppanha seu complador, Oblém o préximo earactore da entrada eala vox {tue € chamada, #6 terminando a Teitura quando @ prossionada a tecla enter], © retorna o caraclere como seu valor. A fungao getehart) nio soci argumentos. sto 6 és = getenar()s ‘8 varigvel © contém 0 préximo caractere de ontrada. Caco encontre & inceago do fim de arquivo getehar() vetorna-1 AFUNGAO putehar() Afungsoputehar()¢ ocomplementodegetchar() também ests Aefinida noarquivostdia’, Afingéo putehar( aceita um argumentocujo ‘valor erdimpreaso, Oscomandos a seguir mostrar como ler caractore ‘de entrada, atribuir seu valor a vargvel e e imprimir 0 contetdo da ‘varidvel ena sada parti. © = getenar(): putchar(e}s ‘Umargumento de uma fungio pode seroutrafungso, Por axemplo, sslinbas anteriores podem ser escritas om: putehar(aetchar()): OPERADORES ARITMETICOS C6 uns linguagom vies em operadores, em torno do 40. Alguns ‘io mals usados que outros, como € 0 caso dos operadores aritmeéteos que ‘exectutam operagbes artmétias, C oferece 6 operadores aritmétics binéros (operam sobre dois ‘operandos) e umn operaoraritmético undrio (opera sobre um operand). ‘Sho eles Binérios 2 Atribuigto + Soma Subtragso + Multiplicaguo 1 Divi % —Wédulo (devolve o resto da divisiointeira) Unério Benoa undria OPERADOR DE ATRIBUICKO: [Em Go sinal de jgul nfo tom « Interpretagio dada em mato initia, Representa aatribuigio da expreseioa dreta sonome davariavel enquerda Por exempla: ‘teibul o valor 2000 & varigvel mum. A agte 6 exccutada da drcita para # ‘eaquarda deste operador. Observe que: 6 uma jgualdade valida em matomatiea mas que nao tem sentido em C pols nfo podemoe atribuir im valor a uma constant SSSSSSSSSSSSSSSSSSSSSSSS SS SS Sseses Prenat em tngagem C CCacitavérias atribuigbos numa mesma instrugto: Iarunjaccnouras-abacaton= 60; ‘OPERADORES: + -/* Estes operadores represontam as operagGesaritméticasbisicas de smn, subtragio,dvisto ¢ multipliagio. ‘Asequir eat um programa quo usa virio operadores artméticos ‘converte temporatura Fahrenhelt em seus correspondents graus Cel sing) c {nt Lem,ctesps printf("Digite onperatura en graus Fahrenheit: ~ cant ("1d Aftenp) 5 temp ftenp-32) 75/95 Printt("Tenperatura en graus Celsius e” 2 ? Fic um exemplo: Sighs Comperaturs em gras Foire ‘Temperatura er grus Clas oO. CoRemp Digit temperatura cm grausFareahlts 70 ‘Temperatura em praus Coats ¢ 21. ‘Vomosanalisar a instrussc: ctemp=(Ftenp-32) * 5/95 [Note quo colocamos partnteses em ftemp-22, Se voeé lemabra um ‘poucode algebra, arazio estar clara Nés queremos que 82 sojasubtraido ‘Se ftemp antes de mullipliearmos pr 5 dividirmos por 9. Aaultiplicagao ‘ea divisdo eo feltas antes da some ou subtrasio. Operon 35 0 programa a seguir usa um algritmo interessante para adv Dhar a soma do 5 ntmeros. O usuério digita um mimero qualquer © 0 computador informs o resultado da soma dos 6 imeroe dos quis © primeiro 0 usuario jéfornocou, O usudrio dita 0 segundo nimero © © omputador mostra o terooir, O trhério digta o quarto nimero e © ‘computador mostra oquint. Bisa aint) ‘ int xr printt("Digite um munero de ate 4 algarisaos\ Scant Ca" 8x): ra 18998 4 33, Print("0 resultado da nossa conta sera: sa\n"s Printf(*Digite © eegunds nanero (e algartsn2s)¥ Seanf ad"): Drintf("O mou numero e+ $4\n*,9899-x);, Print f("Uigitee quarto numero’ (8 algarssmos) \n")+ Seanf(*ad" x): Drintf("0 meu numero a9" 9999-2); Bis um exemplo de sua execugto: Digite o segundo muinero (4 gars) O mes numero 0: 8265 Digteo quarto numero (4 algnsmos) Pe ‘OPERADOR MENOS UNARIO: ~ © oporador menos unério éusado somonto para indlear a troca do sina algdbrco do valor. Pode também ser ponsado como o operador que mulipliea seu operando por 1. Por exemplar 28mg em Haguagen © Operatives 37 Considere os operadores abaixo que no s30 comuns ef otras misma | tinguagens Depoisdestas duas instrugds,oconteido de mum! ser 8. ++ increments de 1 sou operando erementade I sev operando { 0 operador de ineremento (++) inerementa de um set oporando OPERADOR MODULO: % ato oporalor trabalha de dois modas. O primeiro modo & chamado | préixado oo operaor aparece antes do nome da varivel, segundo 69 (peter madlosxita aemente operands nero Rema o ‘moo ps-fixado em que 0 oporader aparece seyuindeo nome da varivel ode dvisio do intero 8 sua eoquerda pelo inteire @ sua diets setae eee Em ambos o8 casos, a varvel 6 incrementada, Porém quando Por exemplo, 1745 tem o valor 2 pois quando dvidimes 17 por 5 ++4n 6 usado numa instrugio, n 6 inerementada antes de seu valor teremos resto 2 usado,o quando m4 + estiver numa instrugéo, n 6 inerementada depois E também possivelinluir expresses envolvendo operadores ait: Sa son valor sex wea, métios (e outros operadores) diretamente em printt0, Exemplos Na werdade, uma expressso completa pode ser usad em quase ‘Se as soguintes inhas de programa forem exseutadas: {todos os ligares ond uma varivel pode er usada. Como exemple, vamos ‘modificar oprograma anterior usando ua expresso em printf) so inves Sa varivel Print sat ne x,0)5 saint) { ssa srt Ant erp: Drint{(Digite temperature em graus Fobresests *)s Scant (he bfeetp) ca ashen nga atv Na primira linha stibuimeso valor 6 a ma segunda ina 9 jdiaaamnaemeamenron eectrtcee valor dem €atribuldo x ¢ depois m 6 inerementada de I, tomando ae valor 6 ‘Agora vamos ver umn outro exemple: OPERADORES DE INCREMENTO (++) E DECREMENTO (—) Se comparar um programa Coom um programa similar escrito em cutra linguagem, voot percberd, imediatamente, quo 0 programa C é menor. Umma das raates para que isto seja posfvel & quo C tem vérios operadores que podem comprimir comands de programas. 38_Trinomento eo ngage [Na primeira linha atrbutmeso valor 6 an, na segunda linha n& {nerementada da im ¢ dopols seu valor € atribulde ax ‘Vamos analsar as duns expresses sopuintes Cherrat a PRIMIEIRO sé tipi por Sear DEPOIS oraaad bade FINALAIENTE e ¢incementas Se eae ee _PRIMEIRO sé incenentdn do DEPOIS 9 tmliplato yor FINALMENTIEo fra tudo Quando um destes operadores aparece sozinhe numa instru, no far diferenga o uso do modo pré-fxado on pos-fixad, Outros exemplos: main() ‘ Ant nus-0; un); De fato,num++ 6 exatamente igual a centretanto nums + 6 uma dedlaragto bem mais compacta retires 9 main() c int munads Drintf(*a e” un belo manero\n", nun); Drintf(*%d o” un belo nanero\n?,ssnun) 5 TIneEred am bete nara a saida sori ‘nt mun0; printf(*td e" un belo munero\n" nn) Drintf(*d e” un belo munera\n" une PIM” obtener ans caida ser 9.6 um belo numero sin elo mere sing) { nt manos printf ('d ef un belo mamers\n! rims Drintf("Ed e” un Beto nunaro\n"y -mut); Drintf(*2d e* un belo runero\n*,nin); teamed ingsgen PRECEDENCIA ‘Operadores de incromento e decremento tém precodénca malor que a dos aritmeticos Isto 6, 6 oquivalonte a Operadoree de incremento- deerementor6podem ser wadoscam varlaveis¢ nfo com expresses ou constantes, Portanto, BRRADO hes; 5441 [Nao confunda a precodéncia destes dois operadores com a order de avaliagao, Analise estas instrugdes: bas pear brs)?s ‘Substituindo os valores, teremos: neQe5e3=793=21 ‘Somente depois da expressto ver avaliada, b é incrementada para 6.A precedéncia informa que ++ estéafotande a vardvel be qual valor do b soréusado para avaliar a exprestio, ¢ a definigin do oporador de ineremento determina quando e valor de b sera mudado. rintf() ENGANANDO Voc, ‘Voct podo sor itudido ao tentar imprimir wna most tailed ‘isla vetes tisando 0 operador de Incremento ou decrement, Por xorg Printh(*ed td 4a\n"soyn41 nee); Tato parece razovel evocé pode pensar que a impressto ser 565 De fato, em virios sistemas eta inhasfunconaro de aco ‘mas no em tai. . problema é quando printf) toma oa valores serem imprestos ta pode avalin dtimo argutnentaprimelto,oisto provocariaa teguinte Impressso: ave porceria ova Ames tain 6 entrada em exproasics de atibulgso om ‘mesma vartvel mpaveendo mais de uma ee A moscna de anh Improve ‘Testes elaborados com o compllador TURBO © versio 20 da Borland apresentaram os seguintes resultados neie(Eetdoteet)s PrintF("\n m= $44,0); nee PES USERS SESE RA REESE, sain() c tnt 13 Mitienetray Prine Ass ) n-15 main) i nt 4-3: printe(e\n n= a" ) n= saint) t Ane 5035 int me rintf(*\n n= ) ho rain) t sot 35 printf ("a 36 24 3a ielytetela tates ose Operdons 43 OPERADORES ARITMETICOS DE ATRIBUIGAO ste [== Cada um destes operadores é usado com tim nome de vastavet & sua esquerda © uma expressio A sua dirella. A operagin consiste emt atribuir um novo valer & vavldvel que deponderd to operader e da ex reaisoadireita, Se x ¢ uina yariével, exp uma expressio © op um operador svitmétion (4,4. / 00, eno cauivale a == (2 op (omy oquivalo.e ‘oquivalow ‘quivale a Asexprossbes eom estes operadores sao mais compactase normal mente prodhizem um ebdigo de maquina mais efcient, Beamale rain() c int totaleos int cont=10; printt(*TotaT-na\n", total) {otalescont, Drintf("Total-ta\", total) totale print("Totalata\w", total) {Treat en inguezen C ead sort t ‘Total-o (Osimbolo = pote se combinad com outros operadarescomo os \bgieos ou 0s operadores ita bit dos quasfalaromos no sogundovalumme OPERADORES RELACIONAIS ‘Operadores relecionsis sto usaa para fazer comparagses, So oles: ‘enor ou igual Tyualdade Alerente Noprésiine capitulo flaromos obra comands de dace lags, Estas eonstragéee requorom que o programa paryunte sobre relugbes entre variaves, Operadores reladonas 00 voesbulrio quo progrania ‘tn para fazer eet perguntes Em C nto existe um tipo de varivel chamada “boolean, isto 6 «que assuma urn Valor Verdadetzo bu falsa.O valor zero (0) ¢ eonsiderado {also e qualquer valor diferente do 06 cansiderado verdueiroe repre sentado pelo inteiro um (1) Portanto, em C, qualquer valor & 0 ver Adina on fats (© programa asoguir mostraexpresscestooleanss como argue toda fungo printf) aint) Sint verdad, Fale05 verdad 15 < 20)5, false = (152220)5 printf ("Verdadeiror x4, falson wan" verdad, fals0); ) ‘A said serés Vordederos 1 feo Note que o opera relainal gual a 6 ropresentato pr das sini de igual, Um ere comm 60 de uss Gnic dial dig cone ‘perio eaciona cmon oars que ee aren ae ‘tu?Naverdae cone tedaemprescio Ciomumracveriaioneie 4 ‘stone Sumenedoprrata caiman tole ieneavenaiey rain () Ant vetoes . « Printe(*\sA velocidade e* igual a S52%¢" veloce-S5); veloc = 855 Drintf(*\nA velocidade e* igual a S52%d",veToe=-55); ) Sada: A velctdede «gal 5520 ‘A velotdade gual a 2 PRECEDENCIA Os operadores aritmétics tém maior procedéncia que a dos re- lacionais. Iso significa que serko avalos antes, rain) Printf (*A resposta eu", SOCCER EEEEELE LEU EERE EERE EERE REESE Treinen inguagr a salda sore mato () t print (°A resposta ef £4" 14244); Asda ser Aresposta 1 COMENTARIOS ‘Comentérioe podem ser closados em qualquer lugar de set pro gama. Mostraromos @ programa que caleuls a idade com os devidos comentarios fs Adade.c */ (programa para caleular a sua {dade am diss */ m0) ‘oat anos dias: ‘PPéeclara variaveist/ printf(*Oigite sua 1dade en anos: *) Seanf("2¢* anos) jas = anon365:, Je {dade en anos*/ frealeua idade en diae*/ /* tnpressae do resultado */ printf(*Sua Idade em dias e* 8f.\8"4I25)5, ‘Comentérios comogam com discaractores,chamatos stinbolosde comentarios, barraasterica (/*) tarminam por asteiscobarra (*/). {Como C ignora espagee, cx comentarios podem sor esritos ex vitae linha Nao sto pormitides os simbolos do /* ou */ no interior de um comentario. ston enerovendo um somentari egal”) REVISAO| 1. A fungio scanft) 6 usada para ler informagdes do toclado. Os seus ‘argumentes consistem em uma expresso do controle, contend ai 2 Dvev 14. Qual serdo valor dek? 1-3 k=} 15. A procodénsia das operadores detormina qual 60 operador: 4) mais importante; 2) usado primeiro; ©) mais adequeds; @) quecpert om ndmeras melores 16, 0 comentirio seguinte&correto? ff Este @ um comentario ‘7 que se eatende em (( Yiias inhas 2 Trinament en inguogon © 417, Modifique o programa dade para que imprima aidade em minutos 0 inves de em dias, 18. Escrova um programa que solicite 3 ndmeros em ponto Nutuante ¢ ‘imprima a media aeitmetic, i CAPITULO 3 LAGOS = O Lago for = O Lago while = O Lago dowhile = 0s Comandos break E continue = OComando goto 4 Prinanent em tingagen ¢ [Em C oristom 3 estruturas prinepais de lagoe: 0 lag for, 0 Lago while © o lage o-while. OLAGO for © ago for angloba 3 exprestdes numa dai, e 6 ti prineipal mente quando queremes repetir alge um mimero fix de vezes. 0 exemplo seguinte imprim ago for na sua forma mais simples ‘0s nomoros de 09 uiieando uns Pissrre!) 4 taprin nuaros do 0.3847 ata foe cot Fortean contac prinefeantsaty cantart) conta} } Come ea teremnas: © programa executa 10 voues @ instrugao printf). A foncio printf()imprime # frase 'enta=" soguida do valor contido na varivel ona, FORMA GERAL DO LAGO for: ‘osicinnagiotentsonsoente) AESTRUTURA DO LACO for Os paréateses seguindo a pelavra-chave for contém tr expres ‘es separadas por pontos-e-virgulan ‘expresso como um todo ¢ chamada de "expressbo do lao” 6 Aiviida em: expresso de iniializago’, "expresso do tsto"e "expresso ‘de increments Aste expressbos podem ser compostas por usiaquerinstragios vilidas em C. Em sua forma mals simples, a inicalieagao 6 uma insteagio de atribuigho (conta=0) e é sempre exzeuteda uma tnica ver antes do Iago sor iniiado (Oeste umnainstrusao de condigSo que controls olago conta 10), ata expresato ¢avaliada como verdadeira ou flan toda vez que a lago or ‘niiado ou reiniiado, Se verdadala (diferente deere), oeatpo do lago & fexeeutado, Quando a expressio tornaiee faa (ual a 200), 0 1ago ‘erminado © 0 controle passa para instrugdo seule a igo, ‘A oxpreasio de incremento define a maneira como a vaiavel de ‘eotrote do lag ser alcerada cada vee que olago ¢ repetido (conta +) Esta instrugdo ¢ exoeutada, toda ver, imediataments apés a execugao do corpo do apo. PonTo-z.vIRGULA smicaliagao | ales Tor{contan0; conta < 10 } conta 4) print(*eontaste\r"jconta); nao oda Poxto-e VRGULA ‘coRPO DO LAG au

Você também pode gostar