Trabalho Em C

13
1. Enunciado: O que faz o seguinte programa? #include <stdio.h> int main() { int x; scanf("%d",&x); printf("%d",x); return (0); } Resposta: scanf lê a variável x pelo teclado e printf imprime o valor informado. 2. Enunciado: Escreva uma função que some dois inteiros e retorne o valor da soma. Resposta: int Soma(int x, int y) { return (x+y); } 3. Enunciado: Diga o resultado das variáveis x, y e z depois da seguinte sequência de operações: int x,y,z; x=y=10; z=++x; x=-x; y++; x=x+y-(z--); Resposta: x = -11, y=11, z=10 4. Faca um programa que apresente na tela a tabela de conversão de graus Celsius para Fahrenheit, de -100 C a 100 C. Use um incremento de 10 C. OBS: Farenheit = (9/5)*(Celsius) + 32

Transcript of Trabalho Em C

Page 1: Trabalho Em C

1. Enunciado: O que faz o seguinte programa?

#include <stdio.h> int main() {int x;scanf("%d",&x);printf("%d",x); return (0);}

Resposta: scanf lê a variável x pelo teclado e printf imprime o valor informado.

2. Enunciado: Escreva uma função que some dois inteiros e retorne o valor da soma.

Resposta:

int Soma(int x, int y) { return (x+y); }

3. Enunciado: Diga o resultado das variáveis x, y e z depois da seguinte sequência de operações: int x,y,z; x=y=10; z=++x; x=-x; y++; x=x+y-(z--);

Resposta: x = -11, y=11, z=10

4. Faca um programa que apresente na tela a tabela de conversão de graus Celsiuspara Fahrenheit, de -100 C a 100 C. Use um incremento de 10 C. OBS: Farenheit = (9/5)*(Celsius) + 32

Solução: #include <stdio.h>

#include <stdlib.h>

int main()

{

Page 2: Trabalho Em C

float C,F;

int Temp_Min = -100, Temp_Max = 100, Inc = 10;

printf("\n\n ****** Celsius ******** Farenheit ******\n\n");

for (C = Temp_Min; C<=Temp_Max; C =C+Inc)

{

F = (float)(1.8* C)+32;

printf("\t%f\t\t %f\n", C, F);

}

printf("\n\n");

system("pause");

return 0;

}

5. O que imprime o programa a seguir? Tente entendê-lo e responder. A seguir,execute-o e comprove o resultado.

# include <stdio.h> int main() { int t, i, M[3][4]; for (t=0; t<3; ++t) for (i=0; i<4; ++i) M[t][i] = (t*4)+i+1; for (t=0; t<3; ++t) { for (i=0; i<4; ++i) printf ("%3d ", M[t][i]); printf ("\n"); } return 0; }

Solução: Carrega uma matriz 3x4 de 1 a 12, e mostra linha por linha(M[0][0]=1, M[0][1]=2, M[0][2]=3, .... M[2][4]=12).

O que imprime o programa a seguir? Tente entendê-lo e responder:

Page 3: Trabalho Em C

#include <stdio.h>

main()

{

char nome[30];

int B;

printf ("informe um nome:");

gets(nome);

for(B=0;B<=3;B++)

printf("\%c",nome[B]);

printf ("\n\n");

system("PAUSE");

return (0);

}

Resposta: Recebe um nome e imprime as 4 primeiras letras do nome.

6. Fazer um programa para receber um número inteiro de segundos do usuário e imprimir a quantidade correspondente em horas, minutos e segundos.

#include

main(){int numero, h, m, s;puts("Digite a quantidade de segundos:\n");scanf("%d", &numero);h= numero/3600;m=(numero%3600)/60;s=(numero%3600)%60;printf("\n%d segundos corespondem a %d horas, %d minutos e %d segundos.", numero, h,m,s);getch();}

7. Fazer um programa para receber 3 valores inteiros do usuário e mostrar a sua média (que pode não ser inteira).

