Buscar

LLP_05

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
Lógica de Programação
Estruturas sequencial e condicional
Prof.º Hernan Marinho
Lógica de Programação
Estrutura sequencial
A estrutura sequencial de um algoritmo corresponde ao fato de que o conjunto de ações primitivas será executado em uma sequência linear de cima para baixo e da esquerda para a direita, isto é, na mesma ordem que foram escritas;
Ações serão seguidas por um ponto-e-vírgula(;), que objetiva separar uma ação da outra;
Após um ( ; ) deveremos executar o próximo comando de sequência.
Lógica de Programação
Estrutura sequencial
Modelo geral:
Início //identificação do início do bloco correspondente ao algoritmo
	//declaração de variáveis
	//corpo do algoritmo
	ação1;
	ação2;
	 .
	 .
	 .
	açãon;
Fim. //fim do algoritmo
Lógica de Programação
Estrutura sequencial
Exemplo:
Construa um algoritmo que calcule a média aritmética entre quatro notas bimestrais quaisquer fornecidas por um aluno (usuário);
Dados de entrada: quatro notas bimestrais (N1, N2, N3, N4);
Dados de saída: média aritmética anual (MA);
O que devemos fazer para transformar quatro notas bimestrais em uma média anual?
R.: utilizar média aritmética
O que é média aritmética?
R.: A soma dos elementos divididos pela quantidade deles. Em nosso caso particular: (N1 + N2 + N3 + N4)/4
Lógica de Programação
Estrutura sequencial
Exemplo (cont.)
Início //começo do algoritmo
	//declaração de variáveis
	real: N1, N2, N3, N4, //Notas bimestrais
	 MA; //Média anual
	//Entrada de dados
	leia (N1, N2, N3, N4);
	//Processamento
	MA  (N1+N2+N3+N4) / 4;
	//saída de dados
	escreva(MA);
Fim. //término do algoritmo
Lógica de Programação
Estrutura sequencial
Exercício 1:
Faça um algoritmo que leia 2 números e imprima o resultado da soma deles.
Início //começo do algoritmo
	inteiro: A,B
	leia (A,B);
	escreva(“Resultado = ”, A+B);
Fim. //término do algoritmo
Lógica de Programação
Estrutura sequencial
Exercício 2:
Faça um algoritmo para calcular o volume de uma esfera de raio R, em que R é um dado fornecido pelo usuário. O volume de uma esfera é dado por:
V = (4/3)*∏R3
Início //começo do algoritmo
	//declaração de variáveis
	real: V, //armazena o volume da esfera
	 R; //armazena o valor do raio
	//entrada de dados
	leia(R);
	//processamento de dados
	V  (4/3) * 3,14 * pot(R,3);
	//saída de dados
	escreva(“Volume = ”, V);
Fim. //término do algoritmo
Lógica de Programação
Estruturas Condicionais
Uma estrutura condicional permite a escolha de um grupo de ações (bloco) a ser executado quando determinadas condições, representadas por expressões lógicas ou relacionais são ou não satisfeitas;
Operadores Lógicos: Não, E, Ou.
Operadores Relacionais: =, >, <, <=, >= e <>.
Lógica de Programação
Estruturas Condicionais
Tipos :
Simples
Composta
Encadeada
Seleção de Múltipla Escolha
Lógica de Programação
Simples
Quando precisamos testar uma certa condição antes de executar uma ação;
Expressão:
se < condição > então
		...
fim-se;
Lógica de Programação
Simples
Problema:
Ler um número e se ele for maior do que 20, então imprimir a metade do número.
início
 inteiro : numero;
 escreva(“Informe um N.º”);
 leia(numero);
 se (numero > 20) então
 escreva(“Metade de %d eh %d ”, numero, numero/2);
 fim-se;
fim.
Lógica de Programação
Simples
Solução em C:
#include <stdio.h>
#include <stdlib.h>
//int numero; apresentou problemas para mostrar a metade
float metade, numero;
int main() {
 printf("Informe um N.o: ");
 scanf("%f", &numero);
 if (numero > 20) {
 metade = (numero/2);
 printf("\nMetade de %0.2f eh %0.2f \n", numero, metade);
 }
 system("pause");
 return 0;
}
Lógica de Programação
Composta
Quando tivermos situações em que duas alternativas dependem de uma mesma condição, uma de a condição ser verdadeira e outra de a condição ser falsa;
Expressão:
se < condição > então
	//condição verdadeira
senão
 //condição falsa
fim-se;
Lógica de Programação
Composta
Problema:
Ler um número e imprimir se ele é par ou impar.
início
 inteiro : numero;
 escreva(“Informe um N.º”);
 leia(numero);
 se (numero mod 2 = 0) então
 escreva(“O número informado eh Par ”);
 senão
 escreva(“O número informado eh Impar”);
 fim-se;
fim.
Lógica de Programação
Composta 
Solução em C:
#include <stdio.h>
#include <stdlib.h>
int numero;
int main() {
 printf("Informe um N.o: ");
 scanf("%d", &numero);
 
 if (numero % 2 == 0)
 printf("\nO numero informado eh Par\n");
 else
 printf("\nO numero informado eh Impar\n");
 system("pause");
 
 return 0;
}
Lógica de Programação
Encadeada
Quando, devido a necessidade de processamento, agrupamos várias seleções, formando uma estrutura encadeada.
Lógica de Programação
Encadeada
Expressão :
se < condição1 > então
	se < condição2 > então
		inicio
			C1;
			...
			Cn
		fim
	fimse
senão 
	se < condição3 > então
	 inicio
		C1;
		...
		Cn
	 fim
	senão 
		se < condição4 > então
			C1;
		fimse
	fimse
