Buscar

UNIDADE 3 - ALGORITMOS 2014

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 9 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 9 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 9 páginas

Prévia do material em texto

ALGORITMOS 
 
 
 
 
 
 
Unidade III – ESTRUTURAS DE TOMADA DE DECISÃO 
 
 
 
 
 
PROFESSORA GELLARS TAVARES 
 
gellarstavares@yahoo.com.br 
 
 
 
 
 
 
 
2014 
 
 
ALGORITMOS – Professora Gellars Tavares – ano 2014 Página 2 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
INTRODUÇÃO 
 
Como visto na conceituação de algoritmo, o mesmo é preponderantemente sequêncial, ou 
seja, todas as suas instruções serão executadas, uma única vez, uma após a outra. Entretanto, a 
complexidade inerente aos problemas a serem resolvidos pelo computador implica na 
necessidade de estruturas mais complexas para que algoritmos possam ser projetados para a sua 
solução. 
 
Durante o desenvolvimento de um algoritmo, frequentemente existe a necessidade de se 
tomar decisões e excutar ou não determinadas instruções, de acordo com o panorama atual de 
alguns dados. Para tanto foram projetadas as instruções de seleção ou decisão. Estas permitem 
definir um conjunto de instruções que poderão ser executadas ou não, dependendo do resultado 
de um teste realizado em cima de alguns dados. Desta forma, algumas instruções serão ou não 
executadas durante a execução do programa, interferindo diretamente no andamento do 
programa, conduzindo a algoritmos e programas que não são totalmente sequenciais. 
 
As instruções de seleção ou decisão encontradas no pseudocódigo são as seguintes: 
 estrutura de seleção simples, 
 estrutura de seleção composta, 
 estrutura de seleção encadeada 
 e estrutura de seleção de múltipla escolha. 
 
ESTRUTURA DE SELEÇÃO SIMPLES 
 
Esta estrutura de seleção permite definir um único conjunto de instruções ou comandos 
que será ou não executado em função do resultado da realização de um teste sobre os dados. Sua 
sintaxe é dada a seguir: 
 
 
 
 
 
ALGORITMOS – Professora Gellars Tavares – ano 2014 Página 3 
 
Nesta estrutura, um teste sobre os dados é executado através da especificação de uma 
expressão a ser avaliada. Tal expressão é definida pela cláusula <condição>. Esta, por sua vez, será 
avaliada e, em resultando um valor verdadeiro, o <conjunto de instruções> será executado. 
Caso o resultado da avaliação da <condição> não seja verdadeiro, serão executadas as instruções 
imediatamente seguintes ao término da estrutura, dada pela palavra reservada FIM SE. 
 
 
 
 
ESTRUTURA DE SELEÇÃO COMPOSTA 
 
Uma estrutura de seleção composta permite definir dois conjuntos de instruções passíveis 
de execução. Estes dois conjuntos de instruções, por sua vez, são excludentes, ou seja, somente 
um dos dois será executado. A escolha de qual dos dois conjuntos de instruções será executado 
dependerá também do resultado da avaliação de um teste sobre os dados. Desta forma, um deles 
será executado quando o resultado da avaliação do teste for verdadeiro, enquanto o outro 
somente será executado quando o resultado da avaliação do teste for falso. 
 
Tal instrução possui a seguinte sintaxe: 
 
 
 
Alguns autores consideram a estrutura de seleção composta e a estrutura de seleção 
simples como uma estrutura única, tendo a cláusula SENÃO como opcional. Na estrutura de 
seleção composta, um teste sobre os dados, especificado na cláusula <condição> será realizado. 
Caso o resultado da avaliação deste teste seja verdadeiro, as instruções constantes no <conjunto 
de instruções1> serão executadas sendo, em caso contrário (o resultado da avaliação do teste é 
falso) as instruções constantes no <conjunto de instruções2> serão executadas. Após a execução 
ALGORITMOS – Professora Gellars Tavares – ano 2014 Página 4 
 
de um dos dois conjuntos de instruções, o fluxo de execução do algoritmo segue normalmente 
com as instruções imediatamente seguintes ao final da estrutura, dada pela palavra reservada FIM 
SE. 
Como exemplo, pode-se ter o seguinte trecho de algoritmo: 
 
 
 
EXEMPLO: 
 
Construir um algoritmo que leia dois números e efetue a adição. Caso o valor somado seja 
maior ou igual a 10, este deverá ser apresentado somando-se a ele mais 5, caso o valor somado 
não seja maior ou igual a 10, este deverá ser apresentado subtraindo-se 7. 
 
