Instituto de Educação Superior da Paraíba Sistemas de Informação
Linguagem de Programação I – 2009.1
Aula 1
Apresentação da Disciplina
Prof. Raoni Kulesza
raonikulesza@gmail.com
João Pessoa, 05 de fevereiro de 2009
Objetivos
• Objetivo principal da disciplina é aprimorar as habilidades de programação, usando como linguagem de
programação a Linguagem C
• O aluno estará apto a resolver problemas de certo grau de
complexidade através de programas em C modularizados
e de médio porte usando boas práticas de programação e
estilo.
Ementa
• Revisão de conceitos básicos de lógica de programação e C;
• Estruturas de controle de fluxo;
• Declaração de variáveis e tipos de dados;
• Entrada e saída de dados;
• Conceitos básicos e usos práticos de funções, protótipos;
• Ponteiros e Alocação Dinâmica de Memória;
• Castings, uso avançado de structs;
• Manipulação de Arquivos;
• Cabeçalhos e compilação para objetos: uso de compilação separada e incremental;
• Diretivas de pré-processamento: define, ifdef, include e outras;
• Construção de elementos de interface*.
Pré-requisitos esperados
• Lógica de Programação
• Algoritmos
• Horários
– Quintas – 20:20h até 22:00h / Sextas – 18:30h até 20:10h
• Aulas expositivas (Sala 302)
• Aulas práticas e de laboratórios (Lab-06)
• Verificação de Aprendizagem
– Provas escritas (Unidade 1 e Unidade 2) – Listas de exercícios (sala de aula)
– Projeto (fora da sala)
Métodos e Técnicas de Aprendizagem
Cálculo das Avaliações
• Nota 1
– (40%) Prova 1;
– (30%) Minitestes;
– (30%) Laboratórios/Projeto.
• Nota 2:
– (40%) Prova 2;
– (30%) Minitestes;
– (30%) Laboratórios/Projeto.
Datas das Avaliações
- Provas
• Unidade 1 – 16/04/2009
• Unidade 2 – 05/06/2009
• Reposição – 19/06/2009 (vale apenas 70%, pois não repõe a nota da parte prática)
• Final – 26/06/2009
- Lista de Exercícios + Projeto
• Pode ser feito em dupla (= 2 pessoas)
• Não pode mudar grupo depois da primeira entrega caso a outra
pessoa desista o aluno deverá realizar o restante dos exercícios
e projeto sozinho.
Conteúdo Programático (1)
• Unidade I
– Revisão dos conceitos básicos da Linguagem C – Funções em C
– Vetores em C
– Ponteiros em C
Conteúdo Programático (2)
• Unidade II
– Strings em C
– Estruturas, União e Enumerações em C – Arquivos em C
– Outros tópicos da Linguagem de Programação C
Bibliografia
• SCHILDT, Herbert. C Completo e Total. 3ª Edição. Makron Books, 1997. (livro-texto)
• FORBELLONE, André Luiz Villar. Lógica de programação: a
construção de algoritmos e estruturas de dados. São Paulo: Makron Books, 1993
• KERNIGHAN, B., RITCHIE D. C – A Linguagem de Programação padrão ANSI. 1995.
• DEITEL, P.J – C How To Program – Fifth Edition. Pearson, 2007
• PLAUGER, P. A Biblioteca Standard C. 1995.
• ZIVIANI, Nívio. Projetos de Algoritmos com implementações em
Pascal e C. Coleção Pioneira Informática. São Paulo: Pioneira, 1999.
© 2008 – RK
• http://groups.google.com/group/lp3-unipe – Informação geral da disciplina
– Planejamento de aulas
– Material utilizado na sala de aula – Lista de presença e notas
• Lista de discussão
– lp1-iesp@googlegroups.com – Subject: [lp1-iesp]
Material do curso
Instituto de Educação Superior da Paraíba Sistemas de Informação
Linguagem de Programação I – 2009.1
Aula 1
Introdução a Linguagem C
Prof. Raoni Kulesza
raonikulesza@gmail.com
João Pessoa, 05 de fevereiro de 2009
Linguagem C 13
Histórico
• O surgimento dos microcomputadores e,
consequentemente, dos sistemas operacionais
modernos impulsionaram avanços na programação de computadores
• Três níveis genéricos de linguagens de programação:
– Linguagens de máquina
– Linguagens assembly (tradutor – assembler)
– Linguagens de alto nível (interpretadas/compiladas)
• Fortran, COBOL, Pascal, ADA
Linguagem C 14
Histórico
• A Linguagem C foi inventada e implementada por Brian W. Kernighan e Dennis Ritchie em um DEC -PDP 11 sobre o S.O. Unix na década de 1970;
• Predecessor da Linguagem B, de Ken Thompson, que tinha forte influencia da linguagem BCPL, de Martin Richards;
• Inicialmente C era fornecida junto com o S.O. Unix,
versão 5;
Histórico
• Para cada plataforma de hardware apareceram grande número de implementações de C o que gerava
discrepâncias e não portabilidade dos programas;
• Em 1989 o ANSI (American National Standards
Institute) estabeleceu um padrão que ficou conhecido
como Standard C ou ANSI C.
Características
• Linguagem simples
– 32 palavras chaves (27 originais dos criadores e 5 do ANSI)
(Observação: BASIC tem mais de 100);
Características Básicas
• “Poderosa”
– Linguagem de alto nível, mas combina elementos de
linguagens de alto nível (Basic, Pascal) com a funcionalidade de linguagens assembly (instruções de máquinas);
– Permite manipulação de bits, bytes e endereços de memória;
– C não efetua nenhuma verificação em tempo de execução,ou seja, a responsabilidade é do programador.
• Portável (Portabilidade)
– Se o programador usar corretamente as funções
Características Básicas
• Modular e Estruturada
– ANSI introduziu o conceito de protótipos de funções
– Principal componente estrutural de C é a função (blocos de construção);
– Tem o conceito de bloco de código ou bloco de instruções, que é um grupo de comandos de programa conectado logicamente e tratado como uma unidade;
if (a <b)
{
printf(“valor inválido de a (%d) menor que b (%d) tente outo\n”,a,b);
scanf (“%d”,&a);
}
Características Básicas
• Popular
– C Standard Library
– C é uma linguagem para programadores, dá ao programador o que ele quer: poucas restrições, poucas reclamações,
estruturas de blocos,funções isoladas e um conjunto de palavras chave;
– Inicialmente C foi usada para S.O, compiladores,
interpretadores, planilhas, SGBD, hoje é usada na construção de sistemas comerciais, sistemas de controle e etc.
(portabilidade, código compacto e rápido);
– Atualmente em grande crescimento devido ascensão do S.O
Linux e sistemas embarcados.
Outras linguagens
• Java
• BASIC
• Visual Basic
• Visual C++
• Visual C#
Plataforma .NET
Framework Class Library (FCL)
Ambiente de desenvolvimento C
• Um programa em C normalmente passa por 6 (seis) fases para ser executado:
– Edição
– Pré-Processamento – Compilação
– Ligação (Link)
– Carregamento (Load)
– Execução
Início
Editar código fonte
Pré-processar Compilar
Erros de compilação?
Linkeditar
Erros de linkedição?
Carregar e Executar programa
Erros de tempo de Execução?
Fim Não
Não
Não Sim
Sim Sim
Compiladores e Interpretadores
1
2 3
4
5
6
Compiladores e Interpretadores
• Qualquer linguagem de programação pode ser compilada ou interpretada;
• Compiladores e interpretadores são programas que operam sobre o código-fonte;
• Interpretador lê o código-fonte linha por linha e executa-a;
• Compilador lê todo o código-fonte e converte-o para
linguagem de máquina (código-objeto);
Compiladores e Interpretadores
• Código-objeto não é executável, precisa ser utilizado um linkeditor para torná-lo executável;
• Programas C são criados por intermédio da linkedição de um ou mais códigos-objetos com uma ou mais
bibliotecas;
• Uma biblioteca é um conjunto de códigos-linkeditáveis criados, fornecidos com os compiladores ou
adquiridos;
© 2008 – RK