fimse
Lógica de Programação
Encadeada
Exemplo:
Dados três valores A, B, C, verificar se eles podem ser os comprimentos dos lados de um triângulo, se forem verificar se compõem um triângulo eqüilátero, isósceles ou escaleno. Informar se não compuserem nenhum triângulo.
Lógica de Programação
Solução
O que é um triângulo?
Figura geométrica fechada de três lados, em que cada um lado é menor que a soma dos outros dois.
Eqüilátero? Três lados iguais.
Isósceles? Dois lados iguais.
Escaleno? Todos os lados diferentes.
Lógica de Programação
Solução 
Dados de entrada: 
 três lados de um suposto triângulo (A, B, C).
Dados de Saída:
 não compõem triângulo;
 triângulo eqüilátero;
 triângulo isósceles; ou, 
 triângulo escaleno.
Lógica de Programação
Solução
início
 inteiro: A, B, C;
 leia(A, B, C); 
 se ( (A < B+C ) e ( B <A+C ) e ( C <A+B ) ) então
 se ( ( A=B ) e ( B = C ) então
 escreva(“Triângulo Eqüilátero”);
 senão
 se ( A=B ) ou ( A=C ) ou ( B=C ) então
 escreva(“Triângulo Isósceles”);
 senão
	 escreva(“Triângulo Escaleno”);
 fim-se;
 fim-se;
 senão
 escreva (“Estes valores não formam um triângulo”);
 fim-se;
fim.
Lógica de Programação
Solução em C:
#include<stdio.h>
int main(void)
{
 float a,b,c; 
 printf("Por favor, digite 3 numeros:\n");
 scanf("%f",&a); scanf("%f",&b); scanf("%f",&c);
 if ((a+b > c) && (a+c > b) && (b+c > a)) {
 // Verificando o tipo de triângulo formado
 if ((a == b) && (b == c))
 printf("equilatero \n"); 
 else
 if ((a==b) || (b==c) || (a==c))
 printf("isosceles \n");
 else
 printf("escaleno \n"); 
 } else {
 printf("Estes numeros nao podem ser os lados de um triangulo.\n");
 }
 system("pause"); return 0;
}
Lógica de Programação
Seleção de Múltipla Escolha
É uma alternativa para SEs aninhados, deixando o algoritmo com uma estrutura melhor;
Expressão:
escolha ( opcao ) 
 caso <opcao 1> : cmd1;
 caso <opcao 2> : cmd2;
 |
 caso <opcao N> : cmdN;
 senão cmdX;
fim-escolha;
Lógica de Programação
Problema: 
 Escrever um algoritmo que leia um peso na Terra e o número de um planeta e imprima o valor do seu peso neste planeta. A relação de planetas é dada a seguir juntamente com o valor das gravidades relativas à Terra:
Fórmula:
PP = (PT/10)*GR
Onde:
PP
: Peso no Planeta
PT : Peso na Terra
GR: Gravidade Relativa
NP: Número do Planeta
Lógica de Programação
Solução
início
 inteiro: np; real: pt, pp; 
 pp  -1; 
 escreva(“Planetas que podem ser analisados: ”); 
 escreva(“ 1 Mercurio \n 2 Venus \n 3 Marte \n“);
 escreva(“ 4 Jupiter \n 5 Saturno \n 6 Urano \n”);
 escreva(“Informe o planeta a ser analisado”);
 leia (np);
 escreva(“Informe o peso na Terra:”); leia(pt);
 escolha (np)
 caso 1: pp  (pt/10)*0,37; 
 caso 2: pp  (pt/10)*0,88; 
 caso 3: pp  (pt/10)*0,38; 
 caso 4: pp  (pt/10)*2,64; 
 caso 5: pp  (pt/10)*1,15;
 caso 6: pp  (pt/10)*1.17; 
 senão: escreva (“Opcao inválida!”);
 fim-escolha;
 se pp <> -1 então
 escreva(“O peso no planeta informado eh ”, pp);
fim.
Lógica de Programação
Solução em C:
#include <stdio.h>
#include <stdlib.h>
int op; float pt, pp;
int main() {
 pp = -1;
 printf("Planetas que pode ser analisados: \n");
 printf(" 1 Mercurio \n 2 Venus \n 3 Marte \n 4 Jupiter \n 5 Saturno \n 6 Urano \n ");
 printf(" Informe o cod. do planeta ser analisado: "); scanf("%d",&op);
 printf("\n Informe o peso na Terra:"); scanf("%f",&pt);
 switch (op) {
 case 1: { pp = (pt/10)*0.37; break; }
 case 2: { pp = (pt/10)*0.88; break; }
 case 3: { pp = (pt/10)*0.38; break; }
 case 4: { pp = (pt/10)*2.64; break; }
 case 5: { pp = (pt/10)*1.15; break; }
 case 6: { pp = (pt/10)*1.17; break; } 
 default: printf("Opcao invalida! \n");
 }
 if (pp != -1 ) printf("\n O peso no planeta informado eh %0.2f \n", pp);
 system("pause"); return 0;
}
Lógica de Programação
Bibliografias:
FORBELLONE, André Luiz Vilar – Lógica de Programação: a construção de algoritmos e estruturas de dados. 3.Ed – São Paulo : Pearson Prentice Hall, 2005.
FARRER, Harry – Algoritmos Estruturados. 3.Ed – Rio de Janeiro: LTC, 1999.
LOPES, Anita – Introdução à Programação – Rio de Janeiro: Campus, 2002.

Teste o Premium para desbloquear

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

Outros materiais