instituto federal de educaÇÃo, ciÊncia e tecnologia...

33
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CATARINENSE – CÂMPUS VIDEIRA. CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO APOSTILA DE LÓGICA – DISCIPLINA DE ALGORITMOS

Upload: others

Post on 23-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA

CATARINENSE – CÂMPUS VIDEIRA. CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

APOSTILA DE LÓGICA – DISCIPLINA DE ALGORITMOS

Page 2: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

2

1. CONCEITOS DE PROGRAMAÇÃO

1.1. LÓGICA

A lógica de programação é necessária para pessoas que desejam trabalhar comimplementaçãodeprogramasparaosdispositivoscomputacionais,elapermitedefinirasequêncialógicaparaaelaboraçãodeumprojeto.

Entãooqueélógica?Lógica de programação é a técnica de encadear pensamentos para atingir

determinadoobjetivo.

1.2. SEQUÊNCIA LÓGICA

Estespensamentospodemserdescritoscomoumasequênciade instruções,quedevemserseguidasparasecumprirumadeterminadatarefa.

Sequência Lógica são passos executados até atingir umobjetivo ou solução de

umproblema.

1.3. INSTRUÇÕES

Na linguagem comum, entende-se por instruções “um conjunto de regras ounormasdefinidasparaarealizaçãoouempregodealgo”.

Eminformática,porém,instruçãoéainformaçãoqueindicaaumcomputadorumaaçãoelementaraexecutar.Convémressaltarqueumaordemisoladanãopermiterealizaro processo completo, para isso é necessário um conjunto de instruções colocadas emordemsequenciallógica.

Éevidentequeessasinstruçõestêmqueserexecutadasemumaordemadequada.Dessa maneira, uma instrução tomada em separado não tem muito sentido; paraobtermosoresultado,precisamoscolocarempráticaoconjuntodetodasas instruções,naordemcorreta.

Instruções são conjuntos de regras ou normas definidas para a realização ou

empregodealgo.Eminformática,éoqueindicaaumcomputadorumaaçãoelementaraexecutar.

1.4. ALGORITMO

Um algoritmo é formalmente uma sequência finita de passos que levam aexecução de uma tarefa. Podemos pensar em algoritmo como uma receita, umasequênciadeinstruçõesquedãocabodeumametaespecífica.Estastarefasnãopodemserredundantesnemsubjetivasnasuadefinição,devemserclaraseprecisas.

Comoexemplosdealgoritmos,podemoscitarosalgoritmosdasoperaçõesbásicas(adição,multiplicação,divisãoesubtração)denúmerosreaisdecimais.Outrosexemplos

Page 3: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

3

seriamosmanuaisdeaparelhoseletrônicos, comoumaTV,queexplicampasso-a-passocomo,porexemplo,programaroscanais.

Atémesmoascoisasmaissimples,podemserdescritasporsequênciaslógicas.Porexemplo:

“Somardoisnúmerosquaisquer”.

• ColoqueoprimeironúmeronacaixaA• ColoqueosegundonúmeronacaixaB• SomeonúmerodacaixaAcomnúmerodacaixaBecoloqueoresultadona

caixaC

Caixa A Caixa B+ = Caixa C

1.5. PROGRAMAS

Osprogramasde computadoresnadamais sãodoquealgoritmosescritosnumalinguagemdecomputador(Java,Pascal,C,COBOL,Fortran,VisualBasic,Smalltalk,entreoutras)equesãointerpretadoseexecutadosporumamáquina,nocasoumcomputador.Notem que dada esta interpretação rigorosa, um programa é por natureza, muitoespecíficoerígidoemrelaçãoaosalgoritmosdavidareal.

1.6. EXERCÍCIOS

1) Descreva uma sequência de passos para somar dois números emultiplicar oresultadopeloprimeironúmero.

2) Façaumalgoritmoparatrocarumalâmpada.Descrevacomdetalhes.

Page 4: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

4

2. DESENVOLVENDO ALGORITMOS

2.1. PSEUDOCÓDIGO

Os algoritmos são descritos em uma linguagem chamada pseudocódigo oupseudolinguagem. Este nome é uma alusão à posterior implementação em umalinguagemdeprogramação,ouseja,quando formosprogramaremuma linguagem,porexemploC,estaremosgerandocódigoemC.Porissoosalgoritmossãoindependentesdaslinguagensdeprogramação.Aocontráriodeuma linguagemdeprogramaçãonãoexisteumformalismorígidodecomodeveserescritooalgoritmo.

