Introdução aos Algoritmos
Algoritmo
• É uma seqüência de instruções bem definidas
que, executadas passo a passo, permitem a
solução de um problema.
• Passo-a-passo, significa que cada passo é
completado antes que o próximo comece.
• Bem-definido, significa que cada passo é
completamente definido a partir da entrada
atual e dos passos anteriores
Algoritmo
• É uma seqüência de instruções bem definidas que, executadas
passo a passo, permitem a solução de um problema. Essa é
uma definição geral podendo ser aplicada em qualquer
contexto.
• Exemplo: Um algoritmo para trocar uma lâmpada:
Passo 1: Desligar a chave.
Passo 2: Pegar uma lâmpada nova.
Passo 3: Pegar uma escada.
Passo 4: Posicionar a escada embaixo da lâmpada queimada
Passo 5: Subir na escada com a lâmpada nova na mão.
Passo 6: Retirar a lâmpada queimada.
Passo 7: Colocar a lâmpada nova.
Passo 8: Descer da escada.
Passo 9: Ligar a chave.
Passo 10: Testar a lâmpada.
Passo 11: Guardar a escada.
Passo 12: Jogar a lâmpada velha no lixo apropriado.
Algoritmo
• Podemos descrever um algoritmo um pouco diferente
para realizar a mesma tarefa. Isso quer dizer que um
mesmo problema pode ser resolvido de maneiras
diferentes visando atingir o mesmo objetivo.
• Construindo um algoritmo:
– Ler atentamente o enunciado do problema destacando
seus pontos principais;
– Definir os dados de entrada, ou seja, quais dados serão
fornecidos;
– Definir o processamento dos dados, ou seja, o que deve
ser feito com os dados de entrada para transformá-los em
dados de saída.
– Definir os dados de saída, ou seja, a resposta ao problema.
Algoritmo
• Propriedades:
• A seqüência de instruções deve ser finita.
• Deve terminar depois de um número finito de
passos.
• Não deve existir ambiguidade sobre o próximo passo
a ser realizado.
• Deve ser correto, ou seja, sempre termina e, para
qualquer instância de entrada, produz uma saída
correta.
• Exemplos: Receita de bolo, Manual de um forno de
microondas, Regras de um jogo, Direções para transitar
entre dois lugares
Programa
• Um programa de computador (software) é representado
pelas instruções e pelos dados definidos que, ao serem
executados por alguma máquina, cumprem algum
objetivo.
• Elementos de um programa:
• Dados
• representam a informação, de entrada ou saída
• Instruções
• formalizam um algoritmo que opera sobre dados
Algoritmos
Formas de Representação de Algoritmos:
1) Linguagem natural: Especificação verbal
dos passos em linguagem natural.
2) Fluxogramas: Diagramas que representam
graficamente o algoritmo, enfatizando os
passos individuais e o fluxo da execução.
• Convencionaremos os seguintes símbolos
Terminal: inicio / fim de um fluxograma
Fluxograma
Seta de fluxo de dados: indica o sentido dos dados e
conecta símbolos ou blocos.
Processamento: indica a ação a ser executada.
Entrada de Dados: indica a ação de leitura de dados.
Saída de Dados: indica a ação de impressão de
dados na tela.
Decisão: indica a decisão a ser tomada.
Conector: indica a conexão de fluxos.
Exemplo:
Soma ← A + B
A, B
Soma > 5
Início
Fim
S N
Fluxograma
“Maior
que 5”
“Menor
ou
igual a
5”
Formas de Representação de Algoritmos (continuação):
3) Pseudocódigo: Linguagem especial para
expressão de algoritmos que funciona como uma
linguagem simplificada de programação, utilizando
expressões concisas e pré-definidas para
representar as ações e os fluxos de execução.
Obs.: Programação é a sequência de planejamento,
projeto, escrita, teste e manutenção de instruções
executadas pelo computador. Envolve obediência
às regras (lógicas e matemáticas), otimização e
documentação, entre outras questões.
Algoritmos
Pseudocódigo: Português Estruturado
• Uma forma de escrever algoritmos em pseudocódigo
é chamada de Português Estruturado. Esta forma se
aproxima de um programa, porém os comandos são
escritos em Português.
• Comandos Iniciais em Português Estruturado
• Corpo do Algoritmo:
# Título do Algoritmo
início
<declarações>
<comandos>
fim
Pseudocódigo: Português Estruturado
• Comando de escrita na tela: Serve para imprimir
dados na tela do computador.
escreva( )
• Comando de leitura de dados: Serve para obter
dados do usuário via teclado.
leia( )
Exemplo 1
• Escreva um algoritmo que escreva a frase “Meu primeiro
programa” na tela.
•Pseudocódigo:
# Algoritmo que escreve uma frase na tela
início
escreva('Meu primeiro programa')
fim
•Fluxograma:
Início
Fim
“Meu primeiro
programa”
Números
• Na maioria das linguagens de programação
comumente trabalhamos com dois tipos de dados
numéricos:
Tipo Exemplos
inteiro
12
25
9
real
2.9
7.0
0.5
Algumas operações
• Nosso programa pode efetuar algumas operações
aritméticas. As principais são:
+ soma
- subtração
* multiplicação
/ divisão
% resto da divisão
Operação de Divisão
• A operação de divisão pode ser de duas formas:
divisão inteira e divisão real.
inteiro / inteiro = inteiro
= real
real / real
real / inteiro = real
= real
inteiro / real
Precedência de operadores
( ) parênteses
* / % operadores de multiplicação, divisão
e resto
+ - operadores de soma e subtração
• Alguns operadores em ordem de precedência (de
cima para baixo) Em caso de associação, da
esquerda para a direita:
Exemplos:
2 + 3 * 3 – 5 =
(2 + 3) * (3 – 5) =
5 % 3 * 3 – 5 =
15 / 2 + 1.0 =
6
-10
1
8.0
Exemplo 2 – versão I
• Escreva um algoritmo em pseudocódigo que mostre o
resultado da expressão 2 * 8 + 2 – 5
# Algoritmo que imprime uma expressão
início
escreva (2*8+2-5)
fim
Exemplo 2 – versão II
• Escreva um algoritmo que mostre o resultado da
expressão 2 * 8 + 2 – 5
# Algoritmo que imprime uma frase e uma expressão
início
escreva ('O resultado de 2*8+2-5 é ', 2*8+2-5)
fim
Exercícios
• Indique qual o resultado será obtido das seguintes
expressões:
a) 1 / 2
b) 1.0 / 2
c) 1 % 2
d) (220 / 10) % 4
e) 29.0 / 2 + 4
f) 29 / 2 + 4
g) 3 / 6.0 - 7
• Escreva um algoritmo que calcule o valor da seguinte
expressão:
Variáveis
• Uma variável é uma porção da memória do computador
onde um valor pode ser armazenado para ser usado por
um programa. A esse espaço de memória é associado um
nome (identificador) e um tipo que corresponde ao tipo
de informação que será armazenada.
• Nomes de variáveis:
– O primeiro caractere deve ser uma letra ou o caractere _
– Na formação dos identificadores são permitidos: números,
letras (maiúsculas ou minúsculas) e o caractere _
– Algumas linguagens fazem diferença entre maiúsculas e
minúsculas, portanto o identificador num é diferente de
Num, nUm, NUM, ...
– Não são permitidos espaços em branco.
Variáveis
• Tipos de dados primitivos:
inteiro
real
lógico
complexo
texto (ou string)
• Declaração de variáveis: Normalmente feita no início do
algoritmo, define o espaço a ser reservado na memória para
uso do algoritmo.
• Forma Geral:
tipo nome
Exemplo:
inteiro a
real b, c
texto nome
• Nem todas as linguagens exigem declaração de variáveis.
Python não exige.
• Para armazenar valores em variáveis:
• Operador de atribuição (←): Armazena um valor ou o
resultado de uma expressão em uma variável.
Exemplo:
inteiro a, b
a ← 10
b ← 5 * 7 + a
• Comando de leitura de dados: Obtém dados do usuário
via teclado.
leia(c)
Variáveis
Exemplo 1
• Escreva um algoritmo que leia dois números inteiros e
apresente na tela a soma destes valores.
soma ← a + b
a, b
Início
Fim
“O
resultado
da
soma e”,
soma
Fluxograma
Exemplo 1
• Escreva um algoritmo que leia dois números inteiros e
apresente na tela a soma destes valores.
# Calcula a soma de dois números
# digitados pelo usuário
início
inteiro a, b, soma
leia(a, b)
soma ← a + b
escreva(‘O resultado da soma é ’, soma)
fim
Exemplo 1 – Versão II
• Escreva um algoritmo que leia dois números inteiros e
apresente na tela a soma destes valores.
# Calcula a soma de dois números
# digitados pelo usuário
início
inteiro a, b, soma
escreva(‘Digite um número inteiro:’)
leia(a)
escreva(‘Digite outro número inteiro:’)
leia(b)
soma ← a + b
escreva(‘O resultado da soma é ’, soma)
fim
Exemplo 2
• Escreva um programa que leia a base e a altura de um
triângulo, calcule e escreva na tela o valor de sua área:
area ← base*altura/2
base, altura
Início
Fim
area
Fluxograma
Exemplo 2
• Escreva um programa que leia a base e a altura de um
triângulo e calcule e escreva na tela o valor de sua área:
# Calcula a área de um triângulo
início
real base, altura, area
leia(base, altura)
area ← base * altura / 2
escreva(area)
fim
Exemplo 2
• Escreva um programa que leia a base e a altura de um
triângulo e calcule e escreva na tela o valor de sua área:
# Calcula a área de um triângulo
início
real base, altura, area
escreva(‘Digite o valor da base do triângulo:’)
leia(base)
escreva(‘Digite o valor da altura do
triângulo:’)
leia(altura)
area ← base * altura / 2
escreva(‘O valor da área do triângulo é ’, area)
fim
Exercícios
• Um funcionário recebe um salário fixo mais 4% de comissão sobre
as vendas. Escreva um algoritmo que leia o valor do salário fixo de
um funcionário e o valor de suas vendas, calcule e mostre na tela a
comissão e o salário final do funcionário.
• Sabe-se que para iluminar de maneira correta os cômodos de uma
casa, para cada m2
deve-se usar 18 W de potência. Escreva um
algoritmo que leia as dimensões de um cômodo retangular (em
metros), calcule e mostre a sua área (em m2
) e a potência de
iluminação que deverá ser utilizada.
• João recebeu seu salário e precisa pagar duas contas que estão
atrasadas. João deverá pagar de multa 2% do valor de cada conta.
Escreva um algoritmo que leia o valor do salário de João e o valor
de cada uma das contas, calcule e mostre na tela quanto restará do
salário de João.

Aula 02 - Introducao a Algoritmos.pptx.pdf

  • 1.
  • 2.
    Algoritmo • É umaseqüência de instruções bem definidas que, executadas passo a passo, permitem a solução de um problema. • Passo-a-passo, significa que cada passo é completado antes que o próximo comece. • Bem-definido, significa que cada passo é completamente definido a partir da entrada atual e dos passos anteriores
  • 3.
    Algoritmo • É umaseqüência de instruções bem definidas que, executadas passo a passo, permitem a solução de um problema. Essa é uma definição geral podendo ser aplicada em qualquer contexto. • Exemplo: Um algoritmo para trocar uma lâmpada: Passo 1: Desligar a chave. Passo 2: Pegar uma lâmpada nova. Passo 3: Pegar uma escada. Passo 4: Posicionar a escada embaixo da lâmpada queimada Passo 5: Subir na escada com a lâmpada nova na mão. Passo 6: Retirar a lâmpada queimada. Passo 7: Colocar a lâmpada nova. Passo 8: Descer da escada. Passo 9: Ligar a chave. Passo 10: Testar a lâmpada. Passo 11: Guardar a escada. Passo 12: Jogar a lâmpada velha no lixo apropriado.
  • 4.
    Algoritmo • Podemos descreverum algoritmo um pouco diferente para realizar a mesma tarefa. Isso quer dizer que um mesmo problema pode ser resolvido de maneiras diferentes visando atingir o mesmo objetivo. • Construindo um algoritmo: – Ler atentamente o enunciado do problema destacando seus pontos principais; – Definir os dados de entrada, ou seja, quais dados serão fornecidos; – Definir o processamento dos dados, ou seja, o que deve ser feito com os dados de entrada para transformá-los em dados de saída. – Definir os dados de saída, ou seja, a resposta ao problema.
  • 5.
    Algoritmo • Propriedades: • Aseqüência de instruções deve ser finita. • Deve terminar depois de um número finito de passos. • Não deve existir ambiguidade sobre o próximo passo a ser realizado. • Deve ser correto, ou seja, sempre termina e, para qualquer instância de entrada, produz uma saída correta. • Exemplos: Receita de bolo, Manual de um forno de microondas, Regras de um jogo, Direções para transitar entre dois lugares
  • 6.
    Programa • Um programade computador (software) é representado pelas instruções e pelos dados definidos que, ao serem executados por alguma máquina, cumprem algum objetivo. • Elementos de um programa: • Dados • representam a informação, de entrada ou saída • Instruções • formalizam um algoritmo que opera sobre dados
  • 7.
    Algoritmos Formas de Representaçãode Algoritmos: 1) Linguagem natural: Especificação verbal dos passos em linguagem natural. 2) Fluxogramas: Diagramas que representam graficamente o algoritmo, enfatizando os passos individuais e o fluxo da execução.
  • 8.
    • Convencionaremos osseguintes símbolos Terminal: inicio / fim de um fluxograma Fluxograma Seta de fluxo de dados: indica o sentido dos dados e conecta símbolos ou blocos. Processamento: indica a ação a ser executada. Entrada de Dados: indica a ação de leitura de dados. Saída de Dados: indica a ação de impressão de dados na tela. Decisão: indica a decisão a ser tomada. Conector: indica a conexão de fluxos.
  • 9.
    Exemplo: Soma ← A+ B A, B Soma > 5 Início Fim S N Fluxograma “Maior que 5” “Menor ou igual a 5”
  • 10.
    Formas de Representaçãode Algoritmos (continuação): 3) Pseudocódigo: Linguagem especial para expressão de algoritmos que funciona como uma linguagem simplificada de programação, utilizando expressões concisas e pré-definidas para representar as ações e os fluxos de execução. Obs.: Programação é a sequência de planejamento, projeto, escrita, teste e manutenção de instruções executadas pelo computador. Envolve obediência às regras (lógicas e matemáticas), otimização e documentação, entre outras questões. Algoritmos
  • 11.
    Pseudocódigo: Português Estruturado •Uma forma de escrever algoritmos em pseudocódigo é chamada de Português Estruturado. Esta forma se aproxima de um programa, porém os comandos são escritos em Português. • Comandos Iniciais em Português Estruturado • Corpo do Algoritmo: # Título do Algoritmo início <declarações> <comandos> fim
  • 12.
    Pseudocódigo: Português Estruturado •Comando de escrita na tela: Serve para imprimir dados na tela do computador. escreva( ) • Comando de leitura de dados: Serve para obter dados do usuário via teclado. leia( )
  • 13.
    Exemplo 1 • Escrevaum algoritmo que escreva a frase “Meu primeiro programa” na tela. •Pseudocódigo: # Algoritmo que escreve uma frase na tela início escreva('Meu primeiro programa') fim •Fluxograma: Início Fim “Meu primeiro programa”
  • 14.
    Números • Na maioriadas linguagens de programação comumente trabalhamos com dois tipos de dados numéricos: Tipo Exemplos inteiro 12 25 9 real 2.9 7.0 0.5
  • 15.
    Algumas operações • Nossoprograma pode efetuar algumas operações aritméticas. As principais são: + soma - subtração * multiplicação / divisão % resto da divisão
  • 16.
    Operação de Divisão •A operação de divisão pode ser de duas formas: divisão inteira e divisão real. inteiro / inteiro = inteiro = real real / real real / inteiro = real = real inteiro / real
  • 17.
    Precedência de operadores () parênteses * / % operadores de multiplicação, divisão e resto + - operadores de soma e subtração • Alguns operadores em ordem de precedência (de cima para baixo) Em caso de associação, da esquerda para a direita: Exemplos: 2 + 3 * 3 – 5 = (2 + 3) * (3 – 5) = 5 % 3 * 3 – 5 = 15 / 2 + 1.0 = 6 -10 1 8.0
  • 18.
    Exemplo 2 –versão I • Escreva um algoritmo em pseudocódigo que mostre o resultado da expressão 2 * 8 + 2 – 5 # Algoritmo que imprime uma expressão início escreva (2*8+2-5) fim
  • 19.
    Exemplo 2 –versão II • Escreva um algoritmo que mostre o resultado da expressão 2 * 8 + 2 – 5 # Algoritmo que imprime uma frase e uma expressão início escreva ('O resultado de 2*8+2-5 é ', 2*8+2-5) fim
  • 20.
    Exercícios • Indique qualo resultado será obtido das seguintes expressões: a) 1 / 2 b) 1.0 / 2 c) 1 % 2 d) (220 / 10) % 4 e) 29.0 / 2 + 4 f) 29 / 2 + 4 g) 3 / 6.0 - 7 • Escreva um algoritmo que calcule o valor da seguinte expressão:
  • 21.
    Variáveis • Uma variávelé uma porção da memória do computador onde um valor pode ser armazenado para ser usado por um programa. A esse espaço de memória é associado um nome (identificador) e um tipo que corresponde ao tipo de informação que será armazenada. • Nomes de variáveis: – O primeiro caractere deve ser uma letra ou o caractere _ – Na formação dos identificadores são permitidos: números, letras (maiúsculas ou minúsculas) e o caractere _ – Algumas linguagens fazem diferença entre maiúsculas e minúsculas, portanto o identificador num é diferente de Num, nUm, NUM, ... – Não são permitidos espaços em branco.
  • 22.
    Variáveis • Tipos dedados primitivos: inteiro real lógico complexo texto (ou string) • Declaração de variáveis: Normalmente feita no início do algoritmo, define o espaço a ser reservado na memória para uso do algoritmo. • Forma Geral: tipo nome Exemplo: inteiro a real b, c texto nome • Nem todas as linguagens exigem declaração de variáveis. Python não exige.
  • 23.
    • Para armazenarvalores em variáveis: • Operador de atribuição (←): Armazena um valor ou o resultado de uma expressão em uma variável. Exemplo: inteiro a, b a ← 10 b ← 5 * 7 + a • Comando de leitura de dados: Obtém dados do usuário via teclado. leia(c) Variáveis
  • 24.
    Exemplo 1 • Escrevaum algoritmo que leia dois números inteiros e apresente na tela a soma destes valores. soma ← a + b a, b Início Fim “O resultado da soma e”, soma Fluxograma
  • 25.
    Exemplo 1 • Escrevaum algoritmo que leia dois números inteiros e apresente na tela a soma destes valores. # Calcula a soma de dois números # digitados pelo usuário início inteiro a, b, soma leia(a, b) soma ← a + b escreva(‘O resultado da soma é ’, soma) fim
  • 26.
    Exemplo 1 –Versão II • Escreva um algoritmo que leia dois números inteiros e apresente na tela a soma destes valores. # Calcula a soma de dois números # digitados pelo usuário início inteiro a, b, soma escreva(‘Digite um número inteiro:’) leia(a) escreva(‘Digite outro número inteiro:’) leia(b) soma ← a + b escreva(‘O resultado da soma é ’, soma) fim
  • 27.
    Exemplo 2 • Escrevaum programa que leia a base e a altura de um triângulo, calcule e escreva na tela o valor de sua área: area ← base*altura/2 base, altura Início Fim area Fluxograma
  • 28.
    Exemplo 2 • Escrevaum programa que leia a base e a altura de um triângulo e calcule e escreva na tela o valor de sua área: # Calcula a área de um triângulo início real base, altura, area leia(base, altura) area ← base * altura / 2 escreva(area) fim
  • 29.
    Exemplo 2 • Escrevaum programa que leia a base e a altura de um triângulo e calcule e escreva na tela o valor de sua área: # Calcula a área de um triângulo início real base, altura, area escreva(‘Digite o valor da base do triângulo:’) leia(base) escreva(‘Digite o valor da altura do triângulo:’) leia(altura) area ← base * altura / 2 escreva(‘O valor da área do triângulo é ’, area) fim
  • 30.
    Exercícios • Um funcionáriorecebe um salário fixo mais 4% de comissão sobre as vendas. Escreva um algoritmo que leia o valor do salário fixo de um funcionário e o valor de suas vendas, calcule e mostre na tela a comissão e o salário final do funcionário. • Sabe-se que para iluminar de maneira correta os cômodos de uma casa, para cada m2 deve-se usar 18 W de potência. Escreva um algoritmo que leia as dimensões de um cômodo retangular (em metros), calcule e mostre a sua área (em m2 ) e a potência de iluminação que deverá ser utilizada. • João recebeu seu salário e precisa pagar duas contas que estão atrasadas. João deverá pagar de multa 2% do valor de cada conta. Escreva um algoritmo que leia o valor do salário de João e o valor de cada uma das contas, calcule e mostre na tela quanto restará do salário de João.