Buscar

Estrutura Condicional em Algoritmos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
LINGUAGEM E TÉCNICA DE PROGRAMAÇÃO I 
 
Profa. Gisele Busichia Baioco 
gisele@ft.unicamp.br 
 
 
Algoritmos Estruturados e 
Linguagem de Programação Estruturada 
 
Estrutura Condicional em Algoritmos 
1 Estruturas de Controle 
As estruturas de controle fornecem meios de alterar o fluxo de execução de 
instruções (comandos) de programas. Sem as estruturas de controle o fluxo é seqüencial. 
As estruturas de controle podem ser divididas em dois grupos: estrutura condicional 
(ou de seleção) e estrutura de repetição (ou iterativas). 
A seguir é abordada a estrutura condicional em algoritmos. 
2 Estrutura Condicional (ou de Seleção) em Algoritmos 
A estrutura condicional oferece meios de escolher entre dois ou mais caminhos de 
execução de instruções em um programa. Pode ser dividida em três grupos: 
• Estrutura condicional unidirecional; 
• Estrutura condicional bidirecional; 
• Estrutura condicional n-direcional (ou múltipla). 
As estruturas condicionais utilizam expressões lógicas. 
3 Estrutura Condicional Unidirecional em Algoritmos 
A estrutura condicional unidirecional consiste de um teste de uma condição 
representada por uma expressão lógica, que determina se um comando ou um conjunto de 
comandos deve ou não ser executado. 
Esquematicamente tem-se: 
 
 
condição 
comando 
Verdadeira 
Falsa 
 
 2 
Sintaxe em algoritmos: 
se (condição) 
então 
comando; 
onde: 
se e então: são as palavras reservadas do algoritmo para a estrutura condicional; 
condição: é uma expressão lógica que, se for verdadeira, fará com que o comando seja 
executado; 
comando: qualquer instrução válida. 
 Caso seja necessária a execução de um conjunto de comandos, denominado bloco de 
comandos, a sintaxe é a seguinte: 
se (condição) 
então início 
 comando1; 
 ... 
 comandoN; 
fim 
 
 Algoritmo exemplo: 
 
Algoritmo 
 início 
 declare N1, N2, M: numérico real; 
 escreva(“Digite as duas notas”); 
 leia(N1); 
leia(N2); 
 M ← (N1 + N2)/2; 
 se (M ≥ 5) 
 então 
escreva(“Aprovado”); 
fim 
4 Estrutura Condicional Bidirecional em Algoritmos 
A estrutura condicional bidirecional consiste de um teste de uma condição 
representada por uma expressão lógica, se o resultado for verdadeiro, um comando ou um 
bloco de comandos deve ser executado, caso contrário, outro comando ou bloco de comandos 
deve ser executado. Em nenhuma circunstância os dois comandos ou blocos de comandos 
serão executados. 
Esquematicamente tem-se: 
 
 
condição 
comando1 
Verdadeira 
Falsa 
comando2 
 
 3 
 Sintaxe em algoritmos: 
se (condição) 
então 
comando1; 
 senão 
 comando2; 
onde: 
se, então e senão: são as palavras reservadas do algoritmo para a estrutura condicional; 
condição: é uma expressão lógica que, se for verdadeira, fará com que o comando1 seja 
executado. Se for falsa, fará com que o comando2 seja executado; 
comando1 e comando2: qualquer instrução válida. 
 Caso seja necessária a execução de um bloco de comandos, a sintaxe é a seguinte: 
se (condição) 
então início 
 comando1; 
 comando2; 
fim 
 senão início 
 comando3; 
 comando4; 
 comando5; 
 fim 
 
Algoritmo exemplo: 
Algoritmo 
 início 
 declare N1, N2, M: numérico real; 
 escreva(“Digite as duas notas”); 
 leia(N1); 
leia(N2); 
 M ← (N1 + N2)/2; 
 se (M ≥ 5) 
 então 
escreva(“Aprovado”); 
 senão 
escreva(“Reprovado”); 
fim 
5 Bloco de Comandos 
De maneira geral, todo bloco de comandos deve ser delimitado pelas palavras início e 
fim. 
Sintaxe em algoritmos: 
 início 
 comando1; 
 comando2; 
 ... 
 comandoN; 
 fim 
 4 
6 Estruturas Condicionais Aninhadas 
Uma estrutura condicional está aninhada quando é utilizada dentro de outra estrutura 
condicional, seja no então ou no senão (no caso de estrutura condicional bidirecional). 
 Formato geral: 
 se (condição1) 
 então 
 se (condição2) 
 então 
 ... 
 senão 
 se (condição3) 
 então 
 ... 
 senão 
 ... 
 senão 
 se (condição4) 
então 
... 
Algoritmo exemplo: 
Algoritmo 
 início 
 declare A, B, C: numérico real; 
 escreva(“Digite três números”); 
 leia(A); 
leia(B); 
leia(C); 
 se (A > B) 
 então 
se (A > C) 
então 
escreva(“O maior número é ”, A); 
 senão 
 escreva(“O maior número é ”, C); 
 senão 
se (B > C) 
 então 
 escreva(“O maior número é ”, B); 
senão 
escreva(“O maior número é ”, C); 
fim 
Problema com estruturas condicionais bidirecionais aninhadas: 
 
Considere o seguinte trecho de algoritmo: 
se (soma = 0) 
então 
se (cont = 0) 
 então 
 resultado ← 0; 
senão 
resultado ← 1; 
O senão pertence a qual se-então? 
 5 
Deve-se observar que a identação na escrita do algoritmo é irrelevante. Para superar a 
ambigüidade, a maioria das linguagens de programação (por exemplo, C e Pascal) usa a 
seguinte regra implícita: o senão fecha sempre o se-então mais próximo. Assim, no exemplo 
anterior, o senão pertenceria ao segundo se-então. 
Outra alternativa para solucionar a ambigüidade é o uso de delimitadores de blocos de 
comandos. Considerando o exemplo anterior: 
• se o senão deve pertencer ao segundo se-então, faz-se: 
se (soma = 0) 
então início 
 se (cont = 0) 
 então 
resultado ← 0; 
 senão 
resultado ← 1; 
fim 
• se o senão deve pertencer ao primeiro se-então, faz-se: 
se (soma = 0) 
então início 
 se (cont = 0) 
 então 
resultado ← 0; 
 fim 
senão 
resultado ← 1; 
7 Estrutura Condicional N-Direcional (ou Múltipla) em Algoritmos 
A estrutura condicional n-direcional permite a escolha de um comando ou bloco de 
comandos entre qualquer número de comandos ou blocos de comandos. 
Existem duas formas possíveis de estruturas condicionais n-direcionais: 
 
1) Seqüência de expressões lógicas (booleanas): a primeira condição verdadeira 
determina o comando ou bloco de comandos a ser executado. Pode ser implementada 
em algoritmos com o encadeamento de estruturas condicionais bidirecionais, ou seja, 
com seqüências de comandos se-então-senão-se. 
Formato geral: 
se (condição1) 
então 
 comando1; 
 senão 
 se (condição2) 
então 
comando2; 
senão 
se ... 
 
senão 
 comandoN; 
 6 
Algoritmo exemplo: 
 Algoritmo 
 início 
 declare N1, N2, M: numérico real; 
 escreva(“Digite as duas notas”); 
 leia(N1); 
leia(N2); 
 M ← (N1 + N2)/2; 
 se (M ≥ 7) 
 então 
escreva(“Aprovado”); 
 senão 
se (M ≥ 5) 
 então 
 escreva(“Exame Final”); 
senão 
escreva(“Reprovado”); 
fim 
 
 
2) Comando CASO: avalia uma condição de igualdade e executa o comando ou bloco 
de comandos correspondente. 
Esquematicamente tem-se: 
 
 
comando1 
Verdadeiro 
Falso 
comando2 
variável = valor1 
comandoN 
Verdadeiro 
Verdadeiro 
Falso 
Falso 
variável = valor2 
variável = valorN 
 
Sintaxe em algoritmos: 
escolha (variável) 
início 
 caso valor1: comando1; 
 caso valor2: comando2; 
 ... 
 caso valorN: comandoN; 
 fim 
 7 
Caso seja necessária a execução de um bloco de comandos, a sintaxe é a seguinte: 
escolha (variável) 
início 
 caso valor1: início 
comando1; 
comando2; 
 fim 
 caso valor2: início 
comando3; 
comando4; 
comando5; 
 fim 
 ... 
 caso valorN: início 
comandoN1; 
comandoN2; 
 fim 
 fim 
 
 Pode ser necessária a execução de um comando ou bloco de comandos caso nenhuma 
das outras opções seja satisfeita. 
 Esquematicamente tem-se: 
 
 
 
comando1 
Verdadeiro 
Falso 
comando2 
variável = valor1 
comandoN 
Verdadeiro 
Verdadeiro 
Falso 
Falso 
comando 
variável = valor2 
variável = valorN 
 
 8 
Sintaxe em algoritmos: 
escolha (variável) 
início 
 caso valor1: comando1; 
 caso valor2: comando2; 
 ... 
 caso valorN: comandoN; 
 senão: comando; 
 fim 
No caso da execução de bloco de comandos, basta colocar os delimitadores início-fim 
nas opções que executam vários comandos, inclusiveno senão. 
Algoritmo exemplo: 
Algoritmo 
início 
declare op, X, Y: numérico inteiro; 
escreva(“Entre com a opção: ”); 
leia(op); 
escolha (op) 
início 
 caso 1: início 
 X ← 10; 
 Y ← 20; 
 fim 
 caso 2: início 
 X ← 100; 
 Y ← 0; 
 fim 
 senão: início 
 X ← 0; 
 Y ← 0; 
 fim 
 fim 
 escreva(“O valor de X é: “, X); 
 escreva(“O valor de Y é: “, Y); 
fim 
 9 
8 Exemplos de Algoritmos 
1) Faça um algoritmo que receba um número inteiro e verifique se esse número é par ou 
ímpar. 
Solução: 
Entrada: número inteiro, num 
Processo: se resto de num/2 for 0, num é par, caso contrário, num é ímpar 
Saída: num é par ou num é ímpar 
Algoritmo 
início 
 /* Declaração de variáveis */ 
 declare num, r: numérico inteiro; 
 /* Entrada de dados */ 
 escreva(“Digite um número inteiro: ”); 
 leia(num); 
/* Processo – obtém o resto da divisão de num por 2 */ 
r ← resto(num, 2); 
/* Saída de dados */ 
se (r = 0) 
então 
escreva(“O número é par”); 
senão 
escreva(“O número é ímpar”); 
fim 
 
 10 
2) A nota final de um estudante é calculada a partir de três notas: laboratório, avaliação 
semestral e exame final, com os pesos 2, 3 e 5, respectivamente. Faça um algoritmo 
que leia três notas de um estudante, calcule e mostre a média ponderada e o conceito 
correspondente, de acordo com: 
 
Média ponderada Conceito 
≥ 8.0 A 
≥ 7.0 e < 8.0 B 
≥ 6.0 e < 7.0 C 
≥ 5.0 e < 6.0 D 
< 5.0 E 
Solução: 
Entrada: três notas, laboratorio, semestral, exame 
Processo: media = (laboratório * 2 + semestral * 3 + exame * 5) / 10 
Saída: valor da media e seu conceito. 
Algoritmo 
início 
 /* Declaração de variáveis */ 
 declare laboratorio, semestral, exame, media: numérico real; 
 /* Entrada de dados */ 
 escreva(“Digite a nota de laboratório: ”); 
 leia(laboratorio); 
 escreva(“Digite a nota da avaliação semestral: ”); 
 leia(semestral); 
 escreva(“Digite a nota do exame final: ”); 
leia(exame); 
/* Processo – cálculo da média ponderada */ 
media ← (laboratório * 2 + semestral * 3 + exame * 5) / 10; 
/* Saída de dados */ 
escreva(“Média ponderada = ”, media); 
se (media ≥ 8.0) 
então 
escreva(“Conceito A”); 
senão se (media ≥ 7.0) 
 então 
escreva(“Conceito B”); 
 senão se (media ≥ 6.0) 
 então 
escreva(“Conceito C”); 
 senão se (media ≥ 5.0) 
 então 
escreva(“Conceito D”); 
 senão 
escreva(“Conceito E”); 
fim 
 
 11 
