MC102 - Turmas A e B

Algoritmos e Programação de Computadores

 2º Semestre de 2003

Avisos importantes


27/11/2003 - Notas do exame e Média Finais já disponívies !
                      Quem quiser olhar o exame: dia 28/11/2003, 09:00h-10:00h (impreterivelmente), na sala das aulas
                       teóricas !
                       
21/11/2003
- Notas 3ª prova e médias disponíveis !
                     Eventuais dúvidas podem ser enviadas por e-mail.

30/10/2003
- Material sobre a Linguagem C está disponível !

28/10/2003 -
Lista 8 de exercícios já está disponível ! As notas da 2ª prova já foram alteradas de acordo com a revisão de prova !

24/10/2003 -
As notas da 2ª prova já estão disponíveis !

23/10/2003 - AVISO IMPORTANTE: O feriado do dia 28 foi passado para o dia 27. Então haverá aula normal de laboratório e teórica na terça-feira, dia 28/10. Confira o cronograma !

22/10/2003 - Não haverá aula no dia 28, nem teórica nem de laboratório. A aula de laboratório da turma B será junto com a turma A. Veja o  cronograma !

21/10/2003 -
Link para um compilador C está disponível.

16/10/2003
- Lista 7 de exercícios já está disponível !

14/10/2003
- AVISO IMPORTANTE !!! Todos os alunos das turmas A e B devem COMPARECER as aulas de laboratório 12 e 13 !

07/10/2003 -
Turma B: A data de entrega do próximo projeto de laboratório ("Search e Replace") foi adiada para o dia 17/09 ! Nota: somente a data de entrega DESTE projeto foi adiada ! Os demais projetos devem seguir as datas normais de entrega.

23/09/2003 - Estão disponíveis duas soluções para o programa de Ordenação.

18/08/2003 - Lista 5 de exercícios está disponível ! 
Notas atualizadas já com as alterações de notas decorrentes das revisões !

15/08/2003 - As notas da 1ª prova já estão disponíveis ! Revisão de prova será no dia 19/09/2003 (sexta-feira), entre 12:00-13:00, na sala 71 do Instituto de Computação.

12/08/2003 - Como não houve procura pelo monitor durante o horário semanal de monitoria, o mesmo está suspenso. Quando houver necessidade, será marcado um horário de atendimento para atender uma eventual demanda que surgir!

  • Turma B: Atenção para as datas de entrega do próximo programa ("Ordenação")  !


03/08/2003 - Nova lista de exercícios disponível (Lista 4)!

27/08/2003 - Vejam aqui um programa exemplo para verem como ler uma tecla qualquer do usuário (no caso, a tecla F3). A partir do próximo programa "Furando balões" será necessário que cada aluno apresente o programa ao monitor antes de entregá-lo !!!

14/08/2003 - Nova lista de exercícios disponível ! Lembrem-se que é importante fazerem as listas para poderem acompanhar adequadamente o curso !

08/08/2003 - O compilador gpc não dá suporte a alguns comandos necessários à implementação do programa 'Retângulo animado' na forma como foi proposto. Com isso, esse primeiro programa poderá ser feito em ambiente windows (usando o TURBO PASCAL 5.5, por exemplo) e ser entregue um disquete contendo o arquivo com extensão ".pas" contendo o programa e um arquivo com extensão ".exe" contendo o executável do programa. 
Nota: não deve ser esquecido o relatório junto com o programa.

Docente responsável

Ricardo Luís Lachi
e-mail: ricardo.lachi@ic.unicamp.br

Monitor da disciplina: Fernando José Castor de Lima Filho -  e-mail:
 

Atendimento: Sexta-feira das 12:00-14:00 na sala de estudos em grupo do IC-2 (suspenso devido a não utilização dos alunos)
                        Por e-mail para o professor ou monitor tirando dúvidas ou agendando um horário
 
 

Horário de aula

Turma Horário
A Terça:  10:00-12:00 (sala PB05) 
Quinta:  10:00-12:00 (sala PB05) 
Sexta: 10:00-12:00 (laboratório)
B Terça:  10:00-12:00 (sala PB05) 
Terça: 16:00-18:00 (laboratório) 
Quinta:  10:00-12:00 (sala PB05)

 

Ementa e Programa

Ementa: Fundamentos de algoritmos e sua representação em linguagens de alto nível. Estudo pormenorizado de uma ou mais linguagens. Desenvolvimento sistemático e implementação de programas. Modularidade, depuração, testes e documentação de programas.

Programa: 1. Introdução à Computação 2. Algoritmos e programas. 3. Variáveis e atribuições. 4. Comandos condicionais. 5. Comandos de entrada e saída. 6. Comandos repetitivos. 7. Procedimentos e funções. 8. Vetores e matrizes. 9. Recursão. 10. Arquivos. 11. Registros. 12. Memória dinâmica.
 

