Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

CCE0067 - LÓGICA DE 
PROGRAMAÇÃO 
Pablo Jabor 
Pablo.jabor@estacio.br 
Conceitos sobre organização de 
computadores 
• Componentes funcionais básicos e as formas 
de representação/armazenamento de 
informações, além do funcionamento básico 
dos sistemas de computação. 
Funcionamento básico dos sistemas 
de computação 
• Os computadores executam quatro funções 
distintas sendo elas: 
• (a) Entrada; 
• (b) Processamento; 
• (c) Armazenamento/recuperação de dados; 
• (d) Saída. 
Modelo de Von Neumann (1945) 
Para que um computador trabalhe é 
necessário: 
– Inserção de informações (entrada). 
– Seguindo as instruções fornecidas pelos programas, o 
computador processa os dados oriundos da entrada 
(processamento) 
– Armazenando-os logo em seguida para posterior 
utilização. 
– As informações produzidas ficam disponíveis para 
utilização (saída) e a menos que se deseje as informar 
e produzir novamente, elas devem ser armazenadas 
em um dispositivo de armazenamento estável. 
Bits, bytes & Cia. 
• Todas as informações manipuladas pelos 
computadores devem ser entendidas pela 
máquina. 
• Computador = dispositivo eletrônico 
• Como representar todos os símbolos da 
linguagem humana?? 
– Seriam necessárias mais de 100 diferentes 
voltagens (corrente). 
Bits, bytes & Cia. 
• Computador = dispositivo eletrônico BINÁRIO 
 
• Trabalham apenas com dois valores: 
(Sim/Não, Verdadeiro/ Falso, 
Aberto/Fechado,...), tanto na construção de 
componentes quanto como base para a 
escrita de programas (programação). 
 
Bits, bytes & Cia. 
• Convencionou-se chamar os dois níveis 
elétricos de 0 e 1 sendo que cada algarismo da 
representação numérica binária é 
denominado de bit, correspondente a 
abreviatura de binary digit (dígito binário). 
Bits, bytes & Cia. 
• 1 bit isolado pode-se representar muito pouca 
coisa (apenas 2 valores); 
– A menor informação inteligível aos seres humanos 
é o caractere; 
• Byte - agrupamentos de bits para representar 
caracteres; 
• byte é uma seqüência ordenada de 8 bits; 
Bits, bytes & Cia. 
• Qualquer seqüência binária pode ser 
convertida para um número na base decimal, 
sendo utilizado este valor para encontrar o 
caractere correspondente, utilizando uma 
tabela de caracteres. 
• As memórias geralmente armazenam e 
recuperam informações byte a byte, ou ainda 
em múltiplos de bytes. 
Bits, bytes & Cia. 
• Os dispositivos de memória atuais utilizam 
agrupamentos de bytes para representar sua 
capacidade de armazenamento. 
• Uma vez que tais agrupamentos são oriundos 
de uma base binária o fator de multiplicação 
utilizado é 1024 (210). 
Bits, bytes & Cia. 
Agrupamento Símbolo Representa 
Byte B 8 bits 
Kilo K 1024 Bbytes 
Mega M 1024 KBytes 
Giga G 1024 MBytes 
Tera T 1024 GBytes 
Peta P 1024 TBytes 
Registradores e memória 
• Dispositivos que armazenam valores temporários 
principalmente dentro dos processadores. 
• Como a CPU não consegue manter todos os 
valores manipulados por um programa apenas 
em registradores, necessita de uma memória 
para o armazenamento das informações. 
• Memória = conjunto de células com o mesmo 
número de bits, cada célula é identificada por 
um número único que é seu endereço. 
CPU 
• O processador (CPU) é o componente vital de 
um sistema de computação, responsável pela 
realização das operações de processamento e 
de controle durante a execução de um 
programa. 
• Um programa, para ser efetivamente 
executado por um processador, deve ser 
constituído de uma série de instruções (em 
linguagem de máquina). 
CPU - Função Processamento 
• Processar o dado é executar com ele uma ação 
que produza algum tipo de resultado. 
• ATIVIDADE-FIM do sistema computacional: 
– Ele existe para processar dados. 
CPU - Função Processamento 
– Entre as tarefas comuns a esta função podem ser 
citadas as que realizam: 
• Operações aritméticas: somar, subtrair, multiplicar, 
dividir, ...; 
• Operações lógicas: and, or, not,... ; 
• Movimentação de dados: memória-CPU, CPU-
memória, registrador-registrador, ...; 
• Desvios: alteração da seqüência de execução das 
instruções; 
• Operações de entrada ou saída; 
 
