Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso de C PDF
Curso de C PDF
PET-CoCE,UTFPR, DAINF
http://www.dainf.ct.utfpr.edu.br/petcoce
Contexto Histrico
Compilada
Estruturada
Procedural
Portabilidade
Estrutura de um programa em C
Diretivas de pr-compilao
main()
printf(), scanf() e especificadores de formato
Tipos de variveis
Retirado de :http://equipe.nce.ufrj.br/adriano/c/apostila/tipos.htm
Onde as variveis so declaradas
void f (void) {
int i;
i = 10;
int j; // isso provoca um erro
j = 20;
}
/* Agora esta certo, define j dentro de seu prprio bloco de
cdigo. */
void f (void) {
int i;
i = 10;
if (i == 10) {
int j;
j = 20;
printf("%d", j);
}
}
Tipos Estruturados (structs)
Agrupar dados
Aninhamento de estruturas
Funes
Pilha :
Possui o endereo de retorno de chamadas de funo.
parmetros de funes
variveis locais
Heap :
Regio de memria livre usada para se alocar memoria
dinamicamente.
Exerccio
Apresente todos os nmeros divisveis por 4 que sejam
menores que 200.
Um nmero divisvel por 4 quando termina em 00 ou quando
o nmero formado pelos dois ltimos algarismos da direita
for divisvel por 4.
Exerccios
O que so ponteiros?
Operadores
Aritmtica de Ponteiros
Comparao de Ponteiros
Exemplo:
Exerccios
Escreva uma funo que receba 2 ponteiros para inteiro como
parmetros e faa a troca do valor destes inteiros. Prottipo da
funo:
void Troca (int *a,int *b);
int *x[10];
x[2] = &var;
*x[2];
Exerccio
float **newbalance;
Exemplo:
#include <stdio.h>
void main(void)
{
int x, *p, **q;
x = 10;
p = &x;
q = &p;
printf("%d", **q); /* print the value of x */
}
Alocao Dinmica em C
Soluo:
Funo malloc()
#include<stdlib.h>
#include<stdio.h>
int main()
{
int*vetor,n;
printf(Entre com o tamanho do vetor: );
scanf(%d, &n);
vetor= malloc(n* (sizeof(int)));
if( vetor == 0)
{
printf(Erro: Memoriainsuficiente);
return-1;
}
else...
Operadorsizeof()
typedef struct {
int dia, mes, ano;
} data;
data *d;
d = malloc (sizeof (data));
d->dia = 31; d->mes = 12; d->ano = 2008;
typedef struct {
int dia, mes, ano;
} data;
Falta de memria
int *v;
int n, i;
scanf ("%d", &n);
v = mallocX (n * sizeof (int));
for (i = 0; i < n; i++)
scanf ("%d", &v[i]);
for (i = n; i > 0; i--)
printf ("%d ", v[i-1]);
free (v);
Exerccio
int **A;
int i;
A = mallocX (m * sizeof (int *));
for (i = 0; i < m; i++)
A[i] = mallocX (n * sizeof (int));
int **A;
int i;
A = mallocX (m * sizeof (int *));
for (i = 0; i < m; i++)
A[i] = mallocX (n * sizeof (int));
1. Inserir.
2. Remover
3. Listar
4.
5. A pilha deve ser esttica ou seja voc deve determinar
sua capacidade mxima
6.
Exerccio
#include <string.h>
Funo strcmp
VALOR SIGNIFICADO
Menor que zero str1 menor que str2
Zero str1 igual a str2
Maior que zero str1 maior que str2
Funo strcpy
int atoi(char*);
#include <math.h>
Funo para calcular o log
FILE* fp;
fp = fopen("entrada.txt", "rt");
if (fp == NULL)
printf("Erro na abertura do arquivo!\n");
/* semelhante ao scanf */
int fscanf (FILE* fp, "%formato", &variavel);
/* l um caractere */
int fgetc(FILE* fp);
/* semelhante ao printf */
int fprintf(FILE* fp, "%formato", variavel);
/* escreve um caractere */
int fputc(int c, FILE* fp);
Leitura caractere a caractere
int c;
int nlinhas = 0;
FILE *fp;
char linha[122];
FILE* fp;
#include <ctype.h>
int c = 'a';
toupper(c);
Arquivos Binrios - Motivao
FILE *fp;
double d = 12.23;
fclose(fp);
struct conta {
float saldo;
char nome[20];
} minhaConta;
Sites
PUCRS -http://www.inf.pucrs.br/~pinho/LaproI/Historico/Historico.htm- Acesso em 11/02/2011
Wikipdia -http://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o)- Acesso em
11/02/2011
http://en.wikipedia.org/wiki/ANSI_C
http://en.wikipedia.org/wiki/C_(programming_language)#ANSI_C_and_ISO_C
http://www.dei.isep.ipp.pt/~abarros/docs/ANSI_C.pdf
Tutorial de Ponteiros e Arrays em C Ted Jensen (Traduo Csar A. K. Grossmann) http://cesarakg.
freeshell.org/pointers.html#toc14
http://www.apostilando.com/download.php?cod=2686&categoria=C%20e%20C++
http://www.joinville.udesc.br/portal/professores/adriano/materiais/ListaRevis_oPonteiros.html
http://equipe.nce.ufrj.br/adriano/c/apostila/ponte.htm#exercicios
Livros
SHEIDT, Herbert - C Completo e total.
CELES, Waldemar; CERQUEIRA, Renato; RANGEL, Jos Lucas - Introduo a estrutura de dados.
Outros
Slides de Estrutura de Dados I -Prof. Andr Vignatti - DAINF - UTFPR
Lista de exerccios sobre a linguagem C - Prof. Robson Ribeiro Linhares - DAINF - UTFPR