0% acharam este documento útil (0 voto)
128 visualizações114 páginas

Algoritmo

Este documento fornece instruções sobre algoritmos e lógica de programação. Discute objetivos de programação, como representar algoritmos através de descrições narrativas, fluxogramas e linguagem algorítmica. Também explica o ciclo de vida do desenvolvimento de software, incluindo análise, projeto, codificação e teste.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
128 visualizações114 páginas

Algoritmo

Este documento fornece instruções sobre algoritmos e lógica de programação. Discute objetivos de programação, como representar algoritmos através de descrições narrativas, fluxogramas e linguagem algorítmica. Também explica o ciclo de vida do desenvolvimento de software, incluindo análise, projeto, codificação e teste.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 114

ALGORITMO

LÓGICA DE PROGRAMAÇÃO

Zareif Dib
[email protected]
OBJETIVO
• Utiliza corretamente o algoritmo
para representar uma tarefa a ser
processada pelo computador;
O PROGRAMADOR
• A meta principal de qualquer programador é
resolver problemas por meio de soluções
lógicas para obter resultados eficazes e
eficientes.
• Porém se esta solução não for planejada
(passo a passo), com certeza esta meta não
será atingida.
LÓGICA
• É a técnica de encadear pensamentos para
atingir determinado objetivo.

LÓGICA DE PROGRAMAÇÃO

• É o ato de contextualizar a lógica na


programação de computadores, buscando a
melhor seqüência de ações para solucionar
o problema.
• Esta seqüência se da o nome de
Algoritmos.
ALGORITMO
• Um Algoritmo é uma seqüência finita de
instruções ordenadas de forma lógica para a
resolução de uma determinada tarefa ou
problema.
• Exemplo:
• Instruções para se utilizar um aparelho
eletrodoméstico;
• Uma receita para preparo de algum prato;
• A regra para determinação de máximos e
mínimos;
COMO  APRENDER????

Algoritmos não se aprende:


- Copiando Algoritmos
- Estudando Algoritmos

Algoritmos só se aprendem:
- Construindo Algoritmos
- Testando Algoritmos
Formas Representar ALGORITMO

• DESCRIÇÃO NARRATIVA

• FLUXOGRAMA

• LINGUAGEM ALGORÍTMICA
DESCRIÇÃO NARRATIVA
ALGORITMO Ligar_Carro;
Inicio
Entrar no carro;
Ajustar o banco e os espelhos retrovisores;
Colocar o cambio no ponto morto;
Ligar o carro;
Colocar o cambio na primeira marcha;
Pisar no acelerador;
Soltar o freio de mão;
Soltar a embreagem devagar;
fim.
DESCRIÇÃO NARRATIVA
ALGORITMO Calculo_Area_Retangulo;
Inicio
Entrar com o valor base;
Entrar com o valor altura;
Área é igual a base multiplicado pela altura;
Apresentar a Área;
fim.
EXERCICIO
• Usando os comando abaixo faça um
algoritmo descritivo para troca de lâmpada.
– Subir escada
– Colocar lâmpada nova
– Retirar lâmpada velha
– Descer escada
– Posicionar escada embaixo da lâmpada
Algoritmo troca_lampada
inicio
testar lampada
ENQUANTO ter lampada queimada FAÇA
Posicionar escada embaixo da lâmpada
Subir escada
Retirar lâmpada velha
Descer escada
pegar a nova lampada
Subir escada
Colocar lâmpada nova
Descer escada
testar lampada
FIMENQUANTO
guardar escada
fim
TROCA DE LÂMPADA COM TESTE
• O programa anterior fará troca mesmo se a
lâmpada estiver funcionando.
Algoritmo troca_com_teste;
inicio
Ligar interruptor;
SE a lâmpada não acender ENTÃO
Posicionar escada embaixo da lâmpada;
Subir escada;
Retirar lâmpada velha;
Colocar lâmpada nova;
Descer escada;
fimse;
fim.
TROCA DE VARIAS LÂMPADAS
• Caso a troca seja de um lustre com varias
lâmpadas.
Ligar interruptor;
Posicionar escada embaixo da lâmpada;
Subir escada;
Se a lâmpada 1 não acender então
Retirar lâmpada velha;
Colocar lâmpada nova;
fimse;
Se a lâmpada 1 não acender então
Retirar lâmpada velha;
Colocar lâmpada nova;
fimse;
Se a lâmpada 1 não acender então
Retirar lâmpada velha;
Colocar lâmpada nova;
fimse;
Descer escada;
LAÇO DE REPETIÇÃO ENQUANTO
• Comando ENQUANTO usado em situações que
não se conhece o numero de repetições a serem
feitas. É necessário o uso de um teste de parada.
Algoritmo troca_com_teste;
inicio
Ligar interruptor;
Posicionar escada embaixo da lâmpada;
Subir escada;
ENQUANTO Lâmpadas não acenderem FAÇA
Retirar lâmpada velha;
Colocar lâmpada nova;
FimEnquanto
Descer escada;
fim.
EXERCICIO - DESCRIÇÃO NARRATIVA
1. Tenho 9 pérolas idênticas, mas sei que
uma delas é falsa, e é mais leve que as
outras; como posso identificar a pérola
falsa, com apenas duas pesagens em uma
balança de dois pratos ?
EXERCICIO - DESCRIÇÃO NARRATIVA
1. Tenho 10 grupos com 10 moedas cada
um; todas as moedas pesam 10 gramas
cada uma, exceto as de um grupo, no qual
as moedas pesam 9 gramas cada uma;
como posso identificar o grupo de moedas
mais leves, com apenas uma pesagem em
uma balança de um prato ?
Torres de Hanói
Objetivo:
• Mover todos os discos da haste A para a
haste C, utilizando o menor número
possível de movimentos, respeitando-se as
regras abaixo.
Regras:
• um disco maior não pode ser colocado
sobre um disco menor;
• pode-se mover um único disco por vez;
• um disco deve estar sempre numa das três
hastes, ou em movimento
A
B
C
FLUXOGRAMA
• Utilização de símbolos gráficos para
representar algoritmos.
• No fluxograma existem símbolos
padronizados para início, entrada de dados,
cálculos, saída de dados, fim, etc

Cálculo Decisão Entrada Saída Início/Fim


EXEMPLO Dobro de um Numero
Início

Leia NUM

DOBRO  NUM * 2

Escreva DOBRO

Fim
EXEMPLO Dobro de um Numero
Início

Leia NUM

DOBRO  NUM * 2

Escreva DOBRO

Fim
EXERCICIO - FLUXOGRAMA
1. Usado fluxogramas faça um algoritmo para ler
o ano de nascimento de uma pessoa e o ano
atual. Calcular sua idade atual. Apresentar
a idade.
2. Criar fluxograma para calcular o total a pagar
nos salgados de uma festa. Deve ser
informado o preço do cento de salgado e a
quantidade de cento. Do total é cobrado mais
5 % de taxa de entrega.
Cálculo Decisão Entrada Saída Início/Fim
Exercicio
1. Crie um algoritmo para ser lido o numero de uma
conta o saldo. Deve ser lido o valor do saque
efetuado no caixa eletrônico e o valor do deposito
apresente o saldo atual
2. Crie um algoritmo que seja informado a largura e o
comprimento de
3. um retângulo e apresente o perímetro e a área.
4. Crie um algoritmo para uma loja de minipeças. O
cliente informa o preço unitário da peça e a
quantidade e o sistema retorna o valor a pagar.
INICIO

LEIA AnoAtual

LEIA AnoNasc

Idade AnoAtual - AnoNasc

Escreva Idade

FIM
INICIO

LEIA NumConta

LEIA Saldo

LEIA ValSaque

LEIA ValDeposito

SaldoAtual  Saldo + ValDeposito- ValSaque

Escreva SaldoAtual

FIM
INICIO

LEIA Comp

LEIA Largura

Perimetro(Comp + Largura) * 2

Escreva Perimetro

FIM
INICIO

LEIA ValorUnit

LEIA QtdProd

ValorPagValorUnit * QtdProd

LEIA ValorPag

Escreva ValorPag

FIM
LINGUAGEM ALGORÍTMICA
• Consiste na definição de uma
pseudolinguagem de programação, cujos
comandos são em português, para
representar algoritmos.

ALGORITMO <Nome do algoritmo>


VAR<Variáveis ><TIPO>
INICIO
<Comandos>
FIMALGORTIMO
EXEMPLO Dobro de um Numero
ALGORITMO CALC_DOBRO
VAR Numero, dobro: INTEIRO
INICIO
ESCREVA(“INFORME UM NUMERO”)
LEIA (Numero)
dobro  Numero*2
ESCREVa(“o dobro= ”)
ESCREVA (dobro)
FIMALGORITMO
EXEMPLO Calculo de Idade
ALGORITMO CALC_Idade
VAR AnoAtual,AnoNasc,Idade: INTEIRO
TempDorme: Real
INICIO
LEIA (AnoAtual)
LEIA(AnoNasc)
Idade AnoAtual - AnoNasc
ESCREVA (Idade)
TempDormeIdade/3
ESCREVA(TempDorme)
FIM
ALGORITMO
Ciclo de vida de
Desenvolvimento
O Processo de Geração de um Programa
• Para que seja executado, um programa
deve estar escrito em linguagem binária,
isto é, em linguagem de máquina.
• Contudo, a sua elaboração requer
diferentes etapas, até que este programa
em binário seja gerado com o auxílio de
uma linguagem de programação.
ETAPAS
• Análise: definição do problema;
• Projeto do algoritmo: Criar algoritmo para a
solução deste problema;
• Teste de mesa: a validação lógica do algoritmo
desenvolvido;
• Codificação: a tradução deste algoritmo para
uma linguagem de programação;
• Verificação sintática: (compilação) e
semântica (teste e depuração) do programa
gerado;
• Implantação: do programa.
Análise: Definição do Problema
• A análise do problema inicia pela identificação do
problema a ser resolvido, ou seja, pela
identificação do objetivo do programa a ser
gerado.
• Problemas a serem resolvidos pelo computador:
• (dados de entrada) Partem de informações obtidas
que devem ser claramente identificadas.
• (processar os dados de entrada em resultados )
As quais serão processadas para que os objetivos
sejam atingidos.
• (resultados informados) Da mesma forma, as
saídas resultantes devem ser também identificadas
e informados.
“Fazer um programa para informar(ler ,
digitar) dois números e
apresentar(imprimir, escrever) a soma.”
A definição do problema inclui:

Entrada Processamento Saída


• Objetivo: somar dois valores.
• VAR Entradas: num1, num2: INTEIRO
• Processamento: somanum1 + num2
• VAR Saída: soma: INTEIRO
EXERCICIO
• Faça um algoritmo para ler o ano de
nascimento de uma pessoa e o ano atual.
Calcular sua idade atual, o total de anos
acordado e o total de anos dormidos, use
como padrão 8 horas de sono por dia.
Apresentar a idade,
• total de anos acordado e o total de anos
dormidos.
• Identifique o objetivo os dados de entrada
o processamento e os dados de saída do
exercício acima
• Objetivo: Calcular a idade, temp acordado ,
temp dorme;
• Variáveis Entrada: AnoAtual, Ano Nasc:
Inteiro
• Processamento:
IdadeAnoAtual-AnoNasc
TempDormeIdade/3
TempAcordIdade-TempDorme

• Variáveis Saída: Idade: inteiro


TempDorme, TempAcord:REAL
Tipos de dados

Todas as informações
ENTRADA ou SAÍDA
devem assumir um determinado

tipo de Variável.
Os tipos de variáveis podem ser
Admite somente números inteiros.
INTEIRO Geralmente é utilizado para representar
uma contagem (quantidade).
Admite números reais (com ou sem casas
REAL decimais). Geralmente é utilizado para
representar uma medição.

Admite caracteres alfanuméricos. Os


números quando declarados como
CARACTERE
caracteres tornam se representativos e
perdem a atribuição de valor.

Admite somente valores lógicos


LÓGICO
(verdadeiro/falso).
1 - Dados a quantidade adquirida de um produto e o preço
unitário, calcular e escrever o total (total = quantidade adquirida x
preço unitário), leia a porcentagem de desconto, calcule e
apresente o total a pagar
total a pagar = total –(total*desconto/100).

2 - Crie um sistema para controle de almoxarifado de um


armazém de grãos deve ser informado quantidade máxima de
grãos que o armazém suporta e a quantidade mínima, calcular e
exibir a quantidade média
quantidade média = (quantidade máxima + quantidade mínima)/2.

3 - O custo ao consumidor de um carro novo é a soma do custo


de fábrica com a percentagem do distribuidor e dos impostos
(aplicados ao custo de fábrica). Supondo que a percentagem
do distribuidor seja de 28% e os impostos de 45%, escrever um
algoritmo que leia o custo de fábrica de um carro e escreva o
custo ao consumidor.
Dados a quantidade adquirida de um produto e o preço
unitário, calcular e escrever o total (total = quantidade adquirida x
preço unitário), leia a porcentagem de desconto, calcule
e apresente o total a pagar e o valor do desconto
total a pagar = total –(total*desconto/100).
Objetivo: calcular o valor gasto em uma compra

Var entrada: qtdadd: inteiro


precounit, porcdesc:real

Processamento: totalqtdadd*precounit
valdesc total*porcdesc/100
totalpagtotal-valdesc

Var saida: total, totalpag, valdesc: real


Crie um sistema para controle de almoxarifado de um armazém de grãos deve
ser informado quantidade máxima de grãos que o armazém suporta e a
quantidade mínima, calcular e exibir a quantidade média
quantidade média = (quantidade máxima + quantidade mínima)/2.

Objetivo: calculo de media de armazenamento de grãos

Var entrada: qtdmax,qtdmin: real

Processamento: qtdmd(qtdmax+qtdmin)/2

Var saida: qtdmd:real


• O custo ao consumidor de um carro novo é a soma do custo de fábrica com
a percentagem do distribuidor e dos impostos (aplicados ao custo de
fábrica). Supondo que a percentagem do distribuidor seja de 28% e os
impostos de 45%, escrever um algoritmo que leia o custo de fábrica de
um carro e escreva o custo ao consumidor.

• Objetivo: calcular o custo de um carro

• Var entrada: custofab:real

• processamento: custoconscustofab+(custofab*0,28)+(custofab*0,45)
ou
Custoconscustofab+custofab*0,73

• Var saida: custocons:real


4- Construa um algoritmo para calcular a distância entre dois
pontos num plano X. Deve ser informado a posição do primeiro e
do segundo ponto e apresentado a distancia entre eles.
Dist = ponto2 – ponto 1
5- Um motorista deseja colocar no seu tanque X reais de
gasolina. Escreva um algoritmo para ler o preço do litro da
gasolina e o valor do pagamento, e exibir quantos litros ele
conseguiu colocar no tanque.

6- Faça um algoritmo para calcular quantas ferraduras são


necessárias para equipar todos os cavalos comprados para um
haras.

7- Uma fábrica de camisetas produz os tamanhos pequeno,


médio e grande, cada uma sendo vendida respectivamente por
10, 12 e 15 reais. Construa um algoritmo em que o usuário
forneça a quantidade de camisetas pequenas, médias e grandes
referentes a uma venda, e a máquina imprima quanto será o valor
a ser arrecadado.
• Observe que estes foram problemas
simples, adequado à introdução dos
conceitos iniciais.
• Contudo, na prática!!!
• Os objetivos podem ser mais complexos.
• A identificação de entradas e saídas devem
incluir formatos e valores válidos, bem como
quantidades de valores e a especificação de
outros dispositivos de entrada e saída.
• O processamento geralmente envolve
pesquisa e especialização a cerca do
problema a ser resolvido.
Teste de Mesa
• Após a elaboração do algoritmo, efetuamos
o primeiro teste para verificar se a solução
proposta atinge o objetivo.
• Para isso, simulamos a execução do
algoritmo para valores corretos e incorretos.
• Quando o algoritmo deve funcionar apenas
para um intervalo definido de valores, é
recomendável que se simule a execução
para valores válidos e valores inválidos
acima e abaixo do limite estabelecido.
Exemplos:” MEMÓRIA RAM
Algoritmo “Atribuir” TESTE DE MESA

VAR A B C
A,B,C inteiro 2 3 5
Inicio
3 3
A2
B3
CA+B
AB
BA
Fimalgoritmo
Exemplos:” MEMÓRIA RAM
Algoritmo “trocavalor” TESTE DE MESA

VAR A B C
A,B inteiro 2 3
Inicio
3 3
A2
B3
AB
BA
Fimalgoritmo
Exemplos:” MEMÓRIA RAM
Algoritmo “trocavalor” TESTE DE MESA

VAR A B TEMP
A,B,TEMP inteiro 2 3 2
Inicio
3 2
A2
B3
TEMPA
AB
BTEMP
Fimalgoritmo
INICIO

conta Saldo ValSaq ValDep SaldoAtual


LEIA Conta
123 500 350 400 150
900
LEIA Saldo

LEIA ValSaque

LEIA
ValDeposito

SaldoAtual Saldo - ValSaque

SaldoAtual  Saldo +ValDeposito

Escreva Saldo

FIM
1) Faça o Teste de Mesa
A B C
A0 0 1 1
B1 1 3
CA+B
AA+1
BA+B+C
AB e CA = CA e AB
2) A ordem das atribuições é A B C A B C
1 2 3 1 2 3
importante?
2 2 2 1
Faça o teste de mesa.
AB e CA
CA e AB
Um algoritmo deve atender aos
seguintes requisitos:
• possuir um estado inicial;
• possuir dados de entrada;
• consistir de uma seqüência lógica finita de ações
claras e precisas;
• produzir dados de saída;
• possuir estado final previsível (deve sempre
terminar).
• O fluxo de execução do algoritmo, isto é, a
seqüência de ações, deve incluir apenas:
– seqüência;
– bifurcação (seleção condicional);
– laços de repetição de ações.
“Exemplo: Somar dois números.”
INSTRUÇÕES de Entrada
Leia o primeiro número.
INSTRUÇÕES de Entrada
Leia o segundo número.
INSTRUÇÕES de Processamento

Some o primeiro número com o segundo.


INSTRUÇÕES de Saída

Escreva o resultado
Algoritmo resultante, em pseudolinguagem
Algoritmo “Soma2”
Var
Valor1, Valor2, Soma: Inteiro
Inicio
Leia (Valor1)
Leia (Valor2)
Soma  (Valor1 + Valor2)
Escreva (Soma)
FimAlgoritmo
Codificação do Programa
• Esta etapa consiste da tradução do
algoritmo para uma linguagem de
programação.
• Veja que um mesmo algoritmo pode ser
traduzido para diferentes linguagens que
sigam o(s) mesmo(s) paradigma(s), uma vez
que a construção do algoritmo já deve ser
direcionada aos recursos da linguagem
desejada.
• O programa resultante desta etapa é
identificado como programa fonte.
ALGORITMOS II

LINGUAGEM ALGORÍTMICA

visualg
Zareif Dib
Funcionamento do Computador
• Todos os computadores,
independentemente dos seus tamanhos, são
conceitualmente semelhantes.
• Resumidamente, podemos afirmar que
existem 3 (quatro) operações básicas que
qualquer computador pode executar,
conhecido como Processamento de Dados.

Entrada Processamento Saída


“Exemplo: Somar dois números.”
INSTRUÇÕES de Entrada
Leia o primeiro número.
INSTRUÇÕES de Entrada
Leia o segundo número.
INSTRUÇÕES de Processamento
Some o primeiro número com o segundo.
INSTRUÇÕES de Saída
Escreva o resultado.
Tipos de dados

Todas as informações
ENTRADA ou SAÍDA
devem assumir um determinado

tipo de Variável.
Os tipos de variáveis podem ser
Admite somente números inteiros.
INTEIRO Geralmente é utilizado para representar
uma contagem (quantidade).
Admite números reais (com ou sem casas
REAL decimais). Geralmente é utilizado para
representar uma medição.

Admite caracteres alfanuméricos. Os


números quando declarados como
CARACTERE
caracteres tornam se representativos e
perdem a atribuição de valor.

Admite somente valores lógicos


LÓGICO
(verdadeiro/falso).
Variáveis
• Nos algoritmos destinados a resolver um
problema no computador, a cada variável
corresponde uma posição de memória.
• O conteúdo de cada variável pode variar ao
longo do tempo durante a execução de um
algoritmo.
• Embora a variável possa assumir diferentes
valores, ela só pode armazenar um valor a
cada instante.
Exemplo
• De acordo com a figura abaixo A, B e C são
Variáveis.

A B C=A+B

2 5 7
Constantes
• Constantes são endereços de memória
destinados a armazenar informações fixas,
inalteráveis durante a execução do
programa.
• Exemplo:
• PI = 3.1416;
Identificadores
• São os nomes dados a programas, variáveis, constantes,
Tipo de Dados e Registros.
Regras Para construção de Identificadores:
• Não podem ter nomes de palavras reservadas (comandos
da linguagem);
• Devem possuir como 1º caractere uma letra ou
Underscore ( _ );
• Ter como demais caracteres letras, números ou
Underscore;
• Ter no máximo 127 caracteres;
• Não possuir espaços em branco;
• A escolha de letras maiúsculas ou minúsculas é
indiferente.
Exemplo

NOME TELEFONE IDADE_FILHO


NOTA1 DELTA PI
UMNOMEMUITOCOMPRIDOEDIFICILDELER
Operadores aritméticos em ordem de
execução

^  Exponencial
*  Multiplicação
/  Divisão
+  Adição
-  Subtração
Modularização de expressões
• A modularização é a divisão da expressão
em partes, proporcionando maior
compreensão e definindo prioridades para
resolução da mesma.
• Em expressões computacionais usamos
somente parênteses “( )” para
modularização.
• Na informática podemos ter parênteses
dentro de parênteses. Onde os parênteses
internos são os prioritários.
Exemplos de prioridades:

• (2+2)/2=2 mesmo que a divisão seja


prioritária com relação a adição houve a
priorização pelo parênteses.

• 2+2/2=3 neste caso como não havia


parênteses foi feita a ordem de operadores
aritméticos
Linearização de expressões
• Para a construção de Algoritmos todas as
expressões aritméticas devem ser
linearizadas, ou seja, colocadas em um
única linhas.

2 
 3  53 1 RESP RESP(2/3+(5-3))+1

Tradicional Computacional
EXERCICIO
• Linearize as expressões abaixo

B
A 2X  3X
2  X1 
X C 
4
E Y 2 X
D
F
X
2
• X(A+(B/C))/(D-(E/F))
• Y((2*X^2-3*X^(X+1))/2+(4/X))/2^X
Criando o processamento
• Você sabe como fazer suas contas na
calculador. Agora é só dar nomes para os
números digitados.
• Ex. calcular a média de 3 notas.
8 Nota01 Soma<-nota1+nota2+nota3
+ +
7 Nota02
+ +Nota03 MEDIA<- soma/3
9 .

24 I3 . Soma I3 .

0 8 media MEDIA<-(nota1+nota2+nota3)/3
Operadores especiais (MOD e DIV)
• MOD  Retorna o resto da divisão entre 2
números inteiros. 5mod2=1
• DIV  Retorna o QUOCIENTE DA DIVISÃO
INTEIRA. O Valor inteiro que resulta da
divisão entre 2 números inteiros. 5div2=2

13 /2 13MOD2 13DIV2
10 6,5 1 6 1 6
Operação de atribuição
• A operação de atribuição permite que se
forneça um valor a uma certa variável.
• Se for atribuído uma expressão a variável,
armazenará o resultado.
variável expressão
• Se for atribuído uma outra variável, será
armazenado o conteúdo daquela variável.
variável  variável
• O sinal  se lê recebe:
variável recebe expressão
Exemplos:
Algoritmo “Atribuir”
MEMÓRIA RAM
VAR
A,B,C inteiro TESTE DE MESA
Inicio A B C
A2 2
B3
3
CA+B
Fimalgoritmo 5
Operações de entrada
• Os cálculos do computador são de pouco valor a
não ser que, primeiro, possamos fornecer os
dados sobre os quais estes cálculos serão
efetuados.
• Definimos aqui o comando da nossa linguagem
algorítmica para manusear entrada de dados.
• O comando LEIA  Comando de entrada que
permite a leitura de Variáveis de Entrada

leia (variável-1)
LEIA(variável-2)
LEIA(variável-n);
Exemplos:
Programa “Leia” MEMÓRIA RAM
VAR
TESTE DE MESA
A,B,C inteiro
inicio A B C
LEIA(A ) 10
LEIA(B) 20
CA+B
30
Fimalgoritmo
Operações de saída
• Os dados fornecidos via comando LEIA e as
atribuições são armazenadas na memória RAM.
• Para apresentar o resultado de uma expressão
em um dispositivo de saída como Monitor
devemos usar um comando de Saída.
• O comando ESCREVA  Comando de saída que
exibe uma informação (resultados).
escreva (expressão-1)
ESCREVA(expressão-2
ESCREVA(expressão-n)
Exemplos:MEMÓRIA RAM
Algoritmo “Escreva” TESTE DE MESA
VAR A B C
A,B,C inteiro
12 11 1
Inicio
LEIA(A )
LEIA(B)
CA–B
Escreva(C) 12
Fimalgoritmo 11
1
Exemplos:MEMÓRIA RAM
Algoritmo “Escreva” TESTE DE MESA
VAR
A B C
A,B,C inteiro
Inicio 2011 1997 14
Escreva(“Digite ano
atual”)
LEIA(A )
Escreva(“Digite ano
nascimento”)
LEIA(B) DIGITE O ANO ATUAL2011
DIGITE O ANO DE NASC1997
CA–B SUA IDADE = 14
Escreva(‘Sua idade =“)
Escreva(C)
Fimalgoritmo
Operações de saída
• Caso seja necessário apresentar uma
mensagem de saída deve-se colocar o texto
entre ‘aspas’.


• ESCREVA( Ola MUNDO ) ”
• Caso acrescentar ao comando escreva a letra
L o programa fará uma quebra de linha.


• ESCREVAL( Ola MUNDO ) ”
Exemplos:
Programa “Escreva2” MEMÓRIA RAM
VAR
TESTE DE MESA
A,B,C inteiro
inicio A B C
LEIA(A ) 5
LEIA(B) 7
C  (A + B)/2
12
Escreva(“Média”)
Escreva(C) Média
fimalgoritmo 12
Operadores relacionais

>  Maior que


<  Menor que
>=  Maior ou Igual
<=  Menor ou Igual
=  Igual
<>  Diferente
Sintaxe de um algoritmo
algoritmo “<identificador>”
var <identificador> : <tipo>
inicio
escreva(“ mensagem ” )
leia(variavel de entrada)
variavelexpressão
escreva(“ mensagem ” )
escreva(variavel de saída)
fimalgoritmo
Converter Analise
em Algoritmo
Converter Analise em Algoritmo
• OBJETIVO = Criar o nome do algoritmo
• OBS.: Declarar todas as variáveis de entrada e saída
separando apenas pelo tipo.
• Var Entrada= Para cada variável de entrada usar os
comandos:
– Escreva com mensagem entre aspas
– Leia com o nome da variável
• Processamento= transcrever os processamento na
ordem da analise
• Var Saída= Para cada variável de saida usar os
comandos:
– Escreva com mensagem entre aspas
– Escreva com o nome da variável de saída.
• Desenvolva um algoritmo para:
• Ser informada a velocidade media de um
carro (km/hora) e o tempo gasto (horas)
calcule e apresente a (distancia) percorrida.
• Informe quantos quilômetros o carro faz
com um litro do combustível e com
distancia percorrida já calculada, calcule e
apresentar a (quantidade de litros) de
combustível gasta em uma viagem.
• Informe o preço do litro do combustível e
assim calcule o (valor gasto com
combustível).
• objetivo: calcular gasto com combustível
• Var Entrada: VelMed, TempGas, KmL,PreL :
Real

• Processamento:
– DistVelmed*TempGas
– QtdGasDist/Kml
– ValGasPreL*QtdGas

• Var saida:
– Dist,QtdGas,ValGas: Real
Algoritmo “CalcGastComb”
Var VelMed, TempGas, KmL, PreL, Dist, QtdGas, ValGas: Real
Inicio
Escreva(“Informe a velocidade media do veiculo”)
Leia(VelMed)
Escreva(“Informe o tempo gasto “)
Leia(TempGas)
Escreva(“Informe quantos KM o veiculo faz com 1 litro”)
Leia(Kml)
Escreva(“Informe o preço do litro do combustível”)
Leia(PreL)
DistVelmed*TempGas
QtdGasDist/Kml
ValGasPreL*QtdGas
escreva(“A distancia = “)
escreva(Dist)
escreva(“A quantidade de litros gasto foi =“)
escreva(QdtGas)
escreva(“O valor gasto =”)
escreva(ValGas)
FimAlgoritmo
Exercícios
1.Faça um algoritmo que receba o preço de dois produtos e
respectivamente a quantidade de cada. Exiba o total a pagar.
2. Faça um algoritmo que receba dois números e ao final mostre a o
resto e quociente inteiro.
3. Escrever um algoritmo para determinar o consumo médio de um
automóvel sendo fornecida a distância total percorrida pelo
automóvel e o total de combustível gasto.
4. Escrever um algoritmo que leia o nome de um aluno e as notas
das três provas que ele obteve no semestre. No final exiba o nome
do aluno e a sua média.
5. Escrever um algoritmo que leia o nome de um vendedor, o seu
salário fixo e o total de vendas efetuadas por ele no mês (em
dinheiro). Sabendo que este vendedor ganha 15% de comissão
sobre suas vendas efetuadas, apresentar o seu nome, o salário fixo
e salário no final do mês.
[email protected]
Exercicios
6. Ler uma temperatura em graus Celsius e apresentá-la convertida
em graus Fahrenheit. A fórmula de conversão é: F=(9*C+160) / 5,
sendo F a temperatura em Fahrenheit e C a temperatura em Celsius.
7. Elaborar um algoritmo que efetue a apresentação do valor da
conversão em real (R$) de um valor lido em dólar (US$). O algoritmo
deverá solicitar o valor da cotação do dólar e também a quantidade
de dólares disponíveis com o usuário.
8. Faça um algoritmo que receba um valor que foi depositado e exiba
o valor com rendimento após um ano e meio. Considere fixo o juro
da poupança em 0,70% a. m.
9. A Loja Mamão com Açúcar está vendendo seus produtos em 5
(cinco) prestações sem juros. Faça um algoritmo que receba um
valor de uma compra e mostre o valor das prestações.
10. Faça um algoritmo que receba o preço de custo de um produto e
mostre o valor de venda. Sabe-se que o preço de custo receberá um
acréscimo de acordo com um percentual informado pelo usuário.
Exercicios
11. O custo ao consumidor de um carro novo é a soma do custo de
fábrica com a percentagem do distribuidor e dos impostos (aplicados,
primeiro os impostos sobre o custo de fábrica, e depois a percentagem
do distribuidor sobre o resultado). Supondo que a percentagem do
distribuidor seja de 28% e os impostos 45%. Escrever um algoritmo que
leia o custo de fábrica de um carro e apresente o custo ao consumidor .
12. Crie um algoritmo para ser informado a largura e o comprimento de
uma fazenda de terreno retangular. Calcule e apresente o perimetro, a
area em metros quadrados.
13. Crie um Algoritmo para calcular o gasto em Kilowatts em uma
residência. Sabendo que o preço do Kilowatt é 15% do valor do salario
minimo. Deve ser informado o valor do salario minimo e a quantidade
de kilowatts consumida no mês. Sabendo que do total gasto é
acrescentado 17% de iluminação publica e mais 5% de tarifas
estaduais. Apresente o Total gasto em kilowatt, Total de Iluminação
Publica, Total das tarifas estaduais e o Total final.
Exercicios
14. A Turma de Técnico de Informática da ETER esta organizando o
ChurrasDigital deste ano para isso criarão um sistema para calcular
os gastos com o churrasco.
Crie um algoritmo para ser informado quantas grama de carne uma
pessoa consome e o numero de pessoas que irão assim apresente o
total de quilos de carne que deverá ser comprada. Informe o preço
do kilo de carne e calcule o total de gasto com carne. Para cada 10
kg de carne deve ser comprado um saco de carvão, informe o preço
do saco de carvão e calcule o gasto com o carvão. Será contratado
um churrasqueiro sendo pago 15% do gasto com a carne.
Do total de pessoas metade bebe refrigerante, sendo 1 garrafa de
dois litros por pessoa, e a outra metade bebe cerveja, sendo 4
garrafas por pessoa. Informe o preço do refrigerante e calcule o total
gasto com refrigerante e o preço da cerveja e calcule o total com a
cerveja.
Calcule o valor que será pago por pessoa.
Exercicios
15. Crie uma algoritmo para ser lido um numero e apresente o seu
antecessor e o sucessor.
16. Crie uma algoritmo para ler a altura e o peso de uma pessoa e
apresente o seu IMC. Imc=peso/(altura*altura).
17. Defina a media da idade e a media do peso de dois lutadores de
SUMO.
18. Exibir a temperatura media da semana passada de
Rondonópolis.
19. Informe o Nome e o sobrenome de um autor e apresente com o
exemplo. “ dib, zareif ”
20. Crie um algoritmo para ser lido o prefixo e o numero de telefone
de uma pessoa e apresente como no exemplo. “ (66) 3422-0523 ”
21. Crie um algoritmo para ser lido a idade de uma pessoa em anos
e apresente a idade em meses e dias.
22. Apresente o preço a ser pago em um peixe no pesque e pag do
ETER. Deve ser lido o preço do kilo e o peso do peixe.
Dados a quantidade adquirida de um produto e o preço unitário,
calcular e escrever o total (total = quantidade adquirida x preço
unitário), leia a porcentagem de desconto, calcule e apresente o total
a pagar total a pagar = total –(total*desconto/100).
Algoritmo “calcprecopag”
Objetivo: calcular o preço a pagar var qtdadd: inteiro
precounit,desc,total,totalpag: real
Inicio
Var entrada:
escreva(“informe o prec unit”)
qtdadd: inteiro
leia(precounit)
precounit,desc: real
escreva(“informe a qtd do prod”)
Processamento: leia(qtdadd)
totalqtdadd*precounit escreva(“informe o desc sem a %”)
totalpagtotal-(total*desc/100) leia(desc)
Var saida: totalqtdadd*precounit
total, totalpag:real totalpagtotal-(total*desc/100)
escreva(“ total =“)
escreva(total)
Escreva(“ total a pagar”)
Escreva(totalpag)
fimalgoritmo
Crie um sistema para controle de almoxarifado de um armazém de grãos deve ser
informado quantidade máxima de grãos que o armazém suporta e a quantidade
mínima, calcular e exibir a quantidade média
quantidade média = (quantidade máxima + quantidade mínima)/2
Algoritmo “mediadegraos”
var
Objetivo: qtdmax,qtdmin,qtdmd: real
Inicio
calculo de media de armazenamento de
escreva(“informe a qtd max”)
grãos
leia(qtdmax)
escreva(“informe a qtd min”)
Var entrada: leia(qtdmin)
qtdmax,qtdmin: real
qtdmd(qtdmax+qtdmin)/2
escreva(“qtd media= ”)
Processamento: escreva(qtdmd)
qtdmd(qtdmax+qtdmin)/2 fimalgoritmo

Var saida:
qtdmd:real
O custo ao consumidor de um carro novo é a soma do custo de fábrica com a
percentagem do distribuidor e dos impostos (aplicados ao custo de fábrica). Supondo
que a percentagem do distribuidor seja de 28% e os impostos de 45%, escrever um
algoritmo que leia o custo de fábrica de um carro e escreva o custo ao
consumidor.
Algoritmo “PRECOCARRO”
var
• Objetivo:
CUSTOFAB,CUSTOCONS: real
calcular o custo de um carro Inicio
escreva(“informe cust fab”)
• Var entrada: leia(custofab)
custoconscustofab+custofab*0,73
custofab:real
escreva(“o cust consumido”)
escreva(custocons)
• processamento: fimalgoritmo

Custoconscustofab+custofab*0,73

• Var saida:
custocons:real
Comando de Desvio Condicional Simples
• se <teste-lógica> entao
<seqüência-de-comandos>
fimse
• Ao encontrar este comando, o VisuAlg analisa a <expressão-
lógica>. Se o seu resultado for VERDADEIRO, todos os
comandos da <seqüência-de-comandos> (entre esta linha e a
linha com fimse) são executados. Se o resultado for FALSO,
estes comandos são desprezados e a execução do algoritmo
continua a partir da primeira linha depois do fimse.
=se(testelogico;”resp verdade”;”resp falsa”)
entao senao
Comando de Desvio Condicional
• se <teste-lógica> entao
<seqüência-de-comandos-1>
senao
<seqüência-de-comandos-2>
fimse
• Nesta outra forma do comando, se o resultado da avaliação
de <expressão-lógica> for VERDADEIRO, todos os comandos
da <seqüência-de-comandos-1> (entre esta linha e a linha
com senao) são executados, e a execução continua depois a
partir da primeira linha depois do fimse. Se o resultado
for FALSO, estes comandos são desprezados e o algoritmo
continua a ser executado a partir da primeira linha depois
do senao, executando todos os comandos da <seqüência-de-
comandos-2> (até a linha com fimse).
Teste logico
• Variavel operadorRelacional ValorLimiteSituação
• Idade >, <, >=, <=,=,<> 18
• Faça um algoritmo para ler a idade de uma pessoa e
verifique se ela pode ou não tira CNH.

Algoritmo “PODEOUNAOCNH”
var IDADE: INTEIRO
Objetivo: Inicio
ESCREVA (“informe a sua idade”)
Verificar se uma pessoa tira ou não a
LEIA(idade)
CNH
se (idade>=18) entao
escreva(“tira CNH”)
Var entrada: idade: inteiro
senao
escreva(“Não tira CNH”)
Processamento: NÃO TEM fimse

Var saida: fimalgoritmo


NÃO TEM
Dados a quantidade adquirida de um produto e o preço unitário, calcular e
escrever o total (total = quantidade adquirida x preço unitário), Caso a
quantidade for maior OU IGUAL que 50 unidades tem desconto de 10 %
CASO FOR ENTRE 10 E 50 5% caso contrario desconto de 3%. Calcule e
apresente o total a pagar.
Algoritmo “calcprecopag2”
var qtdadd: inteiro
Objetivo: calcular o preço a pagar
valdesc,precounit,total,totalpag: real
Inicio
Var entrada: escreva(“informe o prec unit”)
qtdadd: inteiro leia(precounit)
escreva(“informe a qtd do prod”)
precounit: real
leia(qtdadd)
Processamento:
SE (qtdadd>=50) ENTAO
totalqtdadd*precounit Valdesc(total*0,1)
totalpagtotal-(total*0,1) SENAO
Valdesc(total*0,03)
totalpagtotal-(total*0,03)
FIMSE
Valdesc(total*0,1) totalpagtotal-VALDESC
Valdesc(total*0,03) escreva(“valor do desconto”)
escreva(valdesc)
escreva(“Total a pagar =”)
Var saida:
escreva(totalpag)
valdesc, totalpag:real fimalgoritmo
1) Construa um Algoritmo para ler uma variável numérica N e
imprima mensagem informando se a mesma é maior que 100
ou menor que 100.
2) Elabore um algoritmo que leia um número. Se positivo
armazene-o em A, se for negativo, em B. No final mostrar o
numero.
3) Tendo como dados de entrada a altura e o sexo de uma
pessoa, construa um algoritmo que calcule e apresente seu
peso ideal, utilizando as seguintes fórmulas:
Para homens: (72.7*h) - 58
Para mulheres: (62.1*h) - 44.7
obs.:(h = altura)
1) Construa um Algoritmo para ler uma variável
numérica N e imprima mensagem informando se a
mesma é maior que 100 ou menor que 100.

ALGORITMO “maiorq100”
Var n:inteiro
Inicio
escreva(“informe o numero”)
leia(n)
se (n>= 100) entao
escreva(“é maior que 100”)
senao
escreva(“é menor que 100”)
fimse
fimalgoritmo
2) Elabore um algoritmo que leia um número. Se positivo
armazene-o em A, se for negativo, em B. No final mostrar o
numero.
Algoritimo “negativopositivo”
Var num, a, b:inteiro
Inicio
escreva(“digite um numero”)
leia(num)
se(num>0)entao
anum
senao
bnum
fimse
Escreva(“numero”)
Escreva(num)
fimalgoritmo
3) Tendo como dados de entrada a altura e o sexo de uma pessoa, construa
um algoritmo que calcule e apresente seu peso ideal, utilizando as
seguintes fórmulas:
Para homens: (72.7*h) - 58
Para mulheres: (62.1*h) - 44.7
obs.:(h = altura)
Algoritmo “pesoideal”
Var peso,h:real
sexo:caracter
Inicio
escreva(“qual sua altura?”)
leia(h)
escreva(“qual seu sexo?”)
leia(sexo)
Se(sexo=‘masc’)entao
peso72.7*h-58
Senao
peso62.1*h-44.7
Fimse
Escreva(“seu peso ideal =”)
Escreva(peso)
fimalgoritmo
• 5. Um vendedor precisa de um algoritmo
que calcule e apresente o preço total Código Preço unitário
devido por um cliente. O algoritmo deve 'ABCD' R$ 5,30
receber o código de um produto e a 'XYPK' R$ 6,00
quantidade comprada e calcular o preço 'KLMP' R$ 3,20
total, usando a tabela abaixo. Mostre 'QRST' R$ 2,50
uma mensagem no caso de código
inválido.

6 -Faça um algoritmo que leia 2 valores numéricos


e um símbolo. Caso o símbolo seja um dos
relacionados abaixo efetue a operação
correspondente com os valores.
“+” operação de soma
“-” operação de subtração
“*” operação de multiplicação
“/” operação de divisão
• 5. Um vendedor precisa Algoritmo “compras”
Var cod : caracter
de um algoritmo que qtd: int
calcule e apresente o total: real
Inicio
preço total devido por escreva(“informe o cod do produto”)
um cliente. O algoritmo leia(cod)
escreva(“informe a quantidade ”)
deve receber o código leia(qtd)
de um produto e a SE ( cod = “ABCD”) ENTAO
totalqtd*5,3
quantidade comprada senao
e calcular o preço SE( cod = “XYPK”) ENTAO
totalqtd*6
total, usando a tabela senao
abaixo. Mostre uma SE (cod = “KLMP”) ENTAO
total qtd*3,2
mensagem no caso de senao
código inválido. SE(cod=“QRST”) ENTAO
totalqtd*2,5
Código Preço unitário senao
escreva(“Cod Invalido”)
'ABCD' R$ 5,30 FIMSE
'XYPK' R$ 6,00 FIMSE
'KLMP' R$ 3,20 FIMSE
FIMSE
'QRST' R$ 2,50 ESCREVA(“total= “ TOTAL)
FIMALGORITMO
Algoritmo “calculadora”
6 -Faça um algoritmo Var n1,n2,resp:real op:caracter
que leia 2 valores Inicio
escreva(“informe 1º numero”) leia(n1)
numéricos e um escreva(“informe 2º numero”) leia(n2)
escreva(“Escolha uma operação”) leia(op)
símbolo. Caso o SE(op=“+”) ENTAO
símbolo seja um dos respn1+n2
senao
relacionados abaixo SE(op=“-”) ENTAO
respn1-n2
efetue a operação senao
correspondente com SE(op=“*”) ENTAO
respn1*n2
os valores. senao
“+” SE(op=“/”) ENTAO
operação de soma respn1/n2
senao
“-”
escreva(“operador invalido”)
operação de subtração FIMSE
“*” FIMSE
operação de multiplicação FIMSE
“/” FIMSE
ESCREVA(“RESULTADO = “, RESP)
operação de divisão
FIMALGORITMO
6 -Faça um algoritmo que,
7 - O União Futebol Clube
dado as três notas de um
deseja aumentar o salário
aluno, determine e exiba a
de seus jogadores. O
sua média final e o seu
reajuste deve obedecer a
conceito, sabendo-se que:
seguinte tabela:
a média final é calculada
pela média aritmética das SALÁRIO ATUAL AUMEN
3 notas; (R$) TO
o conceito é determinado 0,00 a 1.000,00 20%
de com base na tabela
1.000,01 a 5.000,00 10%
abaixo:
acima de 5.000,00 2%
MÉDIA FINAL CONCEITO
Escrever um algoritmo que
 8,0 A
