Академический Документы
Профессиональный Документы
Культура Документы
Um programa deve ser pensando em termos de funes Celes (2004); Estrutura de uma Funo:
tipo_retornado nome_da_funo (lista de parmentros...) { corpo da funo }
tipo_retornado: especifica o tipo de valor que a instruo return da funo devolve; lista de parmetros: uma lista de tipo de valor e nomes de variveis separados por virgula;
Forma geral : f(tipo nomevar1, tipo nomevar1, ..., tipo nomevarN) Exemplo: int calcFatorial(int numero)
Exemplo: int calcFatorial(int numero); int calcFatorial(int); int calcula(int num1, int num2, char op); int calcula(int, int, char);
PONTEIROS
/*programa que ilustra a utilizao de ponteiros*/ #include <stdio.h> int main (void) { int a; int *p; p = &a;// se esquecer dar ERRO *p = 2; printf(" %d", a); fflush(stdin); getchar(); return 0; }
PONTEIROS
#include <stdio.h>
int soma(int a, int b){ int c; c = a + b; return c; } int main(void){ int s; s = soma(3,5) printf("Soma = %d\n", s); fflush(stdin); getchar(); return 0; }
PONTEIROS
#include <stdio.h> void somaProduto(int a, int b, int c, int d){ c = a + b; d = a * b; } int main(void){ int s, p; somaProduto(3,5, s, p); printf("Soma = %d Produto = %d\n", s, p); fflush(stdin); getchar(); return 0; }
PONTEIROS
Variveis
do tipo ponteiro
Para cada tipo existente, h um tipo ponteiro capaz de armazenar endereos de memria em que existem valores do tipo correspondentes; Portanto, a princpio, existe ponteiros para char, int, float e double;
PONTEIROS
Variveis
do tipo ponteiro
A declarao variveis para os tipos char, int, float e double feita como segue:
char *c; int *a; float *b; double *d;
PONTEIROS
Variveis
do tipo ponteiro
PONTEIROS
Variveis
do tipo ponteiro
PONTEIROS
#include <stdio.h>
void somaProduto(int a, int b, int *c, int *d){ *c = a + b; *d = a * b; } int main(void){ int s, p; somaProduto(3,5, &s, &p); printf("Soma = %d Produto = %d\n", s, p); fflush(stdin); getchar(); return 0; }
PONTEIROS
EXERCCIOS:
Programa que troca o valor de dois nmeros; Fazer uma funo que:
receba 3 nmeros como parmetros: A, B e C; ordene de tal forma que, ao final da funo, A contenha o menor nmero e C o maior; Fazer um programa que receba 3 nmeros do usurio, chame a funo e mostre os nmeros ordenados.
VETORES
Conceito: uma coleo de variveis do mesmo tipo que referenciada por um nome comum; Em C todos os vetores consistem em posies contnuas de memria;
VETORES
Exemplos:
int x [20]; char nome [50]; float notas [60]; double precos [10];
VETORES
Atribuio de valores:
int vetor[5] = {2, 4, 35, 50, 23}; x [2] = 54; for (i=0; i < tamanho; i++){
scanf(%d, &vetor[i]);
Acesso ao contedo:
y = x [2]; for (i=0; i < tamanho; i++){
printf(%d, , vetor[i]);
VETORES
#include <stdio.h> int main(void){ int i, n; float v, media = 0; printf("Informe o numero de elementos:"); scanf("%d", &n); for(i=0; i < n; i++){ printf("Informe o valor %d:", i+1); scanf("%f", &v); media = media + v; } media = media / n; printf("Valor da media = %0.2f", media); }
VETORES
Complicando um pouco... Faa um programa que calcule a mdia das notas de 10 alunos e mostre a nota, a mdia e a diferena entres elas.
VETORES
#include <stdio.h> int main(void){ int i; float media, notas[10]; for(i=0; i < 10; i++){ printf("Informe o valor %d:", i+1); scanf("%f", ¬as[i]); } media = 0; for(i=0; i < 10; i++) media = media + notas[i]; media = media / 10; for(i=0; i < 10; i++) printf("nota = %0.2f media = %0.2f, diferenca = %0.2f \n", notas[i], media, (notas[i] - media)); }
EXERCCIOS
leia 7 valores inteiros e os armazene em um vetor. Listar o vetor com as referidas posies de armazenamento de cada valor. oferea uma pesquisa onde dado um valor inteiro qualquer de entrada retornar a posio deste valor dentro do vetor, e caso este valor no esteja presente no vetor retornar 1.
#include <stdio.h> int main(void){ int i; int num, vetor[7]; for(i=0; i < 7; i++){ printf("Informe o valor %d: ", i); scanf("%d", &vetor[i]); }
i = -1;
printf("posicao do valor pesquisado = %d \n", i); }
EXERCCIOS
Faa um programa que dado o vetor [2; 4; 35; 50; 23; 17; 9; 12; 27; 5]: coloque os valores em ordem crescente dentro do vetor; mostre o maior valor;
#include <stdio.h> int main(void){ int i, j; int maior, vetor[10] = {2, 4, 35, 50, 23, 17, 9, 12, 27, 5}; for(i=0; i < 10; i++) for(j=0; j < 10; j++){ if(vetor[j] > vetor[i]){ maior = vetor[j]; vetor[j] = vetor[i];
vetor [i]=maior;
} } maior = 0; for(i=0; i < 10; i++) if (vetor[i] > maior) maior = vetor[i]; for(i=0; i < 10; i++) printf("%d ", vetor[i]);
EXERCCIOS
Deseja-se publicar o nmero de acertos de cada aluno em uma prova em forma de testes. A prova consta de 30 questes, cada uma com cinco alternativas identificadas por A, B, C, D e E. Para isso so dados:
o carto gabarito; o nmero de alunos da turma; o carto de respostas para cada aluno, contendo o seu nmero e suas respostas.
#include <stdio.h> int main() { int n, i, aluno, pontos; char gabarito[5], resp[5]; printf("Digite o numero de alunos: "); scanf("%d", &n); printf("Digite o gabarito da prova: "); for (i = 0; i < 5; i++) scanf(" %c", &gabarito[i]); /* atencao para o espaco em branco */ for (aluno = 1; aluno <= n; aluno++) { pontos = 0; printf("Digite as respostas do aluno %d: ", aluno); for (i = 0; i < 5; i++) { scanf(" %c", &resp[i]); pontos = pontos + 1; } printf("O aluno %d fez %d pontos\n", aluno, pontos); } } /* atencao para o espaco em branco */ if (resp[i] == gabarito[i])
EXERCCIOS
Dados dois vetores x e y, ambos com n elementos, determinar o produto escalar desses vetores.
#include <stdio.h> #define MAX 10 int main() { int i, n; float prod, x[MAX], y[MAX]; printf("Digite o tamanho dos vetores: "); scanf("%d", &n);
REFERNCIAS
Livros:
Sites
Blog: http://mariodantas.wordpress.com/