Buscar

AULA 3 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

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

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ê viu 3, do total de 4 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

Prévia do material em texto

CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – Ano 2010 1
AULA 3: ESTRUTURAS DE SELEÇÃO 
 
INTRODUÇÃO: 
 
Como visto na conceituação de algoritmo, o mesmo é preponderantemente 
seqüê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ção 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: 
Algoritmo C++ Pascal 
SE <condição> ENTÃO 
 <conjunto de instruções> 
FIM SE 
 
if <condição> 
 <conjunto de instruções> 
 
if <condição> then 
 <conjunto de instruções> 
 
 
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. 
 
Com exemplo desta estrutura, poderíamos ter o seguinte trecho de algoritmo: 
 
Algoritmo C++ Pascal 
SE (x > 5) ENTÃO 
 x Å x + 1; 
 escreva “O valor de x é igual a “, x; 
FIM SE 
if (x > 5) 
 x = x + 1; 
cout<< “O valor de x é igual a “<< x; 
 
if (x > 5) then 
 x := x + 1; 
write( ‘O valor de x é igual a ‘, x); 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – Ano 2010 2
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: 
 
Algoritmo C++ Pascal 
SE <condição> ENTÃO 
 <conjunto de instruções1> 
SENÃO 
 <conjunto de instruções2> 
FIM SE 
 
if <condição> 
 <conjunto de instruções1> 
else 
 <conjunto de instruções2> 
if <condição> then 
 <conjunto de instruções1> 
else 
 <conjunto de instruções2> 
 
 
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 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: 
 
Algoritmo C++ Pascal 
SE (x > 5) ENTÃO 
 x Å x + 1; 
 escreva “O valor de x é 
igual a “, x; 
SENÃO 
 y Å y + 1 ; 
 escreva “O valor de y é 
igual a “, y ; 
FIM SE 
 
if (x > 5) 
 { 
 x = x + 1; 
 cout<< “O valor de x é 
igual a “<< x<<”\n”; 
 } 
else 
 { 
 y = y + 1 ; 
 cout<< “O valor de y é 
igual a “<< y<< “\n“ ; 
 } 
 
if (x > 5) 
 begin 
 x := x + 1; 
 writeln (‘O valor de x é 
igual a ‘ , x); 
 end 
else 
 begin 
 y := y + 1 ; 
 writeln (‘O valor de y é 
igual a ‘ , y) ; 
 end 
 
 
 
 
 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – Ano 2010 3
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 este estrutura é dado abaixo: 
 
Algoritmo C++ Pascal 
SE <condição 1> ENTÃO 
 SE <condição 2> ENTÃO 
 <conjunto de instruções1> 
 SENÃO 
 <conjunto de instruções2> 
 FIM SE 
SENÃO 
 SE <condição 3> ENTÃO 
 <conjunto de instruções3> 
 FIM SE 
FIM SE 
 
if <condição 1> 
 if <condição 2> 
 <conjunto de instruções1> 
 else 
 <conjunto de instruções2> 
else 
 if<condição3> 
<conjunto deinstruções3> 
 
 
if <condição 1> then 
 if <condição 2> then 
 <conjuntodeinstruções1> 
 else 
 <conjunto de instruções2> 
else 
 if <condição 3> then 
 <conjunto de instruções3> 
 
 
 
 
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. Um exemplo deste tipo de combinação pode ser visto no trecho abaixo: 
 
Algoritmo C++ Pascal 
SE (x > 5) ENTÃO 
 SE (nome = “Luiz”) ENTÃO 
 escreva “Nome = “, nome; 
 FIM SE 
SENÃO 
 SE (y > 5) ENTÃO 
 x Å x + 1; 
 escreva “O valor de x é igual a “, x; 
 SENÃO 
 SE (k < 4) ENTÃO 
 y Å y + 1 ; 
 escreva “O valor de y é igual a “, y ; 
 FIM SE 
 FIM SE 
FIM SE 
 
if (x > 5) 
 if (nome == “Luiz”) 
 cout<<”Nome = “ << nome; 
 else 
 if (y > 5) 
 { 
 x = x + 1; 
 cout<<“O valor de x é 
igual a “<< x; 
 } 
 else 
 if (k < 4) 
 { 
 y = y + 1 ;cout<<“O valor de y é 
igual a “<< y ; 
 } 
 
 
if (x > 5) then 
 if (nome = ‘Luiz’ ) 
 write(‘Nome = ‘, nome); 
 else 
 if (y > 5) 
 begin 
 x := x + 1; 
 write(‘O valor de x é igual 
a ‘, x); 
 end 
 else 
 if (k < 4) 
 begin 
 y = y + 1 ; 
 write(‘O valor de y é igual 
a ‘, y) ; 
 end 
 
 
CURSO: SISTEMAS DE INFORMAÇÃO 
DISCIPLINA: ALGORITMOS 
PROFESSORA: GELLARS TAVARES 
 
Algoritmos – Professora Gellars Tavares – Ano 2010 4
ESTRUTURA DE SELEÇÃO DE MÚLTIPLA ESCOLHA: 
 
 A seleção escolha-caso permite inserirmos múltiplas condições com apena uma 
teste. 
 A vantagem é que o algoritmo poderá descrever vários blocos de execução e o 
teste, não necessariamente será lógico. 
 
Um exemplo de sintaxe para este estrutura é dado abaixo: 
 
 
Algoritmo C++ Pascal 
ESCOLHA <variável> 
 CASO <condição 1> : <comando>; 
 CASO <condição 2> : <comando>; 
 CASO <condição 3> : <comando>; 
 SENÃO : <comando>; 
FIM ESCOLHA 
switch (variável) 
 { 
 case<condição 1> : <comando>; 
 case<condição 2> : <comando>; 
 case<condição 3> : <comando>; 
 default : <comando>; 
 } 
case (variável) of 
 <valor 1> : <comando>; 
 <valor 2> : <comando>; 
 <valor 3> : <comando>; 
 else 
 <comandos>; 
 end; 
 
 
Como exemplo, pode-se ter o seguinte trecho de algoritmo: 
 
 
Algoritmo C++ Pascal 
LEIA valor; 
ESCOLHA (valor) 
 CASO 1 : escreva “valor é 1; 
 CASO 2 : escreva “valor é 1; 
 CASO 3 : escreva “valor é 3; 
 SENÃO : escreva “valor diferente 
de 1, 2 ou 3”; 
FIM ESCOLHA 
cin>>valor; 
switch (valor) 
 { 
 case 1 : cout<<”valor é 1”; 
 case 2 : cout<<”valor é 2”; 
 case 3 : cout<<”valor é 3”; 
 default : cout<<”valor diferente 
de 1, 2 ou 3”; 
 } 
readln(valor); 
case (valor) of 
 1 : writeln(‘valor é 1’); 
 2 : writeln(‘valor é 1’); 
 3 : writeln(‘valor é 1’); 
 else 
 writeln(‘valor é diferente de 
1, 2 ou 3’); 
end;

Outros materiais