Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf ·...

39
Introdução à Programação C Introdução à Computação para Engenharia Ambiental Prof. Jó Ueyama

Transcript of Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf ·...

Page 1: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

IntroduçãoàProgramaçãoC

IntroduçãoàComputaçãoparaEngenharia

AmbientalProf.JóUeyama

Page 2: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

LinguagemC

•  OrigemdeCestáassociadaaosistemaUnix•  Histórico:

–  1970:KenThompsondesenvolveB,baseadaemBCPL,paraoprimeiroUnixnoDECPDP-7

–  1972:DennisRitchieprojetaalinguagemC,baseadanalinguagemB.

–  1988:oAmericanNa+onalStandardIns+tute(ANSI)defineopadrãoANSIC

•  Éconsideradaumalinguagemdenívelmédio•  É“casesensi_ve”,ouseja,interpretacomodiferentes

letrasmaiúsculasdeminúsculas

2

Page 3: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

VARIÁVEISETIPOSDEDADOSProgramaçãoemC

Page 4: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Variáveis

•  Comoarmazenarosdadosdeentrada,fornecidospelousuário?

•  Oquefazercomosresultadosdasoperações?•  Variáveissãoelementosqueestãoassociadosaposiçõesdememória,cujoobje_voéoarmazenamentoinformações.

•  ...portemposuficienteaoseuprocessamento

4

Page 5: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Iden_ficadores

•  Nomequefazemreferênciaaelementostaiscomoasvariáveis

•  Regrasparaadefiniçãodeiden_ficadores:–  Naformaçãodoiden_ficadorsópodemseru_lizados:dígitos,letras(tantomaiúsculasquantominúsculas)eocaracteredesublinha(_)

–  Oiden_ficadordevecomeçarsemprecomumaletraoucaracteredesublinha

•  Apenasos31primeiroscaracteressãoconsiderados

Page 6: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Iden_ficadores

•  EmC,hádiferençaentremaiúsculoeminúsculo– Exemplo:– Nome≠nome≠NOME

•  NãopodeseempregarqualquerumadaspalavrasreservadasàlinguagemCcomoiden_ficadores

Page 7: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Palavras-chavedeC(ANSI)

autobreakcasecharconstcon_nuedefault

dodoubleelseenumexternfloatforgotoif

intlongregisterreturnshortsignedsizeof

sta_cstructswitchtypeofunionunsignedvoid

vola_lewhile

7

Page 8: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Variáveis

•  Exemplosdenomesdevariáveis: Corretos Incorretos Contador 1contador Teste23 oi!gente Alto_Paraiso Alto..Paraíso __sizeint _size-int

8

Page 9: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

9

TiposdeDados

•  O+podeumavariáveldefineosvaloresqueelapodeassumireasoperaçõesquepodemserrealizadascomela

•  Descreveanaturezadainformação•  Ex:

– variáveis_pointrecebemapenasvaloresinteiros– variáveis_pofloatarmazenamapenasvaloresreais

Page 10: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

10

TiposdedadosbásicosemC•  char:umbytequearmazenaocódigodeumcaracteredoconjuntodecaractereslocal

•  int:uminteirocujotamanhodependedoprocessador,_picamente16ou32bits

•  float:umnúmerorealcomprecisãosimples

•  double:umnúmerorealcomprecisãodupla

Page 11: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

11

ModificadoresdeTipos•  Osmodificadoresalteramalgumascaracterís_casdos_posbásicosparaadequá-losanecessidadesespecíficas

•  Modificadores:–  signed:indicanúmerocomsinal(inteirosecaracteres)–  unsigned:númeroapenasposi_vo(inteirosecaracteres)–  long:aumentaabrangência(inteirosereais)–  short:reduzaabrangência(inteiros)

Page 12: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Abrangênciadedados:16bits

Tipo Tamanho Abrangência (bytes)

char 1 -128 a 127

unsigned char 1 0 a 255

int 2 -32768 a 32767

unsigned int 2 0 a 65535

short int 2 -32768 a 32767

long int 4 -2.147.483.648 a 2.147.483.647

unsigned long int 4 0 a 4.294.967.295

float 4 ± 3,4·10 -38 a ± 3,4·10 38

double 8 ± 1,7·10 -308 a ± 1,7·10 308

long double 10 ± 3,4·10 -4932 a ± 3,4·10 4932

12

Page 13: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Abrangênciadedados:32bits

Tipo Tamanho Abrangência (bytes)

char 1 -128 a 127

unsigned char 1 0 a 255

