Mudanças entre as edições de "AULA 3 - Programação 1 - Graduação"
(Criou página com '===Objetivos === O aluno deverá saber utilizar comandos e expressões em pseudo-código e fluxogramas usando: *Operadores Relacionais e Lógicos *Comandos de Decisão *Comando...') |
|||
(19 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
===Objetivos === | ===Objetivos === | ||
− | + | ---- | |
O aluno deverá saber utilizar comandos e expressões em pseudo-código e fluxogramas usando: | O aluno deverá saber utilizar comandos e expressões em pseudo-código e fluxogramas usando: | ||
− | *Operadores Relacionais e Lógicos | + | *Operadores Relacionais e Lógicos. |
− | *Comandos de Decisão | + | *Comandos de Decisão. |
− | *Comandos de decisão com aninhamento | + | *Comandos de decisão com aninhamento. |
===Expressões com operadores relacionais=== | ===Expressões com operadores relacionais=== | ||
− | + | ---- | |
Na aula anterior estudamos como construir expressões usando operadores aritméticos e o operador de atribuição. Vamos continuar este tópico aumentando o poder das expressões através dos operadores relacionais e lógicos. | Na aula anterior estudamos como construir expressões usando operadores aritméticos e o operador de atribuição. Vamos continuar este tópico aumentando o poder das expressões através dos operadores relacionais e lógicos. | ||
Linha 31: | Linha 31: | ||
|- | |- | ||
|== | |== | ||
− | |igual a | + | |igual a |
|- | |- | ||
|!= | |!= | ||
− | |diferente de | + | |diferente de |
− | } | + | |} |
+ | |||
Note que com operadores lógicos podemos construir expressões tais como indicado no exemplo abaixo: | Note que com operadores lógicos podemos construir expressões tais como indicado no exemplo abaixo: | ||
Linha 59: | Linha 60: | ||
Exercício: Fazer um fluxograma para o algoritmo acima. | Exercício: Fazer um fluxograma para o algoritmo acima. | ||
− | ===Operadores | + | ===Operadores lógicos=== |
+ | ---- | ||
+ | É possível construir expressões ainda mais completas usando os operadores lógicos, apresentados abaixo: | ||
− | |||
− | {| border="1" cellpadding=" | + | {| border="1" cellpadding="5" cellspacing="0" |
− | + | ! style="background: #ffdead;" | Operador | |
− | + | ! style="background: #ffdead;" | Significado | |
− | + | |- | |
− | + | |&& | |
− | + | |AND (E) | |
− | + | |- | |
− | + | |<nowiki>||</nowiki> | |
− | + | |OR (OU) | |
− | + | |- | |
− | + | |! | |
− | + | |NOT (NÃO) | |
|} | |} | ||
Linha 104: | Linha 106: | ||
− | + | {| border="1" cellpadding="5" cellspacing="0" | |
− | {| | ||
|+ Expressões com operadores relacionais e lógicos | |+ Expressões com operadores relacionais e lógicos | ||
− | ! Expressão | + | ! style="background: #ffdead;" | Expressão |
− | ! A | + | ! style="background: #ffdead;" | A |
− | ! B | + | ! style="background: #ffdead;" | B |
− | ! C | + | ! style="background: #ffdead;" | C |
− | ! D | + | ! style="background: #ffdead;" | D |
− | ! Valor | + | ! style="background: #ffdead;" | Valor |
|- | |- | ||
| (A>B) E (C>D) | | (A>B) E (C>D) | ||
Linha 158: | Linha 159: | ||
===Sheldon e o fluxograma da amizade=== | ===Sheldon e o fluxograma da amizade=== | ||
+ | ---- | ||
+ | Vamos observar o fluxograma da amizade do Sheldom da série de TV "Big Bang Theory" | ||
− | |||
<center>{{#ev:youtube|VAX4jLlNo-Q#!}} </center> | <center>{{#ev:youtube|VAX4jLlNo-Q#!}} </center> | ||
+ | |||
Observe que a caixa no formato de LOSANGO permite testar uma condição: é uma caixa de decisão. | Observe que a caixa no formato de LOSANGO permite testar uma condição: é uma caixa de decisão. | ||
===Controle do Fluxo de Execução: Estruturas de Decisão=== | ===Controle do Fluxo de Execução: Estruturas de Decisão=== | ||
− | + | ---- | |
Você deve ter observado que instruções simples (retângulo) possuem uma entrada e uma saída indicando que o fluxo de saída está claramente determinado. | Você deve ter observado que instruções simples (retângulo) possuem uma entrada e uma saída indicando que o fluxo de saída está claramente determinado. | ||
Linha 209: | Linha 212: | ||
<code> | <code> | ||
− | ALGORITMO | + | ALGORITMO triangulo |
VARIAVEIS | VARIAVEIS | ||
lado1,lado2,lado3: real | lado1,lado2,lado3: real | ||
Linha 233: | Linha 236: | ||
===Exercícios=== | ===Exercícios=== | ||
− | + | ---- | |
EXERCÍCIO 1: | EXERCÍCIO 1: | ||
Linha 253: | Linha 256: | ||
Implementar em pseudocódigo um algoritmo que lé dois números reais e imprime uma mensagem dizendo que a média entre estes dois números é maior que 5. | Implementar em pseudocódigo um algoritmo que lé dois números reais e imprime uma mensagem dizendo que a média entre estes dois números é maior que 5. | ||
+ | |||
+ | |||
+ | |||
+ | {| border="1" cellpadding="5" cellspacing="0" | ||
+ | ! style="background: #cdc5bf;" | [[AULA 1 - Programação 1 - Graduação | << ]] | ||
+ | ! style="background: #cdc5bf;" | AULA 3 | ||
+ | ! style="background: #cdc5bf;" | [[AULA 4 - Programação 1 - Graduação | >> ]] | ||
+ | |} |
Edição atual tal como às 09h36min de 11 de março de 2015
Objetivos
O aluno deverá saber utilizar comandos e expressões em pseudo-código e fluxogramas usando:
- Operadores Relacionais e Lógicos.
- Comandos de Decisão.
- Comandos de decisão com aninhamento.
Expressões com operadores relacionais
Na aula anterior estudamos como construir expressões usando operadores aritméticos e o operador de atribuição. Vamos continuar este tópico aumentando o poder das expressões através dos operadores relacionais e lógicos.
Os operadores relacionais permitem realizar comparações entre dois operandos. Os operadores são os seguintes:
Operador | Significado |
---|---|
> | maior que |
>= | maior ou igual que |
< | menor que |
<= | menor ou igual que |
== | igual a |
!= | diferente de |
Note que com operadores lógicos podemos construir expressões tais como indicado no exemplo abaixo:
Exemplo: O algoritmo abaixo lê dois número inteiros para dentro das variáveis A e B e atribue à variável X o resultado da comparação do primeiro com o segundo. Observe que a variável X é do tipo booleano.
ALGORITMO exemplo
VARIÁVEIS:
A: inteiro
B: inteiro
X: booleana
INÍCIO
LER A
LER B
X = A>B
MOSTRAR "A condição A>B é ", X
FIM
</syntaxhighlight>
Exercício: Fazer um fluxograma para o algoritmo acima.
Operadores lógicos
É possível construir expressões ainda mais completas usando os operadores lógicos, apresentados abaixo:
Operador
Significado
&&
AND (E)
||
OR (OU)
!
NOT (NÃO)
Uma expressão lógica tem como resultado da sua avaliação um valor VERDADEIRO ou FALSO. Para manter a coerência com a linguagem C qualquer expressão que resultar em 0 será considerada FALSA e se resultar em algo diferente de 0 será considerada verdadeira.
Exemplo: Considere uma variação do exercício anterior onde se compara 3 números inteiros: o primeiro com o segundo e o primeiro com o terceiro.
ALGORITMO exemplo
VARIÁVEIS:
A: inteiro
B: inteiro
C: inteiro
X: booleana
INÍCIO
LER A
LER B
LER C
X = (A>B) E (A < C)
MOSTRAR "A expressão A>B E A<C é ", X
FIM
</syntaxhighlight>
EXERCÍCIO
Para cada uma das expressões abaixo determine se a expressão é verdadeira ou falsa.
Expressões com operadores relacionais e lógicos
Expressão
A
B
C
D
Valor
(A>B) E (C>D)
10
8
20
15
(A>B) E (C>D)
10
12
15
15
(A<=B) OU (C>10)
5
5
3
5
A<=B OU ((C==D) E (D<A))
3
10
4
4
(A==B) OU (C==D)
3
1
4
4
((A==B) E (B<30)) OU (C>=D)
5
5
10
5
Sheldon e o fluxograma da amizade
Vamos observar o fluxograma da amizade do Sheldom da série de TV "Big Bang Theory"
EmbedVideo received the bad id "VAX4jLlNo-Q#!" for the service "youtube".
Observe que a caixa no formato de LOSANGO permite testar uma condição: é uma caixa de decisão.
Controle do Fluxo de Execução: Estruturas de Decisão
Você deve ter observado que instruções simples (retângulo) possuem uma entrada e uma saída indicando que o fluxo de saída está claramente determinado.
Em algumas situações é necessário realizar algum teste sobre uma expressão e neste caso a execução é condicional. O teste da expressão pode resultar em VERDADEIRO e neste caso uma sequência de ações é realizada. Se o resultado for FALSO, uma outra sequência é realizada.
Seja o problema:
Problema do Controle de Acesso
PROBLEMA: Controlar o acesso a uma porta usando uma senha pré-configurada no sistema.
DADO DE ENTRADA: SENHA (variável alfanumérica)
DADO DE SAÌDA: porta aberta (simulado com msg "PORTA ABERTA") ou mensagem de "SENHA NAO CONFERE"
VARIÁVEIS: SENHA (tiipo alfanumérica)
Algoritmo usando Fluxograma
Algoritmo usando Pseudo-código
ALGORITMO ControleAcesso
VARIÁVEIS
SENHA: alfanumérica
INICIO
LER SENHA
SE SENHA=="alfa" ENTÃO
"Abrir a porta"
SENÃO
"Senha não confere"
FIMSE
IR PARA INICIO
FIM
</syntaxhighlight>
Aninhamento de estruturas de decisão
Note que é possível aninhar estruturas de decisão. Seja o exemplo ebaico que lê três lados de um possível triângulo e imprime se NÂO é um triângulo, ou, caso seja, imprime se é EQUILÁTERO, ISÓSCELES ou ESCALENO.
ALGORITMO triangulo
VARIAVEIS
lado1,lado2,lado3: real
INICIO
Ler lado1
Ler lado2
Ler lado3
SE lado1>(lado2+lado3) OU lado2>(lado1+lado3) OU lado3>(lado1+lado2) ENTÃO
MOSTRAR "não é triângulo"
SENÃO
SE lado1==lado2 E lado1==lado3 ENTÃO
MOSTRAR "equilatero"
SENAO
SE lado1==lado2 OU lado1==lado3 OU lado2==lado3 ENTÃO
MOSTRAR "isósceles"
SENÃO
MOSTRAR "escaleno"
FIMSE
FIMSE
FIMSE
FIM
</syntaxhighlight>
Exercícios
EXERCÍCIO 1:
Elaborar um fluxograma para o o problema de controle de acesso prevendo um procedimento para modificar a senha de acesso. Neste caso a senha deverá ser armazenada em uma variável.
Para tanto, assuma a existência de uma senha de administrador fixa (por exemplo, "ADMIN"). Se a senha do administrador for fornecida, mostrar uma mensagem de ENTRE COM A NOVA SENHA de senha.
EXERCÍCIO 2:
Inserir a noção de UserID. Para abrir a porta o usuário entra com o UserId e com
a senha. De fábrica o UserId é "alfa" e a senha "alfa". O UserId do admin é "admin" e a senha "beta".
EXERCÍCIO 3:
Inserir a noção de bloqueio do usuário. Se o usuário comum tentar 3 vezes e errar ele é bloqueado. A mudança de UserId deve desbloquear o usuário.
EXERCÍCIO 4:
Implementar em pseudocódigo um algoritmo que lé dois números reais e imprime uma mensagem dizendo que a média entre estes dois números é maior que 5.
<<
AULA 3
>>