Algoritmos e Programação - 2014.1 - Aula 1
-
Upload
thyago-maia -
Category
Education
-
view
1.932 -
download
3
description
Transcript of Algoritmos e Programação - 2014.1 - Aula 1
Algoritmos e Programação
Prof.º Thyago Maia2014.1
Objetivos
Aula 1: Introdução
• Apresentar a disciplina• Apresentar o conceito de “Algoritmo“• Fazer com que o aluno conheça a
importância dos algoritmos• Apresentar os tipos de algoritmos
existentes
2
Apresentação
Apresentação
• Professor: Thyago Maia Tavares de Farias
– Mestre em Informática pelo PPGI / DI / UFPB– Bacharel em Ciência da Computação – UFPB– Currículo Lattes: http://lattes.thyagomaia.net– E-Mail: [email protected]
4
Apresentação
• Foco da disciplina
Ensino dos conceitos básicos de algoritmos estruturados, envolvendo tipos de dados e formas de representação de algoritmos;
Fundamentos e técnicas estruturadas de programação para o desenvolvimento de software;
5
Apresentação
• Avaliações (3 estágios):– 1º estágio:• Prática em Laboratório (0 a 5 pontos);• Exercícios de Fixação (0 a 5 pontos);
– 2º estágio:• Prática em Laboratório (0 a 5 pontos);• Exercícios de Fixação (0 a 5 pontos);
– 3º estágio:• Prática em Laboratório (0 a 8 pontos);• Projeto Integrador (0 a 2 ponto);
6
Apresentação
• Reposição , Final e Presença– Reposição:
• Prática em Laboratório (0 a 10 pontos);• O aluno tem direito a repor APENAS uma prova;• Os exercícios práticos realizados no estágio em que o aluno não
participou da prova não irão valer para esta fase;
– Final:• Prática em Laboratório (0 a 10 pontos);• Todo o conteúdo dos três estágios;
– Presença• Limite de faltas: 20 horas (10 aulas);
7
Apresentação
• Moodle (Ferramenta de Educação a Distância)– Material da disciplina (Slides, notas de aula,
indicação de livros, etc.);– Divulgação e submissão das práticas em
laboratório (exercícios de fixação e de avaliação);– Ferramenta para comunicação oficial (avisos,
lembretes, divulgação de datas, divulgação de notas, etc.);
– http://academico.unipe.br
8
Apresentação
• Sites auxiliares:
– http://facebook.com/profthyagomaia– http://twitter.com/thyagomaia– http://www.slideshare.net/thyagomaia
9
Apresentação
• Software que será utilizado no curso:
– Eclipse IDE• http://www.eclipse.org
10
Apresentação
• Para ter sucesso na disciplina:– Procure estar presente em todas as aulas• Alguns exercícios poderão valer pontos para a nota de
um determinado estágio!
– Se faltou, visite o Moodle e cheque o material da aula que você perdeu;
– Dúvidas? Entre em contato através das ferramentas de comunicação do Moodle (chat, fórum, mensagens, etc.);
– Pratique... Pratique... Pratique... 11
Afinal, o que é um algoritmo?
Afinal, o que é um algoritmo?
Sequência finita de instruções, ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema;
Não envolve apenas aspectos computacionais;– Exemplos• Uma receita de bolo;•Manual de instruções;
13
Afinal, o que é um algoritmo?
Exemplo: Sequência para fritar um ovo:1) Retirar o ovo da geladeira;2) Colocar a frigideira no fogo;3) Colocar óleo;4) Esperar até o óleo ficar quente;5) Quebrar o ovo separando a casca;6) Colocar o conteúdo do ovo na frigideira;7) Esperar um minuto;8) Retirar o ovo da frigideira;9) Apagar o fogo;
14
Afinal, o que é um algoritmo?
Tal sequência é um algoritmo? Vejamos...– A sequência anterior possui instruções finitas e
ordenadas?• SIM. 9 instruções ordenadas;• O início de uma instrução depende da
conclusão de uma instrução anterior; – O objetivo da sequência foi atingido?• SIM. O ovo foi frito;
Logo, a sequência anterior é um algoritmo!
15
Afinal, o que é um algoritmo?
Exercício – Ordene e estruture uma sequência para a
realização de uma ligação telefônica em um orelhão.
16
Afinal, o que é um algoritmo?
Uma possível solução:1) Tirar o telefone do gancho;
2) Ouvir o sinal de linha;3) Introduzir o cartão no orelhão;4) Teclar o número desejado;5) Conversar;6) Desligar;7) Tirar o cartão;
17
Afinal, o que é um algoritmo?
A solução anterior... mais robusta:1) Tirar o telefone do gancho;2) Ouvir o sinal de linha;3) Introduzir o cartão no orelhão;4) Teclar o número desejado;5) Se chamar e alguém atender...
1) Conversar;2) Desligar;3) Retirar o cartão;
6) Senão...1) Desligar;2) Voltar para a instrução 1;
18
Desafio!
Desafio
Escreva um algoritmo que ajude o homem do barco a levar o lobo, a ovelha e a caixa de verduras para o outro lado do lago. Utilize a descrição narrativa para representar o algoritmo. Lembre-se:
Lobos comem ovelhas e ovelhas comem as verduras quando o homem está na outra margem!
20
Desafio
1. Pega a ovelha2. Vai para a outra margem3. Deixa a ovelha4. Volta a margem inicial5. Pega a caixa de verduras6. Vai para a outra margem7. Deixa a caixa de verduras e pega a ovelha8. Volta a margem inicial9. Deixa a ovelha e pega o lobo10. Vai para a outra margem11. Deixa o lobo12. Volta a margem inicial13. Pega a ovelha14. Vai para a outra margem15. Deixa a ovelha
21
O que podemos concluir sobre algoritmos?
O que podemos concluir sobre algoritmos?
Algoritmo é uma espécie de passo a passo de ações (instruções);
Algoritmos retornam uma saída (ex.: um ovo frito) a partir de entradas (ex.: um ovo) através de uma sequência de passos;
Os passos são executados um após o outro (de forma sequencial);
23
O que podemos concluir sobre algoritmos?
Um algoritmo está correto quando sua sequência de instruções retorna uma saída esperada;
Podem existir um ou mais algoritmos que retornam uma saída esperada; Mas podem existir algoritmos mais eficientes que
outros;
Um algoritmo não é a solução do problema, mas o caminho que busca a solução do problema;
24
Por que criamos algoritmos?
Por que criamos algoritmos?
A linguagem natural não pode ser interpretada por computadores;
Computadores são projetados para executar tarefas bem definidas a partir de instruções;
Para desenvolver software, utilizamos linguagens de programação...
A linguagem algorítmica é similar a uma linguagem de programação; Logo, aprendendo a criar algoritmos, estamos aptos
a programar em qualquer linguagem de programação;
26
Tipos de algoritmos
Tipos de algoritmos
Descrição Narrativa;
Fluxograma;
Pseudocódigo, Português Estruturado ou Portugol;
28
SUBJETIVIDADE
PRECISÃO
Tipos de algoritmos
Descrição Narrativa
Utiliza-se preferencialmente um verbo por frase; Formada por frases curtas e simples; É objetiva; Evita palavras com sentido dúbio;
29
Tipos de algoritmos
Descrição Narrativa – Exemplo:
Dobro de um número (dobro = número x 2)
Digitar um número; Gravar em uma variável; Multiplicar o número digitado por 2; Gravar o resultado em outra variável; Mostrar o resultado da operação;
30
Tipos de algoritmos
Fluxograma
Descrevem o fluxo de ação de um determinado trabalho lógico;
Usa símbolos convencionais, permitindo poucas variações;
Representados por símbolos geométricos;
31
Tipos de algoritmos
• Fluxograma – Conjunto de Símbolos:
32
INÍCIO OU FIM DE ALGORITMO
CÁLCULO OU ATRIBUIÇÃO DE VALOR
ENTRADA DE DADOS
SAÍDA DE DADOS
DECISÃOFLUXO DE DADOS
Tipos de algoritmos
• Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre dois números.
33
Tipos de algoritmos
• Fluxograma – Exemplo:
34
INÍCIO
M = N1 * N2
N1, N2
M FIM
Tipos de algoritmos
• Exemplo 2: Faça um algoritmo que calcula e apresenta a divisão entre dois números.
35
Tipos de algoritmos
• Fluxograma – Exemplo 2:
36
INÍCIO
D = NUM / DEN
NUM, DEN
IMPOSSÍVEL DIVIDIR
FIM
DEN = 0
SIM
D
NÃO
Tipos de algoritmos
• Exercício: Faça um algoritmo (fluxograma) que calcula a média de três notas de um determinado aluno e informa se o aluno está aprovado ou reprovado.
– O aluno estará aprovado se sua média for maior ou igual a 7;
37
Tipos de algoritmos
• Fluxograma – Exercício:
38
INÍCIO
MEDIA = (N1 + N2 + N3) / 3
N1, N2, N3
APROVADO
FIM
MEDIA >= 7
SIM NÃO
REPROVADO
Tipos de algoritmos
Português Estruturado (Portugol)
Linguagem mais restrita que o português em linguagem natural;
Simplificação extrema do português; Significados bem definidos para todos os termos
utilizados nas instruções; Possui um conjunto de palavras e regras
específicas (sintaxe da linguagem);
39
Tipos de algoritmos
Português Estruturado (Portugol)
Normalmente as implementações são feitas em papel, escritas a mão;
40
Tipos de algoritmos
• Forma básica de um algoritmo em portugol:
ALGORITMODECLARE
FIM_ALGORITMO41
VARIÁVEIS
INSTRUÇÕES
TIPOS DE DADOS
Tipos de algoritmos
• Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre dois números.
42
Tipos de algoritmos
ALGORITMODECLARE N1, N2, M NUMÉRICO
ESCREVA “Digite dois números”LEIA N1, N2M <- N1 * N2ESCREVA “MULTIPLICAÇÃO = ” , M
FIM_ALGORITMO
43
Explore o assunto!
Explore o assunto!
• Referências– Fundamentos da programação de computadores
(ASCENCIO, A. F. G., CAMPOS, E. A. V.): Capítulo 1
45