int 4 -2.147.483.648 a 2.147.483.647

unsigned int 4 0 a 4.294.967.295

short int 2 -32768 a 32767

long int 4 -2.147.483.648 a 2.147.483.647

unsigned long int 4 0 a 4.294.967.295

float 4 ± 3,4·10 -38 a ± 3,4·10 38

double 8 ± 1,7·10 -308 a ± 1,7·10 308

long double 10 ± 3,4·10 -4932 a ± 3,4·10 4932

13

Page 14: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

14

Declaraçãodevariáveis

•  Adeclaraçãodeumavariávelsegueomodelo:TIPO_VARIÁVELlista_de_variaveis;

•  Ex:intx,y,z;floatf;unsignedintu;longdoubledf;charc=‘A’; /*variaveldefinidaeiniciada*/chars[]=“vetordecaracteres”;

Page 15: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

OPERADORESProgramaçãoemC

Page 16: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Operadores

•  Correspondemasímbolossimplesoucombinadosquerepresentamoperaçõesdenatureza:aritmé_ca,relacionaloulógica.

•  Podemserclassificadostambémquantoaquan_dadedeelementossobosquaisincidem,i.e.,unários,bináriosouternáriosa=b++;a=b-c;var=a>b?c:d;

Page 17: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Op.Aritmé_cos

•  Representamasoperaçõesaritmé_casbásicas

Operação Operador

Adição +Subtração -

Mul_plicação *Divisão /Resto %

Incremento ++Decremento --

Page 18: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Op.Relacionais

•  Estabelecemrelações/comparações

Operação Operador

Igualdade ==Diferença !=Maior >

Maiorouigual >=Menor <

Menorouigual <=

Page 19: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Op.Lógicos

•  Representamasoperaçõesbásicadadanalógicamatemá_ca

Operação Operador

Negação !Conjunção &&Disjunção ||

Page 20: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Op.deAtribuição(devariável)

•  Formageral:

variavel=expressãoouconstante

•  Armazenaoconteúdodadoadireitanoelementodadoàesquerda

•  Múl_plasatribuições–  Cpermiteaatribuiçãodemaisdeumavariávelemummesmocomando:

x=y=z=0;

20

Page 21: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Expressões•  Expressõessãocompostaspor:

–  Operandos:a,b,x,Meu_dado,2,...–  Operadores:+,-,%,...–  Pontuação:()–  Funções:sin(),abs(),sqrt(),...

•  Ex:X14x+y(x+y)*z+w–v(-b+sqrt(delta))/2*a

21

Page 22: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Expressões

•  Expressõesretornamumvalor:x=5+4/*retorna9*/

•  estaexpressãoatribui9axeretorna9comoresultadodaexpressão

((x=5+4)==9)/*retornaverdade=1*/•  naexpressãoacima,alémdeatribuir9ax,ovalorretornadoéu_lizadoemumacomparação

22

Page 23: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Expressões

•  aordememqueumaexpressãoéavaliadadependedaprioridadedosoperadoresedapontuação

•  expressõespodemapareceremdiversospontosdeumprograma–  comandos /*x=y;*/–  parâmetrosdefunções /*sqrt(x+y);*/–  condiçõesdeteste /*if(x==y)*/

23

Page 24: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

ConversãodeTipos

•  Quandoumavariáveldeum_poéatribuídaaumadeoutro_po,ocompiladorautoma_camenteconverteo_podavariáveladireitade“=”parao_podavariávelaesquerdade“=”

•  Ex:inti;charch;floatf;ch=i; /*chrecebe8bitsmenossignifica_vosdex*/i=f; /*irecebeparteinteiradef*/f=ch; /*frecebevalor8bitsconver_doparareal*/f=i; /*idemparainteiroi*/

24

Page 25: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

ESTRUTURABÁSICAProgramaçãoemC

Page 26: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

ProgramaçãoemC

•  Todoprograma,escritonalinguagemC,deveapresentarumafunçãoprincipalchamadamain,quedefinetodoocorpodoprograma

•  Exemplo:

int main() { /* corpo do programa */ }

Page 27: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

ComandosdeSaída

•  Empregadosparaqueosistemaforneça,emumdisposi_vodesaída,asmensagenseresultadosdeseuprocessamento.

•  Odisposi_vopadrãodesaídaéomonitor.

•  AlinguagemCoferecealgunscomandosdesaída,masoqueapresentapropósitomaisgeraléoprin�.

Page 28: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

ComandoPRINTF()

