Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 ALGOP – Algoritmos e Programação Aula 3 – Estruturas de Controle (Decisões ou Seleções) + Estruturas de controle + Estrutura de decisão (seleção) simples + Estrutura de decisão (seleção) composta + Estruturas de decisão (seleção) aninhadas + Estrutura de múltipla escolha + Expressões Lógicas 2 ALGOP – Algoritmos e Programação Estruturas de Controle Grande parte das linguagens de programação contam com três tipos de estruturas de controle: Estruturas de Sequência: tipos de estrutura em que as instruções são executadas sequencialmente (linearmente), ou seja, uma instrução após a outra, sem nenhuma avaliação condicional. Estruturas Condicionais: tipos de estrutura que avaliam uma condição para determinar se um ou mais instruções serão executadas ou não. Tais estruturas desviam o fluxo do programa para partes diferentes, dependendo se a condição resultar em verdadeira ou falsa. Estruturas de Repetição: tipos de estrutura que repetem um bloco de instruções enquanto uma condição estiver resultando em verdadeira. 3 ALGOP – Algoritmos e Programação Estruturas de Controle (Estruturas Condicionais) As Estruturas Condicionais são utilizadas quando precisamos decidir ou selecionar que instruções serão executadas, ou como um grupo de dados será trabalhado para gerar informação ao usuário. Diariamente, decidimos sobre nossas ações... por exemplo: se não chover então se chover então vamos ao cinema ficamos em casa se chover e ventar então se chover ou ventar então ficamos em casa ficamos em casa Num algoritmo, para cálculo da média de um aluno, podemos nos deparar com algo do tipo: se MediaAluno > 6 então esse aluno foi aprovado 4 ALGOP – Algoritmos e Programação Estrutura de Decisão (Seleção) Simples Permite que o programa tome uma decisão de acordo com o resultado da expressão lógica a ser avaliada. Se a expressão resultar em verdadeira, a instrução interna à estrutura de seleção é executada. se (expressão lógica) então if (expressão lógica) instrução 1 instrução 1; fim se ou ou se (expressão lógica) então if (expressão lógica) instrução 1 { instrução 2 instrução 1; fim se instrução 2; } Blocos com mais de uma instrução precisam dos delimitadores {} … :-) 5 ALGOP – Algoritmos e Programação Estrutura de Decisão (Seleção) Simples (exemplo) #include <stdio.h> #include <conio.h> int main() { float nota; printf ("\n Digite a nota final: "); scanf ("%f", ¬a); if (nota >= 60) printf ("\n Aluno Aprovado. "); getch(); return 0; } 6 ALGOP – Algoritmos e Programação Estrutura de Decisão (Seleção) Composta Permite que o programa execute uma ou mais instruções se a expressão lógica analisada resultar em verdadeira, ou execute outras instruções (uma ou mais) se a expressão lógica resultar em falsa. se (expressão lógica) então if (expressão lógica) instrução 1 instrução 1; senão else instrução 2 { instrução 3 instrução 2; fim se instrução 3; } Blocos com mais de uma instrução precisam dos delimitadores {} … :-) Se o bloco for composto por uma instrução, podemos ou não usar os delimitadores... se usarmos sempre, não precisamos nos preocupar... :-) 7 ALGOP – Algoritmos e Programação Estrutura de Decisão (Seleção) Composta (exemplo) #include <stdio.h> #include <conio.h> int main() { float nota; printf ("\n Digite a nota final: "); scanf ("%f", ¬a); if (nota >= 60) printf ("\n Aluno Aprovado. "); else { printf ("\n Aluno em exame. "); printf ("\n Verifique a data. "); } getch(); return 0; } 8 ALGOP – Algoritmos e Programação Estrutura de Decisão (Seleção) Aninhada (Encadeada) Permite que o programa execute uma ou mais instruções a partir da análise de várias expressões lógicas organizadas em castata (encadeadas). Nesse tipo de construção, apenas um bloco de instruções será executado. se (expressão lógica) então if (expressão lógica) instrução 1 instrução 1; senão se (expressão lógica) então else if (expressão lógica) instrução 2 instrução 2; senão se (expressão lógica) então else if (expressão lógica) instrução 3 instrução 3; senão else instrução 4 instrução 4; fim se Podemos utilizar o recuo (indentação) de forma diferente, de maneira a parecer que as sentenças estão aninhadas (uma dentro da outra)... :-) 9 ALGOP – Algoritmos e Programação Estrutura de Decisão (Seleção) Aninhada (Encadeada) - exemplo #include <stdio.h> #include <conio.h> int main() { float nota; printf ("\n Digite a nota final: "); scanf ("%f", ¬a); if (nota >= 90) printf ("\n Conceito A. "); else if (nota >= 75) printf ("\n Conceito B. "); else if (nota >= 60) printf ("\n Conceito C. "); else printf ("\n Reprovado. "); getch(); return 0; } 10 ALGOP – Algoritmos e Programação Estrutura de Múltipla Escolha Permite que o programa execute um bloco de instruções a partir da análise de uma expressão de controle ou do valor de uma variável. escolha (expressão de controle) switch (expressão de controle) caso valor1 : { instrução 1 case valor1 : instrução 1; caso valor2 : break; instrução 2 case valor2 : instrução 2; caso valor3 : break; instrução 3 case valor3 : instrução 3; outro caso : break; instrução 4 default : instrução 4; fim escolha } 11 ALGOP – Algoritmos e Programação Estrutura de Múltipla Escolha (exemplo) #include <stdio.h> #include <conio.h> int main() { char conceito; printf ("\n Digite o conceito: "); scanf ("%c", &conceito); switch (conceito) { case 'A' : printf ("\n Aluno ganhou bolsa de 50%% "); break; case 'B' : printf ("\n Aluno ganhou bolsa de 30%% "); break; case 'C' : printf ("\n Aluno ganhou bolsa de 10%% "); break; default : printf ("\n Aluno sem desconto."); } getch(); return 0; } 12 ALGOP – Algoritmos e Programação Expressões Lógicas As estruturas de decisão (seleção), se apoiam em expressões lógicas, para realizar o desvio do fluxo do programa. if (expressão lógica) { instrução1; } else { instrução2; } Expressões lógicas são aquelas cujos operadores são lógicos ou relacionais e cujos operandos são relações ou variáveis/constantes do tipo lógico. Por exemplo: if ( X > 5 ) { // instruções } else { // instruções } 13 ALGOP – Algoritmos e Programação Expressões Lógicas (Operadores Relacionais) Os operadores relacionais são aqueles utilizados para realizar comparações entre dois valores de um mesmo tipo primitivo. O resultado obtido de uma relação é sempre um valor lógico (true ou false) operador pseudo Lg C/C++ descrição exemplo = = == Igual a (2+X) == 20 > > > Maior que Idade > 18 < < < Menor que Nota < 30 ≥ >= >= Maior ou igual a Prazo >= 10 ≤ <= <= Menor ou igual a Idade <= 60 ≠ <> != Diferente de Resposta != 's' 14 ALGOP – Algoritmos e Programação Expressões Lógicas (Operadores Lógicos) Os operadores lógicos são operadores básicos para a formação de novas proposições lógicas compostas a partir de outras proposições lógicas simples. Em expressões envolvendo essas operações resolvemos primeiro as de negação, seguido das de conjunção, seguido das de disjunção. operador pseudo Lg C/C++ função não não ! negação e e && conjunção ou ou || disjunção 15 ALGOP – Algoritmos e Programação Expressões Lógicas (Tabelas Verdade) As tabelas verdade fornecem o conjunto de todas as combinações entre os valores de diversas variáveis lógicas (as quais se encontram em apenas 2 situações (V ou F)) e um conjunto de operadores lógicos. Negação Conjunção Disjunção (não exclusiva) X Y X e Y F F F F V F V F F V V V X Y X ou Y F F F F V V V F V V V V X não X F V V F 16 ALGOP – Algoritmos e Programação Expressões Mistas (precedência entre todos os operadores) Quanto estivermos trabalhando com uma expressão contendo elementos aritméticos, relacionais e lógicos (misturados), obedecemos a seguinte ordem de prioridade: 1) resolvemos o conteúdo de parênteses mais internos; 2) resolvemos os trechos com operadores aritméticos; 3) resolvemos os trechos com operadores relacionais; 4) finalizamos resolvendo os trechos com operadores lógicos. Essa convenção de precedência não é comum a todas as linguagens de programação, mas adotamos assim por ser a convenção mais didática. 17 ALGOP – Algoritmos e Programação Estruturas de Controle (Teste de Mesa) Após desenvolvermos um algoritmo, ele sempre deverá ser testado. Esse teste é chamado de Teste de Mesa, e consiste em seguir as instruções do algoritmo de maneira precisa, armazenado os possíveis valores das variáveis para verificar se o procedimento utilizado está correto ou não. Nesse processo é feita uma simulação do algoritmo, preenchendo uma tabela com valores para as variáveis e constantes, seguindo o fluxo de execução do algoritmo. A cada instrução devemos verificar se os valores das variáveis foram alterados e atualizar a tabela usada no teste. Ao final do teste podemos nos deparar com as seguintes situações: + o resultado esperado foi alcançado + foram detectados defeitos (erros) nas instruções + foram detectados erros no fluxo de execução, nas estruturas de controle... 18 ALGOP – Algoritmos e Programação Estruturas de Controle (sugestões de leitura) + ARAÚJO, Everton C. Algoritmos: fundamento e prática. Capítulo: 10 - Pseudocódigos – Estrutura Condicional. + MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo. Algoritmos: lógica para desenvolvimento de programação de computadores. Capítulo: 4 - Estruturas de Controle – A Tomada de Decisão. Para Saber Mais + SALIBA, Walter Luís Caram. Técnicas de programação: uma abordagem estruturada. Capítulo: 7 - Controle do Fluxo de Execução. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18
Compartilhar