Estruturas Básicas João Medeiros FATERN 2010.2 Estruturas Básicas de Controle • Seqüencial: conjunto de comandos separados que são executados em uma seqüência linear de cima para baixo. • Seleção, Condicional ou de Decisão: a partir de um teste condicional, uma instrução, ou um conjunto de instruções, podem ser executados ou não, dependendo exatamente do resultado do teste efetuado. • Repetição: uma instrução ou o conjunto de instruções que será executado repetidamente, de acordo com o resultado de um teste condicional ou de uma contagem. Na estrutura seqüencial os comandos de um algoritmo são executados numa seqüência pré-estabelecida. Cada comando é executado somente após o término do comando anterior. Os comandos deverão ser executados numa seqüência linear, seguindo-se o texto Estrutura Seqüencial em que estão escritos, de cima para baixo, se não houver indicação em contrário (vide Figura 24). Figura 24 - Estrutura Sequencial Nesta estrutura da Figura 24, o comando-3 somente será executado após o comando-2 e o comando-2 após o comando-1 e assim por Estrutura Condicional • É a mais utilizada. • Tipos: • Condicional Simples • Condicional Composta • Condicional Múltipla HXLUHLjSUDLD´$UHSUHVHQWDomRGHVVDFRQGLomRHPXPÀX[RJUDPD VHULD DOJR FRPR QD )LJXUD 1HVWD PHVPD ¿JXUD R H[HPSOR GH Condicional Simples XVRGRÀX[RJUDPDPRVWUDTXHVHR7HPSRIRULJXDODVRODFRQGLomR p YHUGDGHLUD 9 H R FRPDQGR ³YRX j SUDLD´ VHUi H[HFXWDGR 6H D condição não for verdadeira, o comando não será executado. )LJXUD±0RGHOR)OX[RJUDPDH([HPSORSDUD(VWUXWXUD&RQGLFLRQDO6L Em linguagem algorítmica, a sintaxe para esse tipo de es Se <condição> então FRPDQGR! FRPDQGR! FRPDQGR1! Fimse Exemplo: SeLGDGHentão HVFUHYD³(VWDSHVVRDpPHQRUGHLGDGH´ ¿PVH )LJXUD±0RGHOR)OX[RJUDPDH([HPSORSDUD(VWUXWXUD&RQGLFLRQDO6LPSOHV Onde, se a <condição> for verdadeira será executado os c do bloco, que pode ser apenas um ou vários c Em linguagem algorítmica, a sintaxe para esse tipo de estrutura dentro é: (<comando-1>...<comando-2>. Como mencionado anterio Se <condição> então FRPDQGR! <condição> é uma expressão lógica. No caso do exemplo, a será apresentada ao usuário, se a idade for menor que 18. FRPDQGR! FRPDQGR1! 35 Então.....Senão”. Dessa forma, além de executar se a condição for Verdadeira (V), a decisão composta também vai executar algo se a condição for Falsa (F). Ou seja, a seleção composta sempre executará Condicional Composta um bloco condicional, pois se o resultado do teste condicional for YHUGDGHLUR XP FRQMXQWR GH LQVWUXo}HV RX VRPHQWH XPD LQVWUXomR será executada e se o resultado não for verdadeiro (for falso) uma outra instrução ou conjunto delas será executada também. Agora, • Na estrutura condicional composta, a condição irá determinar qual comando ou bloco de comandos será VHUiXPFDPLQKRRXRXWURQXQFDRVGRLVEORFRVGHLQVWUXo}HVVHUmR H[HFXWDGRV (Pdentre GHVFULomRdois QDUUDWLYD VHULD DOJRNa GR JrQHUR ³Se ¿]HUsimples executado listados. estrutura sol entãoHXLUHLjSUDLDsenão eu irei ao shopping”. A representação temos “Se.....Então”, nesta caso teremos “Se..... GHVVDFRQGLomRHPXPÀX[RJUDPDVHULDDOJRFRPRQD)LJXUD Então.....Senão”. Introdução à Programação Condicional Composta Aninhada ¿PVH 8PH[HPSORGHXVRGHVVHWLSRGHHVWUXWXUDVHULD AlgoritmoH[HPSOR varLGDGHLQWHLUR inicio escreva³,QIRUPHVXDLGDGH³ leiaLGDGH seLGDGHentão escreva³9RFrpGHPHQRU´ senão seLGDGH! HLGDGHentão escreva³9RFrpMRYHP´ senão seLGDGH! HLGDGHentão escreva³9RFrpDGXOWR´ senão seLGDGH! então escreva³9RFrpYHOKR´ ¿PVH ¿PVH ¿PVH ¿PVH ¿PDOJRULWPR Estrutura Condicional Múltipla escolha <seletor> caso<exp1> <seqüência-de-comandos-1> caso <exp2> <seqüência-de-comandos-2> ... outrocaso <seqüência-de-comandos-extra> fimescolha H[SUHVV}HVSUHVHQWHVHPFDGDFDVR4XDQGRXPDLJXDOGDGHRFRUUHU a seqüência de comandos correspondente é executada e apenas ela. Estrutura Condicional Múltipla 6HQHQKXPFDVRDWHQGHUDVHOHomRRWUHFKRGHQRPLQDGR³RXWURFDVR´ é executado (ou seja, a seqüência de comandos extra). Vejamos um exemplo. Suponha um trecho de programa para selecionar o mês do ano. Sendo que 1 é janeiro, 2 é fevereiro, 3 é março e assim por diante. No exemplo acima, vai ser realizada uma comparação de igualdade SDUDLGHQWL¿FDUTXDORSomRWHPRPHVPRYDORUGRVHOHWRU&DVRWRGDV DVFRQGLo}HVVHMDP)H[HFXWDVHR³RXWURFDVR´VHHVWHH[LVWLUXPD vez que ele é uma parte opcional do comando) ou sai-se da estrutura sem executar nada. Se a igualdade for encontrada, vai ser executada Exercícios 1) Leia um número inteiro e mostre uma mensagem indicando se este número é par ou ímpar (pra calcular se é par ou ímpar, use a função MOD). 2) Leia 3 notas, calcule a média aritmética dessas e, de acordo com o resultado, escreva como saída o valor da média e a mensagem apropriada: Reprovado (média < 4), Em Prova Final (média >= 4 e < 7) e Aprovado (média >= 7). 3) Leia a idade de um nadador e exiba sua categoria segundo as regras: Junior (5 até 7 anos); Infantil (8 até 12 anos); Pré (13 até 18) e Avançada ( Idade > 18) 4) Desenvolva um algoritmo que funcione como uma calculadora, com as quatro operações básicas: adição, subtração, multiplicação e divisão. Para isso, deve ser pedido ao usuário o primeiro número, o sinal da operação e o segundo número. Dê uma mensagem se o sinal digitado não for um dos quatro presentes na calculadora e lembre que não existe número divisível por zero.