Avaliações

A nota final (NF) será calculada do seguinte modo: NF = (2P1 + 3P2 + 5P3)/10 onde P1, P2 e P3 são as provas.

Além disso haverá uma nota NL que será a nota de laboratório. Essa nota será um bônus ! Os alunos terão que entregar 12 exercícios de laboratório que serão avaliados, cada um, de 0 a 10. Dentre os 12 trabalhos serão consideradas as 10 melhores notas que valerão até 1.0 na média final..
Todos os programas de laboratório devem sem apresentados no dia previsto para sua entrega, junto com seu respectivo relatório (veja aqui o que é necessário conter esse relatório).
Além disso, é obrigatório tirar pelo menos 5.0 de média em laboratórios, caso contrário, estará de exame !!!
 

Um aluno está aprovado SEM EXAME se (NF >= 5.0 e NL >= 5.0) e sua média final é NF

Um aluno está DE EXAME se (NF >= 5.0 e NL < 5.0)
                                            ou
                                            se (NF < 5.0 e NL >= 5.0)
                                            e sua nota final será igual a min{(2P1 + 3P2 + 5P3)/10 e 4.9}

No EXAME a média final (MF) do aluno será calculada do seguinte modo:

MF = (NF + E)/2
onde E = nota no exame
Se MF >= 5.0 o aluno estará aprovado
caso contrário (MF < 5.0) o aluno estará reprovado

Datas das provas

P1 - 11/09
P2 - 23/10
P3 - 13/11
Exame - 27/11

Site onde é possível obter os compiladores das Linguagens Pascal e C

Versões gratuitas do Pascal:
Free Pascal (recomendado): é possível baixar o Pascal para diversos sistemas operacionais (dos, win32, linux, etc).
Virtual Pascal: para win32 e os/2
Turbo Pascal 5.5 para ambiente Windows 95 e NT (ou então copie o programa clicando diretamente aqui)
Outro link para o Turbo Pascal 5.5
Versão gratuita do compilador C:
Borland  C 2.01 : descompactando esse arquivo serão gerados 3 diretórios: disk1, disk2 e disk 3. Copie todos os arquivos desses diretórios para um mesmo diretório e depois execute o programa "install.exe".

Apostilas e Tutoriais


