Buscar

Algoritmos_Computacionais_07

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
*
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
Introdução à Programação em MATLAB 
Estruturas de Repetição
Prof. Alexandre Silva
alexandre.silva@area1fte.edu.br
*
*
*
Algoritmos sequênciais
n1 = input(‘Digite a primeira nota do aluno: ’);
n2 = input(‘Digite a segunda nota do aluno: ’);
n3 = input(‘Digite a terceira nota do aluno: ’);
media = (n1 + n2 + n3)/3;
fprintf(‘A media do aluno e %f’, media);
Do modo que se encontra, só é executado uma vez. O que faríamos se quisessemos calcular a média para todos os alunos de uma turma?
*
*
*
Poderíamos repetir o algoritmo para cada aluno.
Para 2 alunos, certo. Mas e se fossem muitos? E se fosse um número inicialmente indeterminado? 
Solução Inviável!
*
*
*
Utilizar a mesma sequência de comandos novamente. Fazer com que o fluxo de execução repita um trecho do algoritmo para cada aluno, sem reescrevê-lo.
A esses trechos do algoritmo que são repetidos, damos o nome de LAÇOS DE REPETIÇÃO (LOOP). O número de repetições pode ser indeterminado, porém necessariamente finito.
Utilizado quando queremos que uma mesma ação seja repetida.
*
*
*
Estrutura de repetição
enquanto (while) - Repetição com Teste no Início
para (for) - Repetição com Variável de Controle
*
*
*
while  enquanto
Estrutura de repetição, onde a condição de interrupção é testada antes que os comandos a serem repetidos sejam executados. 
Devemos sempre ter cuidado no controle da condição de parada, pois muitas vezes a condição nunca é satisfeita e o programa entra em “loop”.
Não precisamos condicionar a repetição com a quantidade de vezes que será executado o bloco de repetição. 
*
*
*
while (condição) 
 comando_1;
	.......
 comando_n;
end
*
*
*
Exemplo
op = input(‘Deseja continuar? 1 – Sim; 2 – Não’);
cont = 1;
while (op == 1)
	op = input(‘Deseja continuar? 1 – Sim; 2 – Não’);
	cont = cont + 1;
end
fprintf(‘O trecho acima foi repetido %d vezes \n’, cont);
*
*
*
fprintf('Este programa mostra o nome AREA1 quantas vezes voce quiser \n');
op = 0;
cont = 0;
while (op ~= 2) % ~= lembrando que significa diferente
 op = input('Quer ver? 1 Sim 2 Nao: ');
 if (op ~= 2)
 fprintf('Area1 \n');
 cont = cont + 1;
 end
end
fprintf('Foram mostradas %d vezes \n', cont);
fprintf('Programa Finalizado \n');
*
*
*
ano_nasc = input('Informe o seu ano de nascimento ou 0 para finalizar: ');
while (ano_nasc ~= 0)
 idade = 2007 - ano_nasc;
 fprintf('Sua idade este ano: %d \n', idade);
 ano_nasc = input('Informe o seu ano de nascimento ou 0 para finalizar: ');
end
*
*
*
Elabore um algoritmo que leia um número indeterminado de valores representando cada um a idade de um indivíduo. Caso o usuário não queira informar mais idades, deverá ser digitado -1. 
Utilizando o mesmo algoritmo, calcule e imprima a idade média deste grupo de indivíduos.
Observação: Deverá ser usada um contador e um acumulador do somatório da idade. O valor -1, que finaliza a digitação das idades, não deve entrar nos cálculos
*
*
*
Encontrar a Maior e a Menor idade informada no algoritmo anterior.
Observação: Deverá usar variáveis que guardem o maior e o menor valores em cada iteração
Utilizando o algoritmo anterior, encontre também a média das idades informadas.
*
*
*
Encontrar o Maior, o Menor e a Média de um conjunto de números informados. Deve ser informado 0(zero) para terminar:
*
*
*
fprintf('Este programa mostra o maior, o menor e a media de um conj indeterminado de numeros digitados. \n Para finalizar, digite 0 \n');
numero = 1;
cont = 0;
soma = 0;
while (numero ~= 0)
 numero = input('Digite o numero: ');
 if (numero ~= 0)
 cont = cont + 1;
 if (cont == 1)
 maior = numero;
 menor = numero;
 elseif (numero > maior)
 maior = numero;
 elseif (numero < menor)
 menor = numero;
 end
 soma = soma + numero;
 end
end
media = soma/cont;
fprintf('Maior numero digitado: %.2f \n', maior);
fprintf('Menor numero digitado: %.2f \n', menor);
fprintf('Media dos numeros digitados: %.2f \n', media);
*
*
*
for  para
O comando PARA (FOR) permite que um ou mais comandos sejam executados um número específico de vezes. 
Uma variável de controle é incrementada de um valor inicial até um valor final. 
São utilizadas Início e Fim para delimitar o comando.
*
*
*
Modelo Genérico:
	para cont de vi até vf passo p faça
	início
 Comando1;
 Comando2;
	 	...
		 Comandon;
	fim
cont  variável de controle
vi  valor inicial
vf  valor final
passo  valor do incremento
*
*
*
for variável = vl_inicial:incremento:vl_final 
	 Comando1;
		.......
	 Comandon;
end
*
*
*
Exemplo
fprintf('Vou mostrar o nome AREA1 10 vezes \n');
for i = 1:1:10
 fprintf('AREA1 %d vez(es) \n', i);
end
fprintf('Programa Finalizado \n');
*
*
*
OBS: Quando o incremento é de 1, ele pode ser omitido
Por exemplo: for i = 1:10
*
*
*
Exercício
fprintf('Este programa calcula a media de notas de 5 alunos \n');
for i=1:5
 n1 = input('Digite a primeira nota do aluno: ');
 n2 = input('Digite a segunda nota do aluno: ');
 n3 = input('Digite a terceira nota do aluno: ');
 media = (n1 + n2 + n3)/3;
 fprintf('A media do aluno %d e %f \n', i, media);
end
*
*
*
Elabore um algoritmo que some os números pares de 1 a 100. Imprima o resultado desta soma. 
fprintf('Este programa soma os numeros pares entre 1 e 100 \n');
soma = 0;
for i = 2:2:100
 soma = soma + i;
end
fprintf('A soma e: %d \n', soma);
*
*
*
Elabore um algoritmo que imprima os múltiplos de 5, entre 5 e um limite fornecido. 
fprintf('Este programa mostra os numeros multiplos de 5 entre 5 e um limite fornecido pelo usuario \n');
limite = input('Digite o limite: ');
for i = 5:5:limite
 fprintf('Multiplo: %d \n', i);
end
*
*
*
O que faz o fragmento de código abaixo?
main () 
{ 							
 int cont;
 for (cont=100;cont>=1;cont-=2)
 printf("O numero par eh: %d\n", cont);
 system("pause");
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando