21
Algoritmos e Algoritmos e Programação Programação Thyago Maia Tavares de Thyago Maia Tavares de Farias Farias Aula 1 Aula 1

Algoritmos e programação - Aula 1

Embed Size (px)

DESCRIPTION

Slides referentes a 1º aula da disciplina de Algoritmos e Programação, realizada no dia 01/08/2011

Citation preview

Page 1: Algoritmos e programação - Aula 1

Algoritmos e Algoritmos e ProgramaçãoProgramação

Thyago Maia Tavares de Thyago Maia Tavares de FariasFarias

Aula 1Aula 1

Page 2: Algoritmos e programação - Aula 1

SumárioSumário

Apresentação do Curso Plano de Ensino (resumo) O “segredo” para se sair bem na disc

iplina Afinal, o que é um algoritmo? O que podemos concluir sobre algori

tmos?

Page 3: Algoritmos e programação - Aula 1

Apresentação do CursoApresentação do Curso

Professor: Thyago Maia Tavares de FariasProfessor: Thyago Maia Tavares de Farias

Mestre em Informática pelo PPGI/DI/UFPBMestre em Informática pelo PPGI/DI/UFPB Bacharel em Ciência da Computação pela Bacharel em Ciência da Computação pela

UFPBUFPB Currículo Lattes: Currículo Lattes:

http://lattes.thyagomaia.net E-Mail: [email protected]: [email protected] Twitter: http://twitter.com/thyagomaiaTwitter: http://twitter.com/thyagomaia

Page 4: Algoritmos e programação - Aula 1

Plano de EnsinoPlano de Ensino

Objeto de estudo:Objeto de estudo:

Ensino dos conceitos básicos de Ensino dos conceitos básicos de algoritmos estruturados, envolvendo algoritmos estruturados, envolvendo tipos de dados e formas de representação tipos de dados e formas de representação de algoritmos;de algoritmos;

Fundamentos das técnicas estruturadas Fundamentos das técnicas estruturadas de programação para o desenvolvimento de programação para o desenvolvimento de software;de software;

Page 5: Algoritmos e programação - Aula 1

Plano de EnsinoPlano de Ensino

Objetivos:Objetivos: Geral: Introduzir conceitos de técnicas de Geral: Introduzir conceitos de técnicas de

programação, utilizando noções de programação, utilizando noções de algoritmos, através de linguagem de alto algoritmos, através de linguagem de alto nível. nível.

Específicos:Específicos: Introduzir as técnicas para o desenvolvimento Introduzir as técnicas para o desenvolvimento

de algoritmos;de algoritmos; Estudo e aplicação das técnicas básicas de Estudo e aplicação das técnicas básicas de

programação em linguagem de alto nível;programação em linguagem de alto nível; Análise e depuração de código; Análise e depuração de código;

Page 6: Algoritmos e programação - Aula 1

Plano de EnsinoPlano de Ensino Metodologia:Metodologia:

Aulas teóricas (sala de aula) e práticas Aulas teóricas (sala de aula) e práticas (laboratório);(laboratório);

Avaliação:Avaliação: Avaliações escritas:Avaliações escritas:

3 avaliações (Datas a definir)3 avaliações (Datas a definir) 1 reposição (Datas a definir)1 reposição (Datas a definir) 1 final (Datas a definir)1 final (Datas a definir)

Exercícios e atividades práticas em laboratório:Exercícios e atividades práticas em laboratório: Irão complementar as notas das avaliações;Irão complementar as notas das avaliações;

Projeto IntegradorProjeto Integrador Tema: Desvendando as Redes Sociais;Tema: Desvendando as Redes Sociais; Irá complementar a nota da 3ª avaliação;Irá complementar a nota da 3ª avaliação;

Page 7: Algoritmos e programação - Aula 1

Plano de EnsinoPlano de Ensino

Sobre o Projeto Integrador:Sobre o Projeto Integrador: Trabalhos específicos serão desenvolvidos Trabalhos específicos serão desenvolvidos