Page 4: Trabalho Em C

Resposta:#include

main(){int n1,n2,n3;float md, soma;

puts("Digite tres numeros\n");scanf("%d %d %d", &n1,&n2,&n3);

soma=n1+n2+n3;

md=(soma/3);

printf("\n\nA media entre %d, %d, %d e igual a %.2f.", n1,n2,n3, md);getch();}

8. Fazer um programa no qual o usuário vai entrando sucessivamente com valores positivos. Quando o usuário entrar com um valor negativo o programa para de pedir valores e calcula a média dos valores já fornecidos e informe a quantidade de números fornecidos pelo usuário.

include <stdio.h>int main() {int num, cont=0;float soma=0, media;scanf("%d", &num);while (num >= 0) {soma += num;cont++;scanf("%d", &num);}media = soma / cont;printf ("\nMedia: %f\n", media);return 0;}

9. Fazer um programa que sorteie um número de 0 a 100 e que permita

que o usuário (sem conhecer o número sorteado) tente acertar.

Caso não acerte, o programa deve imprimir uma mensagem informando se

o número sorteado é maior ou menor que a tentativa feita.

Page 5: Trabalho Em C

Ao acertar o número, o programa deve imprimir a quantidade de tentativas feitas.

#include<iostream>

#include<stdlib.h>

using namespace std;

int main(void)

{

int n; // um numero inteiro informado pelo usuario

int ale; // o numero aleatorio gerado pelo programa

int cont; // contador das tentativas

cont = 0;

n = 0;

srand(time(NULL)); // inicializa o gerador de numeros aleatorios

ale = rand() % 100; // ale eh o numero aleatorio gerado

//sintaxe da funcao rand()

//ale = menor valor + rand() % (maior valor - menor valor)

//ale = 0 + rand() % (100-0);

while (ale!=n)

{

cout << "informe um numero inteiro: ";

Page 6: Trabalho Em C

cin >> n;

if (ale == n)

break;

if (ale > n)

cout << "o numero sorteado eh maior que o numero informado\n";

if (ale < n)

cout << "o numero sorteado eh menor que o numero informado\n";

cont++;

}

cout << "acertou com " << cont << " tentativas\n";

return 0;

}

10. Implementar a função RAIZQUADRADA. Esta função deve:

Receber um número do tipo float como parâmetro.

Retornar a raiz quadrada do número recebido, de tal maneira que esta raiz, quando elevada ao quadrado, apresente um erro máximo de 0.01% em relação ao valor do parâmetro.

Arquivo: raizQuadrada.h

float raizQuadrada(float z) {

float r=0;

do{

r +=0.0001;

}while(z-r*r>0.0001);

return r;

} // fim da função raizQuadrada

Page 7: Trabalho Em C

Arquivo: chama_raizQ.cpp

#include <iostream>

using namespace std;

#include “raizQuadrada.h"

int main() {

float x;

cout << "\nDigite um numero: ";

cin >> x;

cout << "\n\nA raiz quadrada desse numero eh: " << raizQuadrada(x) << endl<<endl;

system("PAUSE");

} // fim de main

11. Faça um programa que dado o vetor unidimensional [2; 4; 35; 50; 23; 17; 9; 12;27; 5] retorne:a. maior valorb. média dos valoresc. os valores dispostos em ordem crescented. sub conjunto de valores primos que está contido no vetor

# include<stdio.h>

#include <stdlib.h>

