programação i - alged.webnode.com · com o final em aberto (laços while e do-while) estruturas...
TRANSCRIPT
![Page 1: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/1.jpg)
Estruturas de Decisão
Programação I Estruturas de Repetição
Prof. Carlos Alberto
![Page 2: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/2.jpg)
Estruturas de Decisão
Expressões compactas
• Frequentemente existe a necessidade de
escrever expressões da forma:
variável = variável operador expressão
• C oferece um grupo especial de operadores de
atribuição que permitem escrever essas
expressões numa forma mais compacta:
variável operador= expressão
![Page 3: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/3.jpg)
Estruturas de Decisão
Expressões compactas
• Essa forma de atribuição é também conhecida
como C reduzido, pois simplifica a codificação
de operações de atribuição;
• Funciona com todos os operadores binários da
linguagem C;
• Essa notação abreviada é largamente utilizada
em programas escritos profissionalmente em C.
![Page 4: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/4.jpg)
Estruturas de Decisão
Expressões compactas
• Operadores aritméticos de atribuição na forma
compacta.
![Page 5: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/5.jpg)
Estruturas de Decisão
Comandos de iteração
• Também conhecidos como laços, os comandos
de iteração permitem que um conjunto de
instruções seja executado até que ocorra uma
certa condição;
• A condição pode ser predefinida (laço for) ou
com o final em aberto (laços while e do-while)
![Page 6: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/6.jpg)
Estruturas de Decisão
Repetição com while
• A estrutura while tem a seguinte forma:
• O funcionamento é controlado por uma
expressão de condição, cujo valor deve ser
verdadeiro para que o comando seja repetido.
• A repetição com precondição finaliza somente
quando sua condição torna-se falsa.
![Page 7: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/7.jpg)
Estruturas de Decisão
Repetição com while
• Em C, a sintaxe da estrutura while é a seguinte:
![Page 8: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/8.jpg)
Estruturas de Decisão
Repetição com while
• Exemplo 1:
• Dado um número natural, exibir os seus dígitos. Por
exemplo, dado o número 8315 como entrada, o
programa deverá exibir como saída os dígitos 5, 1, 3 e
8. A estratégia será dividir o número sucessivamente.
![Page 9: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/9.jpg)
Estruturas de Decisão
Repetição com while
• Exemplo 1:
![Page 10: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/10.jpg)
Estruturas de Decisão
Repetição com do-while
• Comando while: é utilizado para repetir um
conjunto de comandos zero ou mais vezes.
• Repetição com Teste no Início
• Comando do-while: é utilizado sempre que o
bloco de comandos deve ser executado ao
menos uma vez.
• Repetição com Teste no Final
![Page 11: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/11.jpg)
Estruturas de Decisão
Repetição com do-while
• Executa comandos
• Avalia condição:
• se verdadeiro, executa bloco de comandos novamente
• caso contrário, termina o laço
• Forma geral
do {
sequência de comandos;
} while (condição);
Sempre termina com ponto e vírgula!
garante que o comando seja executado pelo menos uma vez!
![Page 12: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/12.jpg)
Estruturas de Decisão
Repetição com do-while
• Exemplo:
![Page 13: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/13.jpg)
Estruturas de Decisão
Repetição com for
• O loop ou laço for é usado para repetir um
comando, ou bloco de comandos, diversas vezes
• Maior controle sobre o loop.
• Sua forma geral é:
for(inicialização; condição; incremento){
sequência de comandos;
}
![Page 14: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/14.jpg)
Estruturas de Decisão
Repetição com for
• Inicialização: atribui valor inicial ao contador.
• Condição: verifica se o contador chegou ao fim.
• Incremento: ao término do bloco de comandos,
modifica o valor do contador
• Enquanto a contagem não termina, o comando
associado ao for é repetidamente executado.
for(inicialização; condição; incremento){
sequência de comandos;
}
![Page 15: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/15.jpg)
Estruturas de Decisão
Repetição com for
• Exemplo 1: exibir os valores de 1 a 10
Inicialização
Condição
Incremento
![Page 16: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/16.jpg)
Estruturas de Decisão
Repetição com for
• Exemplo 2: exibir os valores dentro de uma faixa
informada pelo usuário.
![Page 17: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/17.jpg)
Estruturas de Decisão
Repetição com for
• É possível omitir qualquer elemento do for:
inicialização, condição e incremento.
• For sem inicialização
![Page 18: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/18.jpg)
Estruturas de Decisão
Repetição com for
• For sem condição (gera um loop infinito)
![Page 19: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/19.jpg)
Estruturas de Decisão
Repetição com for
• For sem incremento
![Page 20: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/20.jpg)
Estruturas de Decisão
While versus for
• Comando while
• Repete uma sequencia de comandos enquanto uma
condição for verdadeira.
• Comando for
• Repete uma sequencia de comandos “N vezes”.
• Recomendado quando se sabe previamente quantas
vezes o laço será repetido
![Page 21: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/21.jpg)
Estruturas de Decisão
While versus for
Inicialização
Condição
Incremento
![Page 22: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/22.jpg)
Estruturas de Decisão
Desvio incondicional
• A linguagem C possui 4 instruções de desvio
incondicional:
• Return
• Goto;
• Break;
• Continue;
![Page 23: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/23.jpg)
Estruturas de Decisão
Comando return
• Usado para retornar de uma função;
• Faz com que a execução retorne ao ponto em
que a chamada foi feita;
• A forma geral é:
return expressão
• Veremos mais detalhes na aula de funções
![Page 24: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/24.jpg)
Estruturas de Decisão
Comando goto
• Salto incondicional para um local especificado
(pra frente ou pra trás);
• Requer um rótulo (label) para a sua operação;
• Um rótulo é um identificador válido seguido por
dois pontos;
• O rótulo deve estar na mesma função do goto
que o utiliza;
• Forma geral:
identificador:
goto identificador;
![Page 25: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/25.jpg)
Estruturas de Decisão
Comando goto
• Exemplo 1
![Page 26: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/26.jpg)
Estruturas de Decisão
Comando goto
• Exemplo 2
![Page 27: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/27.jpg)
Estruturas de Decisão
Comando goto
• Em programação estruturada a instrução goto não é
necessária;
• Não há nenhuma situação em programação que o goto
seja imprescindível;
• A combinação das instruções sequenciais, condicionais e
de repetição são suficientes para todas as situações;
• O uso do goto tende a tornar os programas ilegíveis;
![Page 28: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/28.jpg)
Estruturas de Decisão
Comando break
• Quebra a execução de um comando (como no
caso do switch);
• Para uma repetição mesmo antes que sua
condição torne-se falsa
• Interrompe a execução de qualquer loop (for, while ou
do-while).
![Page 29: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/29.jpg)
Estruturas de Decisão
Comando break
• Quando encontrado dentro de um laço, este é
imediatamente terminado e o controle do
programa retorna para o comando seguinte.
Exemplo 1:
![Page 30: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/30.jpg)
Estruturas de Decisão
Comando break
• Exemplo 2:
![Page 31: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/31.jpg)
Estruturas de Decisão
Comando continue
• Trabalha de forma parecida com a do comando
break;
• Em vez de finalizar laço, força que ocorra a
próxima iteração, pulando qualquer código
intermediário;
• No for faz com que o teste condicional e o incremento
do laço seja executado;
• No while e do-while, o controle passa para o teste
condicional;
![Page 32: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/32.jpg)
Estruturas de Decisão
Comando continue
• Exemplo 1
![Page 33: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/33.jpg)
Estruturas de Decisão
Comando continue
• Exemplo 2
![Page 34: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/34.jpg)
Estruturas de Decisão
Função exit()
• Provoca uma terminação imediata do programa,
forçando um retorno ao sistema operacional;
• Usado quando uma condição mandatória para a
execução do programa não é satisfeita;
• Forma geral:
exit(codigo_de_retorno);
![Page 35: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/35.jpg)
Estruturas de Decisão
Função exit()
• Se o argumento da função for 0, o sistema
operacional é informado de que o programa
terminou com sucesso;
exit(0); // EXIT_SUCCESS
• Caso contrário, o sistema operacional é
informado de que o programa terminou de
maneira excepcional.
exit(1); // EXIT_FAILURE
![Page 36: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/36.jpg)
Estruturas de Decisão
Função exit()
• Exemplo 1
![Page 37: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/37.jpg)
Estruturas de Decisão
Função exit() • Exemplo
![Page 38: Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas de Decisão Repetição com while ... Estruturas de Decisão Repetição com do-while](https://reader031.vdocuments.mx/reader031/viewer/2022022716/5c16f69b09d3f27a578b50f4/html5/thumbnails/38.jpg)
Estruturas de Decisão
Obrigado!!!