computação eletrônica entrada e saída, condicionais: if e...

Post on 31-Dec-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CIn.ufpe.br

ComputaçãoEletrônicaEntradaesaída,condicionais:ifeswitchProf:LucianoBarbosaSitedaturma:www.cin.ufpe.br/~luciano/cursos/ce/

CIn.ufpe.br

EntradaeSaídaemC

2

CIn.ufpe.br

SaídadeDados

•  Mensagensparaousuário–  Ex:digitaraentradaouresultadodasaída

•  Veroprocessamentodonossoprograma•  Nestecurso,vemosimpressãoemconsoleouterminal

CIn.ufpe.br

SaídadeDados-printf

•  Disponívelnabiblioteca<stdio.h>•  printsignifica“imprimir”eofnofinalsignifica“formatar”:

imprimirnasaídainformações(textoenúmeros)deformaformatada.

•  Asintaxeé:printf(“stringdecontrole”);

•  ou:printf(“stringdecontrole”,arg1,arg2,...);

CIn.ufpe.br

SaídadeDados-printf-Sintaxeprintf(“stringdecontrole”);

•  Stringdecontrolepodeconter:texto,códigosespeciaiseespecificadoresdeformatos.

•  Códigosespeciais:barrainvertida(\),seguidadeumaletra.–  Indicaumaaçãoquedeveserexecutadapeloprintf.

CódigosEspeciais Ação

\n Mudaocursorparaoiníciodalinhaseguinte.

\t tabulação(tab)

\” Escreveaspasduplasnatela

\\ Escreveumabarrainvertidanatela

\a Produzumalertasonoro

Maiscódigosespeciaisem:http://en.cppreference.com/w/cpp/language/escape

CIn.ufpe.br

SaídadeDados-Exemplos

CIn.ufpe.br

Printf:EspecificadoresdeFormato

•  Mostrarvaloresnasvariáveisnatela•  Marcaolugareoformatodeimpressãodasvariáveis,contidas

nalistaargumentos•  Umespecificadorparacadavariávelaserimpressa•  Todososespecificadoresdeformatocomeçamcomum%

CIn.ufpe.br

Printf:EspecificadoresdeFormato

EspecificadordeFormato Uso

%d,%i Escreverumvalordotipointeiro

%f Escreverumvalordotiporeal

%c Escreverumcaractere

%s Escreverumacadeiadecaracteres

%e Escreveumvalorrealemnotaçãocientífica

%p Imprimeoendereçodeumponteiro

%% Escreverocaractere‘%’

Maisformatosem:http://www.cplusplus.com/reference/cstdio/printf/

CIn.ufpe.br

SaídadeDados-Exemplos

CIn.ufpe.br

EntradadeDados

•  Usuárioinformaumvalorparaumprograma•  Osdispositivosmaiscomunssão:teclado,mouse,telasensível

aotoque,scanner,dentreoutros.

CIn.ufpe.br

EntradadeDados–scanf

•  Lêapartirdodispositivodeentrada•  Armazenaentradanamemória(variáveis)•  Disponívelnabiblioteca<stdio.h>•  scansignifica“ler”eofsignifica“formatado”•  Asintaxedocomandoé:

scanf(“stringdecontrole”,&var1,&var2,...);

CIn.ufpe.br

EntradadeDados–scanf–Sintaxe

•  Astringdecontroledeveassumirumdosvaloresabaixo:

StringdeControle Significado

%d,%i leituradenúmerosinteiroscomsinal

%u Leituradenúmerosinteirossemsinal

%f leituradenúmerosreais

%c leituradeumcaractere

%s leituradecadeiadecaracteres

Maisem:http://www.cplusplus.com/reference/cstdio/scanf/

CIn.ufpe.br

EntradadeDados–scanf–Sintaxe

•  Precisasaberoendereço(&)ondevaiarmazenarovalor(posiçãodememóriaassociadacomavariávelqueestamosutilizando)

•  Utiliza-se&antesdasvariáveissimples(nãocomvetores)

Observeoscolchetes[](indicamvetores)

CIn.ufpe.br

EntradadeDados-Exemplos

CIn.ufpe.br

EntradadeDados-CadeiadeCaracteres

•  Afunçãoscanfcom%s,emmuitoscasos,nãoéadequadaparalerumacadeiadecaracteres.

•  Problema:espaçoembrancoseparandoumapalavradaoutra->desprezaorestantedotextodigitado.•  Nãosabequalotamanhomáximoquepodearmazenarna

variávelvetordecaracteres.•  Solução:utilizarastringdecontrole:

“%X[^\n]s”–  onde‘X’:tamanhodovetordecaracteresmenos1,“[^\n]s”:informaquealeituradecaracteresdeveterminarsomenteaoencontrarumcaracteredefimdelinha‘\n’(enter)

CIn.ufpe.br

EntradadeDados-Exemplos

19=20-1

Permiteaentradadenomescomespaço.Ex.:“Joãodasilva”

CIn.ufpe.br

EntradadeDados-CadeiadeCaracteres