int main(){

int vetorU[10] = {2,4,35,50,23,17,9,12,27,5};

int j,i,x,soma=0,cont=0;

float media=0;

printf("Os valores do vetor e : \n\n");

for(i=0;i<10;i++){

Page 8: Trabalho Em C

printf("vetorU[%d] %d\n",i,vetorU[i]);

}

for(i=0; i<9; i++){

for(j=i+1; j<10; j++){

if(vetorU[i] > vetorU[j]){

x = vetorU[i];

vetorU[i] = vetorU[j];

vetorU[j] = x;

}

}

}

printf("\nA ordem crescente e: ");

for(i=0; i<10; i++){

printf("%d,",vetorU[i]);

soma = soma + vetorU[i];

media = soma /10;

}

printf("\n\nO maior valor e: %d\n",vetorU[9]);

printf("A media e: %.2f\n\n",media);

int primo(int x) {

for (n=2; n < x/2; n++)

Page 9: Trabalho Em C

if (x % n == 0) return 0;

//se a divisão de x por qualquer outro número tiver resto 0,

//significa que ele é divisível por esse número, e portanto não é primo

return 1;

//se chegou aqui, é porque é primo

}

system("pause");

return 0;

}

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

int main(){/**Faça um programa que dado o vetor unidimensional [2; 4; 35; 50; 23; 17; 9; 12;27; 5] retorne:a. maior valor;b. menor valorc. média dos valores.*/int vetoru[10]={2, 4, 35, 50, 23, 17, 9, 12, 27, 5};int i, maiorv = 0,menorv, soma=0,media;

printf("Esses sao os numeros do vetor:\n");

for(i = 0; i < 10; i++){soma = soma + vetoru[i];printf("%d\n",vetoru[i]);}printf("\nMedia dos valores do vetor: %.2f\n", (float)soma / 10);

for(i = 0; i < 10; i++) if(vetoru[i] > maiorv) maiorv = vetoru[i];printf("\nMaior valor encontrado no vetor: %d\n", maiorv);

Page 10: Trabalho Em C

menorv = maiorv;

for(i = 0; i < 10; i++) if(vetoru[i] < menorv) menorv = vetoru[i];printf("\nMenor valor encontrado no vetor: %d\n\n", menorv);

system("pause");return 0;}

12. Vamos supor que várias pedras do jogo de xadrez estão no tabuleiro. Para facilitar a indicação das peças, vamos convencionar:1 – peões 3 – torres 5 – reis 0 – ausência de peças2 – cavalos 4 – bispos 6 – rainhas

O tabuleiro é o seguinte:

1 3 0 5 4 0 2 11 0 1 0 0 1 0 00 0 0 0 1 0 6 01 0 0 1 1 0 0 10 1 0 4 0 0 1 00 0 3 1 0 0 1 11 0 6 6 0 0 1 01 0 5 0 1 1 0 6

a) Construa um programa que determine a soma total entre peões ou bispos e a quantidade de posições com ausência de peças;

b) O programa determina também qual a quantidade de cada tipo de peça no tabuleiro.

#include <stdio.h>#include <conio.h>void main(){ int tabuleiro[8][8] = { {1,3,0,5,4,0,2,1}, {1,0,1,0,0,1,0,0}, {0,0,0,0,1,0,6,0}, {1,0,0,1,1,0,0,1}, {0,1,0,4,0,0,1,0}, {0,0,3,1,0,0,1,1}, {1,0,6,6,0,0,1,0}, {1,0,5,0,1,1,0,6} }; int i,j;

Page 11: Trabalho Em C

int branco=0, peao=0, cavalo=0, torre=0, bispo=0, rei=0, rainha=0; printf("\tApresentação do tabuleiro\n"); for (i=0;i<8;i++){ for (j=0;j<8;j++){ printf("%2.0d",tabuleiro[i][j]); } printf("\n"); }for (i=0;i<8;i++){ for (j=0;j<8;j++){ switch (tabuleiro[i][j]){ case 0: branco++; break; case 1: peao++; break; case 2: cavalo++; break; case 3: torre++; break; case 4: bispo++; break; case 5: rei++; break; case 6: rainha++; break; } } } printf("\n"); printf("Soma de Peoes ou bispos e brancos =%d\n",(peao + bispo + branco)); printf("Peoes =%d, cavalos=%d, torres=%d, bispos=%d, reis=%d, rainhas=%d, branco=%d",peao, cavalo, torre, bispo, rei, rainha, branco);