T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as...
Transcript of T picos em Crns/astroprog/C_eliade.pdf · Código fonte As primeiras linhas do programa indicam as...
![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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/1.jpg)
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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/2.jpg)
● 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
![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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/3.jpg)
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
![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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/4.jpg)
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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/5.jpg)
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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/6.jpg)
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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/7.jpg)
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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/8.jpg)
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 ’;
![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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/9.jpg)
%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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/10.jpg)
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;
![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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/11.jpg)
● 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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/12.jpg)
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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/13.jpg)
● 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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/14.jpg)
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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/15.jpg)
É 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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/16.jpg)
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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/17.jpg)
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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/18.jpg)
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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/19.jpg)
![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'](https://reader034.fdocumentos.tips/reader034/viewer/2022050300/5f69b2f7477359065162109f/html5/thumbnails/21.jpg)
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