• Like
P13 26
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
19
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Programação MEAer e MEEC Bertinho Andrade da Costa 2013/2014 1º Semestre Instituto Superior Técnico Resumo da matéria Utilitário make Programação Resumo da Matéria 1
  • 2. Sumário  Resumo das funções e bibliotecas  Consulte o ficheiro libc.html ( gnu.org) que está disponível na página da cadeira.  Resumo da matéria que foi leccionada  Tópicos que devem ser praticados  Tópicos que devem ser explorados Programação Resumo da Matéria 2
  • 3. Resumo - Funções e bibliotecas 1- Avaliação de caracteres ctype.h #include <ctype.h>              int int int int int int int int int int int int int 2 - Funções matemáticas – math.h #include <math.h.h>  isalnum (int a_char); isalpha (int a_char); iscntrl (int a_char); isdigit (int a_char); isgraph (int a_char); islower (int a_char); isprint (int a_char); ispunct (int a_char); isspace (int a_char); isupper (int a_char); isxdigit (int a_char); tolower (int a_char); toupper (int a_char);                     Programação Resumo da Matéria double double double double double double double double double double double double double double double double double double double double double ceil (double num); exp (double num); fabs (double num); floor (double num); fmod (double num1, double num2); ldexp (double num, int exp); log (double num); log10 (double num); modf (double num, double *iptr); pow (double num1, double num2); sqrt (double num); sin (double num); sinh (double num); asin (double num); cos (double num); cosh (double num); acos (double num); tan (double num); tanh (double num); atan (double num); atan2 (double num1, double num2); 3
  • 4. Resumo - Funções e bibliotecas 3 - Funções de entrada / saída – stdio.h #include <stdio.h> Operações em ficheiros – I/O      void int int int FILE clearerr (FILE *fp); fclose (FILE *fp); feof (FILE *fp); ferror (FILE *fp); *fopen (const char *filename, const char *file_mode); Formatação - I/O – Converte dados de/para formatos internos da memória  int fprintf (FILE *fpOut, const char *format_string, ...);  int printf (const char *format_string, ...);  int sprintf (char *strptout, const char *format_string, ...);  int fscanf (FILE *fpIn, const char *format_string, ...);  int scanf (const char *format_string, ...);  int sscanf (const char *strptInt, const char *format_string, ...); Programação Resumo da Matéria 4
  • 5. Resumo - Funções e bibliotecas (cont.) – stdio.h Caracteres – I/O – Leitura e escrita de um carácter de cada vez        int int int int int int int fgetc (FILE *fp); fputc (int ch, FILE *fp); getc (FILE *fp); getchar (void); putc (int ch, FILE *fp); putchar (int ch); ungetc (int ch, FILE *fp); Strings – I/O – Leitura e escrita de strings     char *gets (char *string); int puts (const char *string); char *fgets (char *string, int size, FILE *fp); int fputs (const char *string, FILE *fp); Controlo do sistema de ficheiros   char remove (const char *file_name); int rename (const char *old_name, const char *new_name); Programação Resumo da Matéria 5
  • 6. Resumo - Funções e bibliotecas 4 - Funções da biblioteca stdlib.h #include <stdlib.h> Funções matemáticas      int abs (int num); div_t div (int numerator, int divisor); long labs (long numerator, int divisor); int rand (void); void srand (unsigned seed); Funções de alocação de memória     void void void void *calloc (size_t num_elements, size_t, element_size); free (void *); *malloc (size_t num_bytes); *realloc (void *stge_ptr, size_t element_size); Funções de controlo do programa    void exit (int exit_code); void abort (void); int atexit (void (*) function_name (void)); Programação Resumo da Matéria 6
  • 7. Resumo - Funções e bibliotecas (cont.) - stdlib.h Função de comunicação com o Sistema Operativo  int system (const char *system_command); Funções de conversão       double atof (const char *real_num); int atoi (const char *real_num); long atol (const char *real_num); double strtod (const char *str, char **next_str); long strtol (const char *str, char **next_str, int base); unsigned long strtol (const char *str, char **next_str, int base); Programação Resumo da Matéria 7
  • 8. Resumo - Funções e bibliotecas 5 - Funções de manipulação de strings – string.h #include <string.h> Cópia de dados     char char char char *strcpy (char *to_str, const char *from_str); *strncpy (char *to_str, const char *from_str, size-t bytes); *strcat (char *to_str, const char *from_str); *strncat (char *to_str, const char *from_str, size-t bytes); Comparação de dados       char char int int char int *strchr (const char *str, int chr); *strrchr (const char *str, int chr); strcmp (const char *str1, const char *str2); strncmp (const char *str1, const char *str2, size_t bytes); *strpbrk (const char *str1, const char *str2); *strstr (const char *str1, const char *str2); Determinação do comprimento  size_t strlen (const char *str);  size_t strspn (const char *str1, const char *str2);  size_t strcspn (const char *str1, const char *str2); Programação Resumo da Matéria 8
  • 9. Resumo - Funções e bibliotecas 6 - Funções relacionadas com o tempo real do computador – time.h #include <time.h>         clock_t double time_t time_t char char struct tm struct tm Programação clock (void); difftime (time_t time_start, time_t time_end); mktime (struct tm *cal_time); time (time_t *num_time); *asctime(const struct tm *cal_time); *ctime(const time_t *num_time); *gmtime(const time_t *num_time); *localtime(const time_t *num_time); Resumo da Matéria 9
  • 10. Resumo - Matéria     História da computação Computadores e Linguagens de programação Linguagem C Tipos de dados, operadores e operações    Utilização de funções   char, int, float, ... =, +, -, *, /, ..., promoções printf, scanf, getchar, putchar, ... Instruções de controlo de fluxo do programa      Programação if ( ) {}, ifs encadeados Expressões lógicas e avaliação de expressões. while ( ) { }; do { } while ( ); for ( ) {} Resumo da Matéria 10
  • 11. Resumo  Legibilidade do código fonte       Comentários Nome das variáveis Directiva #define Instrução switch Tipos enumerados Desenvolvimentos de novas funções     Programação Sintaxe Definição e utilização Parâmetros formais e parâmetros actuais Valor de retorno de uma função Resumo da Matéria 11
  • 12. Resumo  Continuando com funções       Introdução ao pré-processador      Variáveis locais Visibilidade das variáveis Tempo de vida das variáveis locais Protótipos Compilação de um programa em módulos separados #include < > #include “ “ #define Classes de armazemento (tempo de vida e visibilidade) Variáveis indexadas   Programação Vectores e matrizes, ... Ordenação de um conjunto de números, ... Resumo da Matéria 12
  • 13. Resumo  Noção de apontador    Apontador e objecto apontado Apontador de apontador Funções e apontadores       Vectores e apontadores Aritmética de apontadores Vectores e funções Vectores de caracteres    Passagem de uma variável por valor Passagem de uma variável por refereência string.h Funções Matrizes e apontadores Programação Resumo da Matéria 13
  • 14. Resumo  Vectores de apontadores  Noção de estrutura de dados   Estruturas de dados como argumento de funções     Operações sobre estruturas Passagem por valor Passagem por referência Devolução de uma estrutura Ficheiros  Operações sobre ficheiros de texto   fopen, fclose, fprintf, fscanf, fgets, ... Conceito de memória dinâmica  Funções de gestão de memória dinâmica   Programação calloc, free Exemplos: Alocação dinâmica de vectores Resumo da Matéria 14
  • 15. Resumo  Estruturas dinâmicas ligadas  Pilha, Fila, Lista, (Noção de Anel)     Operações: Criar, Inserir, Procurar, Apagar Argumentos da linha de comando   Registo separado para a base Ligação simples ou dupla int main(int argc, char * argv[]) { } Noção de Recursividade  Programação Função que se executa a si própria Resumo da Matéria 15
  • 16. Tópicos que devem ser praticados  Para além da matéria que foi descrita.  Cuidados a ter com os caracteres invisíveis como o n e caracteres extra.     Utilizar o fgets para ler uma linha completa. E sscanf para efectuar as conversões Compreender a funcionalidade de uma função a partir da consulta da página do manual (ex: man strcpy ), análise do protótipo respectivo. Documentar as funções, descrição da função, parâmetros de entrada, saída e condições de erro. Saber determinar em que situações é que uma função devolve um valor correspondente a um possível erro.   Programação Definir as acções para lidar com o erro. O programador é livre de ignorar o valor de retorno de uma função, mas também é responsável por ter ignorado o valor de retorno da função. Resumo da Matéria 16
  • 17. Tópicos que devem ser praticados  Praticar a compilação de módulos separados  Definir os ficheiros de include *.h         Compilação *.c “Linkagem” *.o Utilização do debugger Utilização do utilitário make  Programação Constantes Tipos de dados com o typedef Protótipos Compilação condicional, #ifndef ... #endif Ver a versão simplificada de um ficheiro de make que foi dado na aula de laboratório. Resumo da Matéria 17
  • 18. Tópicos que devem ser praticados  Lembrar o conceito de makefile    O utilitário make é uma ferramenta que permite simplificar a tarefa do programador no desenvolvimento de programas com elevada complexidade. O utilitário define as dependências entre ficheiros e executa os comandos que estão associados para produzir (ou actualizar) os ficheiros em falta. Os comandos devem ser guardados num ficheiro com o nome makefile, no directório de trabalho onde estão os ficheiros fonte do programa. #makefile versao 1 tetris: main.c graficos.c graf.h comandos.c comand.h <tab> gcc -g -Wall -pedantic -ansi main.c graficos.c comandos.c -o tetris > make tetris Programação Resumo da Matéria 18
  • 19. Tópicos que devem ser praticados  Lembrar o conceito de makefile #makefile versao 2 mais geral all: tetris comandos.o: comandos.c comand.h gcc -g -Wall -pedantic -ansi -c comandos.c graficos.o: graficos.c graf.h gcc -g -Wall -pedantic -ansi -c graficos.c main.o: main.c graf.h comand.h gcc -g -Wall -pedantic -ansi -c main.c tetris: main.o graficos.o comandos.o gcc -g -Wall -pedantic -ansi main.o graficos.o comandos.o -o tetris clean: rm comandos.o graficos.o main.o tetris > make all Programação Produz a versão final e os ficheiros intermédios. Resumo da Matéria 19
  • 20. Tópicos que devem aprofundados  Apontadores e funções   Pré-processador    Noção de apontador para uma função Noção de macro Directivas para debug Ficheiros  Programação Noção de ficheiro binário e operações Resumo da Matéria 20
  • 21. Boa Época de Exames Diploma de Programador Programação Resumo da Matéria 21
  • 22. Programação Resumo da Matéria 22