Oalgoritmodeveserfácildeinterpretarefácildecodificar.Ouseja,eledeveserointermediárioentrealinguagemfaladaealinguagemdeprogramação.

2.2. REGRAS PARA CONSTRUÇÃO DO ALGORITMO

Para escrever um algoritmo precisamos descrever a sequência de instruções, demaneirasimpleseobjetiva.Paraissoutilizaremosalgumastécnicas:

• Usarsomenteumverboporfrase• Imaginarquevocêestádesenvolvendoumalgoritmoparapessoasquenão

trabalhamcominformática• Usarfrasescurtasesimples• Serobjetivo• Procurarusarpalavrasquenãotenhamsentidodúbio

2.3. FASES

Éimportanteressaltarquequalquertarefaquesigadeterminadopadrãopodeserdescritaporumalgoritmo,comoporexemplo:

CALCULAROSALDOFINANCEIRODEUMESTOQUEEntretanto ao montar um algoritmo, precisamos primeiro dividir o problema

apresentadoemtrêsfasesfundamentais.

Ondetemos:ENTRADA:SãoosdadosdeentradadoalgoritmoPROCESSAMENTO:SãoosprocedimentosutilizadosparachegaraoresultadofinalSAÍDA:Sãoosdadosjáprocessados

Page 5: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

5

2.4. EXEMPLO DE ALGORITMO

Imagine o seguinte problema: Calcular amédia final dos alunos da 3ª Série. Osalunosrealizarãoquatroprovas:P1,P2,P3eP4.

Onde:MédiaFinal=(P1+P2+P3+P4)/4 Paramontaroalgoritmoproposto,faremostrêsperguntas:a)Quaissãoosdadosdeentrada?R:OsdadosdeentradasãoP1,P2,P3eP4.b)Qualseráoprocessamentoaserutilizado?R: O procedimento será somar todos os dados de entrada e dividi-los por 4

(quatro)(P1+P2+P3+P4)/4c)Quaisserãoosdadosdesaída?R:OdadodesaídaseráamédiafinalAlgoritmo

• Recebaanotadaprova1• Recebaanotadeprova2• Recebaanotadeprova3• Recebaanotadaprova4• Sometodasasnotasedividaoresultadopor4• Mostreoresultadodadivisão

2.5. EXERCÍCIOS

1)Identifiqueosdadosdeentrada,processamentoesaídanoalgoritmoabaixo:• Recebacódigodapeça• Recebavalordapeça• RecebaQuantidadedepeças• Calculeovalortotaldapeça(Quantidade*Valordapeça)• Mostreocódigodapeçaeseuvalortotal

2)Façaumalgoritmopara“Calcularoestoquemédiodeumapeça”,sendoque:ESTOQUEMÉDIO=(QUANTIDADEMÍNIMA+QUANTIDADEMÁXIMA)/2

Page 6: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

6

3. DIAGRAMA DE BLOCO

3.1. O QUE É UM DIAGRAMA DE BLOCO?

O diagrama de blocos é uma forma padronizada e eficaz para representar ospassoslógicosdeumdeterminadoprocessamento.Comodiagramapodemosdefinirumasequência de símbolos, com significado bem definido, portanto, sua principal função éfacilitaravisualizaçãodospassosdeumprocessamento.

Para desenvolver um diagrama correto de forma clara e precisa, algumasrecomendaçõessãonecessárias:

• Inicieodiagramacompoucosblocos,eaopoucosvásubdividindoosblocosdeformaacriarpequenostrechos.

• Recomenda-se iniciaraconstruçãodecimaparabaixoedadireitaparaaesquerda

• Nãocruzeaslinhasentreosblocos• Transcrevaodiagramadeblocoempseudolinguagem

3.2. SIMBOLOGIA

De forma a tornar mais simples o entendimento de diagramas de blocos, sénecessáriaumapadronizaçãodosblocosqueserãoutilizados,algunsosblocosutilizadossãodemonstradosnaTabela1.

Tabela1–PrincipaisBlocos

Terminal–símboloutilizadocomopontoparaindicaroinícioe/ouofimdeumprograma

Setadefluxodedados–permiteindicarosentidodofluxodedados.Serveexclusivamenteparaconectarossímbolosoublocosexistentes

Processamento–Símbolooublocoqueseutilizaparaindicarcálculos(algoritmos)aefetuaratribuiçõesdevaloresouqualquermanipulaçãodedadosquetenhaumblocoespecíficoparasuadescrição

Teclado–Entradadedadosqueserãoinseridosatravésdoteclado

Display–Saídadedadosvisuaisatravésdeummonitor.

Page 7: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

7

Dentro do símbolo sempre terá algo escrito, pois somente os símbolos não nos

dizemnada.Vejanosexemplosaseguir:

Início

Fim

CalcularMedia=(n1+n2+n3+n4)/4

“CALCULAR A MÉDIA DE 4 NOTAS”

Receba n1

Receba n2

Receba n3

Receba n4

Média

3.3. EXERCÍCIOS

1)Construaumdiagramadeblocosque:

• Leiaacotaçãododólar• Leiaumvaloremdólares• ConvertaessevalorparaReal• Mostreoresultado

Page 8: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

8

2)Desenvolvaumdiagramaque:

• Leia4(quatro)números• Calculeoquadradoparacadaum• Sometodose• Mostreoresultado

3)Construaumdiagramadeblocosparapagamentodecomissãodevendedores

depeças,levando-seemconsideraçãoquesuacomissãoseráde5%dototaldavendaequevocêtemosseguintesdados:

• Identificaçãodovendedor• Códigodapeça• Preçounitáriodapeça• Quantidadevendida

Page 9: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

9

4. CONSTANTES, VARIÁVEIS E TIPOS DE DADOS. Variáveiseconstantessãooselementosbásicosqueumprogramamanipula.Uma

variáveléumespaçoreservadonamemóriadocomputadorparaarmazenarumtipodedadodeterminado.

4.1. CONSTANTES

Constanteéumdeterminadovalor fixoquenãosemodificaao longodo tempo,duranteaexecuçãodeumprograma.

4.2. VARIÁVEIS

Variável é a representação simbólica dos elementos de certo conjunto. Cadavariável corresponde a uma posição de memória, cujo conteúdo pode se alterado aolongodotempoduranteaexecuçãodeumprograma.Emboraumavariávelpossaassumirdiferentesvalores,elasópodearmazenarumvaloracadainstante.

Partindo de uma analogia, uma variável pode ser considerada como uma caixa,ondeotipodedadoquepodeserarmazenadonavariáveléotamanhodacaixa,mesmoprincípioaconteceemprogramação,umavariávelqueiráreceberumvalorlógicotemumtamanhoembytes(1byte)inferioraumavariávelqueiráreceberumvalorReal(4ou8bytes).

Total

34

Nome

Valor

Tipo

Figura1-Representaçãodeumavariável

Umavariávelécompostaportrêspartes:1. Nome:éorótulodacaixa;comoelairáseridentificada.2. Valor:oqueestáarmazenadodentrodacaixa.3. Tipo:sãoasdimensõesdacaixa,emcomputaçãoserefereaquantidadede

bitsdisponíveisparaarmazenamento.

Page 10: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

10

4.3. NOME DAS VARIÁVEIS

Paraatribuironomeparaumavariável,algumasregrasdevemseobedecida:1. Onomedeumavariávelpodeterumoumaiscaracteres;2. Oprimeiro caracteredonomedeveráobrigatoriamente ser uma letra ou

sublinhado;3. Onomenãopoderáconterespaçosembranco;4. Nãopoderãoserutilizadosoutroscaracteresdiferentesdeletras,números

ousublinhado;5. Nãopoderãoserutilizadascomonomedavariável,palavrasreservadasda

linguagem,aTabela2apresentaalistadepalavrasreservadasnoC.Tabela2-Palavras-chavedoC

autobreakcasecharconstcontinuedefaultdo

doubleelseenumexternfloatforgotoif

intlongregisterreturnshortsignedsizeofstatic

structswitchtypedefunionunsignedvoidvolatilewhile

4.4. TIPOS DE VARIÁVEIS

Asvariáveiseasconstantesprecisamterseutipoespecificadoparaarmazenarerecuperarosvalores,paraissoosseguintestipossãodisponíveisemC:

Tabela3-Tiposdevariáveis

Tipo Descrição

char Caractere. Campo de 8 bits que são usados para representação dos caracteres

double Número em ponto flutuante (números reais) de precisão dupla (aproximadamente 14 dígitos significativos) os valores vão de ±1.7 × 10-308 até ±1.7 × 10308

