Algoritmos e Programação
Download
Report
Transcript Algoritmos e Programação
Algoritmos e
Programação
Thyago Maia Tavares de Farias
Aula 1
Sumário
Apresentação do Curso
Plano de Ensino (resumo)
O “segredo” para se sair bem na disciplina
Afinal, o que é um algoritmo?
O que podemos concluir sobre algoritmos?
Apresentação do Curso
Professor: Thyago Maia Tavares de Farias
Mestre em Informática pelo PPGI/DI/UFPB
Bacharel em Ciência da Computação pela UFPB
Currículo Lattes: http://lattes.thyagomaia.net
E-Mail: [email protected]
Twitter: http://twitter.com/thyagomaia
Plano de Ensino
Objeto de estudo:
Ensino dos conceitos básicos de algoritmos
estruturados, envolvendo tipos de dados e formas de
representação de algoritmos;
Fundamentos das técnicas estruturadas de
programação para o desenvolvimento de software;
Plano de Ensino
Objetivos:
Geral: Introduzir conceitos de técnicas de
programação, utilizando noções de algoritmos,
através de linguagem de alto nível.
Específicos:
Introduzir as técnicas para o desenvolvimento de
algoritmos;
Estudo e aplicação das técnicas básicas de programação
em linguagem de alto nível;
Análise e depuração de código;
Plano de Ensino
Metodologia:
Aulas teóricas (sala de aula) e práticas (laboratório);
Avaliação:
Avaliações escritas:
Exercícios e atividades práticas em laboratório:
3 avaliações (Datas a definir)
1 reposição (Datas a definir)
1 final (Datas a definir)
Irão complementar as notas das avaliações;
Projeto Integrador
Tema: Desvendando as Redes Sociais;
Irá complementar a nota da 3ª avaliação;
Plano de Ensino
Sobre o Projeto Integrador:
Trabalhos específicos serão desenvolvidos para cada
disciplina do período;
Grupos de até 4 pessoas;
O que será desenvolvido para a disciplina de
algoritmos?
Um programa que calcule estatísticas acerca das principais
redes sociais do mercado;
1º estágio: Pesquisar fórmulas e dados que poderão ser
utilizados nos programas;
Plano de Ensino
Sobre o Projeto Integrador:
O que será desenvolvido para a disciplina de
algoritmos?
Um algoritmo/programa que calcule estatísticas acerca
das principais redes sociais do mercado;
1º estágio: Pesquisar fórmulas e dados que poderão ser
utilizados nos algoritmos/programas (vale 1,0 ponto);
2º estágio: Início do desenvolvimento dos
algoritmos/programas (vale 1,0 ponto);
3º estágio: Produção de relatório, entrega dos
algoritmos/programas desenvolvidos e apresentação no
Fórum Integrador (vale 2,0 ponto)
Plano de Ensino
Bibliografia Básica:
TREMBLAY, J. P. & BUNT, R. Ciência dos
computadores: uma abordagem algorítmica. São
Paulo: McGraw-Hill, 1983.
AVILANNO, Israel de Campos. Algoritmos e
Pascal Manual de Apoio. Editora Moderna, 2ª
Edição, 2006.
FARRER, Harry et al. Algoritmos estruturados. Rio
de Janeiro: Guanabara Dois, 1989.
Plano de Ensino
Bibliografia Complementar:
ASCENCIO, Ana Fernanda Gomes. Lógica de programação
com pascal. São Paulo: Makron Books,1999.
MANZANO, José Augusto N. G.; YAMATUMI, Wilson Y.
Programação em turbo pascal 7.0. São Paulo: Érica, 1993.
GUIMARÃES, Ângelo de Moura. Algoritmos e estrutura de
dados. Rio de Janeiro:LTC, 1985.
KNUTH, D.E. The Art of Computer Programming (Vol
1:Fundamental Algorithms). São Paulo: Addison-Wesley,
1974.
WIRTH, N. Algoritmos and Data Structure. São Paulo:
Pearson Prentice-Hall,1986.
Plano de Ensino
E-Books:
TONET, Bruno; KOLIVER, Cristian. Introdução aos
algoritmos. Disponível em
<www.guanabara.info/logica/Apostilas/VisuAlg_Ref.pdf>.
Acesso em 21 de Dezembro de 2010.
EVARISTO, Jaime. Programando com Pascal. Disponível
em <http://professor.ic.ufal.br/jaime/>. Acesso em 21 de
Dezembro de 2010.
Plano de Ensino
Site da disciplina:
http://ead.unipe.br
Slides das aulas
Notas de aula
Lista de exercícios
Notas
Informações sobre o curso
Downloads
Softwares utilizados no curso:
VisuAlg: http://www.apoioinformatica.inf.br/visualg/setupv2.exe
Pascal ZIM!: http://www.baixaki.com.br/download/pascal-zim-.htm
O “segredo” para se sair bem na
disciplina
Procurar estar presente na maioria das aulas (é claro...)
Se faltou, checar material no site e/ou com os colegas
de sala;
Dúvida em algum assunto ou aula? Pergunte ao
professor durante as aulas ou envie um e-mail
Lembre-se: Alguns exercícios poderão compor a nota de
alguma prova!
Sempre checo e-mails e procuro respondê-los o mais breve
possível
E o mais importante: EXERCITE, EXERCITE...
Afinal, o que é um algoritmo?
Sequência de instruções finitas e ordenadas de
forma lógica para a resolução de uma
determinada tarefa ou problema;
Não necessariamente envolve aspectos
computacionais. Ex.: Uma receita de bolo, trocar
um pneu de carro, trocar uma lâmpada, manual
de instruções;
Exemplo
Sequência para fritar um ovo:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Retirar o ovo da geladeira
Colocar a frigideira no fogo
Colocar óleo
Esperar até o óleo ficar quente
Quebrar o ovo separando a casca
Colocar o conteúdo do ovo na frigideira
Esperar um minuto
Retirar o ovo da frigideira
Apagar o fogo
Exemplo
Tal sequência é um algoritmo? Vejamos...
Possui uma sequência de instruções finitas e
ordenadas?
O objetivo da sequência foi atingido?
R.: SIM. Instruções de 1 a 9.
R.: SIM. O ovo foi frito.
Logo, é um algoritmo!
Exercício
Ordene e estruture uma
sequência para a
realização de uma ligação
telefônica em um
orelhão.
Exercício
Resposta 1:
1.
2.
3.
4.
5.
6.
7.
Tirar o fone do gancho
Ouvir sinal de linha
Introduzir cartão
Teclar o número desejado
Conversar
Desligar
Tirar o cartão
Exercício
Resposta 2 (Mais robusta)
1.
2.
3.
4.
5.
Tirar o fone do gancho
Ouvir sinal de linha
Introduzir cartão
Teclar o número desejado
Se chamar e alguém atender
1.
2.
3.
6.
Conversar
Desligar
Retirar o cartão
Senão
1.
2.
Desligar
Voltar para a instrução 1
O que podemos concluir sobre
algoritmos?
Algoritmo é uma espécie de passo a passo;
Algoritmos realizam uma saída (ex.: Um ovo frito) a
partir de uma determinada entrada (um ovo) através de
uma sequência de passos;
Os passos tem que ser executados um após o outro;
Um algoritmo está correto quando sua sequência de
instruções resulta em uma saída esperada.
Podem existir um ou mais algoritmos para atingir um
resultado, desde que o resultado (a saída) seja o mesmo!
Observação
O algoritmo não é a solução do problema, mas o
caminho que leva a mesma!