Apostila C
275 pág.

Apostila C


DisciplinaMétodos e Técnicas de Programação22 materiais161 seguidores
Pré-visualização45 páginas
( ) {
4 /\u2217
5 Escreve
6 na
7 t e l a
8 \u2217 /
9 p r i n t f ( \u2018 \u2018 He l lo World \n \u2019 \u2019 ) ;
10 / / faz uma pausa no programa
11 system ( \u2018 \u2018 pause \u2019 \u2019 ) ;
12 return 0;
13 }
Outro aspecto importante do uso dos comenta´rios e´ que eles permitem fa-
zer a documentac¸a\u2dco interna de um programa, ou seja, permitem descrever
o que cada bloco de comandos daquele programa faz. A documentac¸a\u2dco
e´ uma tarefa extremamente importante no desenvolvimento e manutenc¸a\u2dco
de um programa, mas muitas vezes ignoradas.
Os comenta´rios dentro de um co´digo permitem que um programador en-
tenda muito mais rapidamente um co´digo que nunca tenha visto ou que ele
relembre o que faz um trecho de co´digo a muito tempo implementado por
ele. Ale´m disso, saber o que um determinado trecho de co´digo realmente
faze aumenta as possibilidades de reutiliza´-lo em outras aplicac¸o\u2dces.
1.4 BIBLIOTECAS E FUNC¸O\u2dcES U´TEIS DA LINGUAGEM C
1.4.1 O COMANDO INCLUDE
O comando #include e´ utilizado para declarar as bibliotecas que sera\u2dco
utilizadas pelo programa.
Uma biblioteca e´ um arquivo contendo um conjunto de
func¸o\u2dces (pedac¸os de co´digo) ja´ implementados e que po-
dem ser utilizados pelo programador em seu programa.
Esse comando diz ao pre´-processador para tratar o conteu´do de um ar-
quivo especificado como se o seu conteu´do houvesse sido digitado no
programa no ponto em que o comando #include aparece.
21
O comando #include permite duas sintaxes:
\u2022 #include <nome da biblioteca>: o pre´-processador procurara´ pela
biblioteca nos caminhos de procura pre´-especificados do compilador.
Usa-se essa sintaxe quando estamos incluindo uma biblioteca que e´
pro´pria do sistema, como as biblotecas stdio.h e stdlib.h;
\u2022 #include \u201cnome da biblioteca\u201d: o pre´-processador procurara´ pela
biblioteca no mesmo direto´rio onde se encontra o nosso programa.
Podemos ainda optar por informar o nome do arquivo com o caminho
completo, ou seja, em qual direto´rio ele se encontra e como chegar
ate´ la´.
De modo geral, os arquivos de bibliotecas na linguagem C
sa\u2dco terminados com a extensa\u2dco .h.
Abaixo temos dois exemplos do uso do comando #include:
#include <stdio.h>
#include \u201cD:\Programas\soma.h\u201d
Na primeira linha, o comando #include e´ utilizado para adicionar uma bibli-
oteca do sistema: stdio.h (que conte´m as func¸o\u2dces de leitura do teclado e
escrita em tela). Ja´ na segunda linha, o comando e´ utilizado para adicionar
uma biblioteca de nome soma.h, localizada no direto´rio \u201cD:\Programas\\u201d.
1.4.2 FUNC¸O\u2dcES DE ENTRADA E SAI´DA: STDIO.H
Operac¸o\u2dces em arquivos
\u2022 remove: apaga o arquivo
\u2022 rename: renomeia o arquivo
Acesso a arquivos
\u2022 fclose: fecha o arquivo
\u2022 fflush: limpa o buffer. Quaisquer dados na\u2dco escritos no buffer de
sa\u131´da e´ gravada no arquivo
22
\u2022 fopen: abre o arquivo
\u2022 setbuf: controla o fluxo de armazenamento em buffer
Entrada/sa\u131´da formatadas
\u2022 fprintf: grava uma sa\u131´da formatada em arquivo
\u2022 fscanf: le\u2c6 dados formatados a partir de arquivo
\u2022 printf: imprime dados formatados na sa\u131´da padra\u2dco (monitor)
\u2022 scanf: le\u2c6 dados formatados da entrada padra\u2dco (teclado)
\u2022 sprintf: grava dados formatados em uma string
\u2022 sscanf: le\u2c6 dados formatados a partir de uma string
Entrada/sa\u131´da de caracteres
\u2022 fgetc: le\u2c6 um caractere do arquivo
\u2022 fgets: le\u2c6 uma string do arquivo
\u2022 fputc: escreve um caractere em arquivo
\u2022 fputs: escreve uma string em arquivo
\u2022 getc: le\u2c6 um caractere do arquivo
\u2022 getchar: le\u2c6 um caractere da entrada padra\u2dco (teclado)
\u2022 gets: le\u2c6 uma string da entrada padra\u2dco (teclado)
\u2022 putc: escreve um caractere na sa\u131´da padra\u2dco (monitor)
\u2022 putchar: escreve um caractere na sa\u131´da padra\u2dco (monitor)
\u2022 puts: escreve uma string na sa\u131´da padra\u2dco (monitor)
\u2022 ungetc: retorna um caractere lido para o arquivo dele
Entrada/sa\u131´da direta
\u2022 fread: le\u2c6 um bloco de dados do arquivo
\u2022 fwrite: escreve um bloco de dados no arquivo
23
Posicionamento no arquivo
\u2022 fgetpos: retorna a posic¸a\u2dco atual no arquivo
\u2022 fseek: reposiciona o indicador de posic¸a\u2dco do arquivo
\u2022 fsetpos: configura o indicador de posic¸a\u2dco do arquivo
\u2022 ftell: retorna a posic¸a\u2dco atual no arquivo
\u2022 rewind: reposiciona o indicador de posic¸a\u2dco do arquivo para o in\u131´cio
do arquivo
Tratamento de erros
\u2022 clearerr: limpa os indicadores de erro
\u2022 feof: indicador de fim-de-arquivo
\u2022 ferror: indicador de checagem de erro
\u2022 perror: impressa\u2dco de mensagem de erro
Tipos e macros
\u2022 FILE: tipo que conte´m as informac¸o\u2dces para controlar um arquivo
\u2022 EOF: constante que indica o fim-de-arquivo
\u2022 NULL: ponteiro nulo
1.4.3 FUNC¸O\u2dcES DE UTILIDADE PADRA\u2dcO: STDLIB.H
Conversa\u2dco de strings
\u2022 atof: converte string para double
\u2022 atoi: converte string para inteiro
\u2022 atol: converte string para inteiro longo
\u2022 strtod: converte string para double e devolve um ponteiro para o
pro´ximo double contido na string
\u2022 strtol: converte string para inteiro longo e devolve um ponteiro para
o pro´ximo inteiro longo contido na string
24
\u2022 strtoul: converte string para inteiro longo sem sinal e devolve um
ponteiro para o pro´ximo inteiro longo sem sinal contido na string
Gerac¸a\u2dco de sequ¨e\u2c6ncias pseudo-aleato´rias
\u2022 rand: gera nu´mero aleato´rio
\u2022 srand: inicializa o gerador de nu´meros aleato´rios
Gerenciamento de memo´ria dina\u2c6mica
\u2022 malloc: aloca espac¸o para um array na memo´ria
\u2022 calloc: aloca espac¸o para um array na memo´ria e inicializa com ze-
ros
\u2022 free: libera o espac¸o alocado na memo´ria
\u2022 realloc: modifica o tamanho do espac¸o alocado na memo´ria
Ambiente do programa
\u2022 abort: abortar o processo atual
\u2022 atexit: define uma func¸a\u2dco a ser executada no te´rmino normal do
programa
\u2022 exit: finaliza o programa
\u2022 getenv: retorna uma varia´vel de ambiente
\u2022 system: executa um comando do sistema
Pesquisa e ordenac¸a\u2dco
\u2022 bsearch: pesquisa bina´ria em um array
\u2022 qsort: ordena os elementos do array
Aritme´tica de inteiro
\u2022 abs: valor absoluto
\u2022 div: divisa\u2dco inteira
\u2022 labs: valor absoluto de um inteiro longo
\u2022 ldiv: divisa\u2dco inteira de um inteiro longo
25
1.4.4 FUNC¸O\u2dcES MATEMA´TICAS: MATH.H
Func¸o\u2dces trigonome´tricas
\u2022 cos: calcula o cosseno de um a\u2c6ngulo em radianos
\u2022 sin: calcula o seno de um a\u2c6ngulo em radianos
\u2022 tan: calcula a tangente de um a\u2c6ngulo em radianos
\u2022 acos: calcula o arco cosseno
\u2022 asin: calcula o arco seno
\u2022 atan: calcula o arco tangente
\u2022 atan2: calcula o arco tangente com dois para\u2c6metros
Func¸o\u2dces hiperbo´licas
\u2022 cosh: calcula o cosseno hiperbo´lico de um a\u2c6ngulo em radianos
\u2022 sinh: calcula o seno hiperbo´lico de um a\u2c6ngulo em radianos
\u2022 tanh: calcula a tangente hiperbo´lica de um a\u2c6ngulo em radianos
Func¸o\u2dces exponenciais e logar\u131´tmicas
\u2022 exp: func¸a\u2dco exponencial
\u2022 log: logaritmo natural
\u2022 log10: logaritmo comum (base 10)
\u2022 modf: quebra um nu´mero em partes fraciona´rias e inteira
Func¸o\u2dces de pote\u2c6ncia
\u2022 pow: retorna a base elevada ao expoente
\u2022 sqrt: raiz quadrada de um nu´mero
Func¸o\u2dces de arredondamento, valor absoluto e outras
\u2022 ceil: arredonda para cima um nu´mero
26
\u2022 fabs: calcula o valor absoluto de um nu´mero
\u2022 floor: arredonda para baixo um nu´mero
\u2022 fmod: calcula o resto da divisa\u2dco
1.4.5 TESTES DE TIPOS DE CARACTERES: CTYPE.H
\u2022 isalnum: verifica se o caractere e´ alfanume´rico
\u2022 isalpha: verifica se o caractere e´ alfabe´tico
\u2022 iscntrl: verifica se o caractere e´ um caractere de controle
\u2022 isdigit: verifica se o caractere e´ um d\u131´gito decimal
\u2022 islower: verifica se o caractere e´ letra minu´scula
\u2022 isprint: verifica se caractere e´ imprim\u131´vel
\u2022 ispunct: verifica se e´ um caractere de pontuac¸a\u2dco
\u2022 isspace: verifica se caractere e´ um espac¸o em branco
\u2022 isupper: verifica se o caractere e´ letra maiu´scula
\u2022 isxdigit: verifica se o caractere e´ d\u131´gito hexadecimal
\u2022 tolower: converte letra maiu´scula para minu´scula
\u2022 toupper: converte letra minu´scula para maiu´scula
1.4.6 OPERAC¸O\u2dcES EM STRING: STRING.H
Co´pia
\u2022 memcpy: co´pia de bloco de memo´ria
\u2022 memmove: move bloco de memo´ria
\u2022 strcpy: co´pia de string
\u2022 strncpy: co´pia de caracteres da string
Concatenac¸a\u2dco
27
\u2022 strcat: concatenac¸a\u2dco de strings