•  Sintaxe:prin�(“Mensagem”,listadevariáveis);

•  Funcionamento:–  Ocomandoescreveamensagemdadanodisposi_vopadrãodesaída,realizandoasubs_tuiçãodasmáscarasdeformataçãoencontradaspelasrespec_vasvariáveisdadasnalistasubseqüenteamensagem.

–  Odisposi_vopadrãoédadopelavariávelstdout

Page 29: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

29

Máscarasdeformatação•  Símbolodeporcentoseguidodeumaletra:

•  %c Caractere•  %d Inteiroscomsinal•  %u Inteirossemsinal•  %f Númerosreais•  %e Notaçãocien�fica•  %x Númerosemhexadecimal•  %s Cadeiadecaracteres(strings)

Page 30: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

30

Exemplo

•  Saídaformatadaprin�().Ex:– Otrechoabaixo:inti=10;floatr=3.1514;chars[]=“Blablabla”;/*cadeiadecaracteres*/prin�(“Inteiro:%d,Real:%f,String:%s”,i,r,s);

–  Produz:Inteiro:10,Real:3.151400,String:Blablabla

Page 31: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

31

ConstantesdoTipoChar•  Barrainver_daseguidodeumcaractere:

•  \a bip•  \b backspace•  \n novalinha•  \r return•  \t tabulaçãohorizontal•  \’ apóstrofe•  \” aspas•  \\ barrainver_da•  %%percent

Page 32: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Comandosdeentrada

•  U_lizadoparareceberdadosfornecidospelousuário(dadosdeentrada)earmazená-losnamemóriaprincipal(emvariáveis)

•  Osdadossãofornecidosaosistemapormeiodeumdisposi_vodeentrada,cujaconfiguraçãodadacomopadrãoéoteclado.

•  AlinguagemCoferecevárioscomandosdeentrada,cadaqualmaisindicadoparaumasituaçãoempar_cular.

•  Oprincipalcomandodeentradaéoscanf

Page 33: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

ComandoSCANF()•  Sintaxe:

scanf(“formato”,&variável);

•  Funcionamento:–  Ocomandocoletaasinformaçõesdadasnodisposi_vopadrãodeentrada,interpretandoasinformaçõessegundoamáscaradeformataçãoearmazenandona(s)respec_va(s)variável(is)dada(s)subseqüentementeaoformato.

–  Odisposi_vopadrãoédadopelavariávelstdin

Page 34: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

34

Exemplo

•  Entradaformatadascanf().–  Ex:inti;floatr;charstr[10];scanf(“%d”,&i);scanf(“%f”,&r);scanf(“%s”,&str);

–  Ouainda:intdia,mes,ano;scanf(“%d/%d/%d”,&dia,&mes,&ano);

Page 35: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

UMEXEMPLOCOMPLETOProgramaçãoemC

Page 36: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

ProgramaC#include <stdio.h> #include <math.h> int main(){ int num1, num2, media; printf("Digite 2 numeros: ");

scanf("%d %d",&num1, &num2); media=(num1+num2)/2; printf("\nMedia: %d", media);

getch(); return 0; }

Page 37: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Exercícios

37

1)Ler o tamanho do lado de um quadrado e imprimir sua área.

2) Ler um número inteiro e imprimir a soma do sucessor de seu triplo com o antecessor de seu dobro.

Page 38: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Exercícios

38

3) Elaborar um algoritmo que calcula e exibe as médias de prova (MP), de 2 trabalhos (MT) e final (MF). MP: (2P1 + 3P2 + 3P3)/8 MT = (T1+T2)/2

MFinal = (7MP + 3MT)/10 4) Faça um programa que determine o perímetro de um

polígono regular de N lados, circunscrito a uma circunferência de raio R. Sabe-se que o perímetro é dado por:

#include <math.h> Função seno: #include <stdio.h> a = sin(b);

⎟⎠

⎞⎜⎝

⎛∗=N

senNRper π2

Page 39: Introdução à Programação Cwiki.icmc.usp.br/images/1/1f/Aula03_linguagemC_Jó2016.pdf · Introdução à Programação C Introdução à Computação para Engenharia Ambiental

Exercícios

39

5) Fazer um programa que leia 2 valores inteiros para duas variáveis A e B, escreva os conteúdos das variáveis na tela, e em seguida troque os conteúdos das duas variáveis, exibindo novamente os seus conteúdos na tela.

6) Faça um programa para ler um número inteiro, positivo de três dígitos, e gerar outro número formado pelos dígitos invertidos do número lido.