ALGORITMO LINGUAGEM C++ 
algoritmo teste #include <iostream> 
inteiro V1, V2, SOMA; using namespace std; 
inicio int main() 
 escreva"Digite valor: "; { 
 leia V1; int v1, v2, soma; 
 escreva"Digite valor: "; cout<<"Digite valor: "; 
 leia V2; cin>>v1; 
 SOMA  V1 + V2; cout<<"Digite outro valor: "; 
 se (soma >= 10) então cin>>v2; 
 escreva soma + 5; soma = v1 + v2; 
 senão if (soma >= 10) 
 escreva soma - 7; cout << soma + 5<<" \n"; 
 fim se; else 
fim cout << soma - 7<<endl; 
 system("pause"); 
 return 0; 
 } 
 
Fazem o 
mesmo 
ALGORITMOS – Professora Gellars Tavares – ano 2014 Página 5 
 
ESTRUTURA DE SELEÇÃO ENCADEADA 
 
Uma estrutura de seleção encadeada nada mais é do que uma combinação entre as 
estruturas de seleção simples e compostas, possibilitando, desta forma, a especificação de vários 
conjuntos de instruções passíveis de execução. Entretanto, da mesma forma como na estrutura de 
seleção composta, somente um dos conjuntos de instruções especificados será executado, 
dependendo do resultado de testes sobre os dados. 
Um exemplo de sintaxe para esta estrutura é dado abaixo: 
 
O exemplo acima combina duas estruturas de seleção composta, juntamente com uma 
estrutura de seleção simples, permitindo a especificação de três conjuntos de instruções. 
Entretanto, somente um deles deverá ser executado. A combinação de estrutras de seleção 
simples e composta é livre, desde que se observe a hierarquização das mesmas. 
 
 
ALGORITMOS – Professora Gellars Tavares – ano 2014 Página 6 
 
EXEMPLO: 
Ler três números, possíveis lados de um triângulo e imprimir a classificação segundo os 
ângulos. 
 
ALGORITMO LINGUAGEM C++ 
algoritmo triangulo #include <iostream> 
real a,b,c; #include <conio.h> 
inicio using namespace std; 
escreva “primeiro numero: "; int main() 
leia a; { 
escreva"segundo numero: "; float a, b, c; 
leia b; cout<<"digite primeiro numero: "; 
escreva"terceiro numero: "; cin>>a; 
leia c; cout<<"digite segundo numero: "; 
se (a > b + c e b > a + c e 
c > a + b) então 
cin>>b; 
 escreva"as medidas não formam 
um triangulo"; 
cout<<"digite terceiro numero: "; 
senão cin>>c; 
 se (a == b e a == c) então if (a > b + c && b > a + c && c > a + b) 
 escreva"triangulo 
equilatero"; 
 cout<<"as medidas não formam um triangulo 
\n"; 
 senão else 
se (a == b || a == c || 
 b == c) então 
 if (a = b && a = c) 
 escreva"triangulo 
isoscele"; 
 cout<<"triangulo equilatero \n"; 
 senão else 
 escreva"triangulo 
escaleno"; 
 if (a = b || a = c || b = c) 
 cout<<"triangulo isosceles \n"; 
fim else 
 cout<<"triangulo escaleno \n"; 
 
 getch(); //precisa biblioteca conio.h 
 return 0; 
 } 
 
ESTRUTURA DE SELEÇÃO DE MÚLTIPLA ESCOLHA 
A seleção escolha-caso permite inserirmos múltiplas condições com apenas um teste. 
A vantagem é que o algoritmo poderá descrever vários blocos de execução e o teste, não 
necessariamente será lógico. 
Para que possamos substituir se...então..senão pela estrutura de escolha, é necessário que 
algumas exigências sejam atendidas na linha que escolhemos: 
1- A variável tem que ser a mesma em todos os testes. 
2- A variável tem que ser do tipo enumerável: inteira ou de um caracter. 
Um exemplo de sintaxe para esta estrutura é dado abaixo: 
ALGORITMOS – Professora Gellars Tavares – ano 2014 Página 7 
 
 
 
Como exemplo, pode-se ter o seguinte trecho de algoritmo: 
 
 
EXEMPLO: 
Sabe-se que uma determinadaequipe de natação possui uma empresa que patrocina o 
pagamento do salário de seus nadadores e, além disso, paga um valor adicional ao salário mensal 
em função da produtividade de cada nadador. A produtividade é paga de acordo com a tabela: 
CLASSE NÍVEL VALOR ADICIONAL 
1 EXCELENTE 50% 
2 BOM 40% 
3 MÉDIO 30% 
4 REGULAR 20% 
 
Elabore um algoritmo e programa em C++ que leia o salário e o código da classe do 
nadador, calcule e imprima o seu salário final. 
 
 
 
ALGORITMOS – Professora Gellars Tavares – ano 2014 Página 8 
 
 
Vamos resolver primeiro com a estrutura do se...senão: 
 
ALGORITMO LINGUAGEM C++ 
algoritmo menu #include <iostream> 
inteiro cod; using namespace std; 
real sal int main() 
inicio { 
 escreva “Digite salario: “; int cod; 
 leia sal; float sal; 
 escreva “1 – EXCELENTE “; 
 escreva “2 – BOM “; cout<”Digite salario: “; 
 escreva “3 – MEDIO “; cin>>leia sal; 
 escreva “4 – REGULAR “; cout<<”1 – EXCELENTE \n“; 
 escreva “ESCOLHA UMA CLASSE: “; cout<<”2 – BOM \n“; 
 leia cod; cout<<”3 – MEDIO \n“; 
se (cod == 1) cout<<”4 – REGULAR \n“; 
 escreva”SALARIO”, sal + sa l * 0.5; cout<<”ESCOLHA UMA CLASSE: “; 
senão cin>>cod; 
 se (cod == 2) 
 escreva”SALARIO”, sal + sal * 0.4; 
 if (cod == 1) 
 senão cout<<”SALARIO”<<sal + sal * 0.5<<”\n”; 
 se (cod == 3) 
 escreva”SALARIO”, sal + sal * 0.3; 
else 
 senão if (cod == 2) 
 se (cod == 4) 
 escreva”SALARIO”, sal + sal * 0.2; 
 cout<<”SALARIO”<<sal+sal*0.4<<”\n”; 
 senão else 
 escreva “OPCAO INVALIDA”; if (cod == 3) 
 fim se cout<<”SALARIO”<<sal+sal*0.3<<”\n”; 
 fim se else 
 fim se if (cod == 4) 
 fim se cout<<”SALARIO”<<sal+sal*0.2<<”\n”; 
 fim else 
 cout<<”OPCAO INVALIDA \n”; 
 system("pause"); 
 } 
 
 
 
 
 
ALGORITMOS – Professora Gellars Tavares – ano 2014 Página 9 
 
 
Agora veremos com a estrutura do escolha: 
 
ALGORITMO LINGUAGEM C++ 
algoritmo menu #include <iostream> 
inteiro cod; using namespace std; 
real sal int main() 
inicio { 
 escreva “Digite salario: “; int cod; 
 leia sal; float sal; 
 escreva “1 – EXCELENTE “; 
 escreva “2 – BOM “; cout<”Digite salario: “; 
 escreva “3 – MEDIO “; cin>>leia sal; 
 escreva “4 – REGULAR “; cout<<”1 – EXCELENTE \n“; 
 escreva “ESCOLHA UMA CLASSE: “; cout<<”2 – BOM \n“; 
 leia cod; cout<<”3 – MEDIO \n“; 
 escolha (cod) cout<<”4 – REGULAR \n“; 
 caso 1: escreva”SALARIO”, sal + sa l * 0.5; cout<<”ESCOLHA UMA CLASSE: “; 
 pare; cin>>cod; 
 caso 2: escreva”SALARIO”, sal + sal * 0.4; switch (cod) { 
 pare; case 1: cout<<”SALARIO”<<sal+sal*0.5<<”\n”; 
 caso 3: escreva”SALARIO”, sal + sal * 0.3; break; 
 pare; case 2: cout<<”SALARIO”<<sal+sal*0.4<<”\n”; 
 caso 4: escreva”SALARIO”, sal + sal * 0.2; break; 
 pare; case 3: cout<<”SALARIO”<<sal+sal*0.3<<”\n”; 
 senão break; 
 escreva “OPCAO INVALIDA”; case 4: cout<<”SALARIO”<<sal+sal*0.2<<”\n”; 
 fim escolha; break; 
fim default : cout<<”OPCAO INVALIDA \n”; 
 } 
 system("pause"); 
 }

Outros materiais