Algoritmos e Programação
Aula 1 – Apresentação da Disciplina
Introdução a Algoritmos
Profa. Marina Gomes
Atividades
• Plano de Ensino
- Conteúdos da disciplina, definição das
datas, critérios de avaliação e bibliografia.
• Moodle: Algoritmos e Programação
• Site da Profa. Marina:
https://sites.google.com/site/marinagomesunipampa
• Qualquer dúvida:
Avaliações
• 3 Provas Teóricas Sem Consulta
- P1 – 25% - P2 – 30% - P3 – 40%
• Para ser aprovado:
- 75% de Frequência e Média >= 6.0
- Avaliações de recuperação poderão ocorrer durante o semestre, quando verificado a necessidade pelo professor (trabalhos, listas de exercícios, correção
Introdução a Algoritmos e
Programação
Algoritmo
• Matemática
- Descreve o processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, regras formais para a obtenção do resultado, ou da solução do problema
• Computação
- Descreve o conjunto pré-determinado e bem definido
de regras e processos destinados à solução de um
Lógica de Programação
• Técnica de desenvolver algoritmos (sequências
lógicas) para atingir determinados objetivos dentro de
certas regras baseadas na Lógica matemática
• Estes algoritmos depois são adaptados para a
Linguagem de Programação utilizada pelo programador para construir seu software
Algoritmo
• Um algoritmo é uma sequência não ambígua de
instruções que é executada até que determinada
condição se verifique
• Mais especificamente, em matemática, constitui o
conjunto de processos (e símbolos que os
Algoritmo
• Utilizamos
constantemente algoritmos
em
nosso cotidiano:
- Instruções para se utilizar um aparelho eletrodoméstico
- Uma receita para preparo de algum prato
- Guia de preenchimento para declaração do
imposto de renda
- A regra para determinação de máximos e mínimos de funções por derivadas sucessivas
- A maneira como as contas de água, luz e telefone são calculadas mensalmente
Algoritmo
• Um algoritmo poderia ser grosseiramente comparado à uma receita culinária
• Uma receita é um programa de atividades que deve
ser respeitada e cumprida passo-a-passo
- Caso um dos passos seja desconsiderado, a receita não dará certo
Algoritmo
• Eles podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica) até que a tarefa seja completada
• Um algoritmo não representa, necessariamente, um
programa de computador, e sim os passos necessários para realizar uma tarefa
• Diferentes algoritmos podem realizar a mesma tarefa usando um conjunto diferente de instruções em mais ou menos tempo, espaço ou esforço do que os outros
Algoritmo
• Algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um único algoritmo
• Algoritmo é um caminho para a solução de um problema:
- Em geral, os caminhos que levam a uma solução são muitos
Algoritmo
• Para o desenvolvimento de um algoritmo eficiente, é necessário obedecermos algumas premissas básicas no momento de sua construção:
- Definir ações simples e sem ambiguidade - Organizar as ações de forma ordenada
- Estabelecer as ações dentro de uma sequência
Algoritmo
• Os algoritmos são capazes de realizar tarefas como:
1. Ler e escrever dados
2. Avaliar expressões algébricas, relacionais e
lógicas
3. Tomar decisões com base nos resultados das
expressões avaliadas
4. Repetir um conjunto de ações de acordo com
Algoritmo
• A importância do algoritmo está no fato de termos que especificar uma sequência de passos lógicos para
que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade
própria, faz apenas o que mandamos.
• Com uma ferramenta algorítmica, podemos conceber
uma solução para um dado problema, não dependendo de uma linguagem específica e até
Por que precisamos de Algoritmos?
• Abstração
- Todo esforço é concentrado na resolução do
problema e não em detalhes computacionais
que
podem
ser
acrescentados
posteriormente
• Portabilidade
Características
• Ser finito
• Não dar margem à dupla interpretação
(nãoambíguo)
• Capacidade de receber dado(s) de entrada do
mundo exterior
• Poder gerar informações de saída para o
mundo externo ao do ambiente do algoritmo
• Ser efetivo (todas as etapas especificadas no
algoritmo devem ser alcançáveis em um tempo
finito)
Representação de Algoritmos
• Existem diversas formas de representação de algoritmos, mas não há consenso com relação à melhor delas
• Algumas formas de representação de algoritmos tratam
dos problemas apenas em nível lógico, abstraindo-se de
detalhes de implementação muitas vezes relacionados com alguma linguagem de programação específica
• Por outro lado, existem formas de representação de algoritmos que possuem uma maior riqueza de detalhes e
Representação de Algoritmos
• Dentre as formas de representação de
algoritmos mais conhecidas, sobressaltam:
- Descrição Narrativa
- Fluxograma Convencional
- Pseudocódigo, também conhecido como Português Estruturado ou Portugol
Descrição Narrativa
• Nesta forma de representação os algoritmos são
expressos diretamente em linguagem natural
• Exemplo
Receita de Bolo:
Providencie manteiga, ovos, farinha, etc Misture os ingredientes
Despeje a mistura na fôrma de bolo Leve a fôrma ao forno
Espere 30 minutos
Descrição Narrativa
• Desvantagens
- Imprecisão
- Pouca confiabilidade (a imprecisão acarreta a desconfiança)
- extensão( (normalmente, escreve-se muito para dizer pouca coisa)
• Esta representação é pouco usada na prática
porque o uso de linguagem natural muitas
vezes dá oportunidade a más interpretações,
Descrição Narrativa
• Problema: Calcular a média final dos alunos. Os alunos realizarão quatro provas: P1, P2, P3 e P4, onde
MF = (P1 + P2 + P3 + P4)/4 • Algoritmo:
1. Receba a nota da prova 1 2. Receba a nota de prova 2 3. Receba a nota de prova 3 4. Receba a nota de prova 4
Descrição Narrativa
• Algoritmo Trocar uma lâmpada queimada:
1. Pegar uma escada
2. Posicionar a escada debaixo da lâmpada
3. Buscar uma lâmpada nova
4. Subir na escada
5. Retirar a lâmpada queimada
6. Colocar a lâmpada nova
Descrição Narrativa - Problemas
• O algoritmo não atingirá seu objetivo se a lâmpada nova estiver queimada. Para tal, acrescentamos um teste condicional (estrutura seletiva)
• Pegar uma escada
• Posicionar a escada debaixo da lâmpada • Buscar uma lâmpada nova
• Subir na escada
• Retirar a lâmpada queimada • Colocar lâmpada nova
• Se a lâmpada nova não acender, então:
• Retirar a lâmpada queimada • Colocar lâmpada nova
• Se a lâmpada nova não acender, então:
• Retirar a lâmpada queimada • Colocar lâmpada nova
• Se a lâmpada nova não acender, então: • Retirar a lâmpada queimada
Descrição Narrativa - Problemas
• O algoritmo não atingirá seu objetivo se a lâmpada nova estiver queimada. Para tal, acrescentamos um teste condicional (estrutura seletiva)
• Pegar uma escada
• Posicionar a escada debaixo da lâmpada • Buscar uma lâmpada nova
• Subir na escada
• Retirar a lâmpada queimada • Colocar lâmpada nova
• Se a lâmpada nova não acender, então:
• Retirar a lâmpada queimada • Colocar lâmpada nova
• Se a lâmpada nova não acender, então:
• Retirar a lâmpada queimada • Colocar lâmpada nova
• Se a lâmpada nova não acender, então: • Retirar a lâmpada queimada
• Colocar lâmpada nova ....
Por isso é necessário
utilizar algumas
estruturas próprias
de algoritmos para
facilitar a descrição
Descrição Narrativa - Problemas
• Algoritmo Trocar uma lâmpada queimada com o uso de
estruturas de repetição:
1. Pegar uma escada
2. Posicionar a escada debaixo da lâmpada 3. Buscar uma lâmpada nova
4. Subir na escada
5. Retirar a lâmpada queimada 6. Colocar lâmpada nova
7. Enquanto lâmpada nova não acender, faça: 1. Retirar a lâmpada queimada
Descrição Narrativa
• Exercícios
1. Escreva uma sequência de passos (descrição
narrativa) para escovar os dentes.
2. Escreva uma sequência de passos (descrição
narrativa) para efetuar um saque em um
caixa eletrônico
Fluxograma
• É uma representação gráfica de algoritmos
onde
formas
geométricas
diferentes
implicam ações distintas
• Objetivo: facilitar o entendimento das ideias
contidas nos algoritmos
Fluxograma
Cálculo da média de um aluno:
- Obter as notas da primeira e da segunda prova
- Calcular a média aritmética entre as duas
- Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele foi reprovado
Linguagem Algorítmica (pseudocódigo)
• Também conhecida como português estruturado ou
portugol
• Bastante rico em detalhes e, por assemelhar-se bastante à forma em que os programas são escritos, encontra muita aceitação
• Representação suficientemente geral para permitir que
a tradução de um algoritmo nela representado para uma
Linguagem Algorítmica (pseudocódigo)
Algoritmo
<nome_do_algoritmo>
<declaração_de_variáveis>
<subalgoritmos>
Início
<corpo_do_algoritmo>
Fim
Linguagem Algorítmica
• Exemplo
Algoritmo Media
Var N1, N2, Media : real Início Leia N1, N2 Media = (N1+N2)/2 Se Media >= 7 Entao Escreva “Aprovado” Senao Escreva “Reprovado”
Linguagem Algorítmica
• Vantagens
- Independência física da solução (solução lógica apenas)
- Usa o português como base
- Pode-se definir quais e como os dados vão estar estruturados
- Passagem quase imediata do algoritmo para uma linguagem de programação qualquer
• Desvantagens
Algoritmo
• Recapitulando:
- Um Algoritmo é uma sequência de
instruções ordenadas de forma lógica para
a resolução de uma determinada tarefa ou
problema
Construção de Algoritmos
• Ex: construir um algoritmo para fazer suco de laranja: Entrada: - laranja
Processamento: - cortar a laranja - espremer a laranja
Construção de Algoritmos
• Ex: Identificar dados de entrada, processamento e saída 1. Receber código da peça
2. Receber valor da peça
3. Receber quantidade de peças
4. Calcular valor total da peça = (quantidade *valor da peça)
Programa
• Um Programa é um Algoritmo escrito em
uma Linguagem de Programação
Linguagens de Programação
• São Softwares que permitem o desenvolvimento de programas
• Possuem um poder de criação ilimitado, desde jogos, editores e texto, sistemas empresariais até sistemas operacionais
• Existem várias Linguagens de Programação, cada uma com suas características próprias
Exercícios
1. Calcular a área de um triângulo. Recebe o valor da base. Recebe o valor da altura. Calcula a área. Mostra a área.
2. Descobrir quais os números adjacentes. Recebe um valor digitado pelo usuário. Mostra o seu sucessor. Mostra o seu antecessor.
3. Mostrar o quadrado de um número. Recebe o numero. Calcula o seu quadrado. Mostra seu quadrado.
4. Mostrar o cubo de um numero. Recebe o número. Calcula seu cubo. Mostra seu cubo.
5. Calculo percentual. Recebe o peso de uma pessoa. Recebe o percentual de emagrecimento. Calcula o novo peso. Mostra seu novo peso.
6. Conversão Celsius em Fahrenheit. Recebe a temperatura em Celsius. Converte a temperatura em Fahrenheit (celsius*1,8 + 32). Mostra a Temperatura convertida.