Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estruturas condicionais Algoritmo Algoritmo trabalhador brasileiro: (anterior a 2017) 1. trabalhe durante o mês inteiro; 2. receba o salário ao final do mês; 3. pague suas contas; 4. retorne ao passo (1). Passos sugeridos para construir um algoritmo 1. Identificar o problema (objetivo) mediante leitura atenta do respectivo enunciado; 2. Extrair do enunciado as entradas de dados, ou seja, identificar os dados que devem ser fornecidos ao algoritmo; Passos sugeridos para construir um algoritmo 3. Extrair do enunciado as saídas de dados que devem ser devolvidas pelo algoritmo como resultado da solução; 4. Determinar o que deve ser feito para transformar as entradas nas saídas desejadas. O então chamado processamento, determina a sequência de ações que leva à solução do problema. Estruturas condicionais Possibilitam a utilização de desvios lógicos progressivos em algoritmos. Com estes desvios pode-se saltar de maneira progressiva blocos de instruções de acordo com o resultado da condição avaliada. Condição diz respeito a uma expressão booleana que orientará o fluxo de execução para o desvio. Tomando como exemplo o seguinte algoritmo: programa resultado; variáveis nota1, nota2 : inteiro; media : real; início media := 0; nota1 := 0; nota2 := 0; escreva('Digite a nota do primeiro semestre:'); leia(nota1); escreva('Digite a nota do segundo semestre:'); leia(nota2); media := (nota1 + nota2)/2; escreva('Sua média é:'); escreva(media); fim. O Problema: • Conforme a média calculada, exibir a situação do aluno: aprovado ou reprovado. • O conjunto de instruções visto até aqui não possibilita que se execute trechos exclusivos de código. • Trabalhou-se, até o presente, com uma mera progressão do fluxo de controle, linha após linha. • Nesta progressão, a linha sucessora é executada incondicionalmente após a linha atual. • Dentro disso, não há como bifurcar o fluxo de controle para: • Se o aluno estiver aprovado, executar: escreva('Aprovado'); • Caso contrário, ou seja, se o aluno estiver reprovado, executar: escreva('Reprovado'); algoritmo RESULTADO inicio inteiro: nota1, nota2; real: media; media 0; nota1 0; nota2 0; escreva(“Digite a nota do primeiro semestre:“); leia(nota1); escreva(“Digite a nota do segundo semestre:“); leia(nota2); media (nota1 + nota2)/2; escreva(“Sua média é:“); escreva(media); se (media >= 70) então escreva (“Aprovado”); senão escreva(“Reprovado”); fim-se; fim; fim algoritmo. Condição: • Trata-se de uma expressão booleana que será avaliada pela estrutura condicional Se; • Como se trata de uma expressão booleana, o resultado da avaliação desta permite somente dois valores possíveis: • Verdadeiro, se a variável média for maior ou igual a 70; • O fluxo de controle será direcionado ao bloco correspondente ao caso verdadeiro; • Falso, se a variável média for menor do que 70; • direcionado ao bloco correspondente ao caso falso. Omissão do Senão: • Há problemas em que se deseja executar um bloco de instruções caso uma determinada condição seja verdadeira, porém não há bloco de instruções alternativo para o caso contrário; • Assim, omitir o trecho referente ao senão consiste em uma construção válida. • Exemplo: parabenizar o aluno caso a média seja maior do que 90. se (media >= 90) então escreva(“Parabéns pelo seu desempenho!”); fim-se; Operadores Relacionais Igual = se (a = b) então ... Diferente <> se (divisor <> 2) então ... Maior > se (salario > salarioMinimo) então ... Maior ou Igual >= se (peso >= pesoIdeal) então … Menor < se (cotacaoDollar < cotacaoEuro) então ... Menor ou Igual <= se (percentualFaltas <= 0,75) então ... Operadores Lógicos • Operador NÃO (not) Corresponde à negação ou NÃO lógico. Trata-se de um operador unário, ou seja, requer um único operando. Sendo a uma expressão booleana, NÃO(a) é a expressão cujo valor lógico é o oposto daquele de a. • Se a avaliação do valor lógico de a for verdadeira, então NÃO(a) é falso; • Se a avaliação do valor lógico de a for falsa, então NÃO(A) é verdadeiro. Operadores Lógicos Operador NÃO Usos se NÃO(a = b) então ... Tem a mesma denotação que: se (a <> b) então ... Operadores Lógicos • Operador E (and) Corresponde ao E lógico. Sendo duas expressões booleanas, a e b, a expressão a E b é verdade apenas quando tanto a quanto b são verdadeiras. • Para quaisquer outros valores de a e b, o resultado é falso. Trata-se de um operador binário, ou seja, requer dois operandos. Operadores Lógicos • Operador E (and) Usos se (a E b) então ... se ((media >= 70) E (freq >= 0,75)) então ... se ((idade > 65) E (sexo = ‘M’)) então ... Operadores Lógicos • Operador OU (or) Corresponde ao OU lógico. Sendo duas expressões booleanas, a e b, a expressão a OU b é verdade apenas quando ao menos uma das preposições a e b é verdadeira. • O resultado é falso somente quando a e b (simultaneamente) são falsos. Trata-se de um operador binário, ou seja, requer dois operandos. Operadores Lógicos • Operador OU (or) Usos se (a OU b) então ... se ((salario < minimo) OU (faltas < 2)) então ... se ((idade > 65) OU (sexo = ‘M’)) então ... O Problema: Conforme a média calculada, exibir a situação do aluno: aprovado, reprovado ou em exame. • Um único se-senão torna-se insuficiente para resolver este tipo de problema, pois permite somente as alternativas de caso verdadeiro e caso contrário. Aninhamento de estruturas condicionais se (media >= 70) então escreva(“Aprovado.”); senão se (media ,>= 50) então escreva(“Em exame.”); senão escreva(“Reprovado.”); fim-se; fim-se; fim; fim algoritmo.
Compartilhar