para cada disciplina do período;para cada disciplina do período; Grupos de até 4 pessoas;Grupos de até 4 pessoas; O que será desenvolvido para a disciplina O que será desenvolvido para a disciplina

de algoritmos?de algoritmos? Um programa que calcule estatísticas acerca Um programa que calcule estatísticas acerca

das principais redes sociais do mercado;das principais redes sociais do mercado; 1º estágio: Pesquisar fórmulas e dados que 1º estágio: Pesquisar fórmulas e dados que

poderão ser utilizados nos programas;poderão ser utilizados nos programas;

Page 8: Algoritmos e programação - Aula 1

Plano de EnsinoPlano de Ensino

Sobre o Projeto Integrador:Sobre o Projeto Integrador: O que será desenvolvido para a disciplina de O que será desenvolvido para a disciplina de

algoritmos?algoritmos? Um algoritmo/programa que calcule estatísticas Um algoritmo/programa que calcule estatísticas

acerca das principais redes sociais do mercado;acerca das principais redes sociais do mercado; 1º estágio: Pesquisar fórmulas e dados que poderão 1º estágio: Pesquisar fórmulas e dados que poderão

ser utilizados nos algoritmos/programas (vale 1,0 ser utilizados nos algoritmos/programas (vale 1,0 ponto);ponto);

2º estágio: Início do desenvolvimento dos 2º estágio: Início do desenvolvimento dos algoritmos/programas (vale 1,0 ponto);algoritmos/programas (vale 1,0 ponto);

3º estágio: Produção de relatório, entrega dos 3º estágio: Produção de relatório, entrega dos algoritmos/programas desenvolvidos e apresentação algoritmos/programas desenvolvidos e apresentação no Fórum Integrador (vale 2,0 ponto)no Fórum Integrador (vale 2,0 ponto)

Page 9: Algoritmos e programação - Aula 1

Plano de EnsinoPlano de Ensino Bibliografia Básica:Bibliografia Básica:

TREMBLAY, J. P. & BUNT, R. TREMBLAY, J. P. & BUNT, R. Ciência dos Ciência dos computadorescomputadores: : uma abordagem uma abordagem algorítmicaalgorítmica. São Paulo: McGraw-Hill, 1983. . São Paulo: McGraw-Hill, 1983.

AVILANNO, Israel de Campos. AVILANNO, Israel de Campos. Algoritmos Algoritmos e Pascal Manual de Apoioe Pascal Manual de Apoio. Editora . Editora Moderna, 2ª Edição, 2006.Moderna, 2ª Edição, 2006.

FARRER, Harry et al. FARRER, Harry et al. Algoritmos Algoritmos estruturadosestruturados. Rio de Janeiro: Guanabara . Rio de Janeiro: Guanabara Dois, 1989.Dois, 1989.

Page 10: Algoritmos e programação - Aula 1

Plano de EnsinoPlano de Ensino Bibliografia Complementar:Bibliografia Complementar:

ASCENCIO, Ana Fernanda Gomes. ASCENCIO, Ana Fernanda Gomes. Lógica de Lógica de programação com pascalprogramação com pascal. São Paulo: Makron . São Paulo: Makron Books,1999.Books,1999.

MANZANO, José Augusto N. G.; YAMATUMI, Wilson MANZANO, José Augusto N. G.; YAMATUMI, Wilson Y. Y. Programação em turbo pascal 7.0.Programação em turbo pascal 7.0. São Paulo: São Paulo: Érica, 1993.Érica, 1993.

GUIMARÃES, Ângelo de Moura. GUIMARÃES, Ângelo de Moura. Algoritmos e Algoritmos e estrutura de dadosestrutura de dados. Rio de Janeiro:LTC, 1985.. Rio de Janeiro:LTC, 1985.

