37
IEC081 Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C Professora: Fabiola Nakamura E-mail: [email protected] Página: iccufam.weebly.com

IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

IEC081Introdução à Ciência dos Computadores

Aula – Estruturas de Repetição por Condição em C

Turmas: 01A / 01B / 01CProfessora: Fabiola NakamuraE-mail: [email protected]ágina: iccufam.weebly.com

Page 2: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Resolução de Problemas Algorítmicos

Definir as entradas e as saídas

Fim

Identificar o problema

Início

Converter o algoritmo em declarações da linguagem de

programação

Projetar o algoritmoDecompor

Refinarpasso a passo

Testar o programa resultante

1

2

3

4

5

Page 3: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Conteúdo

Page 4: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Estruturas de Programação

Qualquer programa de computador pode ser escrito combinando-se os três tipos básicos de estruturas de programação:

Sequencial Condicional Repetição

Page 5: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Estruturas de Repetição

Permitem executar mais de uma vez um comando ou um bloco de comandos.

O trecho do algoritmo em repetição é também chamado de laço (ou loop).

O número de repetições (ou iterações) deve ser conhecido e ser sempre finito.

Page 6: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Não confunda

Page 7: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Repetição por condição:: Comando while Permite que um trecho de código seja executado

enquanto certa condição for verdadeira.

Quando a condição for falsa, o bloco de comandos interno deixa de ser repetido e continuamos executando o resto do programa.

while <condição> { <comandos_a_repetir>}

Page 8: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Repetição por condição (while):: Funcionamento1. Testar a condição.

2. Se a condição for falsa, então sair do laço.

3. Se a condição for verdadeira, então executar cada um dos comandos do interior do laço.

4. Após executar o último comando do laço while, voltar ao passo 1.

Page 9: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Repetição por condição (while):: Exemplo

A condição do comando while é construída da mesma forma que a condição do if.

No comando while, enquanto a condição for verdadeira, repetimos as linhas do bloco interno.

x = 1while (x <= 5): print(x) x = x + 1

Page 10: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Comando while × if

Page 11: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Exercício 1

Modifique o script anterior para exibir números de 1 a 100.

Page 12: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Exercício 2

Modifique o script anterior para exibir números de 50 a 100.

Page 13: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Exercício 3

Modifique o script anterior para fazer uma contagem regressiva:

10, 9, 8, ..., 1, 0

Page 14: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Exercício 4

Modifique o script anterior para exibir números pares de 0 a 100.

Page 15: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Contador de laço

Nos exercícios anteriores, a variável x foi usada para controlar o número de repetições do laço.

Todo contador de laço deve ajustar os seguintes parâmetros:

valor inicial

valor final

passo (ou incremento)

123

12

3

Page 16: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Contador de laço:: Parâmetros

Page 17: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Problema 1

Page 18: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Problema 12 – Definir entradas e saídas

  Grandeza Unidade de medida Faixa de valores

Entradas

Saídas

  Grandeza Unidade de medida Faixa de valores

Entradas

Taxa de juros % 12

Quantia inicial (q) R$ 20 mil

Tempo anos 5

Saídas Saldo R$ [0, +∞[

Page 19: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Problema 13 – Projetar algoritmo

Page 20: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Problema 14 – Codificar em C

Page 21: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Problema 2

Page 22: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Problema 22 – Definir entradas e saídas

  Grandeza Unidade de medida Faixa de valores

Entradas

Saídas

  Grandeza Unidade de medida Faixa de valores

Entradas

Taxa de juros % [0; 100]

Quantia inicial (q) R$ 10 mil

Saldo R$ 2 * q

Saídas Tempo anos [0, +∞[

Page 23: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Problema 23 – Projetar algoritmo

Page 24: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Problema 24 – Codificar em C

Page 25: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Contador de laço × Variável acumuladora

Page 26: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento

É uma simulação de execução de código em que você percorre as instruções, uma linha de cada vez, e acompanha os valores das variáveis.

Quando você rastreia um programa:

escreve os nomes das variáveis em uma folha de papel

executa mentalmente cada passo do código

atualiza as variáveis

Page 27: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento:: Exemplo 1 No código abaixo, quais são os valores das

variáveis i e total em cada iteração do laço while?

i = 0total = 0while (total < 10): i = i + 1 total = total + i print(i, total)

Page 28: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento:: Exemplo 1

i total

0 ?

Page 29: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento:: Exemplo 1

i total

0 ?

0 0

Page 30: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento:: Exemplo 1

i total

0 ?

0 0

1 0

Page 31: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento:: Exemplo 1

i total

0 ?

0 0

1 0

1 1

Page 32: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento:: Exemplo 1

i total

0 ?

0 0

1 0

1 1

2 1

Page 33: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento:: Exemplo 1

i total

0 ?0 0

1 01 1

2 12 3

Page 34: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento:: Exemplo 1

i total

0 ?0 01 01 12 12 33 6

Page 35: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento:: Exemplo 1

i total

0 ?0 01 01 12 12 33 64 10

Page 36: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento:: Exemplo 2 Se a condição for mal projetada, o laço poderá ser

repetido indefinidamente.

Chamamos essa situação de loop infinito.i total

1 -12 -23 -34 -4

.....

0 0

Page 37: IEC081 Introdução à Ciência dos Computadores Aula ... · Introdução à Ciência dos Computadores Aula – Estruturas de Repetição por Condição em C Turmas: 01A / 01B / 01C

Rastreamento:: Exemplo 3 Em outras situações, a condição pode não ser

satisfeita na primeira tentativa.

Nesse caso, o laço não será executado.

(Nada mostrado na tela)