3) Faça um algoritmo que mostre o menu de opções a seguir, receba a opção do usuário e 
os dados necessários para executar cada operação. 
Menu de opções: 
1. Somar dois números 
2. Raiz quadrada de um número 
Solução: 
Entrada: opção desejada, op; se for a opção 1, deve-se ler dois números, num1 e num2; 
se a opção for 2, deve-se ler apenas um número, num1 
Processo: se op = 1, resultado = num1 + num2; se op = 2, resultado = √num1 
Saída: valor do resultado. 
Algoritmo 
início 
/* Declaração de variáveis */ 
declare op: numérico inteiro; 
 num1, num2, resultado: numérico real; 
/* Entrada de Dados Geral */ 
escreva(“Menu”); 
escreva(“1. Somar dois números”); 
escreva(“2. Raiz quadrada de um número”); 
escreva(“Digite sua opção: ”); 
leia(op); 
/* Entrada de Dados específicos e processo */ 
escolha (op) 
início 
 caso 1: início 
 escreva(“Digite dois números para a soma: ”); 
 leia(num1); 
 leia(num2); 
 resultado ← num1 + num2; 
 fim 
 caso 2: início 
 escreva(“Digite um número para a raiz quadrada: ”); 
 leia(num1); 
 resultado ← √num1 
 fim 
 senão: início 
resultado ← 0; 
escreva(“Opção inválida”); 
 fim 
 fim 
 escreva(“Resultado = “, resultado); 
fim 
 12 
9 Exercícios de Fixação 
1) Faça um algoritmo que leia dois números X e Y, calcule Z = (X + Y)/2 e mostre o 
resultado de Z somente se Z ≠ 0. 
2) Dados dois número inteiros, faça um algoritmo que mostre-os em ordem crescente. 
3) Faça um algoritmo para ler os comprimentos dos três lados de um triângulo (S1, S2 e 
S3) e determinar que tipo de triângulo é formado, com base nos seguintes casos. Seja 
A o maior dos lados de S1, S2 e S3, e B e C os outros dois, então: 
Se A ≥ B + C nenhum triângulo é formado; 
Se A2 = B2 + C2 um triângulo retângulo é formado; 
Se A2 > B2 + C2 um triângulo obtusângulo é formado; 
Se A2 < B2 + C2 um triângulo acutângulo é formado. 
4) Uma empresa decidiu dar a seus funcionários uma gratificação de Natal. A 
gratificação é baseada em dois critérios: número de horas extras trabalhadas 
(horas_extras) e números de horas que o funcionário faltou ao trabalho (horas_faltas). 
A seguinte fórmula é utilizada para calcular o número de horas do funcionário: 
horas = horas_extras – 2/3 * horas_faltas 
A gratificação é distribuída de acordo com a seguinte tabela: 
 
horas gratificação 
> 40 horas R$ 500.00 
> 30 mas ≤ 40 horas R$ 400.00 
> 20 mas ≤ 30 horas R$ 300.00 
> 10 mas ≤ 20 horas R$ 200.00 
≤ 10 horas R$ 100.00 
 
Faça um algoritmo que leia o número de horas extras e número de horas de faltas de 
um funcionário, calcule e mostre a gratificação correspondente. 
5) Faça um algoritmo que apresente o menu de opções a seguir, permita ao usuário 
escolher a opção desejada, receba os dados necessários para executar a operação e 
mostre o resultado. Verifique a possibilidade de opção inválida. 
Menu de opções: 
1. Imposto 
2. Novo salário 
3. Classificação 
Na opção 1, ler o salário de um funcionário, calcular e mostrar o valor do imposto, 
usando as regras a seguir: 
Salário Percentual do imposto 
menor que R$ 500.00 5% 
de R$ 500.00 a R$ 850.00 10% 
acima de R$850.00 15% 
 
Na opção 2, ler o salário de um funcionário, calcular e mostrar o salário com aumento, 
usando as regras a seguir: 
Salário Aumento 
maior que R$1500.00 R$ 25.00 
de R$ 750.00 (inclusive) a R$ 1500.00 R$ 50.00 
de R$ 450.00 (inclusive) a R$ 750.00 R$ 75.00 
menor que R$ 450.00 R$ 100.00 
 13 
 
 Na opção 3, ler o salário de um funcionário e mostrar sua classificação, de acordo com 
a tabela seguinte: 
Salário Classificação 
até R$ 700.00 (inclusive) Mal remunerado 
maior que R$ 700.00 Bem remunerado

Outros materiais