Tópicos em C Eliade F. Lima maio/2010
Criada em 1972, por Dennis Ritchie, nos laboratórios Bell, para ser usada no sistema operacional UNIX. Linguagem de propósito geral, sendo adequada à programação estruturada. Padronizada pelo ANSI (American National Standard Institute). Pontos positivos: eficiência, proximidade com o código da máquina, portabilidade entre máquinas e sistemas operacionais, código compacto e rápido quando comparado ao código de outras linguagens de complexidade análoga; para programar em C, você precisa apenas de um editor de textos e um compilador. Pontos negativos: Introdução o processamento de dados é feito de acordo com a sua natureza ou tipo de dado (não fortemente figurada); praticamente tudo que se expressa em um programa em C pode ser executado possibilitando a geração de resultados inesperados e dificuldade em encontrar erros; deve se listar antecipadamente todas as variáveis utilizadas no programa.
Estrutura de um programa em C Código fonte (.c) Compilador C (gcc) Código executável (.exe) Para Windows ou DOS: MinGW (antigo mingw32): porte do gcc para Windows. É o compilador incluído com o Dev C++, da Bloodshed. O Dev C++ é um IDE (sigla em inglês para Ambiente Integrado de Desenvolvimento) que facilita a edição e compilação de programas. Tem tradução para Português do Brasil. Borland C++: a Borland disponibilizou um compilador gratuito que funciona em linha de comando, como alternativa ao IDE comercial. DJGPP: porte do gcc para DOS. Também funciona no Windows, mas se o objetivo for rodar no Windows, recomenda se o uso do mingw, que pode usufruir de todos os recursos do Windows. Microsoft Visual C++: compilador comercial da Microsoft, que também tem um IDE. O Framework.NET, gratuito, também inclui o compilador (em linha de comando) do Visual C++. Para Linux/Unix gcc: é um conjunto de compiladores oficiais do projeto GNU, de código aberto. Costumam vir instalados na maioria das distribuições GNU/Linux e está disponível para diversas plataformas, principalmente para as baseadas em sistemas Unix. gcc programa.c o executavel.exe
Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include<biblioteca.h> #include 'biblioteca.h' Todo programa C inicia sua execução chamando a função main(), sendo obrigatória a sua declaração no programa principal. Comentários no programa são colocados entre /* e */ ou // única linha. Cada instrução encerra com ; (ponto e vírgula) /* Programa em C */ #include <stdio.h> main() { printf( Olá Mundo C\n ); }
Palavras reservadas auto double int struct break else long switch char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while
Tipos de dados char: o valor armazenado é um caracter int: o valor armazenado é um número inteiro. float: número em ponto flutuante de precisão simples. double: número em ponto flutuante de precisão dupla. void: indica que o resultado não tem tipo definido. Modificadores unsigned: pode ser aplicado aos tipos int e char e faz com que o bit de sinal não seja usado. signed: pode ser aplicado aos tipos int e char. long: pode ser aplicado aos tipos int e double aumentando o número de bytes a ser reservado para armazenamento de dados.
Tipos de dados
Declaração de variáveis Instrução para reservar uma quantidade de memória (em bytes) para um certo tipo de dado, indicando o nome pelo qual a área será referenciada. tipo nome da variável; ou tipo nome1, nome2,...,nome_n; O primeiro caracter deve ser uma letra ou o caracter _. Os 32 primeiros caracteres de um identificador são significativos. É case sensitive. int i, j; float raio; char c; i= 0; j = 10; raio = 2.54; c= d ;
Strings de controle %c caracter %d inteiro %e número ou notação científica %f ponto flutuante %o octal %x hexadecimal %s string (cadeia de caracteres) %lf double main ( ) { int x; x = 30; printf ( A variavel eh: %d, x); }
Operadores Aritméticos : Relacionais : Multiplicação * Igual a == Divisão / Não igual a!= Módulo % Menor que < Adição + Maior que > Subtração Menor ou igual <= Maior ou igual >= i+=2; > i=i+2; x*=y+1; > x=x*(y+1); d =3; > d=d 3;
Entrada e Saída de dados no monitor A função scanf() possibilita a leitura de dados tipados via teclado. scanf ( string de controle, lista de argumentos); printf( string de controle, lista de argumentos); #include <stdio.h> main() { int idade; printf( Digite sua idade\n\n ); scanf( %d,&idade); printf( Voce tem %d anos\n, idade); }
Alguns comandos de controle if else if (condição)comando; else comando; Ex: #include <stdio.h> main() { int a,b; printf("digite dois números:"); scanf("%d%d",&a,&b); if (b) printf("%d\n",a/b); else printf("divisão por zero\n"); }
Alguns comandos de controle for for (inicializações; condições de manutenção da repetição;incrementos); #include <stdio.h> main() { int i; for(i=1; i<=10; i++); printf( %d\n,i); }
while Alguns comandos de controle while (condição) comando; Permite que o código fique sendo executado numa mesma parte do programa de acordo com uma determinada condição. #include <stdio.h> main() { int i=0; while (i < 10) { printf( %d\n,i); i++; } }
É uma unidade autônoma de código do programa é desenhada para cumprir uma tarefa particular. tipo nome(parâmetros); Funções { comandos} Ex: int sqr(); main() { int t=10; printf("%d %d",sqr(t),t); } int sqr(x) int x; { x=x*x; return(x) }
Ponteiros Como o próprio nome diz, é um tipo de variável que aponta para outra (de um tipo qualquer). Na verdade um ponteiro guarda o endereço de memória (local onde se encontra na memória) de uma variável. int teste=20; int *p; p=&teste; printf("%d\n",*p); p irá armazenar o endereço de memória da variável teste. Ou seja, p não armazena o valor 20, mas sim o endereço de teste que, este sim, armazena o valor 20.
Arquivos de registros fopen() A função fopen tem duas finalidades: abrir uma fila de bytes ligar um arquivo em disco àquela fila FILE *fopen(char *NomeArquivo, char *modo);
Modo Significado r Abre Arquivo de Texto para Leitura w Cria Arquivo de Texto para Gravação a Anexa a um Arquivo de Texto rb Abre Arquivo Binário para Leitura wb Cria Arquivo Binário para Gravação ab Anexa a um Arquivo Binário r+ Abre Arquivo de Texto para Leitura/Gravação w+ Cria Arquivo de Texto para Leitura/Gravação a+ Abre ou Cria Arquivo de Texto para Leitura/Gravação r+b Abre Arquivo Binário para Leitura/Gravação w+b Cria Arquivo Binário para Leitura/Gravação a+b Abre ou Cria Arquivo Binário para Leitura/Gravação Obs: Um arquivo aberto deve ser fechado pela função fclose (pa)
Links e Livros http://www.mpfr.org/ Apostilas UFMG e UFRJ
O C fornece operadores diferentes para incrementar variáveis. O operador soma 1 ao seu operando, e o decremento subtrai 1. O aspecto não usual desta notação é que podem ser usado como operadores pré fixo(++x) ou pós fixo(x++). Ex: main() ++x incrementa x antes de utilizar o seu valor. x++ incrementa x depois de ser utilizado. { int x=0; printf("x= %d\n",x++); printf("x= %d\n",x); printf("x= %d\n",++x); printf("x= %d\n",x); } Operadores