21
maio/2010 Eliade F. Lima Tópicos em C

T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

maio/2010

Eliade F. Lima

Tópicos em C

Page 2: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

●  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; deve­se  listar antecipadamente todas as variáveis utilizadas no programa.

Introdução

Page 3: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

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

Page 4: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

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”);}

Page 5: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

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

Page 6: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

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. 

Page 7: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

Tipos de dados

Page 8: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

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 ’;

Page 9: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

%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);} 

Page 10: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

  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=d­3;

Page 11: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

● 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

Page 12: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

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");       }

Page 13: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

● 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

Page 14: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

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++;  }} 

Page 15: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

            É  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)        }

Page 16: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

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.

Page 17: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

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);

Page 18: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

 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)

Page 19: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h
Page 20: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

Links e Livros

● http://www.mpfr.org/

●Apostilas UFMG e UFRJ

Page 21: T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as bibliotecas a serem utilizadas. #include #include 'biblioteca.h

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++).

       ++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