Форум: Форум C++Разное
Новые темы: 00
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вычислить значение функции в цикле по заранее заданной формуле

Сообщения:  [1-10]   [11-14] 

 
 автор: Cena   (16.11.2011 в 22:57)   письмо автору
 
   для: cheops   (16.11.2011 в 22:49)
 

Спасибо Вам!

  Ответить  
 
 автор: cheops   (16.11.2011 в 22:49)   письмо автору
 
   для: Cena   (16.11.2011 в 22:17)
 

У вас переменная k имеет тип double, а операцию взятия остатка % можно использовать только совместно с переменными типа int.

  Ответить  
 
 автор: Cena   (16.11.2011 в 22:17)   письмо автору
 
   для: cheops   (16.11.2011 в 22:12)
 

#include <iostream>
#include <math.h>
#include <cmath>
using namespace std;
int main()
{
double x,xn,xk,dx,a,z,max,min,k;

// Ввод параметров
cout << "xn = ";
cin >> xn;
cout << "xk = ";
cin >> xk;
cout << "dx = ";
cin >> dx;
cout << "a = ";
cin >> a;

for(x = xn; x <= xk; x += dx)
{if(k%4==2)
z = pow(tan(a - x)/(4.35 + sin(a + x)), double(1/3));
cout << "x = " << x << "\t z = " << z << endl;
}max=fabs(z);
min=fabs(z);
if (fabs(z)>max) max=fabs(z);
if (fabs(z)<max) min=fabs(z);
cout<<"max="<<max<<"\t min="<<min<<"\n";
cout<<"R="<<max-min<<"\n";
system("PAUSE");
return 0;
}
а как-то так можно сделать? но у меня выдает ошибку(20 C:\Dev-Cpp\Безымянный14568.cpp invalid operands of types `double' and `int' to binary `operator%' )

  Ответить  
 
 автор: cheops   (16.11.2011 в 22:12)   письмо автору
 
   для: Cena   (16.11.2011 в 21:58)
 

1. А какое значение z должно принимать (да у меня тоже везде единицы - это неправильно)?
2. x += 4 ничего не даст, так как по условию задачи вы сами задаете шаг и он равен 0.2, поэтому циклы нужно пропускать внутри for. Да и не даст это ничего на значение z это не виляет, это влияет на x.

  Ответить  
 
 автор: Cena   (16.11.2011 в 21:58)   письмо автору
 
   для: cheops   (12.11.2011 в 22:28)
 

Здраствуйте, подскажите пожалуйста, в преведенной выше программе, у меня должен осуществиться вывод каждой пары x и z, у меня выводит x, но z почемуто остается неизменным, тоесть
x=1.5; z=1;
x=2.5; z=1;
x=3.5; z=1;
x=4.5; z=1;
может быть, в цикле нужно указать не i++, а 4+=i?

  Ответить  
 
 автор: cheops   (12.11.2011 в 22:28)   письмо автору
 
   для: Cena   (12.11.2011 в 19:54)
 

1. Вместо abc() следует писать abs().
2. Кроме того, после if (abc(z)<max) min=abc(z); стоит лишняя закрывающая фигурная скобка.

  Ответить  
 
 автор: Cena   (12.11.2011 в 19:54)   письмо автору
 
   для: cheops   (12.11.2011 в 18:38)
 

Понятно спасибо, но все равно выбивает ошибку(( где-то здесь
{max=abc(z);
min=abc(z);
if (abc(z)>max) max=abc(z);
if (abc(z)<max) min=abc(z);
}
cout<<"max="<<max<<"\t min="<<min<<"\n";
cout<<"R="<<max-min<<"\n";
system("PAUSE");
return 0;
}
и вібивает ошибки:
C:\Dev-Cpp\dev4.cpp In function `int main()':
24 C:\Dev-Cpp\dev4.cpp `abc' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
33 C:\Dev-Cpp\dev4.cpp expected `}' at end of input
Я не понимаю, где же я их допустил...(

  Ответить  
 
 автор: cheops   (12.11.2011 в 18:38)   письмо автору
 
   для: Cena   (12.11.2011 в 17:36)
 

Модуль в C++ не обеспечивается при помощи вертикальных линий - это совсем другой оператор, ответственный за битовое ИЛИ. Для модуля числа имеется специальная функция abs(x).

  Ответить  
 
 автор: Cena   (12.11.2011 в 17:36)   письмо автору
 
   для: cheops   (12.11.2011 в 14:47)
 

Подскажите пожалуйста, где у меня могут быть ошибки, когда я считал min и max значение среди модуля z и разницы max и min?
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
double x,xn,xk,dx,a,z,max,min,;
int i=0;
cout << "xn = ";
cin >> xn;
cout << "xk = ";
cin >> xk;
cout << "dx = ";
cin >> dx;
cout << "a = ";
cin >> a;
for(x = xn, i = 0; x <= xk; x += dx, i++)
{if(i > 4) i = 0;
if(i == 0)
{
z = pow(tan(a - x)/(4.35 + sin(a + x)), double(1/3));
cout << "x = " << x << " z = " << z << endl;
}
{max=|z|;
min=|z|;
if (|z|>max) max=|z|;
if (|z|<max) min=|z|;
}
cout<<"max="<<max<<"\t min="<<min<<"\n";
cout<<"R="<<max-min<<"\n";
system("PAUSE");
return 0;
}

  Ответить  
 
 автор: cheops   (12.11.2011 в 14:47)   письмо автору
 
   для: Cena   (12.11.2011 в 13:51)
 

Можно поступить следующим образом
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
  // Объявление переменных
  double x, xn, xk, dx, a, z;
  int count = 0;
  // Ввод параметров
  cout << "Введите xn = ";
  cin >> xn;
  cout << "Введите xk = ";
  cin >> xk;
  cout << "Введите dx = ";
  cin >> dx;
  cout << "Введите a = ";
  cin >> a;
  // Вычисление значений функции
  for(x = xn, count = 0; x <= xk; x += dx, count++)
  {
     if(count > 4) count = 0;
     if(count == 0)
     {
       z = pow(tan(a - x)/(4.35 + sin(a + x)), double(1/3));
       cout << "x = " << x << " z = " << z << endl;
     }
  }
   // Остановка перед закрытием окна
  system("PAUSE");
  // Передает операционной системе состояние 0 - все в порядке,
  // штатное завершение
  return 0;
}

  Ответить  

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования