Escolar Documentos
Profissional Documentos
Cultura Documentos
Algoritmos Básico
Algoritmos Básico
Programação de Computadores
Plano de Aulas
Definição de Algoritmo
É uma seqüência de passos com uma ordem bem definida que visa atingir um objetivo.
A partir de um estado inicial, após um período de tempo finito, produzem um estado final
previsível e bem definido.
Baixo nível versus alto nível: o computador só entende a linguagem de máquina, as linguagens
de alto nível precisam ser traduzidas para linguagem de máquina por um
compilador/interpretador.
Memória. A memória é capaz de armazenar não só os dados, mas também o programa que irá
“manipular” estes dados.
Unidade lógica e aritmética. Nesta unidade são feitos todos os cálculos aritméticos e qualquer
manipulação de dados, sejam eles numéricos ou não.
Unidade de controle. É a unidade responsável pelo tráfego dos dados. Ela obtém dados
armazenados na memória e interpreta-os. Controla a transferência de dados da memória para
a unidade lógica e aritmética, da entrada para a memória e da memória para a saída.
Unidade de saída. Os dados processados são convertidos, por esta unidade, de impulsos
elétricos em palavras ou números que podem ser “escritos” em impressoras ou “mostrados”
em vídeos ou numa série de outros dispositivos.
Fluxograma
Uso de formas geométricas.
n1, n2
M (n1+n2)/2
m >=5 Aprovado
Reprovado
Fim
Pseudocódigo
Uso de linguagem própria aproximando-se das linguagens de alto nível
Forma geral:
Exercícios de fixação
Algoritmo
Escreva os termos de Fibonacci inferiores a L.
fim algoritmo
Representação em Pseudocódigo
Diferenciar uma linguagem real da representação de pseudocódigo que será usada no curso.
Algoritmo Média
Real: n1,n2,media
Início
Escreva(“Digite as duas notas:”)
Leia(n1,n2)
media ← (n1+n2)/2
Se (média >= 5) então
Escreva (“APROVADO”)
Senão
Escreva (“REPROVADO”)
Fim_se
Fim
Arquitetura de um Computador
Qualquer trabalho realizado no computador é baseado na manipulação das informações
contidas em sua memória: instruções (leitura, escrita, operações, atribuição, etc.) e dados
(valores processados pelas instruções).
O algoritmo criado num editor de texto deve ser traduzido em linguagem de máquina por um
compilador/interpretador antes de ser executado pelo computador.
Para realizar essa tradução, o compilador precisa saber como traduzir os dados (informações)
manipulados no programa. Por isso é necessário definir o tipo de cada dado utilizado.
O tipo de dado está diretamente relacionado com a quantidade de memória que ele ocupa. A
memória é um conjunto de células identificadas por um endereço.
1 Byte
00000000 0
00000001 1
00000010 2
00000011 3
... ...
11111111 255
Dados Literais
São seqüências de caracteres contendo letras, dígitos e/ou símbolos especiais.
“06/03/2007” comprimento = 10
““ comprimento = 1
““ comprimento = 0
Dados Lógicos
Representa dois valores lógicos: verdadeiro (V) e falso (F).
Real
Ocupa o dobro de memória do tipo Inteiro.
Lógico
Ocupa um byte na memória.
Literal
Um byte para cada caractere (de acordo com a tabela ASCII).
Exercícios
1. Quais informações estão presentes na memória do computador?
Instruções e dados
2. Por que é necessário definir o tipo de um dado no computador?
Porque ele precisa saber quanto de memória é preciso reservar para
representar/armazenar este dado.
3. Qual tipo de dado usar para armazenar os valores:
12 = Inteiro
15.3 = Real
“34.5” = Literal
V = Lógico
“Hoje” = Literal
4. Quais os dados e os respectivos tipos de dados envolvidos na solução do problema:
“Mostrar o nome, número de matrícula e nota final de cada um dos alunos de
algoritmos e programação de computadores”.
Nome = Literal
Matrícula = Literal/Inteiro
Nota Final = Real
Aula 3: Variáveis e Expressões
Variáveis
Variável é uma entidade destinada a guardar dados. Toda variável possui:
• Um nome
• Um tipo (do dado que pode ser armazenado)
• Um valor (dado ou informações)
Exemplos:
Declaração de Variáveis
Todas as variáveis utilizadas num algoritmo devem ser declaradas.
Exemplo:
Algoritmo Média_do_aluno
Real: n1,n2,media
Início
Escreva(“Digite as duas notas:”)
Leia(n1,n2)
media ← (n1+n2)/2
Se (média >= 5) então
Escreva (“APROVADO”)
Senão
Escreva (“REPROVADO”)
Fim_se
Fim
Expressões
Uma expressão é uma entidade composta por operadores, dados, variáveis e parênteses e
que, quando avaliada, resulta em um valor.
Os operadores podem ser unários ou binários e produzem um resultado em função dos seus
operandos.
• Aritméticos
• Lógicos
• Literais
• Relacionais
Expressões aritméticas
Resultado é do tipo numérico (inteiro ou real).
Expressões lógicas
Resultado é do tipo lógico (verdadeiro ou falso)
Com o operador (E) para que o resultado seja verdadeiro, ambos os operandos devem ser
verdadeiros. Com o operador (Ou) para que o resultado seja verdadeiro, um dos operandos
deve ser verdadeiro. O operador (Não) nega/inverte o valor lógico do operando.
Exemplo (negação):
Exemplo (conjunção):
Exemplo (disjunção):
Expressões literais
Resultado é do tipo literal.
Expressões relacionais
Resultado é do tipo lógico.
1. Aritméticos
2. Literais
3. Relacionais
4. Lógicos
MP (n1*4+n2*5+n3*6)/15
MP >=7 Aprovado
MF (MP+n4)/2
Aprovado
MF >=5
Reprovado Fim
P = 2, Q = 3, R = 12, S= 4.5
8. Assuma que todas as variáveis (x, y, z e w) são de tipo Inteiro. Ache o valor de cada
variável.
a. x (2 + 3) * 6 30
b. y (12 + 6)/2*3 3
c. z (2 + 3)/4 1
d. w 3 + 2*(7/2) 10
Algoritmo Hipotenusa
Real: hipotenusa, cateto_a, cateto_b
Inicio
Escreva(“Digite o valor dos catetos”)
Leia(cateto_a, cateto_b)
hipotenusa (cateto_a^2+catetob^2)^0.5
Escreva(“O valor da hipotenusa é “, hipotenusa)
Fim
Aula 5: Instruções Primitivas
São as instruções básicas para o funcionamento do computador:
Instrução de Atribuição
Armazena uma informação (dados) em uma variável.
Sintaxe:
Semântica:
1. Avaliação da expressão
2. Armazenamento do valor resultante na variável
Exemplos:
Instrução de Entrada
Sintaxe:
Semântica:
Exemplos:
Leia (gastos)
Instrução de Saída
Sintaxe:
Semântica:
Exemplos de algoritmos
1. Calcule a sua idade em meses e em dias a partir da sua idade em anos.
2. Dado o preço unitário e a quantidade de um produto, imprimir o valor da compra.
3. Calcular a área e o perímetro de um retângulo, sendo dadas as medidas dos lados.
4. Calcular o valor da função f(x) = (3x-1)/5 nos extremos do intervalo [a, b] (dados os
valores de a e b), e em mais dois valores do seu interior, igualmente espaçados.
Rastreamento de algoritmos
Consiste na execução manual do algoritmo, seguindo os passos que o computador seguiria
para a sua execução automática. É utilizado para verificar se um algoritmo está correto.
Exercícios de fixação
1. Encontrar o consumo médio de um veículo, conhecidos a distância total e o volume de
combustível consumido para percorrer tal distância.
Algoritmo Consumo
Real: consumo, distancia, volume
Inicio
escreva ("Calcula o consumo médio de combustível")
escreva ("------- - ------- ----- -- -----------")
escreva (" ")
escreva ("Qual a distancia (Km) percorrida pelo veiculo? ")
leia(distancia)
escreva ("Quantos litros de combustível foram gastos no trajeto? ")
leia(volume)
consumo <- volume/distancia
escreva("O consumo medio de combustível foi de ", consumo, " litros/km")
escreva("O carro fez ", distancia/volume, "km com 1 litro")
Fim
2. Calcular a média parcial de um aluno da UFRN, dadas as suas três primeiras notas.
Algoritmo MediaParcial
Real : media, nota1, nota2, nota3
Inicio
escreva ("------- -- ----- -------")
escreva ("Calculo da média Parcial")
escreva ("------- -- ----- -------")
escreva (" ")
escreva ("Digite as suas três primeiras notas: ")
leia(nota1, nota2, nota3)
media <- (nota1*4 + nota2*5 + nota3*6)/15
escreva("A sua média na disciplina é ", media)
Fim
Algoritmo PontoNoPlano
Real: fxy, x, y
Inicio
escreva ("===========================================")
escreva ("Calculo da função f(x,y) = 3x^2 + 2y^2 - xy")
escreva ("===========================================")
escreva (" ")
escreva ("Digite as cordenadas x e y de um ponto: ")
leia(x,y)
fxy <- (3*x^2) + (2*y^2) - (x*y)
escreva ("O valor da função f(x,y) ")
escreva ("para x = ", x, " e y = ", y, " é igual a ", fxy)
Fim
Algoritmo CelsiusFarheneit
Real: tempCel, tempFar
Inicio
escreva ("++++++++++++++++++++++++++++++++++++++++++++")
escreva ("| Conversão Celsius - Farheneit |")
escreva ("++++++++++++++++++++++++++++++++++++++++++++")
escreva ("")
escreva ("Qual a temperatura em graus Celsius? ")
leia(tempCel)
tempFar <- 9 * tempCel/5 + 32
escreva ("A temperatura digitada é equivalente a", tempFar, "F")
Fim
Algoritmo PolegadaMilimetro
Real: polegadas, milimetros
Inicio
escreva ("---> Conversão de Polegadas em Milimetros <---")
escreva ("")
escreva ("Qual a medida em polegadas? ")
leia(polegadas)
milimetros <- polegadas * 25.4
escreva ("A medida equivale a", milimetros, "mm")
Fim
Aula 6
Algoritmo ServidorPublico
Logico: funcionario
Inteiro: anosDeServico
Inicio
funcionario <-V
anosDeServico <- 4
escreva (“Recebe benefício: ”, AnosdeServico > 5 e funcionario)
Fim
Alg. Lucro
Inicio
escreva “Qual a arrecadação da sua empresa?”
leia (“arrecadacao”)
escreva ("Qual o gasto da sua empresa? ")
leia “gastos”
lucro <- arrecadacao - gastos
escreva ("O lucro da sua empresa foi de, lucro”)
Fim
Algoritmo Consumo
Real: consumo medio, distancia total, volume
Inicio
escreva ("Qual a distancia percorrida pelo veiculo? ")
leia(distancia total)
escreva ("Quantos litros de combustível foram gastos no trajeto? ")
leia(volume)
consumo medio = volume/distancia total
escreva("O consumo médio de combustível foi de ", consumo, " litros/km")
Fim
Algoritmo Estado
Inteiro: a, b
Inicio
a <- 5
b <- 2
escreva (a, b) // linha 6
b <- a;
escreva (a, b) // linha 8
a <- b;
escreva (a, b) // linha 9
Fim
Algoritmo Estado
Inicio
a <- 5.5
b <- 2
total <- a * b
Fim
algoritmo "CelsiusFarheneit"
// Função : Converte um temperatura de graus Celsius para Farheneit
// Autor : Judson Santiago
// Data : 21/03/2007
var
tempCel, tempFar : real
inicio
escreval ("Conversão Celsius - Farheneit")
escreval ("")
escreva ("Qual a temperatura em graus Celsius? ")
leia(tempCel)
tempFar <- 9 * tempCel/5 + 32
escreval ("A temperatura digitada é equivalente a", tempFar, "F")
Fimalgoritmo
9. Faça um algoritmo para construir uma mensagem de boas vindas aos novos hospedes
de um hotel. O algoritmo deve pedir o nome, sobrenome e cidade de origem do
hospede e imprimir uma mensagem seguindo este padrão:
Bem vindo NOME SOBRENOME.
Esperamos que a sua viagem de CIDADE até Natal tenha sido agradável.
Aula 7: Controle de Fluxo de Execução
Até agora todos os algoritmos seguiam uma estrutura de execução linear, em que cada
instrução é executada após a instrução anterior. Certas estruturas de controle permitem
mudar o fluxo de execução de um algoritmo.
• Estruturas de decisão
Se
Escolha
• Estrutura de repetição
Para
Enquanto
Repita
Estrutura de Decisão SE
Sintaxe:
As instruções dentro do SE podem conter outras estruturas de decisão SE, formando SE’s
aninhados ou encaixados.
Exemplo: Determinar o maior (max) e o menor (min) valor entre 3 numeros (a, b, c).
Algoritmo Torcedor
Literal: time
Inicio
Escreva ("Entre com o nome de um time de futebol: ")
Leia (time)
Escolha (time)
Caso ("Flamengo", "Fluminense", "Vasco", "Botafogo")
Escreva ("É um time carioca.")
Caso ("São Paulo", "Palmeiras", "Santos", "Corínthians")
Escreva ("É um time paulista.")
Senão
Escreva ("É de outro estado.")
Fimescolha
Fim
Algoritmo Fatorial
Inteiro: num, k, fat
Inicio
Leia (num)
fat 1
Para k de 2 até num faça
fat fat * k
Fimpara
Escreva(“Fatorial de”,num, “ é igual a “, fat)
Fim
Semântica: enquanto a condição for verdadeira o bloco de instruções será executado. Para
que a repetição não seja infinita a condição deve se tornar falsa em algum momento.
Algoritmo Decrescente
Inteiro: num
Inicio
Escreva (“Digite um número inteiro positivo:”)
Leia (num)
Enquanto (num>=0) faça
Escreva(num)
num num - 1
Fimenquanto
Fim
Repita
<instruções>
Até (<condição>)
Semântica: Repete o bloco de instruções até que a condição seja verdadeira. O bloco de
instruções é sempre executado pelo menos uma vez.
Algoritmo LoginSenha
Literal: login, senha
Inicio
Repita
Escreva(“Digite seu login:”)
Leia(login)
Escreva(“Digite sua senha:”)
Leia(senha)
Até (login=”alunos” e senha=”algoritmos”)
Escreva (“Login feito com sucesso”)
Fim
Aula 8
2. Dados três valores, X, Y, Z, verificar se eles podem ser os comprimentos dos lados de
um triangulo. Verificar se é um triângulo eqüilátero, isósceles ou escaleno. Se eles não
formarem um triângulo, escrever uma mensagem.
3. Dados três valores inteiros distintos (a,b, c), escreva-os em ordem crescente.
5. Calcular a soma entre todos os valores inteiros compreendidos entre dois números
dados (não inclua os números dados na soma).
N0
Repita
Quadrado N + 1
Se (N > 5) então
Escreva (Quadrado)
Fimse
NN+1
Até (N = 10)
Calcule e escreva: