Aula03 repeticao

34
Estruturas de repetição em C Yuri Tavares dos Passos

Transcript of Aula03 repeticao

Estruturas de repetição em C

Yuri Tavares dos Passos

Repetição

● Assim como foi visto na primeira unidade, quando o mesmo comando precisa ser executado várias vezes até que atinja uma certa condição ou um número certo de repetições, o melhor é usar as estruturas de repetição.

● Comandos que devem ser executadas milhares ou milhões de vezes são mais facilmente implementados utilizando estas estruturas.

Repetição

● Estas estruturas são bem simples e podem economizar várias linhas de código.

● Em C temos três comandos de repetição:– while

– for

– do … while

Repetição

● while– Equivalente ao enquanto.

● for– Equivalente ao para.

● do … while– Equivalente ao repita.

While

● Tradução para inglês de enquanto.● O funcionamento é o mesmo do comando

enquanto.● A sintaxe é:

– while (<expressão lógica>) <comando>

– while (<expressão lógica>){ <comandos>}

While

● Se <expressão lógica> retorna verdadeiro, o comando ou bloco de comandos será executado.

● Quando <expressão lógica> é falso, a execução prossegue após o comando while.

While

● O que faz o programa abaixo?

While

While

● E este?

While

For

● Tradução para o inglês da palavra para. ● O funcionamento é o mesmo para o comando

homônimo.● A sintaxe é:

– for (<inicialização>;<expressão lógica>;<incremento>) <comando>

– for (<inicialização>;<expressão lógica>;<incremento>){ <comandos>}

For

● O comando <inicialização> será executado somente no início do comando for.

● O comando for repete seu <comando> ou bloco de <comandos> até a <expressão lógica> se tornar falsa.

● Após executado cada <comando> ou bloco de <comandos>, o for executa a expressão em <incremento>.

For

For

- A função sin() pertence ao módulo math.h. Pesquise sobre outras funções da biblioteca math.- Caso esteja compilando em linha de comando, adicione a opção -lm no gcc. Ela permite o uso das funções da libm, responsável pelo módulo math.h.

For

For

● O comando for é equivalente a utilizar o comando while para a <expressão lógica>, antecedido pelos comandos da <inicialização>. Como último comando do laço, isto é, dentro do while após o <comando> ou blocos de <comandos>, executa-se <incremento>

For

● Ou seja, o mesmo que:

<inicialização>while (<expressão lógica>){ <comandos> <incremento>}

● Vários comandos podem ser usados dentro de <inicialização> e <incremento>. Contudo, deve-se separá-los por vírgulas.

For

Do … while

● Significa faça … enquanto.● Possui um comportamento semelhante ao do repita.

Contudo, a repetição é feita quando a condição é verdadeira.

● Sintaxe:– do

<comando>while(<expressão lógica>);

– do{ <comandos>} while(<expressão lógica>);

Do … while

● Se a <expressão lógica> for falsa, o laço termina e o(s) <comando(s)> não é(são) repetido(s).

● A repetição ocorre somente quando o resultado da <expressão lógica> for verdadeira.

● É usado quando se deseja que no mínimo uma vez o(s) <comando(s)> do laço se repita(m).

Do … while

Do … while

Break

● O comando break é utilizado quando se deseja encerrar a repetição.

● Assim, o código continua a sua execução logo após o comando de repetição onde o break está contido.

● Ele já foi mencionado no comando switch.

Break

Break

● Usá-lo fora de um comando de repetição ou de um switch ocasiona um erro. Exemplo:

Continue

● O comando continue deve ser usado somente em repetições.

● Ao utilizar este comando, a execução retorna ao início do laço sem executar os comandos seguintes.

Continue

Continue

Exercícios

1) Faça um programa em C que mostre a tabuada da soma, subtração, multiplicação e da divisão do número escolhido pelo usuário. Utilize a estrutura do for. Responda também esta questão utilizando o comando while.

2) Faça um programa em C para:– Ler N números inteiros;

– Imprimir somente os números pares:

– Sair do laço quando o número “10” for lido.

Utilizar a estrutura while e o comando break.

Exercícios

3) Faça um programa em C para imprimir uma tabela de conversão entre dólar e real. A cotação de um dólar em real deve ser fornecida pelo usuário. A tabela deve conter até 1.000 dólares.

4) Suponha que serão digitados 100 números inteiros. Faça um programa para:– Somar os números positivos.

– Contar os números negativos.

– Calcular a média dos números positivos.

Exercícios

5) Uma empresa oferece para seus clientes um determinado desconto de acordo com o valor da compra efetuada. O desconto é 20% se o valor da compra for maior ou igual a 500 reais, e 15% se for menor. Faça um programa para:– Ler o valor de compra de N clientes, até que o valor “0”

seja digitado.– Calcular e imprimir o valor da compra de cada cliente,

já com o desconto.

– Imprimir o total recebido pela empresa

Exercícios

6) Imagine que o governo quer conceder uma ajuda financeira a crianças, jovens, adultos e idosos. O valor do benefício deve ser calculado segundo a seguinte fórmula:

benefício = (minimo * idade ) / 100,onde mínimo é o valor do salário mínimo e idade é a idade da pessoa a receber o benefício.Faça um programa em C para ler o nome e a idade de um conjunto de pessoas. Adote: Criança: de 0 a 10 anos; Jovem: de 11 a 20 anos; Adulto: de 21 a 59 anos; Idoso: acima de 60 anos– Imprima a soma dos benefícios dos adultos

– Imprima a quantidade de idosos beneficiados

– Imprima o valor do maior benefício recebido por um jovem

– Imprima a idade da criança com benefício de menor valor

Exercícios

7) O Departamento de transito do estado anotou dados de acidentes de transito no ultimo ano. Para cada motorista envolvido no acidente, tem-se as seguintes informações:Ano de nascimento;Sexo (M - Masculino, F – Feminino)Procedência ( 0 - Capital, 1 - Interior, 2 - Outro estado);Faça um programa em C que:– Calcule a porcentagem de motoristas com menos de 21 anos;

– Calcule quantas mulheres são da capital;

– Calcule quantos motoristas do interior do estado tem idade maior que 60 anos;

– Verifique se existe alguma mulher com idade maior que 60 anos;

Exercícios

8) Faça um programa que escreva na tela os 32 primeiros números inteiros que são potência de 2 utilizando apenas operadores binários e o comando for.