•  Outraopção:funçãofgets:fgets(&variavel,maximo,stdin);–  Oendereçodavariávelqueiráreceberovalorlido:&variavel–  Tamanhomáximoquedeveserlido:maximo–  Deonde:stdin-entradapadrão(teclado)

•  Outrafunção:funçãofflush–  Limpaobufferdeentradadedados(stdin)–  Érecomendávelutilizarfflush(stdin)antesdeumcomandodeleiturado

teclado

•  Assimcomooscanfeprintf,fgetseofflushtambémestãodefinidosnabiblioteca<stdio.h>

CIn.ufpe.br

EntradadeDados-CadeiadeCaracteres

CIn.ufpe.br

SemCondicional

b ca

x1 x2

Δ=b2–4acx1=(-b+sqrt(Δ))/(2a)x2=(-b-sqrt(Δ))/(2a)

CIn.ufpe.br

ComCondicional

Δ>0

b ca

Δ=b2–4ac

x1 x2

Δ==0 Δ<0

x1=(-b+sqrt(Δ))/(2a)x2=(-b-sqrt(Δ))/(2a)

x1=(-b+sqrt(Δ))/(2a)

x1

“Nãopossuisoluçãoreal”

CIn.ufpe.br

Condicionais

•  Comandosquepermitemdecidirseaexecuçãodeumainstruçãodeveounãoserfeita

•  Baseadaemexpressõesbooleanas–  Resultadodaavaliação:verdadeirooufalso–  EmC,NÃOexisteotipodedadobooleano

•  Falsoérepresentadocomoointeiro0(zero)•  Qualqueroutronúmerodiferentedezeroindicaverdadeiro.

–  Consideremosentão:•  1:verdadeiro•  0:falso

–  Umaexpressãobooleanaécompostadeoperandosbooleanos(lógicos)eoperadoresrelacionaise/oulógicos

CIn.ufpe.br

Condicionais

•  Operadoresrelacionais:

CIn.ufpe.br

Condicionais•  Operadoreslógicos:

–  Sãousadosparacombinarcomparações–  Operamsobrevaloresbooleanos(0ou1)

CIn.ufpe.br

ExpressõesBooleanas•  Umatabelaverdaderepresentatodasascombinações

verdadeiro-falsodosoperadoreslógicos:

CIn.ufpe.br

ExpressõesBooleanas•  Operadores&&e||sãoditosshort-circuited

–  Operandosdadireitasósãoavaliados,senecessário–  Existemosoperadoresbitabit&eIquerepresentamoperações

binárias

•  Erroscomuns:–  Confundir&&com&–  Confundir||com|

CIn.ufpe.br

ExpressõesBooleanas

CIn.ufpe.br

ExpressõesBooleanas

Parêntesessãousadosparaevitar

ambiguidades

Qualovalordebaofinaldoprograma?

1-verdadeiro

CIn.ufpe.br

ExpressõesBooleanas

Qualovalordebaofinaldoprograma?

1-verdadeiro

CIn.ufpe.br

ComandosCondicionais•  AlinguagemCoferece3tiposdecomandoscondicionais:

–  if–else–  switch–  comandoternário(?:)

CIn.ufpe.br

If-else

•  SeaavaliaçãodeexpressaoBooleanaretornarverdadeiro:–  comandossãoexecutados

•  Casocontrário:–  executam-seoutroscomandos

CIn.ufpe.br

If-else•  Exemplo:

Obs.:Aindentaçãofacilitaaleituradoprograma

CIn.ufpe.br

Variações:If-else•  Omissãodoelsequandonãohácomandosparaoelse:

•  Omissãodaschaves,quandoháapenasumcomandonoifounoelse:

CIn.ufpe.br

If-else•  Outrosexemplos:

CIn.ufpe.br

If-else•  Comandosaninhados:

•  Obs.:Oelseésempreassociadoaoifanteriormaispróximo

CIn.ufpe.br

If-else•  Outrosexemplosdecomandosifaninhados:

Háalgoerrado?

CIn.ufpe.br

If-else•  Outrosexemplosdecomandosifaninhados:

Oelseésempreassociadoaoifanteriormaispróximodentrodomesmobloco{}

CIn.ufpe.br

Ocomandoswitch•  Nãoéelegantemuitascondições:if-elseencadeados•  Paraestescasosocomandoswitchpodeseramelhoropção

CIn.ufpe.br

OcomandoswitchParaexecutarumswitch:•  Avalia-seexpressao;•  Executam-seoscomandosdocasecujo

rótuloéigualaovalorresultantedaexpressão;

•  Executam-seoscomandosdedefaultcasoovalorresultantenãosejaigualanenhumrótulo;

CIn.ufpe.br

Ocomandoswitch•  Expressãosópodeser:intouchar;•  Rótulossãoconstantes•  Existenomáximoumacláusuladefault(éopcional);•  Ostiposdosrótulostêmqueserdomesmotipodeexpressao;•  Váriosrótulospodemestarassociadosaomesmocomando•  Oscomandosbreaksãoopcionais:

–  Semobreakaexecuçãodoscomandosdeumrótulocontinuanoscomandosdopróximo,atéchegaraofinalouaumbreak.

•  Noexemploaolado:–  casoexpressaosejaavaliadapararotulo1,os

comandos1e2serãoexecutados.–  casoexpressaosejaavaliadapararotulo2,

apenasocomando2seráexecutado.

CIn.ufpe.br

Ocomandoternáriodedecisão(?:)•  Ocomandoternário(?:)éumaversãodoif-elsecomsintaxe

maiseconômica;•  Sintaxe: (condicao?expressao1:expressao2)

•  Lê-se:–  Casocondicaosejaverdadeira:avalieeretornecomoresultado

expressao1,casocontrário,avalieeretornecomoresultadoexpressao2

CIn.ufpe.br

Ocomandoternáriodedecisão(?)•  Osexemplosabaixosãoequivalentes:

CIn.ufpe.br

Atividade01•  CompilareDepurarProgramas

–  Executeoprogramaabaixopasso-a-passo(depurar)eanoteovalordecadavariávelemcadapontoindicado:

CIn.ufpe.br

Atividade02•  Variáveis,EntradaeSaída

–  Façaumprogramaque:1.  Leiadoisvaloresdotecladoeosarmazenaemduasvariáveis;2.  Troqueoconteúdodeumavariávelcomaoutra;3.  Imprimaosvalorestrocadosnatela;

CIn.ufpe.br

Atividade03•  Variáveis,EntradaeSaída

–  Façaumprogramaqueleiadotecladocinconúmeroseimprimanatelaasomadestescinconúmeros.Oprogramasópodeutilizar2(duas)variáveis.

CIn.ufpe.br

Atividade04•  Constantes,Variáveis,EntradaeSaída

–  Façaumprogramaqueleiadotecladooraiodeumacircunferênciaeimprimaseudiâmetro,seuperímetroesuaárea.

–  Obs.:Declareaconstanteπ

CIn.ufpe.br

Atividade05

•  Variáveis,EntradaeSaída,Condicionais–  Façaumprogramaque:

1.  Soliciteaousuáriodigitartrêsnúmerosreais;2.  Lerostrêsnúmerosdigitadosdoteclado;3.  Imprimanatelaqualomaiornúmerodigitado.

–  Trêsmaneirasdeimplementaresteprograma:•  http://www.programiz.com/c-programming/examples/largest-number-three

46

CIn.ufpe.br

Atividade06•  Variáveis,EntradaeSaída,Condicionais

–  Façaumprogramaqueleiaastrêsnotasdeumaluno(entre0e10),calculeamédiaeimprimaoseuconceitofinal,deacordocomaregraabaixo:

•  Notamaiorouiguala9:ConceitoA;•  Notamenorque9emaioriguala7:Conceito:B;•  Notamenorque7emaioriguala5:ConceitoC;•  Notamenorque5emaioriguala3:ConceitoD;•  Notamenorque3:ConceitoF;

CIn.ufpe.br

Atividade07•  Condicionaiseexpressõesbooleanas:

–  Imagineumaavóquesóvaiaprovaronamorodeseuneto(a),seopretendenteestivercommaisde25emenosde40anos,forrico(rendaanualacimadeR$75.000,00)etiverboaaparência(notaacimade7emumaescalade0a10).

–  Façaumprogramaparadescobrirseumpretendenteestáaptoounão.Ex.:

Informeasuaidade:39Digiteoseurendimentoanual:49000Comoatrativoévocê,emumaescala0-10?7.5Vocêestáautorizadoanamorar:falso

CIn.ufpe.br

Atividade08•  Desafio:

–  Façaumprogramaquerecebecomoentradaosaláriobrutodeumtrabalhadoresuadedução,ecalculeoimpostoderenda(IRPF)devido,deacordocomatabelaabaixo.

•  Obs.:Ocálculodoimpostoincidesobreosaláriomenosasdeduções;•  Deveseraplicadoapenasapartedovalorqueestiverdentrodecadafaixa;•  Comparecomosimuladordareceitafederal:

http://www.receita.fazenda.gov.br/aplicacoes/atrjo/simulador/simulador.asp?tipoSimulador=M

Basedecálculo(R$) Alíquota%

Até1.787,77 isento

De1.787,78até2.679,29 7,5%

De2.679,30até3.572,43 15,0%

De3.572,44até4.463,81 22,5%

Acimade4.463,81 27,5%

•  Ex:–  Salário10.000,00deduções:2.000,00–  Basedecalculo:8.000,00–  (2.679,29-1.787,77)*7,5%=66,86–  (3.572,43-2.679,29)*15%=133,97–  (4.463,81-3.572,43)*22,5%=200,56–  (8.000,00-4.463,81)*27,5%=972,45–  Impostototal:1.373,84

CIn.ufpe.br

Atividade09

50

CIn.ufpe.br

Atividade10

51

CIn.ufpe.br

Atividade10

52

top related