algoritmos e programação - blog do professor gandhi ferrari · pdf...
TRANSCRIPT
Algoritmos e Programação http://profgandhiferrari.wordpress.com
Apresentação do Curso
• Professor: Hélio Oliveira “Gandhi” Ferrari
• Mestre em Engenharia da Computação pela FEELT/UFU
• Bacharel em Engenharia Elétrica/UniFEB
• E-Mail: [email protected]
• Twitter: http://twitter.com/gandhiferrari
• Facebook: http://www.facebook.com/gandhiferrari
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:
• 3 avaliações
• Segundas Oportunidades (Datas a definir)
• 1 final (Datas a definir)
– Exercícios e atividades práticas em laboratório: • Irão complementar as notas das avaliações;
01 06/08 Apresentação da disciplina, plano de aula, avaliações. ALGORITMOS NÃO COMPUTACIONAIS e COMPUTACIONAIS
02 13/08 OPERADORES ARITMÉTICOS, RELACIONAIS E LÓGICOS
03 20/08 FORMA GERAL DE UM ALGORITMO, VARIÁVEIS. OPERADORES DE ATRIBUIÇÃO. PALAVRAS RESERVADAS. FLUXOGRAMA
04 27/08 COMANDOS DE ENTRADA E SAÍDA. COMENTÁRIOS. ESTRUTURA
SEQUENCIAL. LAB. 01
05 03/09 ESTRUTURA CONDICIONAL: SE – ENTÃO - SENÃO . LAB 02
06 10/09 Avaliação Oficial 1 (2 pts – Grupo)
07 17/09 ESTRUTURA CONDICIONAL: ESCOLHA ..CASO. LAB. 03
08 24/09 TESTE DE MESA E DEPURAÇÃO DE CÓDIGO.
09 01/10 Avaliação Oficial 1 (5 pts – Ind)
10 08/10 ESTRUTURAS DE REPETIÇÃO: REPITA...ATÉ, ENQUANTO..FACA.
LAB. 04
11 22/10 ESTRUTURA DE REPETICAO: PARA ... FACA . LAB. 05
12 29/10 VARIÁVEIS HOMEGENEAS LINEARES: VETORES - LAB. 06
13 05/11 VARIÁVEIS HOMEGENEAS COMPOSTAS: MATRIZES – LAB. 07
14 12/11 II Semana da Engenharia
15 19/11 SUBALGORITMOS – FUNÇÕES E PROCEDIMENTOS– LAB. 08
16 26/11 SUBALGORITMOS – FUNÇÕES E PROCEDIMENTOS– LAB. 09
17 01/12 SUBALGORITMOS – FUNÇÕES E PROCEDIMENTOS– LAB. 10
18 03/12 Avaliação Oficial 2
19 10/12 Avaliação Substitutiva
20 17/12 Avaliação Suplementar
Avaliação Parcial Avaliação Oficial
Listas – 1 pt (Individual)
Trabalho - 2 pts(Grupo)
Prova 2 pontos (Grupo)
Prova 5 pontos (Individual)
Bimestre 01
Avaliação Parcial Avaliação Oficial
Semana da Engenharia (3 pts) Trabalho – 1 pt (ind)
Listas -1 pt
Prova 5 pontos (Individual)
Bimestre 02
Plano de Ensino
• Bibliografia – ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene
Aparecida Veneruchi de. Fundamentos da Programação de Computadores. 2ª edição. Editora Pearson Prentice Hall, 2003.
– FORBELLONE, André; EBERSPÄCHER, Henri. Lógica de Programação – A construção de algoritmos e estruturas de dados. 3ª Edição. Editora Pearson Prentice Hall, 2005.
– DE OLIVEIRA, J.F.; MANZANO, José Augusto N. G. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores. Editora Érica, 21a ed., 2008.
– GUIMARÃES, Ângelo de Moura. Algoritmos e estrutura de dados. Rio de Janeiro:LTC, 1985.
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://profgandhiferrari.wordpress.com
• 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
O “segredo” para se sair bem na disciplina
• Procurar estar presente na maioria das aulas (é claro...)
– Lembre-se: Alguns exercícios poderão compor a nota de alguma prova!
• 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
• E o mais importante: EXERCITE, EXERCITE...
Como ser reprovado em Algoritmos e/ou Laboratório de Programação
• Este é um guia com tudo o que você sempre quis saber para rodar facilmente e com tranquilidade nas disciplinas de algoritmos. Siga pelo menos um destes passos e sua feliz reprovação estará praticamente garantida! Bom próximo semestre!
• Por João Batista (oliveira @ inf. pucrs.br) e Marcelo (flash @ inf. pucrs.br).
• Baixe todas as apostilas da disciplina, e depois carregue na pasta o tempo todo, pois elas criam um campo magnético onde você aprende por osmose. NÃO LEIA nenhuma delas, pois isso desfaz imediatamente o campo e você não vai aprender nada!
• Quando fizer trabalho em grupo, pendure-se em um grupo qualquer e não levante um dedo pra fazer o trabalho. Lembre-se de que mais tarde você vai ter de fazer prova, e não deve estar esgotado de tanto pensar em algoritmos!
• Não entre nunca na biblioteca, nem pra devolver livro dos outros. Você pode achar algo interessante pra ler, e isso arruinaria o seu final de semana.
• O LABIN deve ser evitado a todo o custo! Além do desgastante contato direto com o computador, você ainda corre o risco de aprender a programar de verdade, portanto proteja-se!
• Listas de exercícios são para os incompetentes, por isso você pode ignorá-las. Dê risada quando encontrar alguém fazendo
• Use a aula pra colocar a conversa em dia, afinal você nunca sabe quando vai ver seus amigos outra vez.
• Se você for menino, não anote nada e copie o caderno de uma guria. Se você for guria, não anote nada e copie de outra guria. Afinal, para ir bem nas provas basta decorar a matéria!
• Só os incompetentes estudam muitos dias antes da prova. Os feras de verdade nem estudam, e evitam ficar com olheiras.
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. 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
Exemplo
• Tal sequência é um algoritmo? Vejamos...
– Possui uma sequência de instruções finitas e ordenadas?
• R.: SIM. Instruções de 1 a 9.
– O objetivo da sequência foi atingido?
• 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. Tirar o fone do gancho
2. Ouvir sinal de linha
3. Introduzir cartão
4. Teclar o número desejado
5. Conversar
6. Desligar
7. Tirar o cartão
Exercício
• Resposta 2 (Mais robusta)
1. Tirar o fone do gancho
2. Ouvir sinal de linha
3. Introduzir cartã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
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!
Um pouco de lógica
Três senhoras, Dona Branca, Dona Rosa e
Dona Violeta, passeavam pelo parque, quando
Dona Rosa disse:
- Não é curioso que estejamos usando vestidos
de cores branca, rosa e violeta, embora
nenhuma de nós esteja usando um vestido de
cor igual ao seu próprio nome?
- Uma simples coincidência - respondeu a
senhora com vestido violeta.
Qual a cor do vestido de cada senhora?
Um pouco de Lógica "O estudo da lógica é o estudo dos métodos e princípios usados para distinguir o raciocínio correto do incorreto."
Irving Coppi
"A lógica trata de argumentos e inferências. Um de seus propósitos básicos é apresentar métodos capazes de identificar os argumentos logicamente válidos, distinguindo-os dos que não são logicamente válidos."
Wesley Salmon
"A tarefa da lógica sempre foi a de classificar e organizar as inferências válidas, separando-as daquelas que não o são. A importância desta organização não deve ser subestimada, pois usam-se as inferências (de preferência válidas) tanto na vida comum como nas ciências formais, sendo um exemplo a matemática."
Jesus Eugênio de Paula Assis
"Para Aristóteles, a lógica é a ciência da demonstração; (...) para Lyard é a ‘ciência das regras do pensamento’. Poderíamos ainda acrescentar: (...) é a ciência das leis ideais do pensamento e a arte de aplicá-las corretamente na procura e demonstração da verdade."
Maria Lucia de Arruda Aranha e Maria Helena Pires
Exemplo
• Dispõe-se de 2 vasilhas com capacidades marcadas de 9 e 4 litros respectivamente. Mostre a seqüência de passos necessários para colocar numa terceira vasilha de medida desconhecida um volume de 6 litros.
Outro exemplo
• Como fazer para que as três rãs que estão em quatro casas nas seguintes posições,
• terminem assim?
Rã 1 Rã 2 Rã 3
Rã 3 Rã 2 Rã 1