@qolkov

Программирование разветвляющегося вычислительного процесса?

Есть практ. задание:

5b9d3aacbd934256074011.png

ПРОГРАММИРОВАНИЕ ЛИНЕЙНОГО ВЫЧИСЛИТЕЛЬНОГО ПРОЦЕССА кое как начало получатся, но в разветвляющем не могу понять принцип if и else, а также не знаю как поставить нижний индекс функии. В общем, пикрл:

Знаю для того, кто разбирается в C++ это будет выглядеть забавно, но все же..

#include<stdio.h>
#include<math.h>
int main()
{
double y,x,f(x),f[1](z),f[2](z),f[3](z),z,c;
		y=f(x);
		f(x)=pow(x,4)+2*sin*pow(x,2);
		c=3.2;
		z=cos(c);
		x=(f1(z)*f2(z)*f3(z));
	if (z<0)		
{
		f[1](z)=sin*z+tg*z;
		printf("\nx=%f,y=%f,x,y")
}
else
	if (0<z<8)
{
		f[2](z)=pow(cos,3)*z+3/z;
		printf("\nx=%f,y=%f,x,y");
}
else
	if (z>8)
{
		f[3](z)=pow(z,2)+log*pow(z,2);
		printf("\nx=%f,y=%f,x,y");
}
else
	printf("\n Действительные корни отсутствуют.");
		getchar();	
}
  • Вопрос задан
  • 423 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Так задача то у вас не программу на C/C++ написать, а нарисовать блок-схему.
А если хотите писать на C, то лучше сначала выучить язык.
И, кстати, в задаче ошибка, при z = 0 функция f2(z) уходит в бесконечность.
spoiler
#include <stdio.h>
#include <math.h>

double f(x) {
  double x2 = x * x;
  return x2 * x2 + 2 * sin(x2);
}

double f1(z) {
  return sin(z) + tg(z);
}

double f2(z) {
  double cz = cos(z);
  return cz * cz * cz + 3/z;
}

double f3(z) {
  double z2 = z * z;
  return z2 + log(z);
}

int main() {
  double c = 3.2;
  double z = cos(c);
  double x;
  if (z < 0) {
    x = f1(z);
  } else if (z < 8) {
    x = f2(z);
  } else {
    x = f3(z);
  }
  double result = f(x);
  printf('%f\n', result);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы