Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Apostila de C, Notas de estudo de Informática

Exercícios desenvolvidos na linguagem C

Tipologia: Notas de estudo

2010

Compartilhado em 02/03/2010

rodrigo-zancanella-4
rodrigo-zancanella-4 🇧🇷

1 documento

1 / 23

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Apostila com
Exercícios de
Linguagem C
por Rodrigo Zancanella Pereira, em 19/03/2007.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17

Pré-visualização parcial do texto

Baixe Apostila de C e outras Notas de estudo em PDF para Informática, somente na Docsity!

Apostila com

Exercícios de

Linguagem C

por Rodrigo Zancanella Pereira, em 19/03/2007.

SUMÁRIO

1 INTRODUÇÃO ..................................................................................... 3

2 TEMAS ..................................................... Error! Bookmark not defined.

2.1 Programas Básicos .......................................................................................... 2.1 Operadores e Expressões ............................................................................... 2.2 Comandos para Controle do Fluxo de Execução Error! Bookmark not defined. 2.3 Macros e Subprogramas ...................................... Error! Bookmark not defined.

3 CONCLUSÃO......................................................................................

2 TEMAS

2.1 Programas Básicos

01 - Ler a temperatura em graus Celsius e apresentá-la convertida em graus (F = (9* C + 160)/5)

#include<conio.h> #include<stdio.h>

float graus;

main() { printf("Digite uma temperatura em graus Celsius: \n"); scanf("%f", &graus); graus = (9* graus + 160)/5; printf("Graus equivalentes em F = %2.1f", graus); getch(); }

02 - Calcular e apresentar o volume de uma lata de óleo sabendo que V = 3.1415 * Raio * Raio * Altura

#include<conio.h> #include<stdio.h>

float raio, altura, volume;

main() { printf("Calcular volume da lata \n"); printf("Raio: "); scanf("%f", &raio); printf("Altura: "); scanf("%f", &altura);

volume = 3.1415 * raio * raio * altura;

printf("Volume da lata: %2.1f", volume); getch(); }

03 - Ler dois valores A e B, troque os valores e exiba o resultado.

#include<conio.h> #include<stdio.h>

int a, b, c;

main() { printf("Trocar numeros \n"); printf("A = "); scanf("%i", &a); printf("B = "); scanf("%i", &b);

c = a; a = b; b = c;

printf("Numeros trocados \n"); printf("A = %i \n", a); printf("B = %i", b); getch(); }

04 - Ler um inteiro decimal e exibi-lo em hexadecimal

#include<conio.h> #include<stdio.h>

int num; main() { printf("Digite um numero inteiro decimal: "); scanf("%i", &num); printf("O numero %i em hexa eh %x", num, num); getch(); }

2.2 Operadores e Expressões

01 - Compacte o seguinte programa:

#include<stdio.h> #include<math.h> #include<string.h>

int x,y,z;

float a,b,c;

void main (void) { x = 0; y = 0; z = 0; a = 10; b = 10; c = 10; x = x + 1; y = x; a = b; b = b + 1; z = z + y; a = b + a; c = c * (a + b + c);

if (x == 0) puts("x vale zero!"); else puts("x diferente de zero!");

printf("x: %d y: %d z: %d a: %d b: %d c: %d",x,y,z,a,b,c);

}

Resolução:

#include<stdio.h> #include<conio.h> #include <string.h>

int x, y, z, a, b, c;

main () { b = 10; c = 10; x = ++x; y = x; a = b; b = ++b; z = z + y; a = b + a; c = c * (a + b + c);

(x == 0)? puts("x vale zero!") : puts("x diferente de zero!");

printf("x: %d y: %d z: %d a: %d b: %d c: %d",x,y,z,a,b,c); getch(); }

02 - Avalie o valor de y e r:

int x = 2, y = 1;

y = ++x + x++;

y += x++;

int p = 0, q = 1, r;

