SlideShare uma empresa Scribd logo
Pseudocódigo e
visualg
Agenda
2
• Revisão
• Algoritmos
• Estrutura de dados
• Estrutura básica de um algoritmo
em pseudocódigo
• Teste de mesa
• Operadores aritméticos
O que já foi visto até agora?
3
Lógica
Colocar ordem no pensamento.
Lógica de Programação
Técnica de Encadear pensamentos até atingir um objetivo ou solução
de um problema.
Seqüência Lógica:
Passos que devem ser executados até atingir um objetivo ou a
solução de um problema.
Algoritmo
É uma sequência lógica de passos ou instruções finitas que
resolvem um
determinado problema.
Algoritmo Narrativo
4
• Troca de um pneu furado
– Afrouxar ligeiramente as
porcas
– Suspender o carro
– Retirar as porcas e o pneu
– Colocar o pneu reserva
– Apertar as porcas
– Abaixar o carro
– Dar o aperto final nas porcas
– É um algoritmo ?
– O computador pode
entender ?
Algoritmo Narrativo
Alto
nível
5
Baixo
nível
Humanos
entendem
Máquinas
entendem
Pseudocódigo
Algoritmos
6
• Para
resolver
o
problem
a
da
ambigüidad
e
(várias
interpretaçõe
s
comando), vamos
usar
para o
mesmo um
conjunto
de
instruções que determinam exatamente o
que o computador deve fazer.
LEIA
←(atribuição)
ESCREVA
Algoritmos, Lógica e Introdução à
ESTRUTURAS DE
DADOS
Estruturas de Dados
Nossos algoritmos trabalham com
Dados. Vamos começar separando o
tema:
1. Dados;
2. Estruturas;
3. Armazenamento;
Dados na Informática
• Oque é, ou pode ser,um“dado”?
– É um número;
– É um nome;
– É um endereço;
– É o valor de um produto;
– Pode ser muitas coisas...
Estruturas
• Paravocê, o que é uma “estrutura”?
– É algo que dá forma?
– É algo que sustenta?
– SegundoHouaiss: “aquilo que dá sustentação
(concreta ou abstrata) a alguma coisa.
Como Armazenar
Dados?
• Dados são representados em
pequenas estruturas e em geral
são chamados de variáveis ou
constantes!
• Tudo que é armazenado dentro
do computador, permanece em
alguma memória!
A Memória do
Computador
Como Armazenar Dados?
13
• Os dados são armazenados em
posições de memória, identificados
por:
– Variáveis: armazenam dados em caráter
temporário e tem conteúdo dinâmico, ou seja,
podem ser acessadas ou alteradas a qualquer
momento.
– Ex.:
• Idade
• Peso
• Saldo em conta corrente
Como Armazenar
Dados?
14
• Constantes:
são
dados estáticos, o
seu
conteúdo pode ser acessado a qualquer
momento, mas será definido no momento
de sua criação e não poderá ser mais
alterado.
– Ex.:
• 2
• 56
• 12.45
• “teste”
Como Armazenar
Dados?
15
• Todas as variáveis ou constantes devem
possuir um tipo de dado, ou seja, devem
ser preparadas para armazenarem um
conjunto de valores.
Como Armazenar
Dados?
16
Tipos de Dados Básicos:
• Inteiro: números inteiros
– 10
• Real: números fracionários
– 10.76
• Caractere: um elemento entre “ “;
– “3”, “a”
• Conjunto de caracteres (String): vários
caracteres juntos
– “informática”, “1234”,“asdsdsad123”
• Lógico: verdadeiro (V)ou falso (F)
– (F) ou (V)
Como Armazenar
Dados?
17
• Cada posição de memória
possui:
Conteúd
o: 41
Tipo
de
Dado:
Inteiro
Nome
:
Idade
Como Armazenar
Dados?
18
• Mas, como declarar uma variável?:
• Criar um nome: identificação da variável ou da posição de memória a
ser usada;
1. é importante usar nomes que identifiquem o que ela
armazena;
2. não podem ser iguais a palavras reservadas
Leia, Escreva.
3. nomes de variáveis devem possuir como primeiro caractere
uma letra ou sublinhado '_' (os outros caracteres podem ser
letras, números e sublinhado);
4. Não pode ter sinais de pontuação;
5. Não deve conter espaço em branco;
6. nomes de variáveis não devem ser muito longas;
7. na sintaxe do PortuguêsEstruturado, não há diferença
entre letras maiúsculas de minúsculas (NOME é o mesmo
que noMe).
Como Armazenar
Dados?
19
• Exemplos:
• Válidos
– Abacaxi
– A123
– aaa
– Nome
– Contra_chequ
e
– ContraChequ
e
• Inválidos
– Idade*
– 1Nome
– Pão
– Maça
Como Armazenar
Dados?
20
• Declarando uma variável,
precisamos determinar:
• Tipo de Dado: Referente aos valores que
serão armazenados;
• Nome: Identificação da variável, algo que indique
o que
ela armazena;
• Valor: Pré-determinado ou pós-determinado?
– Sintaxe:
Nome:
TipodeDado Ex:
peso : real
Exercícios
21
1. Liste três nomes válidos e três nomes inválidos para
variáveis.
2. Apresente uma constante do tipo inteiro.
3. Apresente uma constante do tipo real.
4. Apresente uma constante do tipo caractere.
5. Como deverão ser criadas as variáveis (nome e tipo de
dado) para as seguintes situações:
a) Representar o peso de uma pessoa;
b) Representar a temperatura
c) Representar o salário de um funcionário
d) Representar o nome de um produto
Fases de Desenvolvimento de
um Algoritmo
22
Entrada
(Receber Dados)
Processamento
(Efetuar operações)
Saída
(Mostrar resultados)
• Determinar oproblema a ser resolvido, ou seja,
defini-lo
muito bem;
Dividir a solução nas três fases
Desenvolvimento de
um algoritmo
23
Imagine o seguinte problema: Calcular a soma de dois
números inteiros quaisquer.
Para Montar o Algoritmo proposto faremos três
perguntas: Quais os dados de entrada?
R: Os dados de entrada são os números:
n1,
n2. Qual será o processamento a ser
utilizado?
R: Somar os números:
Pseudo-código
24
• Forma genérica de se escrever um algoritmo;
• Algoritmo: É uma seqüência lógica de passos ou
instruções finitas, bem definidas e não ambíguas,
que resolvem um determinado problema.
• Código falso que lembra um código de programação.
• Utilizado para apresentar a lógica de um algoritmo
sem se
preocupar com a sintaxe da linguagem;
Comandos Básicos
25
• Leia (entrada)
– Ex.: Leia (idade)
• Atribuição
(processamento)
– Idade <- 10
• Escreva
(saída/resultados)
– Ex.: Escreva (nome)
– Escreva(“Nome”, nome)
Estrutura básica de um algoritmo
em pseudocódigo
26
Leia
(n1)
Leia
(n2)
OU Leia (n1,
n2)
Declaração de
variáveis n1, n2,
soma : inteiro
Inicio (Início do
algoritmo) Fase de
Entrada de Dados
Processamento dos
Dados
soma  n1+n2
Saída de
dados
Escreva
(soma)
• Algoritmo para somar
números:
1. x: inteiro
2. y: inteiro
3. soma:
inteiro
4. x <-
10
5. y <-
20
6. soma <- x +
y
7.
escreva(som
a)
Saída
Processamento
Declaraçõ
es
Entrada
Exemplo de Aplicação 2:
Operadores Aritméticos
28
Operador Representação
Soma +
Subtração -
Divisão /
Multiplicação *
Faça um algoritmo em pseudocódigo
para:
1. Somar três números inteiros
2. Subtrair dois números inteiros
3. Somar dois números reais
4. Somar um número real com um número
inteiro
Exercícios
29
Teste de Mesa
• Após desenvolver um algoritmo ele deverá sempre ser
testado;
• Como testar os algoritmos?
•
•
•
Coloca-se as variáveis uma ao lado da outra formando colunas;
Utiliza-se valores quaisquer para as variáveis cujo o resultado final é conhecido.
Agora pegamos os valores utilizados anteriormente e testamos no algoritmo executando passo a
passo
(instrução a instrução;
• Exemplo: Fazer o teste de mesa para o algoritmo somar três números
inteiros.
n1 n2 n3 soma
4 5 10 19
4 5 10 ?19
4 5 10 -
?
1
1
9
Situação Conhecida
Algoritmo
Correto Erro
no algoritmo
Observação: Valores na cor Azul (Valores quaisquer cujo resultado final é conhecido)
Valores na cor Verde (valores utilizados anteriormente e a saída deve ser calculada executando-se o
algoritmo instrução a instrução) 30
Introdução ao
VisuALG
Agenda
• VisuALG:
– Introdução ao VisuALG;
– Apresentação do Software;
– Entrada, Processamento e
Saída;
– Depuração;
– Exercícios.
Introdução
ao
VISUALG
Site: http://www.apoioinformatica.inf.br/o-
visualg
VisuALG
• Ferramenta:
– Aprender a programar;
– Mais simples que linguagens
comuns;
– Uso de Português estruturado;
Apresentação
VISUAL
G
Estrutura Básica do Código
• Código Fonte (pseudocódigo):
– Implementação do nosso algoritmo;
– O que será transformado em
programa de computador;
– Deve ser escrito utilizando uma
linguagem de programação;
Estrutura Básica do Código
• Código Fonte em
VisuALG:
algoritmo "semnome"
/ / Função:
/ / Autor :
/ / Data : 23/05/2011
/ / Seção de Declarações
var
inicio
//Seção de Comandos
fimalgoritmo
Variáveis
• Declaração no
VisuALG:
• Atribuição no
VisuALG:
var
n: inteiro
x: real
b: logico
c: caractere
y, z, w: real
inicio
/ / Seção de Comandos
n < - 10
x < - 10.5
b < - verdadeiro
C < - “a”
fimalgoritmo
Operadores Aritméticos
Operadores
Aritméticos
Português Estruturado
Adição: +
Subtração: -
Multiplicação: *
Divisão: /
Divisão Inteira: 
Exponenciação: ^ ou Exp ( <base>, <expoente> )
Módulo (resto da divisão): %
Raiz Quadrada: raizq(<número>)
 

3
2
 (53) 

5
1 ((2/3(5 3))1)*5
Operadores Aritméticos
• Ordem de
Precedência:
• Exemplos:
– (2 + 2) / 2 =
2
– 2 + 2 / 2 = 3
Operadores
Aritméticos
Português
Estruturado
Parêntese
s:
()
Exponenciaçã
o:
^
Multiplicação e
Divisão:
*, /,  e %
Adição e
Subtração
+ e
-
Últim
o
Primeir
o
Atividade Prática
• Fazendo Aritmética:
– Faça um novo projeto em VisuALG;
– Declare três variáveis do tipo REAL;
– Atribua à 2 delas os valores 10.5 e 9.5;
– Atribua à 3ª delas a soma das duas
primeiras;
Saída Básica
• Para mostrar na tela:
– escreva(<informação>, <informação>,
...)
• Escreve tudo na mesma linha;
– escreval(<informação>,
<informação>, ...)
• Escreve em linhas separadas;
Atividade Prática
• Mostrando o Resultado:
– Faça um novo projeto em VisuALG;
– Declare três variáveis do tipo REAL;
– Atribua à 2 delas os valores 10.5 e 9.5;
– Atribua à 3ª delas a soma das duas
primeiras;
– Escrevana tela: “Resultado: “ e o valorda soma;
Entrada Básica
• Para capturar do usuário:
– leia(<variável>)
• Captura o que usuário digitar e armazena na
variável;
Atividade Prática
• Capturando a Entrada:
– Faça um novo projeto em VisuALG;
– Declare três variáveis do tipo REAL;
– Atribua à 2 delas os valores 10.5 e 9.5;
– Use o comando leia(<variável>) para
determinar os valores das 2 primeiras
variáveis;
– Atribua à 3ª delas a soma das duas
primeiras;
– Escrevana tela: “Resultado: “ e o valorda soma;
Detectando Problemas:
DEPURAÇ
ÃO
Depuradores
• Em inglês: Debugger;
• Função: Encontrar falhas em programas;
• Como: Executar o código passo a passo
analisando o conteúdo das variáveis e
observando o comportamento do
programa;
• Qual o motivo do nome bug?
Depuradores
• No VisuALG: Tecla
F8.
Exercícios
Escreva um algoritmo que
exiba a idade de um usuário
qualquer.
Exercício
 Escreva um algoritmo que receba como
entrada o total de minutos usados por
um cliente e exiba o valor a ser pago por
ele. Sabe-se que a lanhouse cobra R$
2,30 por cada hora de acesso (Lembrete:
1 hora = 60 minutos).
Exercício
Faça um algoritmo que
calcule a média de 4
números introduzidos pelo
usuário.
 Faça um algoritmo que receba uma
temperatura em graus Celsius e
apresente-a em graus Fahrenheit,
de acordo com a fórmula: ºF =
(1.8ºC) +32.
 Sabendo que a Copiadora da
UNIFACOL cobra R$ 0,08 por cada
cópia feita, escreva um programa que
receba como entrada a quantidade de
folhas de um livro e exiba o valor total a
ser pago para copiá-lo. (Lembrete: cada
folha corresponde a duas páginas, frente
e verso).
 A biblioteca da UNIFACOL empresta
gratuitamente seus livros a alunos, professores
e funcionários de toda a instituição. Porém,
sempre que um usuário atrasa a entrega de um
livro, ele tem que pagar uma multa de R$ 2,50
por cada dia de atraso. Escreva um programa
que receba como entrada a quantidade de dias
de atraso do empréstimo de um livro, e exiba o
valor da multa a ser paga pelo usuário.
Exercícios no visualg
1. Somar três números inteiros
2. Subtrair dois números inteiros
3. Somar dois números reais
4. Somar um número real com um número
inteiro
Exercícios no visualg
5. Somar dois números inteiros e multiplicar o resultados por 3.
6. Calcular a média aritmética de três números inteiros.
7. O sistema de avaliação determinada disciplina é composto
por três provas. A primeira prova tem peso 2, a segunda tem
peso 3 e a terceira tem peso 5. Faça um algoritmo para
calcular a média final de um aluno nesta disciplina.
8. Faça um algoritmo que calcule o salário líquido de um
funcionário, considerando que sobre o seu salário
bruto, incide um desconto de 10% para previdência. O
algoritmo deve mostrar o nome do funcionário, o seu
salário bruto e o seu salário líquido.
Exercícios no visualg
9. Determinar a área de um triângulo.
Fórmula/Processamento: Área = base x altura
/2
10. Determinar a área de um quadrado, podendo haver
lados com medidas reais.
Fórmula/Processamento: Área = lado x lado
dad
a
11. Determine o valor em graus Fahrenheit, de
uma temperatura expressa em graus
Celsius
Fórmula/Processo: Fahrenheit = (9/5 *c) +32
Exercícios no visualg
12. Construir um algoritmo que receba quatro números
inteiros quaisquer, calcule e mostre a soma dos
quadrados desses números.
13. Construir um algoritmo que receba dois números
inteiros, calcule e mostre a raiz quadrada de cada um
deles.
Operadores
59
div e mod (%)
Div  retorna o quociente de uma divisão de
inteiros. Mod (%)  retorna o resto de uma
divisão de inteiros.
Exemplos
60
5 / 2 = 2.5
5 div 2 = 2
(quociente)
5 % 2 = 1
(resto)
Prioridade de Operadores:
1º) Parênteses
2º) potenciação e
radiciação 3º) *, /, div e
Mod
4º) + e -
14.Construir um algoritmo que receba um
valor inteiro qualquer e mostre o
quociente da divisão desse valor por 3.
15.Construir um algoritmo que receba um
valor inteiro qualquer e mostre o resto da
divisão desse valor por 3.
Exercícios
61
16. Construir um algoritmo que, tendo como dados de entrada
dois pontos quaisquer do plano P(x1,y1) e Q (x2,y2),
apresente a distância entre eles. A fórmula que efetua o
cálculo é: distancia = raiz quadrada de ((x2-x1)elevado a 2 +
(y2-y1)elevado a 2)
17. Construir um algoritmo para calcular as raízes de uma
equação do 2 grau, sendo que os valores a,b e c são
fornecidos pelo usuário. Entrada: obter os valores de a,b e c
do usuário. Consideremos somente a obtenção de raízes
reais.
X1= ((-b + raizq (b^2 – 4*a*C)
)/(2*a))
X2 = ((-b - raizq (b^2 – 4*a*C))
/(2*a))
Exercícios
62
18. Faça um algoritmo que leia o nome , idade e o
endereço de
uma pessoa e mostre essas informações.
19. Faça um programa que calcula os gastos com
combustível em uma viagem. O programa deve
solicitar ao usuário a distância a ser percorrida em Km,
o consumo do carro em Km/litro e o preço do litro do
combustível. Como resposta o programa deverá
informar qual o valor em R$ a ser gasto com
combustível na viagem.
20. Suponha que um caixa eletrônico disponha apenas de notas
de 1, 10 e 50 reais. Considerando que o cliente está
querendo fazer um saque de um valor qualquer (considere
esse valor inteiro). Faça um algoritmo que mostre o número
mínimo de notas que o caixa deve fornecer para o cliente.
Mostre também, o valor do saque, e a quantidade de cada
nota a ser entregue. Obs: O caixa não trabalha com
Exercícios
63

Mais conteúdo relacionado

Semelhante a Aula 3-lógica.pptx

Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
Mario Jorge Pereira
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
Andrei Bastos
 
Aula 02 - Introducao a Algoritmos.pptx.pdf
Aula 02 - Introducao a Algoritmos.pptx.pdfAula 02 - Introducao a Algoritmos.pptx.pdf
Aula 02 - Introducao a Algoritmos.pptx.pdf
AntonioAngeloNeves
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
Adao Chiavelli
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
Jose Augusto Cintra
 
01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programação
maceca21
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
André Constantino da Silva
 
Algop - aula 03
Algop - aula 03Algop - aula 03
Algop - aula 03
Thiago Toscano Ferrari
 
Microfundamento - Algoritmos e Lógica de Programação (1).pdf
Microfundamento - Algoritmos e Lógica de Programação (1).pdfMicrofundamento - Algoritmos e Lógica de Programação (1).pdf
Microfundamento - Algoritmos e Lógica de Programação (1).pdf
FelipeSoares580387
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
Robson Ferreira
 
Construcao de Algoritmos - Aula 04
Construcao de Algoritmos - Aula 04Construcao de Algoritmos - Aula 04
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
diogoa21
 
000003 complexidade
000003 complexidade000003 complexidade
000003 complexidade
Ademar Trindade
 
