Universidade Federal da Paraíba Centro de Informática Departamento de Informática Disciplina: Introdução à Programação Horário: T08002, I08002 Sala: CISB01 T10002, I10002 Sala: CI304 Número de Créditos: 04 Carga Horária: 60 horas Período: 2015.1 Professor: Ulysses Plano de Curso 1. Objetivos do Curso 1.1 Objetivos Gerais Introduzir conceitos elementares de programação algorítmica e induzir sua prática utilizando a linguagem C. 1.2 Objetivos Específicos Ao final do curso, o aluno deverá ser capaz de: Conhecer os conceitos de linguagens de programação de baixo e alto nível. Conhecer e saber distinguir os tipos de tradutores de linguagens de programação. Trabalhar com um ambiente de desenvolvimento. Entender e saber aplicar conceitos de programação algorítmica tais como: algoritmo, abordagem dividir e conquistar, variáveis, operadores, estrutura de controle etc. Construir algoritmos utilizando uma pseudo-linguagem. Entender e saber utilizar os principais tipos de dados e constantes da linguagem C. Conhecer propriedades de operadores e quais são os principais operadores da linguagem C. Entender o conceito de estruturas de controle e saber utilizar as estruturas de controle da linguagem C. Saber implementar funções (subprogramas) na linguagem C. Entender e saber implementar tipos estruturados na linguagem C. Conhecer os principais conceitos de processamento de arquivos. Construir programas que processem arquivos por meio sequencial ou via acesso direto. 2. Pré-requisito Esta disciplina não requer nenhum pré-requisito.
2 3. Programa Unidade 1 Introdução às Linguagens de Programação Unidade 2 Introdução à Construção de Algoritmos Unidade 3 Introdução à Linguagem C Unidade 4 Fluxo de Execução e Estilo de Programação Unidade 5 Subprogramas Unidade 7 Arrays Unidade 8 Caracteres e Strings Unidade 9 Estruturas, Uniões e Enumerações Unidade 10 Processamento de Arquivos 4. Método de Avaliação Serão realizadas três avaliações periódicas (Exercícios Escolares), uma Prova de Reposição e o Exame Final. As avaliações abrangerão o seguinte conteúdo programático: 1º Exercício Escolar (21/05) Unidades 1, 2, 3 e 4. 2º Exercício Escolar (12/11) Unidade 5 e 7. 3º Exercício Escolar (03/12) Unidades 8, 9 e 10. Prova de Reposição (10/12) abrangendo o conteúdo do Exercício Escolar que o aluno não comparecer. Exame Final (15/12) abrangendo toda a matéria ministrada. 5. Bibliografia [1] Oliveira, Ulysses de, Notas de aula de Introdução à Programação, encontradas no site da disciplina (v. abaixo). [2] Oliveira, Ulysses de, Introdução à Programação, Editora Universitária da UFPB, 2000. [3] Oliveira, Ulysses de, Programando em C: Volume I Fundamentos, Editora Ciência Moderna, 2007. [4] Oliveira, Ulysses de, Programando em C: Volume II A Biblioteca Padrão de C, Editora Ciência Moderna, 2010. [5] Schildt, H., C: The Complete Reference, 4th Edition, McGraw-Hill Osborne, 2000. [6] Schildt, H., C Completo e Total, 3ª Edição, Macron Books, 1997. [7] Gottfried, Byron S., Programming in C, Schaum's Outline Series, McGraw-Hill, 1990. 6. Internet A página da disciplina na internet provê recursos necessários para seu bom acompanhamento. O endereço desta página é: http://www.ulysseso.com/ip2. Não deixe de visitá-la com frequência. O professor pode ser contatado por meio do email: ulysses@ulysseso.com.
3 7. Cronograma de Aulas 1ª 07/04 Apresentação do Curso Breve Histórico de Linguagens de Programação 2ª 09/04 Tradutores Qualidades de um Bom Programa Programas Interativos Baseados em Console 3ª 14/04 Ambientes Integrados de Desenvolvimento Instalação de um Ambiente de Trabalho Utilizando CodeBlocks Utilizando Editor de Programas Avulso e o Programa compila Executando um Programa de Console 4ª 16/04 Definição de Algoritmo Abordagem Dividir e Conquistar Linguagem Algorítmica Variáveis e Atribuições Operadores e Expressões 5ª 23/04 Entrada e Saída Estruturas de Controle Legibilidade de Algoritmos 6ª 28/04 Como Construir um Programa I: Projeto Exemplos de Programação 7ª 30/04 A Linguagem C Identificadores Códigos de Caracteres Tipos de Dados Primitivos Constantes 8ª 05/05 Propriedades dos Operadores da Linguagem C Operadores e Expressões Definições de Variáveis 9ª 07/05 Operador de Atribuição Conversões de Tipos Incremento e Decremento Comentários 10ª 12/05 Bibliotecas Entrada via Teclado e Saída via Tela Constantes Simbólicas Como Construir um Programa II: Implementação Programas Monoarquivos em C Lidando com Erros de Sintaxe e Advertências
4 11ª 14/05 Fluxo de Execução de Programa Seqüências de Instruções Instruções Vazias Estruturas de Controle Laços de Repetição 12ª 19/05 Desvios Condicionais Desvios Incondicionais Operador Condicional Operador Vírgula Questões de Estilo Geração de Números Aleatórios 13ª 21/05 1 Exercício Escolar 21/05 a GREVE 09/10 13/10 Revisão Unidades 1, 2 e 3 15/10 Revisão Unidade 3 20/10 Revisão Unidade 4 14ª 22/10 Subprogramas Endereços e Ponteiros Funções 15ª 27/10 Definições de Funções Chamadas de Funções Modos de Parâmetros Passagem de Parâmetros Simulando Passagem por Referência em C Alusões e Protótipos de Funções 16ª 29/10 Interagindo com o Usuário Interação Dirigida por Menus 17ª 03/11 Duração de Variáveis Escopo 18ª 05/11 Introdução aos Arrays Definições de Arrays Acesso a Elementos de um Array Iniciações de Arrays Operador sizeof 19ª 10/11 Uso de Arrays com Funções Arrays Multidimensionais 20ª 12/11 2 Exercício Escolar 21ª 17/11 Caracteres e Strings Armazenamento de Strings em Arrays de Caracteres Strings Constantes Comparações entre Ponteiros, Strings e Caracteres 22ª 19/11 Funções de Biblioteca para Processamento de Strings: LeString(), printf(), puts(), strlen(), strcpy(), strcat(), strcmp(), strstr(), strchr(), strtok()
5 23ª 24/11 A Função main() Classificação e Transformação de Caracteres Conversão de Strings Numéricos em Números: atoi() e strtod() 24ª 26/11 Tipos Definidos pelo Programador Estruturas Uso de Estruturas em Funções Uniões Registros Variantes 25ª 01/12 Introdução ao Processamento de Arquivos Streams Formatos de Arquivos Abrindo um Arquivo Fechando um Arquivo Ocorrências de Erros em Processamento de Arquivos Streams Padrões Entrada de Dados via Teclado 26ª 03/12 3 Exercício Escolar 27ª 10/12 Prova de Reposição 28ª 15/12 Exame Final Última alteração: 19/10/2015 Prof. Dr. Ulysses de Oliveira