CPU - Função de Controle 
• A área de controle de uma CPU é a parte funcional 
que realiza as atividades de: 
– Busca da instrução que será executada, armazenando-a 
em um registrador especialmente projetado para esta 
atividade (RI); 
– Interpretação das ações a serem desencadeadas com a 
execução da instrução (se é uma soma ou subtração, 
por exemplo, como realizá-las); 
– Geração de sinais de controle apropriados para 
realização das atividades requeridas para a execução da 
instrução identificada. 
Memória 
• O processador apenas recebe dados e os 
processa segundo alguma pré-programação, 
logo após devolvendo-os, não importando de 
onde vem e para onde vão. 
• Os programas a serem executados e os dados 
a serem processados (inclusive os que já o 
foram) ficam na memória. 
tipos de memória: 
• ROM (Read-Only Memory): Só permitem a 
leitura de dados e são lentas; em 
compensação não perdem seu conteúdo 
quando desligadas; 
• RAM (Random Access Memory): São rápidas, 
permitem leitura e escrita, porém, seu 
conteúdo é perdido quando são desligadas 
Unidades de discos e discos 
removíveis 
• Como a memória RAM se apaga quando 
desligamos o micro, devemos ter outros meios 
de armazenar dados e programas, de forma 
que eles possam ser utilizados no futuro 
Unidades de discos e discos 
removíveis 
• Dados e programas devem estar armazenados 
em memória secundária, geralmente discos 
magnéticos (disquetes e H.D.) ou ainda meios 
óticos, disponíveis em CD ou DVD. Somente 
assim, com as informações armazenadas em 
um meio não-volátil poderão ser recuperadas. 
Memórias Flash – Pendrives e Cartões 
de Memória 
• Flash: as memórias Flash são consideradas um 
tipo especial de memoria ROM. 
– EEPROMs ("Electrically Erasable Programmable 
Read-Only Memory"): O conteúdo pode ser apagado 
aplicando-se uma voltagem específica aos pinos de 
programação. Portanto, pode ter seu conteúdo 
modificado eletricamente. 
• São duráveis e podem guardar um volume 
elevado de dados. 
http://www.pendriveprice.in/chili-pepper-shaped-usb-pen-drive-flash-memory/chili-pepper-pen-drive/
Entrada e Saída 
• Para que se possa desfrutar da rapidez e 
flexibilidade de um computador, não basta saber 
que ele pode armazenar na memória os 
programas e dados que desejamos processar e 
nem que ele pode executar mais de um milhão 
de instruções por segundo. 
• Como inserir no sistema os dados e programas? 
• Como obter os resultados dos processamentos? 
Entrada e Saída 
• Para realizar estas tarefas é necessário um 
meio qualquer que faça esta comunicação 
homem-máquina. 
• também é preciso comunicação no sentido 
contrário (máquina-homem). 
 
Entrada e Saída 
• Os dispositivos responsáveis pela entrada/saída 
são também denominados de periféricos. 
 
Lógica e Lógica de Programação 
• Lógica: Ciência que estuda as formas do pensamento 
• Sempre que pensamos a lógica nos acompanha 
– Um bebê sabe que precisa chorar para receber atenção 
– Um casal com 3 filhos notou que um vaso estava quebrado, enquanto 
2 das crianças estavam na escola. Quem é o culpado? O 
pensamento (e a lógica) pode ser expresso através 
da palavra falada ou da palavra escrita 
• Um mesmo pensamento pode ser expresso em 
inúmeros idiomas, tanto oralmente quanto por 
escrito 
• Vamos estudar uma forma única de representação 
 
Algoritmo 
• É o pensamento descrito como uma sequência de 
passos que visam atingir um objetivo 
• Algoritmos no dia-a-dia: Receita de bolo, orientação 
para se chegar em algum endereço 
• Qual sua importância na programação? 
– Representar o raciocínio, independentemente de detalhes computacionais, 
que podem ser acrescentados mais tarde 
– Focalizar primeiro na resolução algorítmica do problema, possibilitando depois 
codificá-la em qualquerlinguagem 
 
Exemplos 
• Trocar uma lâmpada 
– Sequência 
 
Algoritmo 1.1: 
– pegar uma escada; 
– posicionar a escada embaixo da lâmpada; 
– buscar uma lâmpada nova; 
– subir na escada; 
– retirar lâmpada velha; 
– colocar lâmpada nova. 
 
Exemplos 
• Trocar uma lâmpada SE estiver queimada 
– Seleção (Decisão) 
 
Algoritmo 1.2: 
– pegar uma escada; 
– posicionar a escada embaixo da lâmpada; 
– buscar uma lâmpada nova; 
– acionar o interruptor; 
– se a lâmpada não acender, então 
• subir na escada; 
• retirar lâmpada queimada; 
• colocar lâmpada nova. 
 
• Trocar uma lâmpada SE estiver queimada (v. 2) 
– Seleção (Decisão) 
 
Algoritmo 1.3: Evita buscar a escada e lâmpada 
– acionar o interruptor; 
– se a lâmpada não acender, então 
• pegar uma escada; 
• posicionar a escada embaixo da lâmpada; 
• buscar uma lâmpada nova; 
• subir na escada; 
• retirar lâmpada queimada; 
• colocar lâmpada nova. 
 
• Trocar uma lâmpada SE estiver queimada (v. 3) 
– Seleção (Decisão) 
 
Algoritmo 1.4: Re-teste depois da troca 
 acionar o interruptor; 
 se a lâmpada não acender, então 
 pegar uma escada; 
 posicionar a escada embaixo da lâmpada; 
 buscar uma lâmpada nova; 
 subir na escada; 
 retirar lâmpada queimada; 
 colocar lâmpada nova; 
 acionar o interruptor; 
 se a lâmpada não acender, então 
 retirar lâmpada queimada; 
 colocar lâmpada nova; 
 se a lâmpada não acender, então 
 . . . 
• Trocar uma lâmpada SE estiver queimada (v. 4) 
– Repetição 
 
Algoritmo 1.5: Re-teste depois da troca (por repetição) 
 acionar o interruptor; 
 se a lâmpada não acender, então 
 pegar uma escada; 
 posicionar a escada embaixo da lâmpada; 
 buscar uma lâmpada nova; 
 subir na escada; 
 retirar lâmpada queimada; 
 colocar lâmpada nova; 
 acionar o interruptor; 
 enquanto a lâmpada não acender, faça 
 retirar lâmpada queimada; 
 colocar lâmpada nova; 
 acionar o interruptor; 
 
• Trocar 10 lâmpadas SE estiverem queimadas 
– Repetição 
Algoritmo 1.6: Escrever 10 vezes 
 acionar o interruptor do primeiro soquete; 
 se a lâmpada não acender, então 
 pegar uma escada; 
 posicionar a escada embaixo da lâmpada; 
 buscar uma lâmpada nova; 
 subir na escada; 
 retirar lâmpada queimada; 
 colocar lâmpada nova; 
 acionar o interruptor; 
 enquanto a lâmpada não acender, faça 
 retirar lâmpada queimada; 
 colocar lâmpada nova; 
 acionar o interruptor; 
 acionar o interruptor do segundo soquete; 
 . . . 
• Trocar 10 lâmpadas SE estiverem queimadas 
(v. 2) 
– Repetição 
Algoritmo 1.7: Contagem de trocas 
 
 ir até o interruptor do primeiro soquete; 
 enquanto a quantidade de soquetes testados for menor que 10, faça 
 acionar o interruptor; 
 se a lâmpada não acender, então 
 pegar uma escada; 
 posicionar a escada embaixo da lâmpada; 
 buscar uma lâmpada nova; 
 subir na escada; 
 retirar lâmpada queimada; 
 colocar lâmpada nova; 
 acionar o interruptor; 
 enquanto a lâmpada não acender, faça 
 retirar lâmpada queimada; 
 colocar lâmpada nova; 
 acionar o interruptor; 
 ir até o interruptor do próximo soquete; 
Formas de Representação 
• Algoritmo 1.7 em Fluxograma 
 início 
ir para o primeiro soquete 
soquetes 
restantes < 10 
acionar o interruptor 
pegar uma escada 
posicionar escada 
buscar lâmpada nova 
acionar o interruptor 
não 
acendeu? 
subir na escada 
retirar a lâmpada queimada 
colocar lâmpada nova 
acionar o interruptor 
não 
acendeu? 
retirar a lâmpada queimada 
colocar lâmpada nova 
ir ao próximo soquete 
fim 
F 
F 
F 
V 
V 
V 
Formas de Representação 
• Algoritmo 1.7 em Chapin 
 
ir para o primeiro soquete
soquetes testados < 10
acionar o interruptor
pegar uma escada
colocar a escada embaixo do soquete
buscar lâmpada nova
acionar o interruptor
subir na escada
retirar lâmpada queimada
colocar lâmpada nova
lâmpada não acendeu
retirar lâmpada queimada
colocar lâmpada nova
ir para o próximo soquete
lâmpada não acendeu
Formas de Representação 
• Gráficas (Fluxograma e Chapin) 
– Características 
• Maior clareza no fluxo de execução 
• Linguagem visual 
• Requer conhecimento de convenções gráficas 
 
• Textuais (Português Estruturado) 
– Apresenta mais vantagens, desde que se tomem alguns cuidados: 
• Riqueza gramatical de nossa língua pode levar a 
ambiguidades 
• A frase “O pregador foi grampeado durante o conserto” tem 
8 sentidos diferentes quando pronunciada 
• Para resolver, utilizaremos um conjunto restrito de regras, 
conhecido como Português Estruturado 
 
Tipos Primitivos 
– São os tipos básicos de informação dos algoritmos 
• Inteiro: informação pertencente ao conjunto dos números inteiros 
relativos (positiva ou negativa) 
– Ele tem 15 irmãos 
• Real: informação pertencente ao conjunto dos números reais 
– Meu saldo bancário é de $ 215,20 
• Caracter: informação alfanumérica (caracteres alfabéticos, numéricos e 
especiais) 
– Constava na prova: “Use somente caneta!” 
• Lógico: informação biestável (admite apenas 2 valores) 
– A porta pode estar aberta ou fechada 
 
Tipos Primitivos 
• Determine qual é o tipo de informação presente nas 
sentenças 
– A placa “Pare!” tinha 2 furos de bala 
– Josefina subiu 5 degraus para pegar uma “maçã” boa 
– Alberta levou 3,5 horas para chegar ao hospital 
– Astrogilda pintou em sua camisa: “Preserve o meio ambiente”, e ficou 
devendo R$ 100,59 ao vendedor de tintas 
 
Constantes 
– São valores que não sofrem nenhuma variação no decorrer do tempo 
– Exemplos: 
• o valor de PI 
• a velocidade da luz 
• 5 
• “Não fume” 
 
Variáveis 
• São valores que podem sofrer alteração no decorrer do tempo 
 
• Exemplos 
– Cotação do dólar 
– Peso de uma pessoa 
– Preço da gasolina 
Variáveis 
• São como gavetas que podem receber diversos tipos de objetos 
– Identificadores: São os nomes escolhidos para as informações variáveis 
• Deve iniciar por caracter alfabético 
• Pode ser seguido por mais caracteres alfabéticos ou numéricos 
• Não devem ser usados caracteres especiais 
– Declaração: processo de reservar e etiquetar gavetas 
 
Identificador 
 
 
letra 
letra 
dígito 
identificador 
Identificadore válidos: Alpha, X, BJ153, K7, ABC 
Identificadores inválidos: 5X, E(13), A:B, X-Y, P&AA 
Declaração de Variáveis 
tipo identificador 
Declaração de 
variáveis : ; 
, 
tipo inteiro 
real 
caracter 
lógico 
Exemplos 
 
inteiro: X; 
caracter: Nome; 
real: Peso, Dolar; 
lógico: Resposta; 
Exercício 
• Supondo que as variáveis NB, NA, NMat e SX 
sejam utilizadas para armazenar a nota do(a) 
aluno(a), o nome do(a) aluno(a), o número de 
matrícula e o sexo, declare-as corretamente, 
associando o tipo primitivo adequado ao dado 
que será armazenado 
Exercício 
 1. Supondo que as variáveis NB, NA, NMat e SX 
sejam utilizadas para armazenar a nota do(a) 
aluno(a), o nome do(a) aluno(a), o número de 
matrícula e o sexo, declare-as corretamente, 
associando o tipo primitivo adequado ao dado 
que será armazenado 
 
 real: NB; 
 caracter: NA; 
 inteiro: Nmat; 
 lógico: SX; 
Expressões 
Operador Função Exemplos 
+ Adição 2 + 3, X + Y 
- Subtração 4 - 2, N – M 
* Multiplicação 3 * 4, A * B 
/ Divisão 10 / 2, C / D 
pot(x,y) Potenciação (x elevado a y) pot(2, 3) 
rad(x) Raiz quadrada (de x) rad(9) 
Mod Resto da divisão 9 mod 4 resulta 1 
Div Quociente da divisão inteira 9 div 4 resulta 2 
Expressões Aritméticas 
Operadores aritméticos: utilizados para a realização de cálculos 
matemáticos 
Expressões 
Expressões Lógicas 
Operadores relacionais: utilizados para a estabelecer relação de 
comparação entre valores 
Operador Função Exemplos 
= Igual a 3 = 3, X = Y 
> Maior que 5 > 4, X > Y 
< Menor que 3 < 6, X < Y 
>= Maior ou igual a 5 >= 3, X >= Y 
<= Menor ou igual a 3 <= 5, X <= Y 
<> Diferente de 8<> 9, X <> Y 
Exercício 
2. Sejam A, B e C variáveis de tipo inteiro, com 
valores iguais a 5, 10 e –8, respectivamente, e 
uma variável real D, com valor de 1,5, quais os 
resultados das expressões aritméticas a seguir? 
 
(a) ((2 * A) mod 3) – C 
(b) rad(-2 * C) div 4 
(c) ((20 div 3) div 3) + pot(8,2)/2 
(d) ((30 mod 4) * pot(3,3)) * -1 
(e) rad(pot(A,(B/A))) + C * D 
 
Atribuição 
• Processo de associar um valor a uma variável (guardar um 
objeto na gaveta) 
– O tipo de dado deve ser compatível com a variável (objeto precisa 
caber na gaveta) 
– Cada variável pode receber apenas um valor. O segundo valor 
sobrepõe-se ao anterior 
– Podem ser atribuídos: 
• Constantes 
• Variáveis 
• Expressões (aritméticas, relacionais ou lógicas) 
– Comando de atribuição :  
 
Atribuição 
atribuição identificador expressão 
 ; 
expressão expressão aritmética 
expressão lógica 
expressão literal 
Ex.: B  7; A  B; X  B + (13 div 5); 
Entrada e Saída 
• Algoritmos objetivam transformar informações 
• Algoritmo = Entrada + Processamento + Saída 
• Entrada: obtenção de dados provenientes do meio externo 
– Comando: leia 
– Exemplos: 
• leia (X); 
• leia (A, NOTA); 
 entrada de 
dados 
leia ( identificador ) ; 
, 
Entrada e Saída 
• Saída: entrega dos resultados ao meio externo 
– Comando: escreva 
– Exemplos: 
• escreva (X); 
• escreva (B, MEDIA, 2+2); 
• escreva (“Você pesa ”, P, “ quilos”); 
 
saída de 
dados 
escreva ( identificador 
expressão 
) ; 
, 
Blocos 
• Um Bloco é um conjunto de ações com uma 
função definida 
• O algoritmo pode ser visto como um Bloco 
• O algoritmo pode conter vários Blocos 
 
 
 
• Exemplo: 
início // início do bloco (algoritmo) 
 // declaração de variáveis 
 // sequência de ações (eventualmente mais blocos) 
fim. // fim do bloco (algoritmo) 
 
 
blocos início identificador ; 
; 
fim 
Exercício 
Utilizando o seguinte trecho de algoritmo 
. 
. 
inteiro: X, Y; 
real: Z; 
leia (X); 
escreva (X, “elevado ao cubo = ”, pot(X,3)); 
leia (Y); 
escreva (X + Y); 
Z  X/Y; 
escreva (Z); 
Z  Z + 1; 
X  (Y + X) mod 2; 
escreva (X); 
. 
. 
explique o que está acontecendo em cada linha e qual é o resultado de cada ação 
 
inteiro: X, Y; 
 // declaração de duas variáveis inteiras identificadas por X e Y 
real: Z; 
 // declaração de uma variável real identificada por Z 
leia (X); 
 // entrada de dados de um valor inteiro em X 
 // supondo que seja fornecido 3, X valerá 3 
escreva (X, “elevado ao cubo = ”, pot(X,3)); 
 // saída de dados: 
 // valor de X, seqüência de caracteres, resultado da função pot 
 // resultado do escreva: 3 elevado ao cubo = 27 
leia (Y); 
 // entrada de dados de um valor inteiro em Y 
 // supondo que seja fornecido 2, Y valerá 2 
escreva (X + Y); 
 // saída de dados: 5 
Z  X/Y; 
 // comando de atribuição, Z  3/2; ou seja, Z valerá 1,5 
escreva (Z); 
 // saída de dados: 1,5 
 
Z  Z + 1; 
 // comando de atribuição incrementando o atual valor de Z 
de 1 
 // Z  0,5 + 1; ou seja, Z valerá 1,5 
X  (Y + X) mod 2; 
 // comando de atribuição com uma expressão aritmética 
 // X  (Y + X) mod 2; 
 // X  (2 + 3) mod 2; 
 // X  (5) mod 2; ou seja, X valerá 1 
escreva (X); 
 // saída de dados: 1 
 
Estruturas de Controle 
• Estrutura Sequencial 
– O Fluxo de Controle segue a mesma sequência linear da nossa escrita, 
ou seja: 
• De cima para baixo; 
• Da esquerda para direita 
– Cada ação é seguida de um ; 
• Objetiva separar uma ação da outra 
• Indica que a próxima ação da sequência deve ser executada 
 
Estrutura Sequêncial 
Algoritmo 3.1 – Modelo geral 
 início 
 
 // declaração de variáveis 
 
 // corpo do algoritmo 
 ação 1; 
 ação 2; 
 ação 3; 
 . 
 . 
 . 
 ação n; 
 
 fim. // fim do algoritmo 
 
Estrutura Sequêncial 
 início 
 // declaração de variáveis 
 real: N1, N2, N3, N4, // notas bimestrais 
 MA; // média anual 
 // entrada de dados 
 leia (N1, N2, N3, N4); 
 // processamento 
 MA  (N1 + N2 + N3 + N4) / 4; 
 // saída de dados 
 escreva (MA); 
 fim. 
 
Algoritmo 3.2 - Média Aritmética 
Estruturas de Seleção 
• São aquelas que permitem alterar o Fluxo de 
Execução, de forma a selecionar qual parte deve 
ser executada 
• Essa “decisão” de execução é tomada a partir de 
uma condição, que pode resultar apenas em 
Verdade ou Falsidade 
• Uma condição é representada por expressões 
relacionais ou lógicas 
• As estruturas de seleção podem ser classificadas 
em simples, compostas ou encadeadas 
 
Seleção Simples 
• Quando a <condição> for verdadeira o “bloco 
verdade” é executado 
• Quando a <condição> for falsa o “bloco 
verdade” não é executado 
 
 se <condição> então 
 início // início do bloco verdade 
 comando 1; 
 comando 2; 
 ... 
 comando n; 
 fim; // fim do bloco verdade 
 fimse; 
Seleção Simples 
início 
 // declaração de variáveis 
 real: N1, N2, N3, N4, // notas bimestrais 
 MA; // média anual 
 // entrada de dados 
 leia (N1, N2, N3, N4); 
 // processamento 
 MA  (N1 + N2 + N3 + N4) / 4; 
 // saída de dados 
 escreva (MA); 
 se (MA >= 7) então 
 escreva (“Aluno Aprovado !”); 
 fimse; 
 fim. 
 
Algoritmo 3.3 - Média Aritmética com Aprovação 
Seleção Composta 
• Quando a <condição> for verdadeira o “bloco 
verdade” é executado 
• Quando a <condição> for falsa o “bloco falsidade” 
é executado 
 
 se <condição> então 
 início // início do bloco verdade 
 comando 1; 
 comando n; 
 fim; // fim do bloco verdade 
 senão 
 início // início do bloco falsidade 
 comando 1; 
 comando n; 
 fim; // fim do bloco falsidade 
 fimse; 
Seleção Composta 
 início 
 // declaração de variáveis 
 real: N1, N2, N3, N4, // notas bimestrais 
 MA; // média anual 
 leia (N1, N2, N3, N4); 
 MA  (N1 + N2 + N3 + N4) / 4; 
 escreva (MA); 
 se (MA >= 7) então 
 início 
 escreva (“Aluno Aprovado !”); 
 escreva (“Parabéns !”); 
 fim; 
 senão 
 início 
 escreva (“Aluno Reprovado !”); 
 escreva (“Estude mais !”); 
 fim; 
 fimse; 
 fim. 
 
Algoritmo 3.4 - Média Aritmética com aprovação e reprovação 
Seleção Encadeada 
• Ocorre quando uma seleção tem como ação uma 
outra seleção 
• Uma seleção encadeada pode ser: 
– Heterogênea: Quando não é possível identificar 
padrão de comportamento 
– Homogênea: Quando é possível identificar padrão de 
comportamento 
• se – então – se: quando depois de cada então ocorre outro 
se 
• se – senão – se: quando depois de cada senão ocorre outro 
se 
 
Seleção Encadeada 
• Dados três valores A, B, C, verificar se eles 
podem ser os comprimentos dos lados de um 
triângulo 
• Caso positivo, verificar se compõem 
– Triângulo equilátero 
– Triângulo isósceles 
– Triângulo escaleno 
 A B 
C 
Seleção Encadeada 
• Dados três valores A, B, C, verificar se eles 
podem ser os comprimentos dos lados de um 
triângulo 
• Caso positivo, verificar se compõem 
– Triângulo equilátero – três lados iguais 
– Triângulo isósceles – dois lados iguais 
– Triângulo escaleno – todos os lados diferentes 
 A B 
C 
Seleção Encadeada 
• Triângulo: (A<B+C) e (B<A+C) e (C<A+B) 
• Equilátero: (A=B) e (B=C) 
• Isósceles: (A=B) ou (B=C) ou (A=C) 
• Escaleno: (A<>B) e (B<>C) e (A<>C) 
 
É triângulo? É equilátero? É isósceles? É escaleno? Ações 
V V F F “Equilátero” 
V F V - “Isósceles” 
V F F V “Escaleno” 
F - - - “Não é triângulo” 
Seleção Encadeada Heterogênea 
 início 
 inteiro: A, B, C; // tamanho dos lados 
 leia (A, B, C); 
 se (A<B+C) e (B<A+C) e (C<A+B) então 
 se (A=B) e (B=C) então 
 escreva (“Triangulo Equilátero”); 
 senão 
 se (A=B) ou (B=C) ou (A=C) então 
 escreva (“Triângulo Isósceles”); 
 senão 
 escreva (“Triangulo Escaleno”); 
 fimse; 
 fimse; 
 senão 
 escreva (“Estes valores não formam um triângulo”); 
 fimse; 
 fim.Algoritmo 3.5 – Tipos de Triângulo 
Seleção Encadeada Homogênea 
se – então – se 
 se <Cond1> então 
 se <Cond2> então 
 se <Cond3> então 
 se <Cond4> então W; 
 fimse; 
 fimse; 
 fimse; 
 fimse; 
 
É equivalente a: 
 se <Cond1> e <Cond2> e <Cond3> e <Cond4> então W; 
 fimse; 
Cond1 Cond2 Cond3 Cond4 Ação 
V V V V W 
Seleção de Múltipla Escolha 
• Seleções encadeadas homogêneas se-senão-se são bastante 
frequentes para o tratamento de listas de valor 
• Para simplificar a escrita, pode-se utilizar o comando escolha. 
• Adaptando o algoritmo anterior: 
 escolha X 
 caso V1: C1; 
 caso V2: C2; 
 caso V3: C3; 
 caso V4: C4; 
 fimescolha; 
Seleção de Múltipla Escolha 
• Construa um algoritmo que, tendo como dados de entrada o preço de um 
produto e seu código de origem, mostre o preço junto de sua procedência 
• Caso o código não seja nenhum dos especificados, o produto deve ser encarado 
como importado 
• Siga a tabela de códigos abaixo 
Código de origem Procedência 
1 Sul 
2 Norte 
3 Leste 
4 Oeste 
5 ou 6 Nordeste 
7, 8 ou 9 Sudeste 
10 até 20 Centro-oeste 
25 até 30 Nordeste 
Seleção de Múltipla Escolha 
 início 
 real: Preço; 
 inteiro: Origem; 
 leia (Preço, Origem); 
 escolha Origem 
 caso 1: escreva (Preço, “ – produto do Sul”); 
 caso 2: escreva (Preço, “ – produto do Norte”); 
 caso 3: escreva (Preço, “ – produto do Leste”); 
 caso 4: escreva (Preço, “ – produto do Oeste”); 
 caso 7, 8, 9: escreva (Preço, “ – produto do Sudeste”); 
 caso 10..20: escreva (Preço, “ – produto do Centro-Oeste”); 
 caso 5, 6, 25..30: escreva (Preço, “ – produto do Nordeste”); 
 caso contrário: escreva (Preço, “ – produto importado”); 
 fimescolha; 
 fim. 
Algoritmo 3.6 – Múltipla Escolha 
Exercício 
1. Escreva um algoritmo que, a partir de um 
mês fornecido (número inteiro de 1 a 12), 
apresente o nome dele por extenso ou uma 
mensagem de mês inválido.

Mais conteúdos dessa disciplina