Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Apostila de Linguagem C - Rodrigo Franco, Notas de estudo de Engenharia Elétrica

apostila de c

Tipologia: Notas de estudo

2010

Compartilhado em 23/08/2010

higor-augusto-deus-4
higor-augusto-deus-4 🇧🇷

5 documentos

1 / 92

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c

Pré-visualização parcial do texto

Baixe Apostila de Linguagem C - Rodrigo Franco e outras Notas de estudo em PDF para Engenharia Elétrica, somente na Docsity!

+ = mt tr Doi vá AZ: LOLLLLLLELHAS usa =. É q * ç CENTRO UNIVERSITÁRIO DO NORTE PAULISTA Apostila de Linguagem € Brof Rodrigo Adilio Franco 1380 pas « - = am Rs o, “ < em ja) fds E -, (o E poa) fa) fa ja) Em pu) pá as UM Ea Linguagem € =" =. .. em a, ma prio ir tdi Re ae o ado - Ea a E t , a pm . . ; 1 r . . É y Pd avo a] ' te 1 x LUA : “ e) a en MNA Mm DD RP) ODOR PALO DOL 00010 fo do DD O DD UU a a cao ca o a E danada Gt SÃO ÃO A a e a A é é | éété À dddddddd dd dd dd 2. s tóddddddo tedddddddd ds “44 A FUNÇÃO main() Sa - K Í o ERC oe eg era ame e AA Era F Todo programa em O e um conjunto de funções, inclusive O programa principal que tom um identificador reservado denominado main(). A função main() é especial por ser a primeira a ser chamad programa é executado. Significa o inicio de seu programa. E eistôncia da mainf + cm algum nonto do programa, para que O a 14 2 - ) “A a NE J a, & me E o, + , ' : Er ; nar f Ra u CONSIGA determinal oe iniciar à Execução. is AR : nm RE prod vaia a forma básica de um programa em & é a seguinte: a quando seu obrigaiória a compilador & : — = | | | definições de pré-processamento “4 | | ! | declarações-de variáveis globais *poo | - as - .s : void maint 31 | | & declarações de variáveis jocais Ê = E E o : FR corpo do programa principal * | | É | | 1º definição de outras funções */ | Exemplo de um programa em É: /* Este programa mostra a mensagem Hello World!! na tela Y Hinclude void mail X orintf( Hello World! An): 1 J Coservações: ce a = 1) À declaração Finciude serve para referenciar arquivos de bibilotecas. No exemplo acima & Hiblioteca referenciada é a , a qual é a bislioteca padrão para as funções de VO (Entrada/Saída) e que contém a função printf) utilizada no corpo da função maint 23 Os blocos são delimitados por abre-cnave “€, para indicar O início do bloco e facha-chave “Y para indicar O fim do Dioco! mto qo tutk bn 2 ne ne a e ne tTrittdde 10,020 Dal ve Dal y Dad er ua 0,0 CERNAUL VUCas MO ETTTTEITTTTETeEe Em PPA é TULL pe mca reta TT gal ars Ec Es Pal Moe - T. = ' E E 0 = - , - cm “= “ dão a rg NS reg TE gata apemioancia ain Ego 55d rd aee aa dE lo mi via ph arm a TRE Eh Dae; Tita =: EE e he ai ces ras l dem CG é sensivel ao case, ou seja, a linguagem diferencia letras. - PR E eh) e ds CEM SP gerais na É Ei = Pobre rap e ed . tão Tr ia TT ae a Eu To rea Tm [a e E maisecutas de letras minúsculas. Assim, todo comando de C deve ser escrito em letras minúsculas, prindff | não é um comando de C e sim uma função de saída de dados que se encontra na biblioteca nacrão stdio.n; 4 E IF a E ais 1.46 is est mt e ) fu, - comeniários na linguagem L aevem estar entre QNTIGI TA Portanto, deve- função maint 5 pn" Í Toda função em € pode receber parâmetros e retornar valores. Pa lor retornado pela função. A s nassados na linha de comando ou reto Eh ) ! ss declarar qual o tipo do va ET 1 mr também poderá receber valores £ y=iores.. entretanto, no caso da função main( ), em geral ela não retorna valores Para dizer ag compilador aus uma função não retornará valores, , véiliza-se a deciaraçãa void A e Lim segundo programa em o. . ppt dd e dd de = a — * Este programa solicita um nome via teclado e imprime O NO. * de caracteres digitados. etetode dede Sd A Ad A ted de e Tr = ARGEL AESA REA der dederde de deter he / Hinclude trefne MAX 15 Define uma constante cnamada MAX igual a 15% cnar cadeialMAXI, “Vetor global de MAX posições de caracteres”! void main(void) À inti=iô, puts(“Digite um nome com RO máximo 14 caracteres ); gets(cadeia); while (cadeiafi] |= 109) t++; | orinti((Esta cadeia tem %d caracteresm”, 1); ; 1.7 IDENTIFICADORES cadores nomeiam as variáveis, as constantes, tipos das variaveis, do fluxo de um programa escrito em €. A é muito parecida com a regra de outras -— Os identifl funções e atê mesmo O controle construção de um identificador em o linguagens, pri cipalmente com O Pascal: a) o conjunto de caracteres que podem compor um maiúsculas e minúsculas, sublinha( je dígitos; inha (3 ») todo identificador começa com letra ou sub Ea E" E al El - E | Ce SE E at Ae aratieres mai soHos Sao drerentes c) como já foi Gho anteriormente, em & 08 € dos minúsculos. Portanto, o identiic dor Xi é di Tsem valor elos modificadores r dificados ) e a E m exceção de tpo tipos primitivos CO so primitivo um tipo primitivo, + , e itembem à & sala, ão de UM mogificador junto tes de memória isfinido no padrão O ANS! il ja variável utilizada pela V e temest descrito na tabela a segui”: ' e [2.147 .463.647 “o mesmo que long !F 1 é rd £ f : 1 ; me Ê f UN 7 É o É ong ni — io a 4 294.967.299 —— i 41 sudaia Dal tuas www é déd Pi 'Y Do é já. é dd: é Da 6 fr UR ELUBLLESLELLSLLLLLLELCSILLALNAL! “variáveis deste tipo. Ele é usado para passagem de parâmetros nulos para funções, para indicar que as funções não retornam valores e na criação de ponteiros genericos, Embora seja usado para representar caracieres, O tipo char tambem armazena valores. isso porque em € um caracter (como uma letra por exemplo), & = 44 E ma ds A ÃO 2 : da s* cenrasconiado sor seu vnior ASS "Declara ch como tipo cnar/ at at ch='a” JaAtribulo ceracicr a para a variável cn“) ch=ch+1: * OK! pois o valor decimal de cn é 65 */ printf(AnCaracter representado por ch=%c, cujo valor ASCH é=%dº ch;ch):- Lança mt A execução do programa acima mostrará na tela a seguinte mensagem: Caracter representado por ch=b, cujo valor ASCIi é=5S Os tipos float e double são reservados para tratar números que exigem precisão numérica utilizando a notação de ponto flutuante. Neste tipo ce notação, os valores são armazenados na memória em duas partes, denominadas mantissa e expoente Por exemplo, o número 42345 em notação de ponie flutuante é representado por .42345e5, onde o número que segue o (8) € 9 a F Ed 4 É F expoente, e 12345 € o valor GO número. Seu armazenamento na memória & felt “da seguinte maneira: Mandtissa £ Na linguagem €, não existe o tipo lógico (como por exemplo, no PASCAL axiste o tipo Boolean), mas existe valcres lógicos. Fol convencionado que O é faiso e qualguer valor não nulo é verdadeiro. cxemopio: main() 1 int ilag; dddddd F f tu DD CCLLLLLLLLLELLL Tia Ma mim PE E Ee pus D.6,0 4 SD dd aà té ET 2227: . tELas D. 6 Css Dl ferra » 4 c=d=a; orinti(An a=%d In D=%d in c=%d in d=%d”, a b,c,d), Fim funcao main'/ EO 4 ENE Cos "ASTES fa Lira ÃE OM DRE DO: and trA Ss =; AUIção A Lica nE - CU ação A A Ee lAlem li ps furiplicação Ea DT! / E À Sal E 4 E aim, Em ed Cn o Pa aa a a, | md pad jo CADCUHO - TEIONNA O festo da divisao iniciia O = = 2" G = cha orinti(àn a=%d in b=%d in c=%Ad in d=%d a b,c.d); + Fim main“ | 143. Upera dores de incremento (++) e decremento €- - quando aplicados a uma variável, incrementam (++) em 1 em 1 O v valor da variável. yo Equivalen tea fazer. azar io F/ b-. Equivalente a à fazer printf(n Valor de a=od tn Valor de b=%%d”, a,D); :* Fim main*/ Estes operadores trabalnam em dois modos. o pes-fixado, quando o oberador vem depois da variável e o pre- fixado, quando qo operador vem antes da variável. A difarença entre os dois modos & que: e no pós-fixado o valor da variável é usada e depois seu valor é incrementade (ou decremeniaco); s No pe deco o valor da variável é incrementado (ou Cecrementado) antes ce main( 3 4 Cd em mf. int x, y=U] .— y Lo do dia A £ E EPs pr a Po Fa x=1 e y=0 */ omni Pos-decremento: valor de x=4d, valor de v="nd" my, —— T+ ER = - -Y f* Após a execução as variáveis terão os valores: x=0 e y=0 */ printfên Pre-decremento: valor de x=%%d, valor de y-od?, x,y): $.44. Operadores Reiacionais Como já foi dito anteriormente, na linguagem € não existe tipo lógico, mas existem valores lógicos. Para as expressões que resultam em um valor lógico, ficou convencionado que quando o valor retornado peia expressão for Gizero) significa FALSO e quando for d(um) significa VERDADEIRO. Os sinais usados para expressar as relações são: > maior < menor >= maior ou igual <= menor ou igual == igualdade i=, diferente | Exemplo: main() f int verdadeiro, falso; verdadeiro = (15 < 20): | “falso=(15==205 o primttn VERDADEIRO=%d, FALSO-%d”, verdadeiro, falso): | /*Fim imain*/ 1.4.5, Operadores Lógicos Os operadores lógicos são : && vara lógica and H nara lógica Or para lógica not [e PLA 14 ii s44 ( sssd 5 fr ddddds www desds ds A) dd. dd d Dina a ne el od dd DE Ra ' ca LE! e agr siigt quo RE io fo Rato 4 Seo + sddIdddA age AA Ch E derme aah mt mm ii E FEAR = Ti | “primo E * em decimal Yod da É > Car). printCe em hexadecimal vox An . car); printit “ Nro. de bytes que ocupa na memoria=od W”, sizeoftcar)); Fim main* 12 Camo norcoba-se foi usado um caracter especial * " que significa um açós & li mpressão. Existero outros come: ia apito Es retrocede uma posição n o caractere + RE nova linha & OUios E coloca um CAS v o caracters aspas (|) 7 salta página de formulario 1.6.2. scanil) | Tem a finalidade de ler um conjunto de caracteres contidos no buffer do teclado. Para a leitura dos valores deve-se formatar cada valor de entrada. A sintaxe é similar à sintaxe da função printf( ). scanil “expressão de controie”, lista de argumentos) - Exemolo: ginclude main() É char nomef[25!: int idads; à mn printi(tn Entre com seu Nome), flusnístein): RE) scami(%s",nome); Dn orintf('Entre com sua idade”) o filushístein); scani(%d" &idade): printf in Olá %s, voce tem %d anos!”, nome, idade), ssar O endereço de memória da variávei que 1) O símbolo & é utilizado para exprs ando o valor entrado é uma string (vetor de - vai armazenar 0 valor entrado. ou ars Em a ipi ra a caracteres) não é necessário colocar O &, neto endereço de seu primeiro caractere; 24 Como a leitura é feita no buffer do teclado & necessário limpá-lo antes de cictuar uma entrada, para isto utiliza-se a função: El ” Mo % Sos - o = a. + Ros a . - - a Pr PS ae qamdaça Ss * dog td a rem SS Ta a, sn PES 9 Pasto SST A, EE rata 2 2 317 joadladiids S sas bdgã tr EG] Sr 204 dg afidão ts dês PP Les 5 Ly 3; À função scanfl ) não consegue fazer a laitura de espaço em branco entre as paldvias Dor exemplo, considere a execução Co programa anterior como a seguir: =” Dntro com cel mo Tangara kãacd TA =nire com seu nome. inhaina siacãonaia Entre com sua isade: 25 Ota Janaina, voce tem 25 anos! Macdcnald) foi ignorado pela função scanif ) entrada de cadeia de caracieres. | Verifique que o sobrenoms ( Dortanto, ela não é recomendada par b . 0.4 & 1.6.3. puis() Tem a finalidade de enviar uma string para à saída padrão. Após imprimir a string, puts() já posiciona o cursor fa nróxima linha. Za 200 0.4 Exemplo: & include void main () 1 char nomel7i='Antonio” puts(“Esta é uma string Ea: HESSS dd. E Peri Exemplo: *% include void main() | char nome [30 cego e ri puts (“n Digite o seu nome. a Flush(sidin); | gets (nome); da q *Y Pen ) a é | PR, rita + AB :| ““4.) Elabore um programa que de xpory.. o A Tao ca qe . R ema - = ria o = no mao there gr Ag ÇÃO ar Dr MAE dia CEA e e nos A e f feat gRA ERC à es pai ge REP RE R — aa . e . RARA Rr . e “include main) 1 char ch; printi(On Digite algum caractere. 5, fiush(stdin); Pa Red go - O Td So, prini(tn A tecla digitada foi + fFim main” l (3 a ) Y 1.6.8. getei( ; ão, porém não ecoa o caracter na 1 = 4 . a poe E os À q x da : Pe da ; Bed é um caractere da endala pacrão, tela. Esta função é recomendaca quando deve-se esconder as teclas digitadas (no “caso de senhas) Ou deve-se tratar & tecla antes de ecoar na tela (no caso de ciores de fexio, DOF exemplo). 0BS. Existem muitas outras funções de entrada e saída de dados, . pertencentes a diversas bibliotecas. Para usá-las basta consultar O Help do Turbo C da Borland quanto aos formatos e estruturas. 4.7. Exercícios teia 2 valores int (x e y) e calcule o resto dadlivisão a 2.) Elabore um programa que leia 2 valores int (x e y) e calcule a media entre entre eles. 2.) Considere o programa abaixo. Antes de testé-lo, diga qual a saída de dados. “Teste-o e compare com sua resposia. “include main() | “tn=5: o char ch='À; orintf(An Hd, %d, Hd, %d?, n, nte, MH, mo printf(Am %c, Ye, HC", CA, ch++ ++ch) + Fim main” entrada de uma idade em anos e imprima a ÁS Faça um programa para solicitar a segundos. idade em dias, em horas, em minutos e em a voa | : f Ta DS SE aa siri ts Vga ST EEE a ES je RREO RE REo 2 E AS Põe 70 4E RATE dO EA A AS Es ST]. . Pa - : - - - . - ; dal qASe e Ss . . port combição sede rs EDER PS ZE: e > = pra cu prot Co) id sa a 8 ia 3º vet ER dem eo sm dans am o SUB pe pag SM Am dare) À CP oírois de muÃO Use Flog: alia ! | no 4 (O) O o 3 as O cD o to — C. pi 28 0 E mst, O (o, nodos ? 09 “+ UM void main O é intaD.c max, 17 2? | RE = MT, ) E dO, GUsdA Ss = a! 4 E) . 154. bodb o . E s Es ed So E ns sao deve ser uma constante do tipo inteiro OU caracter. Não €. “ea cada”caso d 3) pode haver uma OU mais instruções seguindo cada case. Estas instruções não necessitam estar entre chaves; | ao valor da expressão ou variável, a execução asos chaixo também serão execuiedos. comando break ro fina! nrouk cousa uma saida imediata do Switch; an , h as" e =. au a . O a bol ” 4 jiler OSSO SOLISTA utiliza-se O DO. (d by 0) O de O (3 o 0% [+] qa vm atisfeito e existir um case defauil, a axecução quit é opcional. ON (4 D = main() | o float numf, num2; char 0D; unile(!) ( “sempre verdadeiro*/ printf(Digite um numero, operador, numero), scant(%f %c Yf, &num?, &0p, hnum2); switcn(op) 1 case +: print = %f, num1 + num2), break, case -: o | | printf = %f, numi - num2). break, case *: case x” printf = %?, num? * num2), breax, case f: case W: printt = %f, num ! num2), Dreax; default o o orinti(Anin)); 2.8. Comando while ' 1 while ( expressão ) Sintaxe. comando; 19 uh LL d É RE = 2” SS4455 PRE FE Pa? Ea) À "E ; isa sia na bt " = f UNO Ao w BO GR ques Amit ç E E ER toa E sad. = a - sa imiat do-será-executado se a expressão for-di to à: ão for diferente de zero. pla, E * include void main () à char tecla; int; printf (nm Digite um caractere. para interromper. ); while ( (tecla = geteh( )) != Qd printf Nm Voce digitou: %c *, tecla), printf (Anin Digite um caractere. para interromper”; “d=o; while (1< 40) Cc printf (Nm %oi “, i) [++ = , v Fim main? 2.6. Comando de ... while — do À se Comeicio mito PE =" E Sintaxe; x ans while (expressão), — Q comando do ... white executa os comandos do bloco de comandos e “ logo em seguida, volta a executar o comando se a expressão tor diferente de “zero. a diferença entre o comando while e o do... while é que este executa O laço pelo menos uma vez. o | Exemplo: o io o = A | & include void main () 1 “char tecla; “printf (Mn Digite um caractere. para interromper: ), do ( o printf (Qn Digite um caractere. para interromper"); tecla = geteh(),. | printf “mn Voce digitou: %c “ tecla): as 20