Referências Bibliográficas

  • Apostila sobre Pascal - Autoria: Celmar (aluno de doutorado do IC)
  • Keller, A.: A First Course in Computer Programming Using Pascal. McGraw-Hill 1982
  • Cooper, D., Clancy, M.: Oh! Pascal!. W. W. Norton 1982
  • Farrer, H.: Pascal Estruturado. Guanabara Dois 1985
  • Schildt, H.: Turbo Pascal Avançado -- Guia do Usuário -- 4.0 e 5.0 McGraw-Hill 1989
  • Gottfried, B.: Programação em Pascal. McGraw-Hill 1994
  • Jensen, K., Wirth, N.: Pascal ISO -- Manual do Usuário e Relatório. Campus 1988
  • Kemp, R.: Pascal for Students. Edward Arnold 1982
  • Lamb, R.: Pascal: Structure and Style. Benjamin/Cummings 1986
  • Lamie, L.: Pascal Programming. John Wiley \& Sons 1987
  • Gottfried, B.: Programação em Pascal McGraw-Hill 1994

  •  

    Notas das Provas

    Provas 1 e 2 e 3
          

     

    Notas Trabalhos

    Programa "Retângulo Animado"
          Turma A
          Turma B

    Programa "Máq. de Calcular"
          Turma A
          Turma B

    Programa "Furando Balões"
         Turma A
         Turma B

    Programa "Caça ao Tesouro"
         Turma A
         Turma B

    Programa "Ordenação"
         Turma A
         Turma B

    Programa "Qual a Senha ?"
        
    Turma A
         Turma B

    Programa "Agenda Telefônica"
        
    Turma A
        
    Turma B

    Programa "Digitação"
        
    Turma A
        
    Turma B

    Programa "Search E Replace"
        
    Turma A
        
    Turma B

    Exercícios de Recursão
        
    Ambas as turmas

    Programa "Array Dinâmico"
        
    Turma A
        
    Turma B

    Médias dos Programas
        
    Turma A
        
    Turma B


     




    Programas a serem entregues

    • 05/08/2003 - Retângulo animado.
      Turma A deve entregar até o dia 22/08

    • Turma B deve entregar até o dia 19/08
       
    • 22/08/2003 - Programa Máq. Calcular
    • Turma A deve entregar até o dia 29/08
      Turma B deve entregar até o dia 26/08
       
    • 26/08/2003 - Programa Furando Balões
    • Turma A deve entregar até o dia 05/09
      Turma B deve entregar até o dia 05/09
      (devido a semana de provas)
       
    • 02/09/2003 - Programa Caça ao Tesouro
    • Turma A deve entregar até o dia 12/09
      Turma B deve entregar até o dia 12/09
       
    • 09/09/2003 - Programa Ordenação
    • Arquivo necessário para a realização 
      desse projeto:  ordenador.pas
      Turma A deve entregar até o dia 19/09
      Turma B deve entregar até o dia 19/09
      Veja aqui dois exemplos de solução:
      - Solução 1
      - Solução 2 
       
    • 16/09/2003 - Programa Qual a senha?
    • Turma A deve entregar até o dia 26/09
      Turma B deve entregar até o dia 23/09
       
    • 23/09/2003 - Programa Agenda Telefônica
    • Turma A deve entregar até o dia 03/10
      Turma B deve entregar até o dia 30/09

    • 30/09/2003 - Programa Digitação
      Turma A deve entregar até o dia 10/10
      Turma B deve entregar até o dia 07/10

    • 07/10/2003 - Programa Search e Replace
      Turma A deve entregar até o dia 17/10
      Turma B deve entregar até o dia 17/10
      Arquivo exemplo para ajudar a testar
      o seu programa
      universe.txt

    • 28/10/2003 - Programa Array Dinâmico
      Turma A deve entregar até o dia 07/11
      Turma B deve entregar até o dia 04/11

    Lembre-se que, além do programa, DEVE ser
     entregue um relatório  (simples e objetivo com
    mais ou menos umas 2 folhas) . 
    (veja aqui o que deve conter esse relatório


    Listas de exercícios 

    Lista 1 - exercícios relativos a matéria ministrada até o dia 31/07/2003

    Lista 2 - exercícios relativos a matéria ministrada até o dia 07/08/2003

    Lista 3 - exercícios relativos a matéria ministrada até o dia 14/08/2003

    Lista 4 - exercícios relativos a matéria ministrada até o dia 03/09/2003

    Lista 5 - exercícios relativos a matéria ministrada até o dia 18/09/2003

    Lista 6 - exercícios relativos a matéria ministrada até o dia 25/09/2003

    Lista 7 - exercícios relativos a matéria ministrada até o dia 07/10/2003

    Lista 8 - exercícios abrangendo toda a matéria dada !


     

    Calendário 

    29/07/2003 – Aula 1: Apresentação, plano de aula, programa Hello world.
    29/07/2003 – Lab. 1 turma B – Aula inicial para conhecimento do ambiente de programação PASCAL.
    30/07/2003 – Aula 2: identificadores, expressões, variáveis, atribuições. Noções básicas de procedimentos.
    31/07/2003 – Lab. 1 turma A – Aula inicial para conhecimento do ambiente de programação PASCAL.
    05/08/2003 – Aula 3: Comando FOR, laços aninhados, comando DELAY. 
    05/08/2003 – Lab. 2 turma B – Programa  "Retângulo animado"
    07/08/2003 – Aula 4: comandos READLN, READ. Introdução ao comando IF.
    08/08/2003 – Lab. 1 turma A – Programa "Retângulo animado"
    12/08/2003 – Aula 5: Comando IF. Introdução ao comando WHILE
    12/08/2003 – Lab. 3 turma B – Programa Retângulo animado
    14/08/2003 –  Aula 6: Comando WHILE e comando REPEAT
    15/08/2003 – Lab. 3 turma A – Programa Retângulo animado
    19/08/2003Não haverá aula teórica (viagem para congresso)
    19/08/2003 – Lab. 4 turma B – Entrega Programa "Retângulo animado". Apresentação do Programa "Máq. Calcular" a ser entregue.
    21/08/2003Não haverá aula teórica (viagem para congresso)
    22/08/2003 – Lab. 4 turma A – Entrega Programa "Retângulo animado". Apresentação do Programa "Máq. Calcular" a ser entregue.
    26/08/2003 – Aula 7: Comandos de entrada e saída (leitura de teclado, readkey, chr, ord, uppercase). Variáveis e procedures locais, globais.
    26/08/2003 – Lab. 5 turma B – Entrega Programa "Máq. Calcular". Apresentação do Programa "Furando Balões" a ser entregue.
    28/08/2003 – Aula 8: Utilização de parâmetros em procedures. Passagem de parâmetros por valor e por referência.
    29/08/2003 – Lab. 5 turma A – Entrega Programa "Máq. Calcular". Apresentação do Programa "Furando Balões" a ser entregue.
    02/09/2003 – Aula 9: Definição de tipos enumerados e de intervalos (TYPE), registros (RECORD) 
    02/09/2003 – Lab. 6 turma B – Apresentação do Programa "Caça ao Tesouro" a ser entregue.
    04/09/2003 – Aula 10: Definição de vetores e matrizes (ARRAY)
    05/09/2003 – Lab. 6 turma A – Entrega Programa "Furando Balões"
    09/09/2003 – Aula 11: tipo STRING. Dúvidas para a prova !
    09/09/2003 – Lab. 7 turma B – Apresentação do Programa "Ordenação".
    11/09/2003 – Aula 12: PRIMEIRA PROVA
    12/09/2003 – Lab. 7 turma A – Entrega Programa "Caça ao Tesouro".
    16/09/2003 – Aula 13: resolução da prova
    16/09/2003 – Lab. 8 turma B – Entrega Programa "Ordenação". Apresentação do programa "Qual a senha?" a ser entregue.
    18/09/2003 – Aula 14: Algoritmos de ordenação: SELECTION-SORT, INSERTION-SORT, BUBBLE-SORT.
    19/09/2003 – Lab. 8 turma A – Entrega Programa "Ordenação". Apresentação do programa "Qual a senha?" a ser entregue.
    23/09/2003 – Aula 15: Tratamento de arquivos
    23/09/2003 – Lab. 9 turma B – Entrega Programa "Qual a senha?". Apresentação do programa "Agenda Telefônica" a ser entregue.
    25/09/2003 – Aula 16: Recursão. Exemplos dados: Fatorial, Potência de 2,  Fibonacci, Torres de Hanói.
    26/09/2003 – Lab. 9 turma A – Entrega Programa "Qual a senha?". Apresentação do programa "Agenda Telefônica" a ser entregue.
    30/09/2003 – Aula 17: Recursão: Algoritmos MERGE-SORT e começo do QUICKSORT.
    30/09/2003 – Lab. 10 turma B – Entrega Programa "Agenda Telefônica". Apresentação do programa "Digitação" a ser entregue.
    02/10/2003 – Aula 18: Recursão: Algoritmo QUICKSORT e de BUSCA BINÁRIA. Estrutura de PILHA e operações de PUSH e POP na pilha.
    03/10/2003 – Lab. 10 turma A – Entrega Programa "Agenda Telefônica". Apresentação do programa "Digitação" a ser entregue.
    07/10/2003 – Aula 19: Estrutura de FILA e operações de ENFILEIRAR E DESINFILEIRAR. Algoritmo HEAPSORT.
    07/10/2003 – Lab. 11 turma B – Entrega Programa "Digitação". Apresentação do programa "Search e Replace" a ser entregue.
    09/10/2003 – Aula 20: PONTEIROS. Criação, alocação e desalocação de memória. Operação de inclusão de um elemento em uma LISTA LIGADA SIMPLES.
    10/10/2003 – Lab. 11 turma A – Entrega Programa "Digitação". Apresentação do programa "Search e Replace" a ser entregue.
    14/10/2003 – Aula 21: PONTEIROS: Inclusão, Exclusão de elementos. Inclusão na posição i.
    14/10/2003 – Lab. 12 turma B – Alunos devem resolver dois exercícios sobre recursão.
    16/10/2003 – Aula 22: PONTEIROS: Exclusão da posição, Busca na posição i, Busca por um valor. Implementação de Pilha e Fila usando lista ligadas.
    17/10/2003 – Lab. 12 turma A e B – Entrega Programa "Search e Replace". Alunos devem resolver dois exercícios sobre recursão.
    21/10/2003 – Aula 23: Introdução à linguagem C. Revisão para a prova !
    21/10/2003 – Lab. 13 turma B – Alunos devem resolver três exercícios sobre recursão.
    23/10/2003 – Aula 24: SEGUNDA PROVA
    24/10/2003 – Lab 13 turma A – Alunos devem resolver três exercícios sobre recursão.
    28/10/2003 – Aula 25: Entrega e resolução da prova. Linguagem C: comandos de entrada e saída.
    28/10/2003 – Lab 14 turma B – Apresentação do programa "Array dinâmico" a ser entregue.
    30/10/2003 – Aula 26: Linguagem C: constantes, expressões, operadores relacionais/lógicos. Revisão de prova.
    31/10/2003 – Lab 14 turma A – Apresentação do programa "Array dinâmico" a ser entregue.
    04/11/2003 – Aula 27: Dúvidas sobre listas ligadas, pilha e fila. Linguagem C: loops infinitos, if's aninhados.
    04/11/2003 – Lab 15 turma B (última aula de laboratório) – Entrega Programa "Array dinâmico".
    06/11/2003 – Aula 28: Linguagem C: vetores, matrizes e ponteiros.
    07/11/2003 – Lab 15 turma A (última aula de laboratório) – Entrega Programa "Array dinâmico".
    11/11/2003 – Aula 29: Revisão para a prova.
    13/11/2003 – Aula 30: TERCEIRA PROVA (Todo o conteúdo)
    27/11/2003EXAME