leia o nome e o salário
 5,0 e < 8,0 B atual de um jogador, e
exiba o nome, o salário
< 5,0 C
atual e o salário reajustado.
6 -Faça um algoritmo que,
dado as três notas de um
aluno, determine e exiba a Algoritmo “boletim”
sua média final e o seu VAR N1,N2,N3,MD: REAL
INICIO
conceito, sabendo-se que: ESCREVA(“DIGITE A NOTA 1=“)
a média final é calculada LEIA(N1)
pela média aritmética das ESCREVA(“DIGITE A NOTA 2=“)
LEIA(N2)
3 notas; ESCREVA(“DIGITE A NOTA 3=“)
o conceito é determinado LEIA(N3)
de com base na tabela MD(N1+N2+N3)/3
se( MD>= 8) entao
abaixo: escreva( “ Conceito A”)
senao
se (MD>=5) entao
MÉDIA FINAL CONCEITO escreva(“conceito B”)
senao
 8,0 A escreva(“ conceito C”)
fimse
 5,0 e < 8,0 B fimse
Escreva(“media = “, MD)
< 5,0 C fimalgoritmo
8- Sabemos que de 6 da 9- Escrever um algoritmo
manhã a meio-dia que leia o código do item
desejamos ‘Bom dia!’, pedido, a quantidade e
assim como de meio-dia a calcule o valor a ser pago
6 da noite desejamos ‘Boa por aquele lanche.
tarde!’ e daí até o Apresente a especificação
amanhecer desejamos e o valor a ser pago pelo
‘Boa noite!’. lanche. Considere que a
• Faça um algoritmo que cada execução somente
pede ao usuário para será calculado um item
informar a hora certa (de Especificação Código Preço
Cachorro quente 100 1,20
0 a 24) e exibe uma das Bauru 101 1,30
saudações acima como Hambúrger 103 1,20
Cheeseburguer 104 1,30
resultado.

Você também pode gostar