Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas...

Post on 17-Dec-2018

217 views 0 download

Transcript of Programação I - alged.webnode.com · com o final em aberto (laços while e do-while) Estruturas...

Estruturas de Decisão

Programação I Estruturas de Repetição

Prof. Carlos Alberto

carlos.batista@facape.br

carlos36_batista@yahoo.com.br

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

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.

Estruturas de Decisão

Expressões compactas

• Operadores aritméticos de atribuição na forma

compacta.

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)

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.

Estruturas de Decisão

Repetição com while

• Em C, a sintaxe da estrutura while é a seguinte:

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.

Estruturas de Decisão

Repetição com while

• Exemplo 1:

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

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!

Estruturas de Decisão

Repetição com do-while

• Exemplo:

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;

}

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;

}

Estruturas de Decisão

Repetição com for

• Exemplo 1: exibir os valores de 1 a 10

Inicialização

Condição

Incremento

Estruturas de Decisão

Repetição com for

• Exemplo 2: exibir os valores dentro de uma faixa

informada pelo usuário.

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

Estruturas de Decisão

Repetição com for

• For sem condição (gera um loop infinito)

Estruturas de Decisão

Repetição com for

• For sem incremento

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

Estruturas de Decisão

While versus for

Inicialização

Condição

Incremento

Estruturas de Decisão

Desvio incondicional

• A linguagem C possui 4 instruções de desvio

incondicional:

• Return

• Goto;

• Break;

• Continue;

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

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;

Estruturas de Decisão

Comando goto

• Exemplo 1

Estruturas de Decisão

Comando goto

• Exemplo 2

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;

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).

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:

Estruturas de Decisão

Comando break

• Exemplo 2:

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;

Estruturas de Decisão

Comando continue

• Exemplo 1

Estruturas de Decisão

Comando continue

• Exemplo 2

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);

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

Estruturas de Decisão

Função exit()

• Exemplo 1

Estruturas de Decisão

Função exit() • Exemplo

Estruturas de Decisão

Obrigado!!!