Skip to content

Commit

Permalink
Talvez eu seja estúpido! Mas o tempo é curto demais. Entregarei o tra…
Browse files Browse the repository at this point in the history
…balho incompleto. é isso aqui mesmo só
  • Loading branch information
riverm4n committed Apr 12, 2023
1 parent b9f6789 commit 9c4fa81
Showing 1 changed file with 70 additions and 7 deletions.
77 changes: 70 additions & 7 deletions TP3.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <limits.h>
#include <float.h>

double retorna_resultado_eq(double massa, double luz){
double energia = massa * pow(luz, 2); // Função pow pertencente a biblioteca math.h
Expand All @@ -19,6 +22,71 @@ int retorna_massa_inteiro(double energia, double luz){
return massa;
}

int retorna_massa_inteiro_energia_inteiro(int energia, double luz){
int massa = (int) energia / pow(luz, 2);

return massa;
}

long int retorna_massa_longint_energia_inteiro(int energia, double luz){
long int massa = (long int) energia/pow(luz, 2);

return massa;
}

long int retorna_massa_longint_energia_longint(long int energia, double luz){
long int massa = (long int) energia/pow(luz, 2);

return massa;
}

float retorna_massa_float_energia_longint(long int energia, double luz){
float massa = (float) energia/pow(luz, 2);

return massa;
}

float retorna_massa_float_energia_float(float energia, double luz){
float massa = (float) energia/pow(luz, 2);

return massa;
}

double retorna_massa_double_energia_float(float energia, double luz){
double massa = (double) energia/pow(luz, 2);

return massa;
}

double retorna_massa_double_energia_double(double energia, double luz){
double massa = energia/pow(luz, 2);

return massa;
}

int execucao_atividade(double energia, double massa, double luz){
printf("Esta é a execução do Trabalho Prático 3.\n Questão 1: Qual a massa associada à energia máxima representável pelos seguintes tipos:");
printf("\n \t\t a) int Energia, int massa");
printf("\n \t\t\t Valor da massa: %a", retorna_massa_inteiro_energia_inteiro(INT_MAX, luz));

printf("\n\n \t\t b) int Energia, long int massa");
printf("\n \t\t\t Valor da massa: %a", retorna_massa_longint_energia_inteiro(INT_MAX, luz));

printf("\n\n \t\t c) long int Energia, long int massa");
printf("\n \t\t\t Valor da massa: %a", retorna_massa_longint_energia_longint(LONG_MAX, luz));

printf("\n\n \t\t d) long int Energia, float massa");
printf("\n \t\t\t Valor da massa: %a", retorna_massa_float_energia_longint(LONG_MAX, luz));

printf("\n\n \t\t e) float Energia, float massa");
printf("\n \t\t\t Valor da massa: %a", retorna_massa_float_energia_float(FLT_MAX, luz));

printf("\n\n \t\t f) double Energia, double massa");
printf("\n \t\t\t Valor da massa: %a", retorna_massa_double_energia_float(DBL_MAX, luz));

return 0;
}

int main(){
/* Esta atividade prática tem como objetivo explorar os limites de representação dos tipos int, long int, float e double da linguagem C.
Para tanto, resolva o seguinte problema:
Expand All @@ -33,14 +101,9 @@ int main(){

luz = 299792458; // Este é o valor conhecido para a constante da velocidade da luz, em metros por segund (m/s)

// No padrão IEE754, é dito que quando usamos 64 bits, temos 1 bit pro sinal, 11 para o expoente e 52 para a mantissa,
// desta forma, o maior valor que uma variável double (que possui 64 bits) pode ter é a notada abaixo (confesso que para essa informação, precisei googlar, assim como o valor da constante da velocidade da luz)

energia = 1.7976931348623157e+308;

int massa_como_int = retorna_massa_inteiro(energia, luz);
energia = DBL_MAX;

printf("%d", massa_como_int);
execucao_atividade(energia, massa, luz);

return 0;
}

0 comments on commit 9c4fa81

Please sign in to comment.