float Número em ponto flutuante de precisão simples (aproximadamente 7 dígitos significativos) os valores vão de ±3,4 × 10-38 até ±3,4 × 1038

int Inteiro de 32 bits com sinal (de -2.147.483.648 até 2.147.483.647)

void Sem valor

4.5. LENDO E IMPRIMINDO VALORES EM C

Para lere imprimirvaloresemCnãotemmuitosegredo,oprincipaldetalhequedeve se observar se refere ao tipo de variável, pois as funções de captura e impressãonecessitamquesejaespecificadoessetipo.

Page 11: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

11

Vamosaumexemplo:

4.5.1. Imprimindo valores

Aimpressãodevaloreséfeitapelocomandoprintf:

a = 5

a

Início

Fim

Figura2-ImprimindovaloresPerceba que o printf possui alguns caracteres estranhos dentro das aspas, o

primeiro %d se refere ao tipo de dado esperado, outros formatos que poderão serutilizados:

Tabela4-Caracterescoringas

Caractere Descrição

%dou%i Númerodecimalinteiro.%f Númeroreal%c Caractere

O“\n”(barrainvertida)éosímboloindicadoparaaofinalrealizarumaquebrade

linhanahoradeapresentaroresultadoOutroexemplodeimpressão:

Page 12: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

12

a = 5

a

Início

Fim

pi = 3.14

pi

Figura3-Imprimindo2valores

Numaoperaçãodessesvalores,fizemosduassaídasprintfs,umacomoresultadosendoimpressocomointeiroeoutracomonúmeroreal:

Você iráperceberqueoResultado1 será inconsistente, isso sedevea formade

armazenamentodovalorRealquenahoraderealizaraapresentaçãonãoéapresentadodevidamente:

Resultado 1= -2147483648 Resultado 2= 15.700001

4.5.2. Lendo um valor

Paralerumvalordigitado,utilizamosafunçãoscanf:

Page 13: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

13

a

Início

Fim

a

Figura4-LendoumvalorNoteassemelhançasdosargumentoscomafunçãoprintf,aexceçãosedánouso

do operador “&” que em C é utilizado para passar a localização de uma variável namemóriaenãoseuvalor.

Cuidequeaoexecutaresseprogramaa telaapresentadaestávazia, aguardandoquevocêdigitealgo:

Figura5-Aguardandoalgoserdigitado

Apósdigitarovalor:

Page 14: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

14

Figura6-Apósaexecução

4.6. EXEMPLO 01 – LENDO DOIS VALORES E APRESENTANDO A SOMA

Nesse exemplo iremos apresentar um programa que irá solicitar ao usuário que

digitedoisvaloreseapresenteasomadeles:

a+b

Início

Fim

a

b

Figura7-Algoritmoparasomardoisvalores

4.7. EXERCÍCIOS

1. Convertaoexemploacimadeformaquepossarealizarasomadenúmerosreais.2. Indiqueosnomesdasvariáveisquesãoválidos.Justifiqueosnomesinválidos.

a. pesob. média_finalc. R$

d. inte. 1diaf. teste1

g. area.do.quadradoh. valorreali. a+b

Page 15: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

15

5. OPERADORES Osoperadoressãomeiospeloqualincrementamos,decrementamos,comparamos

eavaliamosdadosdentrodocomputador.Temostrêstiposdeoperadores:• OperadoresAritméticos• OperadoresRelacionais• OperadoresLógicos

5.1. OPERADORES ARITMÉTICOS

Osoperadoresaritméticossãoosutilizadosparaobterresultadosnuméricos.Alémdaadição,subtração,multiplicaçãoedivisão,háooperadorrestodadivisão.Ossímbolosparaosoperadoresaritméticossão:

Tabela5-Operadoresaritméticos

Operação SímboloAdição +Subtração -Multiplicação *Divisão /Restodadivisão %

Tabela6-HierarquiadasOperaçõesAritméticasNível Operação1º ()Parênteses2º *ou/(oqueaparecerprimeiro)3º +ou–(oqueaparecerprimeiro)

ExemploTotal = PRECO * QUANTIDADE 1 + 7 * 2 - 1 = 14 3 * (1 - 2) + 4 * 2 = 5

5.2. OPERADORES RELACIONAIS

Os operadores relacionais são utilizados para comparar números. Os valores aseremcomparadospodemsernúmerosouvariáveis.

Estes operadores sempre retornam valores lógicos (0 para falso e 1 paraverdadeiro). Para estabelecer prioridades no que diz respeito a qual operação executarprimeiro,utilizeosparênteses.

Page 16: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

16

Osoperadoresrelacionaissão:

Tabela7-OperadoresrelacionaisDescrição Símbolo

Iguala =ou==Diferente !=ou<>Maiorque >Menorque <Maiorouiguala >=Menorouiguala <=

Exemplo:TendoduasvariáveisA=5eB=3Osresultadosdasexpressõesseriam:

Tabela8-ExemplodeexpressõesExpressão ResultadoA==B FALSOA!=B VERDADEIROA>B VERDADEIROA<B FALSOA>=B VERDADEIROA<=B FALSO

5.3. OPERADORES LÓGICOS

Os operadores lógicos servem para combinar resultados de expressões,retornandoseoresultadofinaléverdadeirooufalso.

Osoperadoreslógicossão:

Tabela9-OperadoreslógicosOperador Original EmC

e and &&ou or || (tecla ao lado do Z no

teclado)não not !

E/AND = Uma expressão AND (E) é verdadeira se todas as condições forem

verdadeiras

Tabela10-OperadorE1ºValor 2ºValor Resultado

F F F

Page 17: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

17

F V FV F FV V V

OR/OU=UmaexpressãoOR (OU)éverdadeirasepelomenosumacondição for

verdadeira

Tabela11-OperadorOU1ºValor 2ºValor Resultado

F F FF V VV F VV V V

NOT=Uma expressãoNOT (NÃO) inverte o valor da expressão ou condição, se

verdadeirainverteparafalsaevice-versa.

Tabela12-OperadorNÃO1ºValor Resultado

V FF V

Exemplos:SuponhaquetemostrêsvariáveisA=5,B=8eC=1.Osresultadosdasexpressõesseriam:

Tabela13-ExpressõesExpressão Resultado

A==B && B>C FALSOA!=B || B<C VERDADEIROA>B ! VERDADEIROA<B && B>C VERDADEIROA>=B || B==C FALSOA<=B ! FALSO

5.4. EXERCÍCIOS

1) Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo.Informeseasexpressõessãoverdadeirasoufalsas.

Page 18: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

18

2) SabendoqueA=3,B=7eC=4,informeseasexpressõesabaixosãoverdadeirasoufalsas.

a)(A+C)>B ( )b)B>=(A+2) ( )c)C==(B–A) ( )d)(B+A)<=C ( )e)(C+A)>B ( )

3) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo sãoverdadeirasoufalsas.

a)(A>C)&&(C<=D) ( )b)(A+B)>10||(A+B)==(C+D) ( )c)(A>=C)&&(D>=C) ( )

4) Faça um programa que solicite ao usuário que digite a base e a altura de umtriângulo.Emseguida,apresenteaáreadomesmo.

Área=(Base*Altura)/2

5) Crieumprogramaquesoliciteaousuárioquedigiteaquantidadedehorasedeminutos. Após isso, o programa deverá responder a quantidade de segundos nesseperíodo.

Segundos=(Quantidadedehoras*3600)+(Quantidadedeminutos*60)

6) Escrever um algoritmo para determinar o consumo médio de um automóvelsendofornecidaadistânciatotalpercorridapeloautomóveleototaldecombustívelgasto

Consumomédio=distânciatotal/totaldecombustívelgasto

7) A Loja Café comAçúcar está vendendo seus produtos em 5 (cinco) prestaçõessemjuros.Façaumprogramaquerecebaumvalordeumacompraemostreovalordasprestações.

Page 19: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

19

6. COMANDOS DE DECISÃO Oscomandosdedecisãooudesviofazempartedastécnicasdeprogramaçãoque

conduzem a estruturas de programas que não são totalmente sequenciais. Com asinstruçõesdeSALTOouDESVIOpode-se fazercomqueoprogramaprocedadeumaououtra maneira, de acordo com as decisões lógicas tomadas em função dos dados ouresultadosanteriores.

6.1. SE / IF

Aestruturadedecisão“SE/IF”normalmentevemacompanhadadeumcomando,ou seja, se determinada condição for satisfeita pelo comando SE/IF então executedeterminadocomando.

A decisão é sempre composta por um ou mais operador relacional, equando mais de um operador relacional estiver na condição,obrigatoriamente deve-se utilizar o operador lógico para conectar asexpressões.

AdecisãosópodeserrespondidacomSimouNão

Imagine um algoritmo que determinado aluno somente estará aprovado se sua

médiaformaiorouiguala5.0,vejanoexemplodealgoritmocomoficaria.SEMEDIA>=5.0ENTÃO

ALUNOAPROVADOEmdiagramadeblocosficariaassim:

Figura8-ComandoIF

Page 20: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

20

6.2. SE... SENÃO / IF....ELSE

Aestruturadedecisão“SE/SENÃO”,funcionaexatamentecomoaestrutura“SE”,com apenas uma diferença, em “SE” somente podemos executar comandos caso acondição seja verdadeira, diferente de “SE/SENÃO”, pois sempre um comando seráexecutado independente da condição, ou seja, caso a condição seja “verdadeira” ocomandodacondiçãoseráexecutado,casocontrárioocomandodacondição“falsa”seráexecutada.

Emalgoritmoficariaassim:SEMÉDIA>=5.0ENTÃO

ALUNOAPROVADOSENÃO

ALUNOREPROVADOOdiagramaeocódigoemC

Figura9-UsodoSE/SENÃONo exemplo acima está sendo executada uma condição que, se for verdadeira,

executa o comando “APROVADO”, caso contrário executa o segundo comando“REPROVADO”.

6.2.1. Exercício

1) Faça um programa que verifique se um caractere é M ou F. Se for M deve

apareceramensagem“Masculino”,seforF,deveaparecer“Feminino”.2) Façaumprogramaquesomedoisvalores,seoresultadofor0deveaparecera

mensagem“Zero”,casocontrário,“DiferentedeZero”.

Page 21: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

21

6.3. IF/ELSE ENCADEADOS

Paraoexemplodadoanteriormentepodemospensaremtornaroprogramamaiselaborado,criandoasseguintessituações:

• Casooalunotirenotaabaixode5,sejaconsideradoreprovado.• Casooalunotenhanotamaiorouiguala5,porém,menordoque7estará

emexame.• Casooalunotenhanotamaiorouiguala7estaráaprovado.

AtenteasaídadoprimeiroIF,neleacondiçãomédia>=5garanteduassituações,

sefalsaentãoapresentaamensagemde“Reprovado”,seforverdadeiraentraparamaisumadecisãoIF.

No segundo IF não me preocupo se a média for maior do que 5, pois isso foiverificado no bloco anterior, com isso verifico agora se média >= 7 e as duaspossibilidades:“Exame”ou“Aprovado”.

Figura10-IFsencadeados

6.4. VÁRIOS IFS

Podemos também utilizar vários IFs em sequência para resolver o problema damédia:

Page 22: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

22

media < 5Sim

Não

Reprovado

Fim

media

media >= 5 && media < 7

Sim

Não

Exame

media >= 7Sim

Não

Aprovado

Figura11-IFemsequênciaNesse caso, deve-se tomar cuidado nas condições do IF, como queremos que

apenasumamensagemsejaexibida,acondiçãonãopodeseraplicadaparavárioscasos,porisso,quenosegundoIFtivemosquerealizarduascomparações.

6.5. CASO SELECIONE / SELECT... CASE

AestruturadedecisãoCASO/SELECIONEéutilizadaparatestar,nacondição,umaúnica expressão, queproduzum resultado, ou, então, o valordeumavariável, emqueestáarmazenadoumdeterminado conteúdo.Compara-se, então,o resultadoobtidonotestecomosvaloresfornecidosemcadacláusula“Caso”.

No exemplo do diagrama de blocos abaixo, é recebido uma variável “Valor” etestado seu conteúdo, caso uma das condições seja satisfeita, é apresentado o mêscorrespondente,casocontrárioéapresentadaamensagem“Nãoéummêsválido!”.

DiagramadeBloco:

Page 23: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

23

Recebe Valor

Valor = 1

Valor = 2

Valor = 3

.

.

.

.

Valor = 12

Não

Não

Não

Sim

Sim

Sim

SimNão

Janeiro

Fevereiro

Março

Março

Não é um mês válido

Figura12-DiagramadeblocodoSwitch

EmC:

Figura13-Códigofontedoswitch

Page 24: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

24

6.6. EXERCÍCIOS

1. Osmoradores de uma localidade possuem um poço artesiano que distribui

