Documente Academic
Documente Profesional
Documente Cultură
Aula prática 1
Sumário:
Apresentação
Programa
Avaliação
Bibliografia
Introdução à linguagem C
História da linguagem
Conceitos básicos
Bibliotecas básicas
Tipos de dados escalares
Exercícios – FICHA 1 DE AVALIAÇÃO
Apresentação
• Introdução C
• Estruturas básicas, tipos escalares
• Operadores
• Instruções de controlo
• Apontadores e vectores
• Acesso à memória
• Visibilidade e longevidade
• Estruturas e uniões
• Funções
• Entradas / Saídas
• Directivas ao pré-processador
• Bibliotecas
Avaliação I
• Fichas de avaliação durante o semestre - 10%
– Avaliação individual ou em grupos de 2 alunos
– Cada uma das fichas de avaliação serão apresentadas em cada aula
– A resolução da ficha, em código C, tem de ser enviada antes do dia/hora
da aula seguinte para o email: slguerreiro@gmail.com, com o subject:
LPI_NOME1_NOME2_NRALUNO1_NRALUNO2_NRFICHA.
– Em alternativa aceita-se entregas em CD devidamente identificados.
– Se as fichas não forem entregues segundo as regras anteriores consideram-
se não entregues.
• Projecto - 40%
2º Semestre 2006/2007 Sérgio Guerreiro Aula Prática 1
slguerreiro@gmail.com Página 4
Linguagens de programação I Universidade Lusófona de Humanidades Tecnologias
Avaliação II
Bibliografia
• Principal
– The C Programming Language -- ANSI C Brian W. C. Kernighan & Dennis
M. Ritchie Prentice Hall, 1988
Introdução
#include <stdio.h>
void escreve_mensagem(){ printf(“Olá mundo!”); }
int main() {
escreve_mensagem();
return 1;
}
História do ANSI-C
Estrutura de um programa
2. Função1();
…………
3. FunçãoN();
4. Programa principal
int main(int argc, char* argv[])
{
}
Fundamentos de sintaxe
Expressão – conjunto de acções
Bibliotecas básicas
• Bibliotecas básicas de ANSI C (o C que é compatível com todos os sistemas operativos):
<assert.h> : Diagnostics (diagnóstico de erros internos)
<ctype.h> : Character Class Tests (testes a caracteres)
<errno.h> : Error Codes Reported by (Some) Library Functions (tratamento de erros)
<float.h> : Implementation-defined Floating-Point Limits
<limits.h> : Implementation-defined Limits (limites dos tipos de dados)
<locale.h> : Locale-specific Information (ex: moeda, currency)
<math.h> : Mathematical Functions
<setjmp.h> : Non-local Jumps (recurso de sistema operativo)
<signal.h> : Signals (recurso de Sistema Operativo)
<stdarg.h> : Variable Argument Lists (recurso de Sistema Operativo)
<stddef.h> : Definitions of General Use (uso de funções gerais, ex: representação do NULL)
<stdio.h> : Input and Output
<stdlib.h> : Utility functions
<string.h> : String functions
<time.h> : Time and Date functions
2º Semestre 2006/2007 Sérgio Guerreiro Aula Prática 1
slguerreiro@gmail.com Página 12
Linguagens de programação I Universidade Lusófona de Humanidades Tecnologias
Compilador I
cc <nome_do_ficheiro>.c
Obtemos assim um ficheiro executável com o mesmo nome de nome_do_ficheiro.
Ou
cc –o teste <nome_do_ficheiro>.c
Obtemos assim um ficheiro executável com o nome teste
Compilador II
• Vantagens, exemplos:
– Partilha de trabalho em grupo
– Optimização na utilização de Bibliotecas
– Depuração de erros facilitada
Compilador III
• Compilador cc em linha de comando, exemplo:
Tipos de dados I
Os tipos de dados que admitem modificadores são apenas: int, char, double.
Os intervalos apresentados em cima, referenciam valores médios. Podem diferir em Sistemas Operativos
diferentes.
Conhecer os limites de um tipo de dados dinamicamente: sizeof
Exemplo:
/* How big is an int? expect an answer of 4. */
main()
{
printf("%d \n", sizeof(int));
}
2º Semestre 2006/2007 Sérgio Guerreiro Aula Prática 1
slguerreiro@gmail.com Página 20
Linguagens de programação I Universidade Lusófona de Humanidades Tecnologias
constantes e variáveis
A função printf permite escrever no ecrã do computador: int, integers, floats e strings.
A sintaxe geral é: printf( "format", variables );
Onde:
"format" especifica a conversão entre as variáveis a apresentar e o formato que devem
assumir. Os formatos podem ser definidos das seguintes formas:
inteiro = 1;
printf("Inteiro = %d\n",inteiro); /* Atribuição com soma */
virgula_flutuante1 = 4.435;
printf("Virgula flutuante = %2.5f\n", virgula_flutuante1 );
dupla_precisao1 = 123756565.83838474;
printf("dupla precisão = %20.20f\n", dupla_precisao1 );
caracter='a';
printf("caractere = %c\n", caracter );
month = Apr;
printf("Mês = %d\n", month);
};
Dúvidas ?
Exemplo:
http://www.cs.cf.ac.uk/Dave/C/
http://www.phim.unibe.ch/comp_doc/c_manual/C/cref.html
http://www.imada.sdu.dk/~svalle/courses/dm14-2005/mirror/c/