Upload
thyago-maia
View
320
Download
6
Embed Size (px)
DESCRIPTION
Algoritmos e Programação - 2014.2 - Aula 1
Citation preview
Algoritmos e Programação
Prof.º Thyago Maia2014.2
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
– Doutorando em Computação pelo CIn / UFPE– 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 5 pontos);• Exercícios de Fixação (0 a 3 pontos);• Projeto Integrador (0 a 2 ponto);
– Média Final: Maior nota (1º ou 2º estágio) + Nota do 3º Estágio / 2;
6
Apresentação
• Ausência em Provas, Final e Presença– Ausência em Provas:
• O aluno só poderá se ausentar em uma das duas primeiras atividades (1º ou 2º estágio);
• A presença será obrigatória na prova do 3º estágio;• Não há provas de reposição de estágio;
– 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 (a partir do 2º estágio)• 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 sistema acadêmico e cheque o material da aula que você perdeu;
– Dúvidas? Entre em contato através das ferramentas de comunicação do sistema acadêmico (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
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
28