0001
00010001
Alg aula 02 - algoritmos 1 tp1
Alg   aula 02 - algoritmos 1 tp1Alg   aula 02 - algoritmos 1 tp1
Alg aula 02 - algoritmos 1 tp1
Thalles Anderson
 
Aula algoritmo
Aula algoritmoAula algoritmo
Aula algoritmo
higorengcivil
 
4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo
Eugenio Caetano
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - Algoritmos
Jocelma Rios
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
Jocelma Rios
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
Elaine Cecília Gatto
 

Semelhante a Aula 3-lógica.pptx (20)

Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Aula 02 - Introducao a Algoritmos.pptx.pdf
Aula 02 - Introducao a Algoritmos.pptx.pdfAula 02 - Introducao a Algoritmos.pptx.pdf
Aula 02 - Introducao a Algoritmos.pptx.pdf
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programação
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
 
Algop - aula 03
Algop - aula 03Algop - aula 03
Algop - aula 03
 
Microfundamento - Algoritmos e Lógica de Programação (1).pdf
Microfundamento - Algoritmos e Lógica de Programação (1).pdfMicrofundamento - Algoritmos e Lógica de Programação (1).pdf
Microfundamento - Algoritmos e Lógica de Programação (1).pdf
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
Construcao de Algoritmos - Aula 04
Construcao de Algoritmos - Aula 04Construcao de Algoritmos - Aula 04
Construcao de Algoritmos - Aula 04
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
 
000003 complexidade
000003 complexidade000003 complexidade
000003 complexidade
 
0001
00010001
0001
 
Alg aula 02 - algoritmos 1 tp1
Alg   aula 02 - algoritmos 1 tp1Alg   aula 02 - algoritmos 1 tp1
Alg aula 02 - algoritmos 1 tp1
 
Aula algoritmo
Aula algoritmoAula algoritmo
Aula algoritmo
 
4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo4. metodos de contrucao de algoritmo
4. metodos de contrucao de algoritmo
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - Algoritmos
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 

Aula 3-lógica.pptx

  • 2. Agenda 2 • Revisão • Algoritmos • Estrutura de dados • Estrutura básica de um algoritmo em pseudocódigo • Teste de mesa • Operadores aritméticos
  • 3. O que já foi visto até agora? 3 Lógica Colocar ordem no pensamento. Lógica de Programação Técnica de Encadear pensamentos até atingir um objetivo ou solução de um problema. Seqüência Lógica: Passos que devem ser executados até atingir um objetivo ou a solução de um problema. Algoritmo É uma sequência lógica de passos ou instruções finitas que resolvem um determinado problema.
  • 4. Algoritmo Narrativo 4 • Troca de um pneu furado – Afrouxar ligeiramente as porcas – Suspender o carro – Retirar as porcas e o pneu – Colocar o pneu reserva – Apertar as porcas – Abaixar o carro – Dar o aperto final nas porcas – É um algoritmo ? – O computador pode entender ?
  • 6. Algoritmos 6 • Para resolver o problem a da ambigüidad e (várias interpretaçõe s comando), vamos usar para o mesmo um conjunto de instruções que determinam exatamente o que o computador deve fazer. LEIA ←(atribuição) ESCREVA
  • 7. Algoritmos, Lógica e Introdução à ESTRUTURAS DE DADOS
  • 8. Estruturas de Dados Nossos algoritmos trabalham com Dados. Vamos começar separando o tema: 1. Dados; 2. Estruturas; 3. Armazenamento;
  • 9. Dados na Informática • Oque é, ou pode ser,um“dado”? – É um número; – É um nome; – É um endereço; – É o valor de um produto; – Pode ser muitas coisas...
  • 10. Estruturas • Paravocê, o que é uma “estrutura”? – É algo que dá forma? – É algo que sustenta? – SegundoHouaiss: “aquilo que dá sustentação (concreta ou abstrata) a alguma coisa.
  • 11. Como Armazenar Dados? • Dados são representados em pequenas estruturas e em geral são chamados de variáveis ou constantes! • Tudo que é armazenado dentro do computador, permanece em alguma memória!
  • 13. Como Armazenar Dados? 13 • Os dados são armazenados em posições de memória, identificados por: – Variáveis: armazenam dados em caráter temporário e tem conteúdo dinâmico, ou seja, podem ser acessadas ou alteradas a qualquer momento. – Ex.: • Idade • Peso • Saldo em conta corrente
  • 14. Como Armazenar Dados? 14 • Constantes: são dados estáticos, o seu conteúdo pode ser acessado a qualquer momento, mas será definido no momento de sua criação e não poderá ser mais alterado. – Ex.: • 2 • 56 • 12.45 • “teste”
  • 15. Como Armazenar Dados? 15 • Todas as variáveis ou constantes devem possuir um tipo de dado, ou seja, devem ser preparadas para armazenarem um conjunto de valores.
  • 16. Como Armazenar Dados? 16 Tipos de Dados Básicos: • Inteiro: números inteiros – 10 • Real: números fracionários – 10.76 • Caractere: um elemento entre “ “; – “3”, “a” • Conjunto de caracteres (String): vários caracteres juntos – “informática”, “1234”,“asdsdsad123” • Lógico: verdadeiro (V)ou falso (F) – (F) ou (V)
  • 17. Como Armazenar Dados? 17 • Cada posição de memória possui: Conteúd o: 41 Tipo de Dado: Inteiro Nome : Idade
  • 18. Como Armazenar Dados? 18 • Mas, como declarar uma variável?: • Criar um nome: identificação da variável ou da posição de memória a ser usada; 1. é importante usar nomes que identifiquem o que ela armazena; 2. não podem ser iguais a palavras reservadas Leia, Escreva. 3. nomes de variáveis devem possuir como primeiro caractere uma letra ou sublinhado '_' (os outros caracteres podem ser letras, números e sublinhado); 4. Não pode ter sinais de pontuação; 5. Não deve conter espaço em branco; 6. nomes de variáveis não devem ser muito longas; 7. na sintaxe do PortuguêsEstruturado, não há diferença entre letras maiúsculas de minúsculas (NOME é o mesmo que noMe).
  • 19. Como Armazenar Dados? 19 • Exemplos: • Válidos – Abacaxi – A123 – aaa – Nome – Contra_chequ e – ContraChequ e • Inválidos – Idade* – 1Nome – Pão – Maça
  • 20. Como Armazenar Dados? 20 • Declarando uma variável, precisamos determinar: • Tipo de Dado: Referente aos valores que serão armazenados; • Nome: Identificação da variável, algo que indique o que ela armazena; • Valor: Pré-determinado ou pós-determinado? – Sintaxe: Nome: TipodeDado Ex: peso : real
  • 21. Exercícios 21 1. Liste três nomes válidos e três nomes inválidos para variáveis. 2. Apresente uma constante do tipo inteiro. 3. Apresente uma constante do tipo real. 4. Apresente uma constante do tipo caractere. 5. Como deverão ser criadas as variáveis (nome e tipo de dado) para as seguintes situações: a) Representar o peso de uma pessoa; b) Representar a temperatura c) Representar o salário de um funcionário d) Representar o nome de um produto
  • 22. Fases de Desenvolvimento de um Algoritmo 22 Entrada (Receber Dados) Processamento (Efetuar operações) Saída (Mostrar resultados) • Determinar oproblema a ser resolvido, ou seja, defini-lo muito bem; Dividir a solução nas três fases
  • 23. Desenvolvimento de um algoritmo 23 Imagine o seguinte problema: Calcular a soma de dois números inteiros quaisquer. Para Montar o Algoritmo proposto faremos três perguntas: Quais os dados de entrada? R: Os dados de entrada são os números: n1, n2. Qual será o processamento a ser utilizado? R: Somar os números:
  • 24. Pseudo-código 24 • Forma genérica de se escrever um algoritmo; • Algoritmo: É uma seqüência lógica de passos ou instruções finitas, bem definidas e não ambíguas, que resolvem um determinado problema. • Código falso que lembra um código de programação. • Utilizado para apresentar a lógica de um algoritmo sem se preocupar com a sintaxe da linguagem;
  • 25. Comandos Básicos 25 • Leia (entrada) – Ex.: Leia (idade) • Atribuição (processamento) – Idade <- 10 • Escreva (saída/resultados) – Ex.: Escreva (nome) – Escreva(“Nome”, nome)
  • 26. Estrutura básica de um algoritmo em pseudocódigo 26 Leia (n1) Leia (n2) OU Leia (n1, n2) Declaração de variáveis n1, n2, soma : inteiro Inicio (Início do algoritmo) Fase de Entrada de Dados Processamento dos Dados soma  n1+n2 Saída de dados Escreva (soma)
  • 27. • Algoritmo para somar números: 1. x: inteiro 2. y: inteiro 3. soma: inteiro 4. x <- 10 5. y <- 20 6. soma <- x + y 7. escreva(som a) Saída Processamento Declaraçõ es Entrada Exemplo de Aplicação 2:
  • 28. Operadores Aritméticos 28 Operador Representação Soma + Subtração - Divisão / Multiplicação *
  • 29. Faça um algoritmo em pseudocódigo para: 1. Somar três números inteiros 2. Subtrair dois números inteiros 3. Somar dois números reais 4. Somar um número real com um número inteiro Exercícios 29
  • 30. Teste de Mesa • Após desenvolver um algoritmo ele deverá sempre ser testado; • Como testar os algoritmos? • • • Coloca-se as variáveis uma ao lado da outra formando colunas; Utiliza-se valores quaisquer para as variáveis cujo o resultado final é conhecido. Agora pegamos os valores utilizados anteriormente e testamos no algoritmo executando passo a passo (instrução a instrução; • Exemplo: Fazer o teste de mesa para o algoritmo somar três números inteiros. n1 n2 n3 soma 4 5 10 19 4 5 10 ?19 4 5 10 - ? 1 1 9 Situação Conhecida Algoritmo Correto Erro no algoritmo Observação: Valores na cor Azul (Valores quaisquer cujo resultado final é conhecido) Valores na cor Verde (valores utilizados anteriormente e a saída deve ser calculada executando-se o algoritmo instrução a instrução) 30
  • 32. Agenda • VisuALG: – Introdução ao VisuALG; – Apresentação do Software; – Entrada, Processamento e Saída; – Depuração; – Exercícios.
  • 34. VisuALG • Ferramenta: – Aprender a programar; – Mais simples que linguagens comuns; – Uso de Português estruturado;
  • 36. Estrutura Básica do Código • Código Fonte (pseudocódigo): – Implementação do nosso algoritmo; – O que será transformado em programa de computador; – Deve ser escrito utilizando uma linguagem de programação;
  • 37. Estrutura Básica do Código • Código Fonte em VisuALG: algoritmo "semnome" / / Função: / / Autor : / / Data : 23/05/2011 / / Seção de Declarações var inicio //Seção de Comandos fimalgoritmo
  • 38. Variáveis • Declaração no VisuALG: • Atribuição no VisuALG: var n: inteiro x: real b: logico c: caractere y, z, w: real inicio / / Seção de Comandos n < - 10 x < - 10.5 b < - verdadeiro C < - “a” fimalgoritmo
  • 39. Operadores Aritméticos Operadores Aritméticos Português Estruturado Adição: + Subtração: - Multiplicação: * Divisão: / Divisão Inteira: Exponenciação: ^ ou Exp ( <base>, <expoente> ) Módulo (resto da divisão): % Raiz Quadrada: raizq(<número>)    3 2  (53)   5 1 ((2/3(5 3))1)*5
  • 40. Operadores Aritméticos • Ordem de Precedência: • Exemplos: – (2 + 2) / 2 = 2 – 2 + 2 / 2 = 3 Operadores Aritméticos Português Estruturado Parêntese s: () Exponenciaçã o: ^ Multiplicação e Divisão: *, /, e % Adição e Subtração + e - Últim o Primeir o
  • 41. Atividade Prática • Fazendo Aritmética: – Faça um novo projeto em VisuALG; – Declare três variáveis do tipo REAL; – Atribua à 2 delas os valores 10.5 e 9.5; – Atribua à 3ª delas a soma das duas primeiras;
  • 42. Saída Básica • Para mostrar na tela: – escreva(<informação>, <informação>, ...) • Escreve tudo na mesma linha; – escreval(<informação>, <informação>, ...) • Escreve em linhas separadas;
  • 43. Atividade Prática • Mostrando o Resultado: – Faça um novo projeto em VisuALG; – Declare três variáveis do tipo REAL; – Atribua à 2 delas os valores 10.5 e 9.5; – Atribua à 3ª delas a soma das duas primeiras; – Escrevana tela: “Resultado: “ e o valorda soma;
  • 44. Entrada Básica • Para capturar do usuário: – leia(<variável>) • Captura o que usuário digitar e armazena na variável;
  • 45. Atividade Prática • Capturando a Entrada: – Faça um novo projeto em VisuALG; – Declare três variáveis do tipo REAL; – Atribua à 2 delas os valores 10.5 e 9.5; – Use o comando leia(<variável>) para determinar os valores das 2 primeiras variáveis; – Atribua à 3ª delas a soma das duas primeiras; – Escrevana tela: “Resultado: “ e o valorda soma;
  • 47. Depuradores • Em inglês: Debugger; • Função: Encontrar falhas em programas; • Como: Executar o código passo a passo analisando o conteúdo das variáveis e observando o comportamento do programa; • Qual o motivo do nome bug?
  • 49. Exercícios Escreva um algoritmo que exiba a idade de um usuário qualquer.
  • 50. Exercício  Escreva um algoritmo que receba como entrada o total de minutos usados por um cliente e exiba o valor a ser pago por ele. Sabe-se que a lanhouse cobra R$ 2,30 por cada hora de acesso (Lembrete: 1 hora = 60 minutos).
  • 51. Exercício Faça um algoritmo que calcule a média de 4 números introduzidos pelo usuário.
  • 52.  Faça um algoritmo que receba uma temperatura em graus Celsius e apresente-a em graus Fahrenheit, de acordo com a fórmula: ºF = (1.8ºC) +32.
  • 53.  Sabendo que a Copiadora da UNIFACOL cobra R$ 0,08 por cada cópia feita, escreva um programa que receba como entrada a quantidade de folhas de um livro e exiba o valor total a ser pago para copiá-lo. (Lembrete: cada folha corresponde a duas páginas, frente e verso).
  • 54.  A biblioteca da UNIFACOL empresta gratuitamente seus livros a alunos, professores e funcionários de toda a instituição. Porém, sempre que um usuário atrasa a entrega de um livro, ele tem que pagar uma multa de R$ 2,50 por cada dia de atraso. Escreva um programa que receba como entrada a quantidade de dias de atraso do empréstimo de um livro, e exiba o valor da multa a ser paga pelo usuário.
  • 55. Exercícios no visualg 1. Somar três números inteiros 2. Subtrair dois números inteiros 3. Somar dois números reais 4. Somar um número real com um número inteiro
  • 56. Exercícios no visualg 5. Somar dois números inteiros e multiplicar o resultados por 3. 6. Calcular a média aritmética de três números inteiros. 7. O sistema de avaliação determinada disciplina é composto por três provas. A primeira prova tem peso 2, a segunda tem peso 3 e a terceira tem peso 5. Faça um algoritmo para calcular a média final de um aluno nesta disciplina. 8. Faça um algoritmo que calcule o salário líquido de um funcionário, considerando que sobre o seu salário bruto, incide um desconto de 10% para previdência. O algoritmo deve mostrar o nome do funcionário, o seu salário bruto e o seu salário líquido.
  • 57. Exercícios no visualg 9. Determinar a área de um triângulo. Fórmula/Processamento: Área = base x altura /2 10. Determinar a área de um quadrado, podendo haver lados com medidas reais. Fórmula/Processamento: Área = lado x lado dad a 11. Determine o valor em graus Fahrenheit, de uma temperatura expressa em graus Celsius Fórmula/Processo: Fahrenheit = (9/5 *c) +32
  • 58. Exercícios no visualg 12. Construir um algoritmo que receba quatro números inteiros quaisquer, calcule e mostre a soma dos quadrados desses números. 13. Construir um algoritmo que receba dois números inteiros, calcule e mostre a raiz quadrada de cada um deles.
  • 59. Operadores 59 div e mod (%) Div  retorna o quociente de uma divisão de inteiros. Mod (%)  retorna o resto de uma divisão de inteiros.
  • 60. Exemplos 60 5 / 2 = 2.5 5 div 2 = 2 (quociente) 5 % 2 = 1 (resto) Prioridade de Operadores: 1º) Parênteses 2º) potenciação e radiciação 3º) *, /, div e Mod 4º) + e -
  • 61. 14.Construir um algoritmo que receba um valor inteiro qualquer e mostre o quociente da divisão desse valor por 3. 15.Construir um algoritmo que receba um valor inteiro qualquer e mostre o resto da divisão desse valor por 3. Exercícios 61
  • 62. 16. Construir um algoritmo que, tendo como dados de entrada dois pontos quaisquer do plano P(x1,y1) e Q (x2,y2), apresente a distância entre eles. A fórmula que efetua o cálculo é: distancia = raiz quadrada de ((x2-x1)elevado a 2 + (y2-y1)elevado a 2) 17. Construir um algoritmo para calcular as raízes de uma equação do 2 grau, sendo que os valores a,b e c são fornecidos pelo usuário. Entrada: obter os valores de a,b e c do usuário. Consideremos somente a obtenção de raízes reais. X1= ((-b + raizq (b^2 – 4*a*C) )/(2*a)) X2 = ((-b - raizq (b^2 – 4*a*C)) /(2*a)) Exercícios 62
  • 63. 18. Faça um algoritmo que leia o nome , idade e o endereço de uma pessoa e mostre essas informações. 19. Faça um programa que calcula os gastos com combustível em uma viagem. O programa deve solicitar ao usuário a distância a ser percorrida em Km, o consumo do carro em Km/litro e o preço do litro do combustível. Como resposta o programa deverá informar qual o valor em R$ a ser gasto com combustível na viagem. 20. Suponha que um caixa eletrônico disponha apenas de notas de 1, 10 e 50 reais. Considerando que o cliente está querendo fazer um saque de um valor qualquer (considere esse valor inteiro). Faça um algoritmo que mostre o número mínimo de notas que o caixa deve fornecer para o cliente. Mostre também, o valor do saque, e a quantidade de cada nota a ser entregue. Obs: O caixa não trabalha com Exercícios 63