Вы находитесь на странице: 1из 6

Questo 1

Escreva um programa que pede ao usurio que digite um nmero inteiro, em seguida,
calcula e imprime o nmero de dgitos.

#include<stdio.h>

void main()
{
int i, dig;
printf("digite um numero inteiro\n\n");
scanf("%d", &i);
dig = 0;
do
{
i = i /10;
dig++;
} while(i != 0);

printf("numero de digitos = %d\n\n", dig);
system("pause");

}

Questo 2
Modificar o exemplo anterior para calcular e mostrar o nmero de bits necessrios para
armazenar o nmero.

#include<stdio.h>

void main()
{
int i, dig;
printf("digite um numero inteiro\n\n");
scanf("%d", &i);
dig = 0;
do
{
i = i /2;
dig++;
} while(i != 0);

printf("numero de bits = %d\n\n", dig);
system("pause");

}

Questo 3
Reescrever o programa para a converso de Fahrenheit para Celsius graus, para criar um
arquivo "convert.dat" com uma tabela com duas colunas de valores correspondentes.

#include "stdio.h"
void main()
{
double f_deg ,c_deg;
int i;
FILE * f;
f = fopen("convert.dat", "w+");
for(i=-100; i<100; i++)
{
f_deg = i;
c_deg=(f_deg-32.0)*(5.0/9.0);
printf("Fahrenheit degrees:\t%6.2f\tCelsius
degrees:\t%6.2f\n",f_deg,c_deg);
fprintf(f,"Fahrenheit degrees:\t%6.2f\nCelsius
degrees:\t%6.2f\n",f_deg,c_deg);
}
fclose(f);

system("pause");
} #include "stdio.h"
void main()
{
double f_deg ,c_deg;
int i;
FILE * f;
f = fopen("convert.dat", "w+");
for(i=-100; i<100; i++)
{
f_deg = i;
c_deg=(f_deg-32.0)*(5.0/9.0);
printf("Fahrenheit degrees:\t%6.2f\tCelsius
degrees:\t%6.2f\n",f_deg,c_deg);
fprintf(f,"Fahrenheit degrees:\t%6.2f\nCelsius
degrees:\t%6.2f\n",f_deg,c_deg);
}
fclose(f);

system("pause");
}
Questo 4
Explique o que est errado com o programa abaixo (por que bloquear o sistema?).

#include <stdio.h>
main()
{
//como o tipo de n short, ele possui 16 bits
// ento se intervalo de valores
// -32768 a 32767
short n;
long sum=0;
for(n=0;n<100000;n++)
sum+=n;
printf("sum=%i",sum);
system("pause");
}

Problema 5
Faa um programa que se aproxima do valor do integral
}
=
b
a
dx x I ) exp(
2

usando a regra do composto Simpson
}

=

+
|
.
|

\
|
+
+ ~ =
b
a
N
i
i
i i
i
x f
x x
f x f
h
dx x f I
1
1
1
) (
2
4 ) (
6
) (
onde

e N um arbitrrio (grande) nmero inteiro.

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

main()

{
float a,b,I,f1,f2,f3,f4,N,soma,h,x0,x1;
int i;

printf("qual o limite superior da integral:\t");
scanf("%f",&b);
printf("qual o limite inferior da integral\t");
scanf("%f",&a);
printf("qual o numero de interacoes\t");
scanf("%f",&N);

soma=0;
h=(b-a)/N;
for(i=1;i<=N;i++)
{
x0=a+(i-1)*h;
x1=a+(i*h);

f1=exp(-(x0*x0));
f2=((x0+x1)/2)*((x0+x1)/2);
f3=exp(-(f2));
f4=exp(-(x1*x1));

soma=soma+(f1+(4*f3)+f4);
}

I=soma*(h/6);

printf("valor da integral:\t%6.4f\n\n",I);
system("pause");
}

Problema 06

Escreva um programa que imprime a lista de todos os nmeros divisveis por trs, no
intervalo 10 <n <100. Use laos for, while e fazer o tempo para realizar a tarefa.

#include<stdio.h>
#include<stdlib.h>
ih a x
N
a b
h
i
+ =

= ,
#include<math.h>

main()
{
int x, i;
for (i=10; i<=100; i++)
{
x = i%3;
if(x==0)
{
printf("%d\n",i);

}

}
system("pause");
}

Utilizando lao while:

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

main()
{
int x, i=10;

while(i<=100)
{
x = i%3;
if(x==0)
printf("%d\n",i);
i++;

}
system("pause");
}

Utilizando lao do-while:


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

void main()
{
int x, i=10;

do{
x=i%3;
if(x==0)
printf("%d\n",i);
i++;
}while(i<=100);

system("pause");

}

Questo 7

Escreva um programa que pede para o usurio digitar um nmero inteiro n, ento
escreve sobre o texto "caso 1" tela se n = 17 ou n = 29, "case 2" texto se n = 11, n = 45
ou n = 123, e o texto "case 3" para todos os outros nmeros. Use a instruo switch e if
... else if ... else construir para realizar a tarefa.

Usando switch:


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

void main()
{

int a;

printf("Entre com um numero: \n");
scanf("%d", &a);

switch(a)
{
case 17:
case 29:
printf("case 1");
break;

case 11:
case 45:
case 123:
printf("case 2");
break;

default:
printf("case 3");
break;
}


system("pause");
}

Usando if-else\\


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

void main()
{

int a;

printf("Entre com um numero: \n");
scanf("%d", &a);

if(a == 17 || a == 29)
{
printf("Case 1");
}
else if(a == 11 || a == 45 || a == 123)
{
printf("Case 2");
}
else printf("Case 3");

system("pause");
}

Questo 8

Escreva um programa que imprima os nmeros inteiros na forma binria e hexadecimal.

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

void main()
{

int a, i, aCopy;
char b[] = "00000000000000000000000000000000";

printf("Entre com um numero\n");
scanf("%d", &a);

printf("\n\n");
aCopy = a;

for(i=31; i>0; i--)
{
if(aCopy%2 == 1)
b[i] = '1';
aCopy=aCopy/2;
if(aCopy == 0)
break;
}

printf("em binario = %s\n", b);
printf("em hexadecimal = 0x%X\n", a);

system("pause");
}

Вам также может понравиться