r = p || q; r = p && q; r =! p;

Resolução:

#include<stdio.h> #include<conio.h>

int x = 2, y = 1;

int p = 0, q = 1, r;

main() { y = ++x + x++;

2.3 Comandos para Controle do Fluxo de Execução

01 - Quais são os comandos e sintaxe para desvios condicionais no c.

if (x == 0) { printf("Valido"); else printf("Invalido"); }

switch(oper) { case 1 : printf("Opcao 1"); break; case 2 : printf("Opcao 2"); break; default : printf("Default"); };

02 - Qual é o comando e sintaxe para loopings de tamanho definido no c.

for (int i; i = 0; i < max; ++i) { printf("%i",i) };

03 - Quais são os comandos e sintaxe para os loopings de tamanho indefinido no c.

while (x != 0) { printf("Looping"); }

04 - Leia três números do teclado e exiba-os em ordem crescente (if).

#include <stdio.h> #include <conio.h>

float x, y, z, ordem[2];

main () { printf("Digite 3 numeros \n"); scanf("%f %f %f", &x, &y, &z);

if ((x > y) and (y > z)) { ordem[2] = x; ordem[1] = y; ordem[0] = z; } else if ((y > z) and (z > x)) { ordem[2] = y; ordem[1] = z; ordem[0] = x; } else if ((z > x) and (x > y)) { ordem[2] = z; ordem[1] = x; ordem[0] = y; } printf("Numeros em ordem crescente: \n"); for (int i = 0; i < 3; ++i) { printf("%2.1f, ", ordem[i]); } getch(); }

05 - Leia uma nota do provão (A, B ,C , D ou E). Classifique a nota lida como: Ótimo, Bom, Regular, Ruim, Péssimo e Inválido (switch).

#include<conio.h> #include<stdio.h>

char nota;

main() { printf("Informe a nota em letra minuscula \n"); nota = getch();

switch(nota) { case 'a' : printf("Resultado = Otimo"); break; case 'b' : printf("Resultado = Bom"); break; case 'c' : printf("Resultado = Regular"); break; case 'd' : printf("Resultado = Ruim"); break; case 'e' : printf("Resultado = Pessimo"); break;

printf("Digite um numero valido! \n"); } } getch(); }

2.4 Macros e Sub-programas

01 - Implemente sub-programas para:

cubo(x) max(x,y) min(x,y,z) triplo(x) par(x) impar(x) somatorio(x,y): soma de x a té y produtorio(x,y): multiplica de x ate y eleva(x,n): eleva x a n fatorial(x)

1! = 1 X! = X*(x-1)!

Teste os sub-programas acima em um programa principal.

02 - Implemente um programa com sub-programação que leia notas de alunos e as classifique como A se nota >= 9, B se nota >= 8, C se nota >= 7e D caso contrario. Retorne também se a nota é valida ou não (TRUE ou FALSE) Exiba na tela o resultado da classificação. Faça a função int classifica(float nota, char * classif)

#include<stdio.h> #include<stdlib.h> #include<conio.h>

