Ir ao conteúdo

Posts recomendados

Postado

Utilizando a linguagem C e o sistema operacional GNU/Linux, desenvolva um
programa que calcule as raízes, se existirem, de uma equação do segundo grau, sendo
que as constantes envolvidas no cálculo deverão ser fornecidas pelo usuário via
teclado. Para a resolução da equação, deve-se utilizar três processos além do processo
original. O primeiro processo será responsável por calcular o valor do delta e os demais
deverão calcular as raízes da equação. Destaca-se que o envio do delta, para os
processos que realizarão os cálculos das raízes, deverá ocorrer por Pipes.

Segue abaixo o código:


#include
#include

int main()
{

float a, //declarando os coeficientes da equação de segundo grau
b,
c,
delta,
y,
x;

int quatro=4,
dois=2;

printf("Digite os coeficientes da equação de segundo grau que daremos as raízes: ");
scanf ("%f %f %f",&a,&b,&c);


//valor do dricriminante

delta = ((b)*(b) - (quatro)*(a)*(c));

if (delta>=0)
{

x=((-b)-(sqrt(delta)))/((dois)*(a));

y=((-b)+(sqrt(delta)))/((dois)*(a));

printf("O valor das raízes são %.2f e %.2f", x,y);

}

else

if(delta<0)

{
printf("Não há como encontrar raízes, pois o valor do discriminate é negativo");
}


}

 

COMO QUE FARIA O PROGRAMA USANDO "PIPES" ESSA É A MINHA DÚVIDA.

  • Amei 1
  • 2 semanas depois...
Postado

#include <stdio.h> #include <stdlib.h> #include <pthread.h> struct arguments { int a, b; }; void* sum (void* void_args) { struct arguments* args = (struct arguments *) void_args; float* result = malloc(sizeof(float)); *result = args->a + args->b; return (void*) result; } int main () { struct arguments args; args.a = 1; args.b = 2; float* result; pthread_t t1; pthread_create(&t1, NULL, sum, &args); pthread_join(t1, (void**) &result); printf("Resultado: %.2f\n", *result); return 0; }

  • Solução
Postado
Em 02/06/2022 às 23:15, paulo luz magalhaes disse:

COMO QUE FARIA O PROGRAMA USANDO "PIPES" ESSA É A MINHA DÚVIDA.

 

Acho que não devia distribuir sua questão em posts diferentes. Fica mais difícil para alguém encontrar uma resposta e se beneficiar da discussão

 

Você vai usar pipe para enviar os dados para os 3 processos. E você já descreveu os processos.

 

Esse não é um exemplo racional para usar processos ou pipes. É uma bobagem. Mas é o que tem pra fazer então...

 

São 4 processos. Obiviamente o seu programa é um processo e vai criar 3 outros.

 

  • (1) Um processo determina os coeficientes da equação, a, b e c na fórmula clássica
  • (2) Um processo recebe esses valores e calcula o delta
  • (3) um processo recebe o delta e os valores de a e c e calcula uma solução
  • (4) um processo idêntico recebe os valores de delta a e c e calcula a outra solução.

Acho que deve usar fork e não threads porque o enunciado só fala em processos e está rodando em Unix ---ah  ok, Linux, Mac, Android, whatever.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...