KNUTH, D.E. KNUTH, D.E. The Art of Computer Programming The Art of Computer Programming (Vol 1:Fundamental Algorithms).(Vol 1:Fundamental Algorithms). São Paulo: São Paulo: Addison-Wesley, 1974.Addison-Wesley, 1974.

WIRTH, N. WIRTH, N. Algoritmos and Data StructureAlgoritmos and Data Structure. . São São Paulo: Pearson Prentice-Hall,1986.Paulo: Pearson Prentice-Hall,1986.

Page 11: Algoritmos e programação - Aula 1

Plano de EnsinoPlano de Ensino

E-Books:E-Books:

TONET, Bruno; KOLIVER, Cristian. TONET, Bruno; KOLIVER, Cristian. Introdução Introdução aos algoritmosaos algoritmos. Disponível em . Disponível em <www.guanabara.info/logica/Apostilas/VisuAlg_<www.guanabara.info/logica/Apostilas/VisuAlg_Ref.pdf>. Acesso em 21 de Dezembro de 2010.Ref.pdf>. Acesso em 21 de Dezembro de 2010.

EVARISTO, Jaime. EVARISTO, Jaime. Programando com PascalProgramando com Pascal. . Disponível em Disponível em <http://professor.ic.ufal.br/jaime/>. Acesso em <http://professor.ic.ufal.br/jaime/>. Acesso em 21 de Dezembro de 2010.21 de Dezembro de 2010.

Page 12: Algoritmos e programação - Aula 1

Plano de EnsinoPlano de Ensino Site da disciplina:Site da disciplina:

http://ead.unipe.brhttp://ead.unipe.br Slides das aulasSlides das aulas Notas de aulaNotas de aula Lista de exercíciosLista de exercícios NotasNotas Informações sobre o cursoInformações sobre o curso DownloadsDownloads

Softwares utilizados no curso:Softwares utilizados no curso:

VisuAlg: VisuAlg: http://www.apoioinformatica.inf.br/visualg/setupv2.exehttp://www.apoioinformatica.inf.br/visualg/setupv2.exe

Pascal ZIM!: http://www.baixaki.com.br/download/pascal-Pascal ZIM!: http://www.baixaki.com.br/download/pascal-zim-.htmzim-.htm

Page 13: Algoritmos e programação - Aula 1

O “segredo” para se sair O “segredo” para se sair bem na disciplinabem na disciplina

Procurar estar presente na maioria das aulas Procurar estar presente na maioria das aulas (é claro...)(é claro...) Lembre-se: Alguns exercícios poderão compor a Lembre-se: Alguns exercícios poderão compor a

nota de alguma prova!nota de alguma prova! Se faltou, checar material no site e/ou com os Se faltou, checar material no site e/ou com os

colegas de sala;colegas de sala; Dúvida em algum assunto ou aula? Pergunte ao Dúvida em algum assunto ou aula? Pergunte ao

professor durante as aulas ou envie um e-mailprofessor durante as aulas ou envie um e-mail Sempre checo e-mails e procuro respondê-los o mais Sempre checo e-mails e procuro respondê-los o mais

breve possívelbreve possível E o mais importante: EXERCITE, EXERCITE... E o mais importante: EXERCITE, EXERCITE...

Page 14: Algoritmos e programação - Aula 1

Afinal, o que é um Afinal, o que é um algoritmo?algoritmo?

Sequência de instruções finitas e Sequência de instruções finitas e ordenadas de forma lógica para a ordenadas de forma lógica para a resolução de uma determinada tarefa resolução de uma determinada tarefa ou problema;ou problema;

Não necessariamente envolve aspectos Não necessariamente envolve aspectos computacionais. Ex.: Uma receita de computacionais. Ex.: Uma receita de bolo, trocar um pneu de carro, trocar bolo, trocar um pneu de carro, trocar uma lâmpada, manual de instruções;uma lâmpada, manual de instruções;

Page 15: Algoritmos e programação - Aula 1

ExemploExemplo