int classifica(float nota, char * classif) {

if( nota>10) { *classif='F'; puts("Nota Invalida"); return(0); } if(nota>=9) {

getchar(); getchar(); }

03 - Faça um programa que armazene dados sobre 10 alunos (nome, matricula, disciplina e nota 1º bimestre e nota 2 º bimestre). Após o armazenamento desses alunos, ordene-os em ordem de matrícula. Após a ordenação busque uma determinada matrícula (entrada pelo teclado) se ela existir. Exiba a sua média final e se ele estiver aprovado, reprovado ou de prova final. Utilize programação ESTRUTURADA - PROCEDURES E FUNCTIONS. Faça os seguintes sub-programas:

Cadastro() Ordenacao() float Busca(int matricula) (retorna a media final do aluno) char classificacao(float media)

#include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #define MAX 10 #define MIN -

struct TAlunos { char Nome[50], Disciplina[50]; int Matricula; float Nota1b, Nota2b, Media; };

TAlunos aluno[MAX];

void Cadastro() { printf("Cadastrando alunos..."); aluno[0].Matricula = MIN; for (int i = 1; i <= MAX; ++i) { printf("\n\n## Aluno %d ## \n", i);

printf("Nome: "); scanf("%s", &aluno[i].Nome); printf("Matricula: "); scanf("%d", &aluno[i].Matricula); printf("Disciplina: "); scanf("%s", &aluno[i].Disciplina); printf("Nota Bim. 1: "); scanf("%f", &aluno[i].Nota1b); printf("Nota Bim. 2: "); scanf("%f", &aluno[i].Nota2b);

aluno[i].Media = (aluno[i].Nota1b + aluno[i].Nota2b) / 2; }; };

void Insere(TAlunos BKP, int i) { while (BKP.Matricula < aluno[i].Matricula) { aluno[i+1] = aluno[i]; i = --i; }; aluno[i+1] = BKP; };

void Ordenacao() { for (int j = 2; j <= MAX; ++j) { Insere(aluno[j], j+1); }; };

void Buscar() { int buscarMat, aux;

printf("\nMatricula: "); scanf("%d", &buscarMat); printf("\n\n============== \n\n"); for (int i = 1; i <= MAX; ++i) { if (buscarMat == aluno[i].Matricula) { if (aluno[i].Media >= 7) { printf("O aluno %s esta Aprovado! \n", aluno[i].Nome); } else if ((aluno[i].Media >= 3) and (aluno[i].Media < 7)) { printf("O aluno %s esta em Prova Final! \n", aluno[i].Nome);

04 - Simule o jogo Campo Minado, da seguinte maneira:

matriz M 10 x 10 Graus de Dificuldade Fácil 10 bombas, Médio 20 bombas e Difícil 30 bombas Sorteie aleaotoriamente essas bombas na sub matriz 9 x 9, para que não hajam bombas na borda da matriz. Pergunte ao usuário se ele vai querer jogar. Leia uma coordenada na matriz x,y Se for bomba avise que o jogo acabou, senão calcule a qtde de bombas na vizinhança quadrangular. À cada jogada exiba a matriz na tela.

#include<stdio.h> #include<conio.h> #include<time.h> #include<stdlib.h>

#define bomba - #define vazio - #define facil 10 #define medio 20 #define dificil 30 #define curinga '?' #define tam 10

int campo[tam][tam], i, j; char opcao;

void Iniciar() { for(int i = 0; i <= 9; i++) for(int j = 0; j <= 9; j++) campo[i][j] = vazio; }

void Sorteio(int bombas) { int x,y; srand(time(NULL)); for(int i = 0; i <= bombas; i++) { x = rand()%9; y = rand()%9; if (campo[x][y] == vazio) campo[x][y] = bomba; } }

void Exibir() { for(int i = 0; i <= 9; i++) for(int j = 0; j <= 9; j++) { if ((campo[i][j] == vazio) || (campo[i][j] == bomba)) printf(" %c ", curinga); else printf(" %i ", campo[i][j]);

if (j == tam - 1) printf("\n"); } }

int Bombas(int x, int y) { int aux = 0, linIni, linFin, colIni, colFin;

if (x == 0) { linIni = 0; linFin = x + 1; } else if (x == tam - 1) { linIni = x - 1; linFin = x; } else { linIni = x - 1; linFin = x + 1; }

if (y == 0) { colIni = 0; colFin = y + 1; } else if (y == tam - 1) { colIni = y - 1; colFin = y; } else { colIni = y - 1; colFin = y + 1; }

if (campo[x][y] == bomba) return(bomba); else { for(int i = linIni; i <= linFin; i++) for(int j = colIni; j <= colFin; j++) { if ((campo[i][j] == bomba)) aux++; } return(aux);