águaparaacomunidade,acobrançaéfeitapeloconsumo,até10m3omoradorpagataxafixadeR$10,00, acimadessaquantidade,elepagaR$2,00pormetro cúbicoexcedente.Faça umprograma que receba a quantidade de litros gastos pelomorador e retorno ovalorquedeveserpago.

2. Faça um diagrama de bloco que leia um número inteiro e mostre uma

mensagemindicandoseestenúmeroéparouímpar,eseépositivoounegativo.

3. ASecretariadeMeioAmbientequecontrolao índicedepoluiçãomantém3gruposdeindústriasquesãoaltamentepoluentesdomeioambiente.Oíndicedepoluiçãoaceitávelvariade0,05até0,3.Seoíndicesobeparamaisde0,3asindústriasdo1ºgruposão intimadas a suspenderem suas atividades, se o índice crescer para mais de 0,4 asindústrias do 1º e 2º grupo são intimadas a suspenderem suas atividades, se o índiceatingirmaisde0,5todososgruposdeverãosernotificadosaparalisaremsuasatividades.Façaumprogramaqueleiaoíndicedepoluiçãomedidoeemitaanotificaçãoadequadaaosdiferentesgruposdeempresas.

4. Elaboreumalgoritmoquedadaa idadedeumciclista classifique-oemuma

dasseguintescategorias:InfantilA=5a7anosInfantilB=8a11anosJuvenilA=12a13anosJuvenilB=14a17anosAdultos=Maioresde18anos

Page 25: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

25

7. COMANDOS DE REPETIÇÃO Utilizamos os comandos de repetição quando desejamos que um determinado

conjuntodeinstruçõesoucomandossejamexecutadosumnúmerodefinidoouindefinidodevezes,ouenquantoumdeterminadoestadoprevalecerouatéquesejaalcançado.

Essetipodeestruturaémuitoimportanteemprogramação,eseuusoéconstantenasdisciplinasdeprogramação.

Basicamenteumlaçoderepetiçãoécompostoportrêspartes:

1. Inicialização2. Verificaçãodacondição.3. Incremento/decremento

Nodiagramaaseguirsãoapresentasastrêspartes:

i <= 10

Sim

Não

i = i + 1

i = 0

Fim

2

3

1

Figura14-PartesdeumlaçoderepetiçãoQuantoaoformatodarepetição,sãobasicamentetrêsosformatosaceitosemC:

• Enquantox,processar(While...Loop);• Processar...,Enquantox(Do...While);• Para...Até...Seguinte(For...To...Next).

Page 26: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

26

7.1. ENQUANTO X, PROCESSAR (WHILE... LOOP).

Neste caso, o bloco de operações será executado enquanto a condição x forverdadeira. O teste da condição será sempre realizado antes de qualquer operação.Enquantoacondiçãoforverdadeiraoprocessoserepete.Podemosutilizaressaestruturaparatrabalharmoscomcontadores.

Emdiagramadeblocoaestruturaéaseguinte:

Figura15-DiagramaWhile

Exemplodecontador:

i <= 10Sim

Não

i = i + 1

i = 0

Fim

i

Figura16-LaçoWhile

7.2. PROCESSAR..., ENQUANTO X (DO... LOOP WHILE).

Nestecasoprimeirosãoexecutadososcomandos,esomentedepoisérealizadootestedacondição.Seacondiçãoforverdadeira,oscomandossãoexecutadosnovamente,casosejafalsoéencerradoocomandoDO.

Page 27: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

27

EmdiagramadeblocoelinguagemC:

i <= 10

Não

i = i + 1

Fim

i = 0

i

Sim

Figura17-LaçoderepetiçãoDO

7.3. PARA... ATÉ... SEGUINTE (FOR... TO... NEXT).

AconstruçãodoLaçoFor,emdiagramaémuitosemelhantecomolaçoWhile,masa inicialização, controle e incremento se dá na mesma linha, tornando mais fácil avisualizar.

AbaixosegueoexemplodolaçoWhile,modificadoparatrabalharcomFor:EmC:

Em certas linguagens há operadores específicos para o incrementocomoéo casodeCeas linguagensderivadasqueutilizamooperador++(porexemplo,poderíamosutilizari++emvezdei=i+1).

Page 28: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

28

7.4. CASOS PRÁTICOS COM REPETIÇÃO

Para melhor ilustrar o uso dos laços de repetição iremos apresentar alguns

exemplospráticos:

7.4.1. Exemplo 01 - Somando os valores

Atividade:Criarumprogramaparasomarosnnúmerospares.PartimosdolaçoderepetiçãojáapresentandoWhile:

i <= 10Sim

Não

i = i + 1

i = 0

Fim

i

Figura18-LaçoWhileComonãosabemosovalorden,iremoscriarumavariávelparaela,especificarum

valoreutilizarovalordencomolimitedolaçoderepetição.

Page 29: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

29

i <= n

Sim

Não

i = i + 1

Fim

i

i = 0

n

Figura19-ModificaçõesnolaçobásicoSe for digitado o valor 5 (utilizaremos esse valor para o restante do exemplo)

perceba que o programa irá contar de 1 a 6, não coincidindo como esperado que eracontaraté5,pararesolverisso,vamosretirarosinalde“=”dacomparação.

A atividade proposta é somar os números pares, desconsiderando o 0 (zero) oprogramadeverealizaraseguinteconta:

Total = 2 + 4 + 6 + 8 + 10 Total = 30

Antesderealizarasoma,vamosapresentaressesvalores,comonossoprogramaapresentaosnúmerosde1a5,paraapresentarosvaloresparesbastamultiplicarmosovalordeipor2:

Page 30: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

30

i < n

Sim

Não

i = i + 1

n = 5

Fim

i * 2

i = 0

Figura20-Imprimindovalorespares

Porenquantoapenasalteramosovalormostrado.

Agoravamoscriarumavariáveltemporáriaqueiráarmazenarparacadapassodolaçoodobrodovalordeievamosdeslocaroprintfparaofinal:

i < n

Sim

Não

i = i + 1

total = 0

Fim

n = 5

i = 0

total

total = total + (i * 2)

Executando passo-a-passo a repetição se desdobra na seguinte forma (note que

apósocálculo,oresultadoéarmazenadoemtotal):

Page 31: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

31

Etapa VariávelTotal

Variáveli Cálculoefetuado

1ᵒ 0 1 0+(1*2)= 22ᵒ 2 2 2+(2*2)= 63ᵒ 6 3 6+(3*2)= 124ᵒ 12 4 12+(4*2)= 205ᵒ 20 5 20+(5*2)= 30

Saída 30 Matematicamentefalandoafórmuladonossoexemploé:

𝑇𝑜𝑡𝑎𝑙 = 𝑖 ∗ 2!

! ! !

7.4.2. Exemplo 02 – Verificando os divisores.

Atividade:Dadoumnúmeron,verificarentre2en–1quaissãoseusdivisores.ParafacilitararesoluçãovamospartirutilizandoolaçoderepetiçãoWhile:

i < n

Sim

Não

i = i + 1

Fim

n = 27

i = 0

i

Figura21-LaçoWhile

Page 32: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

32

Comonãoprecisamososnúmero1eon,vamosfazerumamodificaçãonaordemdo conteúdo doWhile, começamos por imprimir o número n (com isso, apresentará ovalorden–1)einiciamosovalordei=2:

i < n

Sim

Não

i = i + 1

Fim

n = 27

i = 2

i

Figura22-ModificaçõesnolaçoWhileAgora, iremos verificar se o valor de n pode ser dividido por i e a saída, caso

positivo:

i < n

Sim

Não

i = i + 1

Fim

n = 27

i = 0

n % i == 0

O número é divisível por i

Sim

Fim

Não

Figura23-Diagramadoprograma

Page 33: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA ...professor.luzerna.ifc.edu.br/marcelo-cendron/wp... · Até mesmo as coisas mais simples, podem ser descritas por sequências

33

Figura24-Código-fonte

7.5. EXERCÍCIOS

1) Apresente o total da soma obtido dos cem primeiros números inteiros(1+2...+99+100).

2) Faça um programa que a partir de dois números imprima os números do

intervaloexcluindoosvaloresdados.

3) Crieumprogramaquedadoumnúmeroeleimprimaatabuadadessenúmerode1a10.

4) Façaumprogramaque conte de 1 a 100 e a cadamúltiplo de 10 emita umamensagem:“Múltiplode10”.

5) Escrevaummétodoquerecebedoisnúmerosreaisaeberetornaasomadetodososnúmerosparesexistentesentreessesdois

6) Utilizandorepetição,calculeofatorialdeumnúmero.Lembre-sequeofatorialde0é1e,nãoexistefatorialdenúmerosnegativos.