38
Estruturas de Decisão Programação I Estruturas de Repetição Prof. Carlos Alberto [email protected] [email protected]

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

  • Upload
    vanbao

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

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

Estruturas de Decisão

Programação I Estruturas de Repetição

Prof. Carlos Alberto

[email protected]

[email protected]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Estruturas de Decisão

Obrigado!!!