maio/2010
Eliade F. Lima
Tópicos em C
● 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:
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; devese listar antecipadamente todas as variáveis utilizadas no programa.
Introdução
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 DevC++, da Bloodshed. O DevC++ é 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, recomendase 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 nomedavariá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 ’;
%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
Strings de controle
main ( ){ int x; x = 30;
printf (“ A variavel eh: %d”, x);}
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 >=
Operadores
i+=2; > i=i+2;x*=y+1; > x=x*(y+1);d=3; > d=d3;
● 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);}
Entrada e Saída de dados no monitor
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"); }
● 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);}
Alguns comandos de controle
Alguns comandos de controle● while
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);
{ comandos}
Funções
Ex:int sqr();main() { int t=10; printf("%d %d",sqr(t),t); }int sqr(x) int x; { x=x*x; return(x) }
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.
Ponteiros
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)
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ósfixo(x++).
++x incrementa x antes de utilizar o seu valor.
x++ incrementa x depois de ser utilizado.
● Ex:
main()
{
int x=0;
printf("x= %d\n",x++);
printf("x= %d\n",x);
printf("x= %d\n",++x);
printf("x= %d\n",x);
}
Operadores