Sequência para fritar um ovo:Sequência para fritar um ovo:1.1. Retirar o ovo da geladeiraRetirar o ovo da geladeira

2.2. Colocar a frigideira no fogoColocar a frigideira no fogo

3.3. Colocar óleoColocar óleo

4.4. Esperar até o óleo ficar quenteEsperar até o óleo ficar quente

5.5. Quebrar o ovo separando a cascaQuebrar o ovo separando a casca

6.6. Colocar o conteúdo do ovo na frigideiraColocar o conteúdo do ovo na frigideira

7.7. Esperar um minutoEsperar um minuto

8.8. Retirar o ovo da frigideiraRetirar o ovo da frigideira

9.9. Apagar o fogoApagar o fogo

Page 16: Algoritmos e programação - Aula 1

ExemploExemplo

Tal sequência é um algoritmo? Tal sequência é um algoritmo? Vejamos...Vejamos...

Possui uma sequência de instruções finitas Possui uma sequência de instruções finitas e ordenadas? e ordenadas?

R.: SIM. Instruções de 1 a 9.R.: SIM. Instruções de 1 a 9. O objetivo da sequência foi atingido?O objetivo da sequência foi atingido?

R.: SIM. O ovo foi frito.R.: SIM. O ovo foi frito.

Logo, é um algoritmo!Logo, é um algoritmo!

Page 17: Algoritmos e programação - Aula 1

ExercícioExercício

Ordene e estruture Ordene e estruture uma sequência uma sequência para a realização para a realização de uma ligação de uma ligação telefônica em um telefônica em um orelhão.orelhão.

Page 18: Algoritmos e programação - Aula 1

ExercícioExercício

Resposta 1:Resposta 1:

1.1. Tirar o fone do ganchoTirar o fone do gancho2.2. Ouvir sinal de linhaOuvir sinal de linha3.3. Introduzir cartãoIntroduzir cartão4.4. Teclar o número desejadoTeclar o número desejado5.5. ConversarConversar6.6. DesligarDesligar7.7. Tirar o cartãoTirar o cartão

Page 19: Algoritmos e programação - Aula 1

ExercícioExercício Resposta 2 (Mais robusta)Resposta 2 (Mais robusta)

1.1. Tirar o fone do ganchoTirar o fone do gancho2.2. Ouvir sinal de linhaOuvir sinal de linha3.3. Introduzir cartãoIntroduzir cartão4.4. Teclar o número desejadoTeclar o número desejado5.5. Se chamar e alguém atenderSe chamar e alguém atender

1.1. Conversar Conversar 2.2. DesligarDesligar3.3. Retirar o cartãoRetirar o cartão

6.6. SenãoSenão1.1. DesligarDesligar2.2. Voltar para a instrução 1Voltar para a instrução 1

Page 20: Algoritmos e programação - Aula 1

O que podemos concluir O que podemos concluir sobre algoritmos?sobre algoritmos?

Algoritmo é uma espécie de passo a passo;Algoritmo é uma espécie de passo a passo; Algoritmos realizam uma saída (ex.: Um ovo Algoritmos realizam uma saída (ex.: Um ovo

frito) a partir de uma determinada entrada (um frito) a partir de uma determinada entrada (um ovo) através de uma sequência de passos;ovo) através de uma sequência de passos;

Os passos tem que ser executados um após o Os passos tem que ser executados um após o outro;outro;

Um algoritmo está correto quando sua sequência Um algoritmo está correto quando sua sequência de instruções resulta em uma saída esperada.de instruções resulta em uma saída esperada.

Podem existir um ou mais algoritmos para Podem existir um ou mais algoritmos para atingir um resultado, desde que o resultado (a atingir um resultado, desde que o resultado (a saída) seja o mesmo!saída) seja o mesmo!

Page 21: Algoritmos e programação - Aula 1

ObservaçãoObservação

O algoritmo não é a solução do O algoritmo não é a solução do problema, mas o caminho que leva a problema, mas o caminho que leva a mesma!mesma!