















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Exercícios desenvolvidos na linguagem C
Tipologia: Notas de estudo
1 / 23
Esta página não é visível na pré-visualização
Não perca as partes importantes!
por Rodrigo Zancanella Pereira, em 19/03/2007.
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.
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);