Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > циклические процессы


Автор: roob 11.11.2011, 14:12
не знаю в той ли категории создаю тему..вообщем, есть задача,есть не правильный код, и я не знаю,что там не так

Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Х[нач] до Х[кон] с шагом dx.


     ax^2 +b при x<0 и b!=0 (!= это не равно)
F= (х-a)/(x-с) при x>0 и b=0
-    (x/c) в остальных случаях


где a,b,c - действительные числа.
Функция F должна принимать действительное значение, если выражение
(Aц ИЛИ Bц) (Aц ИЛИ Cц) не равно нулю, и целое значение в противном случае . Через Aц , Bц, и Сц обозначены целые части значений a,b,c, операции И, ИЛИ - поразрядные. Значения a,b,c, Х[нач] ,X[кон], dx ввести с клавиатуры.

Код
#pragma argsused
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>
int main()
{
 float b,a,c, dX, F,x,X1,X2   ;
 printf("vvedite X1, X2, dX \n");
 scanf("%f%f%f",&X1,&X2, &dX); //ââîä çíà÷åíèé èíòåðâàëà è øàãà
 printf("vvedite a,b,c \n");
 scanf("%f%f%f",&a,&b,&c); //ââîä ïåðåìåííûõ

 printf("\t x | F \n");

 for(x=X1;x<=X2;x+=dX)
 {
   if ((x<0)&&(b!=0))
   {
     F=(a*x*x+b);
   }
 else
   if ((x>0)&&(b==0))
   {
     F=((x-a)/(x-c));
   }
 else
   F=(x/c);

   if ((((int)a)&((int)b))^(((int)a)&((int)c)))
printf("\t%5.2f | %5.2f\n",x,(int)F);
else
printf("\t%5.2f | %5.3f\n",x,F);}
getch();



        return 0;



Модератор: Не забываем пользоваться кнопочкой "Код"

Автор: bsa 11.11.2011, 14:19
Для начала отформатируй код (см. http://forum.vingrad.ru/forum/topic-269805/kw-faq-coding-style-%D1%81%D1%82%D0%B8%D0%BB%D1%8C-%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F.html)

Автор: newbee 11.11.2011, 14:22
Код

double F(double x){
 return x*x;;}

...

double dx=0.2;
for(double x=-5;x<=5;x+=dx)
 printf("x=%f, y=%f",x,F(x));


Будет тебе экспоненциальная функция на отрезке [-5,5] с шагом 0.2.

Автор: roob 11.11.2011, 14:32
мне ведь надо шаг и отрезок с клавиатуры ввести нужно

Добавлено через 10 минут и 2 секунды
и не указаны ли у меня лишние библиотеки?

Автор: bsa 11.11.2011, 15:46
Цитата(roob @  11.11.2011,  15:32 Найти цитируемый пост)
и не указаны ли у меня лишние библиотеки? 

не библиотеки, а хидеры. iostream ты не используешь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)