Universidade Federal Rural do Rio de Janeiro Primeiro Trabalho de Avaliação
Por: Sextoeduardo Luiz • 7/9/2022 • Trabalho acadêmico • 1.519 Palavras (7 Páginas) • 165 Visualizações
[pic 1]
Universidade Federal Rural do Rio de Janeiro
Primeiro Trabalho de Avaliação
[pic 2]
SEROPÉDICA,
2021.
Questão 1
Código original:
#include <stdio.h>
#define MAX_VAL 65
int f(int t);
int main(void){
char plot[MAX_VAL + 2];
int i, t, funval;
for (i = 0; i <= MAX_VAL; i += 5)
printf("%5d", i);
printf("\n");
for (i = 0; i <= MAX_VAL; i += 5)
printf(" |");
printf("\n");
for (i = 0; i <= MAX_VAL + 1; ++i)
plot[i] = ' ';
for (t = 0; t <= 10; ++t) {
funval = f(t);
plot[funval] = '*';
plot[funval + 1] = '\0';
printf("t=%2d%s\n", t, plot);
plot[funval] = ' ';
plot[funval + 1] = ' ';
}
return (0);
}
/*
* f(t) = t^2 - 4t + 5
*/
int f (int t) {
return (t * t - 4 * t + 5);
}
Código adaptado para a função: f(t) = t² - 6t - 1
#include <stdio.h>
#define MAX_VAL 45
int f(int t);
int main(void){
char plot[MAX_VAL + 2];
int i, t, funval;
for (i = -10; i <= MAX_VAL; i += 5)
printf("%5d", i);
printf("\n");
for (i = -10; i <= MAX_VAL; i += 5)
printf(" |");
printf("\n");
for (i = -10; i <= MAX_VAL + 1; ++i)
plot[i + 10] = ' ';
for (t = 0; t <= 10; ++t) {
funval = f(t);
plot[funval + 10] = '*';
plot[funval + 11] = '\0';
printf("t=%2d%s\n", t, plot);
plot[funval+10] = ' ';
plot[funval + 11] = ' ';
}
return (0);
}
/*
* f(t) = t² - 6t - 1
*/
int f (int t) {
return (t * t - 6 * t - 1);
}
Explicação: O primeiro for vai imprimir os valores de 0 até 65 (MAX_VAL) fazendo o intervalo de 5 em 5. O segundo for irá realizar o mesmo procedimento, porém, ele vai por barras para dar o aspecto de gráfico. O terceiro for coloca um espaço em branco em todos os espaços até o valor de 65 (MAX_VAL). O último for acrescenta as linhas do gráfico (eixo x), onde funval recebe o resultado da função f com o valor do índice do for. O resultado dessa função irá adicionar o caractere “*” no lugar do resultado da função.
A função que retorna o resultado da função t² - 4t + 5.
Esse programa vai imprimir o resultado da função quando x e y forem valores inteiro e isso só irar ocorrer dentro do intervalo de 0 até 10. Para desenhar a função t² - 6t - 1, também entre 0 e 10, será preciso somente alterar a função e os valores do gráfico, uma vez que essa função em questão tem valores negativos e não precisa ir até 65. Será necessário adaptar o array plot, pois caso não seja feita essa mudança o programa vai tentar marcar um índice negativo no array e além disso é necessário acrescentar 10 no array plot, já que o gráfico vai começar em -10.
Questão 2
Código:
#include <stdio.h>
#include <locale.h> //Biblioteca do C para aceitar a acentuação
//a função usa a abscissa recebida pelo usuário para substituí-la pelo x e gerar a altura do retângulo
float Altura (float ab){
return (ab*ab*ab -3*ab +1);
}
//a função calcula a área do retangulo e retona o valor dessa multiplicação
float Area(float base,float altura){
return (base * altura);
}
int main (){
setlocale(LC_ALL, "Portuguese");//habilitando a acentuação no programa
float base;
float ab;//essa é a abscissa
float h;//é a altura;
float area;
printf("\nO Programa calcula a área do retângulo de acordo com a função dada.\n");
printf("\nNote que o mesmo está localizado para o português, logo, use a vírgula como separador dos números decimais\n \nEX: 1,5 e 3,4\n");
printf("\nInsira o valor da base: ");
scanf("%f", &base);
printf("\nInsira o valor da abscissa: ");
scanf("%f", &ab);
h = Altura(ab);
area = Area(base, h);
printf("\nA área do retângulo é %.2f", area);
...