Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Estácio de Sá Curso: Sistemas de Informação Disciplina: Algoritmos Campus: Nova América / Pç XI Professora: Anita Maciel Resumo e Atividades para AULAS 5o e 6 o / 15 Código da disciplina CCT0001 Período: 1o Unidade: I, II e III Itens Todos Carga horária: 2 tempos em sala e 2 tempos no laboratório (200 minutos) Tema da aula Estrutura de decisão Conteúdo Definição de estrutura de decisão e suas características; Definição dos operadores relacionais; Utilização da estrutura de decisão; Apresentação de comandos da linguagem de programação, correspondentes aos comandos utilizados nos algoritmos; Programas com a linguagem de programação. Objetivos da aula Compreender uma estrutura de decisão e suas características; Discernir quando uma estrutura de decisão deve ser utilizada e criar algoritmos que utilizem essa estrutura; Utilizar comandos de uma linguagem de programação para implementação de algoritmos na forma de programas de computador (laboratório). Atividades 1. Trabalhar no ambiente do Dev-cpp 2. Editar / Compilar e executar um programa 3. Codificar todos os algoritmos na linguagem C++ e testá-los. Tarefas • Reveja todos os conceitos vistos nesta aula. • Aprimore seus conhecimentos pesquisando no material didático e na bibliografia recomendada (procure na Biblioteca do campus ou na Biblioteca Virtual/SIA). • Faça os exercícios restantes da Lista de exercícios 3.doc e da Lista de exercícios 3.doc Professora ANITA LOPES 2 Formalizando alguns conceitos Conceitos Estrutura de decisão: “Como o próprio nome apresenta, a estrutura de decisão permite que o algoritmo sobre qual sequência de comandos deve-se realizar em seguida. Isso é útil quando, dependendo de um determinado critério, é possível realizar uma ou outra sequência de comandos. Em um algoritmo, é possível encontrarmos diversas opções a serem seguidas. O mais importante para a utilização da estrutura de decisão é conhecer quais são os critérios que levam à escolha de uma determinada sequência de comandos. Normalmente, esses critérios são determinados pela situação na qual o programa deve operar. Por exemplo, um aluno deve ser considerado aprovado se a média final dele for maior ou igual a cinco, e reprovado se a média for menor do que cinco. Observe que esses critérios mudam de acordo com a aplicação. No exemplo, o critério de aprovação do aluno pode ser verdade para uma determinada instituição, mas ser diferente para outra.” Tipos 1- Seleção simples Nesse tipo, após a execução do teste, só será executado o bloco de comandos se o resultado do teste for verdadeiro. 2- Seleção composta Nesse tipo, após a execução do teste, tanto será executado um bloco de comandos se o resultado do teste for verdadeiro quanto será executado um outro bloco de comandos se o resultado for falso. 3- Seleções encadeadas Nesse tipo, após a execução do teste, será executado um bloco de comandos se o resultado do teste for verdadeiro, caso não seja, um outro teste será feito até que todas as possibilidades de respostas sejam contempladas. Teste O teste é uma expressão relacional que compara valores dos seus operandos. A expressão relacional é formada, obrigatoriamente, por um operador relacional e dois operandos do mesmo tipo. A U.A.L testa essa expressão e retorna, na maioria das Professora ANITA LOPES 3 linguagens: true ou false. Em algumas linguagens ela poderá retornar 1(ou qualquer número diferente de zero) ou 0. OPERADORES RELACIONAIS significado Matemática Pascal C/ C++ UAL Exemplos - UAL maior > > > > 2* 8 > 4 menor < < < < 2 < 9 igual = = == == 3 == 7-4 maior ou igual ≥ >= >= >= 9 >= 5 menor ou igual ≤ <= <= <= 4 <= 10 diferente ≠ <> != <> 8 <> 5 Em algumas ocasiões, precisaremos negar um teste ou fazer mais de um teste para que uma condição seja considerada verdadeira e, nesses casos, teremos que unir as expressões relacionais por operadores lógicos. Os operadores lógicos são velhos conhecidos nossos da disciplina de Lógica Matemática e tudo que aprendemos sobre eles servirá agora, mas vamos relembrá-los. OPERADORES Lógicos significado Matemática Pascal C/ C++ UAL Exemplos – C++ conjunção( e) ∧ and && && n >= 100 && n<=200 disjunção(ou) ∨ or || || n < 100 || n>200 negação(não) ¬ not ! ! !p Tabelas Verdade não e ou Professora ANITA LOPES 4 Sintaxes Ö Fluxograma Comando de decisão (seleção) Seleção Simples Seleção Composta Seleções Encadeadas Exemplo Exemplo Exemplo Ö Linguagem UAL Comando de decisão (seleção) Seleção Simples Seleção Composta Seleções Aninhadas se(teste) { ... } se(teste) { ... } senao { ... } se(teste) { ... } senao { se(teste) { ... } senao { ... } } Professora ANITA LOPES 5 se(valor > 10) { valor <- valor * 2; } se(valor > 10) { imprima ”Aprovado”; } senao { imprima ”Reprovado”; } se(saldo > 0) { imprima ”Positivo”; } senao { se(saldo < 0) { imprima ”Negativo”; } senao { imprima ”Nulo”; } } Ö Linguagem C++ Comando de decisão (seleção) Seleção Simples Seleção Composta Seleções Encadeadas if(teste) { ... } if(teste) { ... } else { ... } if(teste) { ... } else if (teste) { ... } else { ... } if(valor > 10) { valor = valor * 2; } if(valor > 10) { cout<< ”Aprovado”; } else { cout<< ”Reprovado”; } if(saldo > 0) { cout<< ”Positivo”; } else if(saldo < 0) { cout<< ”Negativo”; } else { cout<< ”Nulo”; } Na linguagem C++, as chaves podem ser dispensadas quando só existir um comando no bloco. Observe como ficaria sem as chaves. if(saldo > 0) cout<< ”Positivo”; else if(saldo < 0) cout<< ”Negativo”; else cout<< ”Nulo”; Professora ANITA LOPES 6 O exercício do maior entre três números é um clássico em programação e, por essa razão, vou apresentar duas soluções para ele. Professora ANITA LOPES 7 Estrutura escolha/ caso A estrutura de múltiplos testes denominada escolha/ caso é uma alternativa para ses encadeados. Embora o conceito seja o mesmo, ela apresenta diferenças em várias linguagens. Para que possamos apresentá-la, teremos que fazer uma opção de linha de programação e nós vamos escolher a linha do C/ C++, tendo em vista que a maioria das linguagens usadas herdam características da linguagem C. Normalmente quando a estrutura é apresentada, sempre surge um questionamento: Por que tivemos então que usar se ... então ... senão se ...? Para que possamos substituir se ... então ... senão se ... pela estrutura do escolha é necessário, na linha que escolhemos, que três umas exigências sejam atendidas: A variável tem que ser a mesma em todos os testes. A variável tem que ser do tipo enumerável: inteira ou de um caracter. O operador relacional tem que ser o de igualdade. Por essas razões é que se faz necessário que você entenda que, embora seja mais simples,nem sempre poderemos substituir os ses encadeados e às vezes, poderemos substituir em uma linguagem, mas em outra não. Essa estrutura é ideal para algoritmos que funcionam através de um menu visto que só podemos selecionar um item. Vamos analisar um exercício e se respondermos sim para as três perguntas abaixo, então poderemos usar a estrutura alternativa para ifs encadeados: escolha/ caso> A variável é a mesma em todos os testes? A variável é do tipo enumerável? O operador relacional é o de igualdade? Professora ANITA LOPES 8 Sintaxe Fluxograma Linguagem C++ switch (var) { case <valor 1> : comandos 1; break; case <valor 2> : comandos 2; break; case <valor 3> : comandos 3; break; case <valor 4> : comandos 4; break; default: comandos n; } Algumas vezes o comando break não será necessário. Professora ANITA LOPES 9 REFERÊNCIA BIBLIOGRÁFICA FARRER, Harry et al. Algoritmos estruturados. 3. ed. Rio de Janeiro: LTC, 1999. GUIMARÃES, A. M; LAGES, N. A. Algoritmos e estruturas de dados. Rio de Janeiro: LTC,1994. DEITEL, Harvey M.; DEITEL, Paul J. C++: como programar. Porto Alegre: Bookman, 2005. BIBLIOGRAFIA COMPLEMENTAR MANZANO, J. A. N. G., OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de programação de computadores. 17. ed. São Paulo: Érica, 2005. FORBELLONE, A. L. V., EBERSPACHER, H. F. Lógica de programação: a construção de algoritmos e estrutura de dados. 2. ed. São Paulo: Makron, 2000. LOPES, A.L.M. Apostila de C++. RJ: 2008. SEXTON, Conar. Dominando a linguagem C++. Rio de Janeiro: IBPI, c2001. Professora: Anita Maciel Código da CCT0001 Resumo e Atividades para AULAS 5o e 6 o / 15 Tema da aula Conteúdo Objetivos da aula Atividades Tarefas Formalizando alguns conceitos OPERADORES RELACIONAIS significado Matemática Pascal C/ C++ UAL Exemplos - UAL OPERADORES Lógicos significado Matemática Pascal C/ C++ UAL Exemplos – C++ Tabelas Verdade Sintaxe REFERÊNCIA BIBLIOGRÁFICA
Compartilhar