Форум программистов, компьютерный форум CyberForum.ru

Доработайте пожалуйста! - C++

Восстановить пароль Регистрация
 
 
Drake93
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 21
14.09.2011, 23:08     Доработайте пожалуйста! #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h>
#include<conio.h>
main()
{
float xn,xk,dx,k=0,x,a,b,c;
float f;
printf("vvedite: nachalo funkcii,konec funkcii,shag,a,b,c\n");
scanf("%f%f%f%f%f%f",&xn,&xk,&dx,&a,&b,&c);
printf("x       f\n");
printf("\n");
for(x=xn;x<=xk;x+=dx)
{
if (x<1 && c!=0)
f=((a*x*x)+(b/c));
else
if (x>15 && c==0)
f=(x-a)/((x-c)*(x-c));
else
f=(x*x)/(c*c);
if (!(int(a)|int(b)) & (int(b)|int(c)))
{
printf("%4.1f    = %4.2f    \n",x,f);
}
else {printf("%4.1f    = %2d\n",x,int(f));}
}
getch();
}
Продолжение задачи:
Функция F должна принимать действительное значение, если выражение (Aц И Bц) МОД2 Cц не равно нулю, и целое значение в противном случае . Через Aц , Bц, и Сц обозначены целые части значений a,b,c, операции И и МОД2 (сложение по модулю 2) - поразрядные. Значения a,b,c, Хнач ,Xкон, dx ввести с клавиатуры.

Вопрос в именно в выделенной части задания. Как реализовать это? в коде,видимо, есть ошибки.

А вот начало задачи:
Миниатюры
Доработайте пожалуйста!  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2011, 23:08     Доработайте пожалуйста!
Посмотрите здесь:

C++ помогите пожалуйста !!
Решите пожалуйста. C++
C++ Решите пожалуйста
Доработайте пожайлуста!!! C++
C++ Ребят доработайте код программы (программа сортировки чисел методом Шелла)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
14.09.2011, 23:31     Доработайте пожалуйста! #2
вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include"stdAfx.h"
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
void main()
{
double left,right,dx,x,a,b,c,F;
cout<<"put in left and right border and tabulation step"<<endl;
cin>>left>>right>>dx;
cout<<"put in a,b,c"<<endl;
cin>>a>>b>>c;
cout<<"x"<<'\t'<<"F(x)"<<endl;
for(x=left;x<=right;x+=dx)
    if(x<1&&c!=0){F=a*x*x+b/c;cout<<x<<'\t'<<F<<endl;continue;}else
    if(x>15&&c==0){F=(x-a)/pow(x-c,2.0);cout<<x<<'\t'<<F<<endl;continue;}else
    {F=(x*x)/(c*c);cout<<x<<'\t'<<F<<endl;continue;}
    getch();
}
надеюсь тебе в етом виде надо
snajper_ro
 Аватар для snajper_ro
51 / 51 / 16
Регистрация: 14.09.2011
Сообщений: 368
14.09.2011, 23:33     Доработайте пожалуйста! #3
KING1994, да четка отписал)
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
14.09.2011, 23:36     Доработайте пожалуйста! #4
а щас еще конец доделаю)недочитал)

Добавлено через 2 минуты
ток вырадения (Aц И Bц) МОД2 Cц роздупли
Drake93
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 21
14.09.2011, 23:44  [ТС]     Доработайте пожалуйста! #5
Цитата Сообщение от KING1994 Посмотреть сообщение
надеюсь тебе в етом виде надо
извини за моё нубство)) я не шарю вообще что ты написал, мы такого даже близко не проходили)) надо использовать примерно тоже самое, что и в моём коде.
snajper_ro
 Аватар для snajper_ro
51 / 51 / 16
Регистрация: 14.09.2011
Сообщений: 368
14.09.2011, 23:48     Доработайте пожалуйста! #6
это похоже на "качели" ,там поразряду необходимо последняя строка)
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
14.09.2011, 23:54     Доработайте пожалуйста! #7
Надеюсь ты ето мел ввиду:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include"stdAfx.h"
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
bool rezult(double a,double b,double c)
{
    if(abs((int)a)+c&&abs((int)b+c))
        return true;else return false;
}
void main()
{
double left,right,dx,x,a,b,c,F;
cout<<"put in left and right border and tabulation step"<<endl;
cin>>left>>right>>dx;
cout<<"put in a,b,c"<<endl;
cin>>a>>b>>c;
cout<<"x"<<'\t'<<"F(x)"<<endl;
  for(x=left;x<=right;x+=dx)
        if(x<1&&c!=0)
    {
     F=a*x*x+b/c;
     if(rezult(a,b,c)==true)F=(double)F;else
     F=(int)F;
     cout<<x<<'\t'<<F<<endl;continue;
    }   else
        if(x>15&&c==0)
    {
     F=(x-a)/pow(x-c,2.0);
     if(rezult(a,b,c)==true)F=(double)F;else
     F=(int)F;
     cout<<x<<'\t'<<F<<endl;continue;
    }   else
    {
     F=(x*x)/(c*c);
     if(rezult(a,b,c)==true)F=(double)F;else
     F=(int)F;
     cout<<x<<'\t'<<F<<endl;continue;
    }
    getch();
}
Добавлено через 1 минуту
Ну ща посмотрю твой код

Добавлено через 3 минуты
и кстати то што вы учите ето С а не С++ в С++ ввод/вывод ето cin>>/cout<<
Drake93
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 21
14.09.2011, 23:58  [ТС]     Доработайте пожалуйста! #8
Цитата Сообщение от KING1994 Посмотреть сообщение
Ну ща посмотрю твой код
Посмотри плиз)
Спасибо конечно за труды, но нужно не в таком виде ... для меня это как иероглифы))

мы только начали изучать С++ ,работаем в Dev C++

Добавлено через 4 минуты
Цитата Сообщение от KING1994 Посмотреть сообщение
#include"stdAfx.h"
вот нужно без этой библиотеки составить код наверное
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
15.09.2011, 00:00     Доработайте пожалуйста! #9
у меня компилятор Студия 2010 там ета библиотека необходимая.На других компиляторах ее ненадо писать
snajper_ro
 Аватар для snajper_ro
51 / 51 / 16
Регистрация: 14.09.2011
Сообщений: 368
15.09.2011, 00:06     Доработайте пожалуйста! #10
так в чем вопрос
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
15.09.2011, 00:06     Доработайте пожалуйста! #11
все в твоем коде понимаю кроме строки
C++
1
if (!(int(a)|int(b)) & (int(b)|int(c)))
Drake93
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 21
15.09.2011, 00:10  [ТС]     Доработайте пожалуйста! #12
Цитата Сообщение от snajper_ro Посмотреть сообщение
так в чем вопрос
В конце моего кода есть ошибки, я не могу разобраться как выполнить:

Функция F должна принимать действительное значение, если выражение (Aц И Bц) МОД2 Cц не равно нулю, и целое значение в противном случае . Через Aц , Bц, и Сц обозначены целые части значений a,b,c, операции И и МОД2 (сложение по модулю 2) - поразрядные.
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
15.09.2011, 00:16     Доработайте пожалуйста! #13
Нашел как я сразу не заметил у тебя функция main() не имеет типу.Пропишы int main()

Добавлено через 2 минуты
хотя лучше void main() функция не возвращает никакого значения для int main() требуетса
C++
1
return 0;
snajper_ro
 Аватар для snajper_ro
51 / 51 / 16
Регистрация: 14.09.2011
Сообщений: 368
15.09.2011, 00:19     Доработайте пожалуйста! #14
Цитата Сообщение от snajper_ro Посмотреть сообщение
так в чем вопрос
не совсем она просто у тебя с начала создания проекта,создай пустой проект и вот тебе фокус

Добавлено через 2 минуты
Цитата Сообщение от KING1994 Посмотреть сообщение
все в твоем коде понимаю кроме строки
C++
1
if (!(int(a)|int(b)) & (int(b)|int(c)))
это побитовое или
Drake93
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 21
15.09.2011, 00:23  [ТС]     Доработайте пожалуйста! #15
Цитата Сообщение от KING1994 Посмотреть сообщение
Нашел как я сразу не заметил у тебя функция main() не имеет типу.Пропишы int main()

Добавлено через 2 минуты
хотя лучше void main() функция не возвращает никакого значения для int main() требуетса
C++
1
return 0;
ну всё прекрасно работает и без этого, только вот считает не то, что нужно, а нужно: (Aц И Bц) МОД2 Cц не равно нулю, и целое значение в противном случае . Через Aц , Bц, и Сц обозначены целые части значений a,b,c, операции И и МОД2 (сложение по модулю 2) - поразрядные.

Добавлено через 1 минуту
Цитата Сообщение от snajper_ro Посмотреть сообщение
Сообщение от KING1994
все в твоем коде понимаю кроме строки
Код C++
1
if (!(int(a)|int(b)) & (int(b)|int(c)))
это побитовое или
да, это логические операции
KING1994
-68 / 6 / 0
Регистрация: 18.07.2011
Сообщений: 77
15.09.2011, 00:37     Доработайте пожалуйста! #16
штобы взять целую часть от числа перед ним нужно дописать (int)
Drake93
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 21
15.09.2011, 00:40  [ТС]     Доработайте пожалуйста! #17
Цитата Сообщение от KING1994 Посмотреть сообщение
штобы взять целую часть от числа перед ним нужно дописать (int)
спс что объяснил, а как реализовать в моём коде без твоих наворотов это -(Aц И Bц) МОД2 Cц не равно нулю, и целое значение в противном случае ?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,397
15.09.2011, 00:45     Доработайте пожалуйста! #18
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <conio.h>
#include <stdio.h>
#include <math.h>
 
float F(float x, float a, float b, float c)
{
      float f;
      if (x < 1 && c != 0) /* && означает и */
          f = a * pow(x, 2) + b/c; /* pow - возведение в степень */
          else
          {
              if (x > 15 && c == 0)
                  f = (x-a) / pow(x-c, 2);
              else
              f = pow(x/c, 2);
          }
      return f;
}
 
int main()
{
    float x1, x2, dx, a, b, c;
    printf("Enter start x: ");
    scanf("%f", &x1);
    printf("Enter final x: ");
    scanf("%f", &x2);
    printf("Enter step: ");
    scanf("%f", &dx);
    printf("Enter a: ");
    scanf("%f", &a);
    printf("Enter b: ");
    scanf("%f", &b);
    printf("Enter c: ");
    scanf("%f", &c);
    for (float x = x1 ; x <= x2; x += dx)
    {
        printf("%.2f  %.4f\n", x, F(x, a, b, c));
    }
    getch(); /* пауза */
    return 0;
}
Добавлено через 3 минуты
Цитата Сообщение от KING1994 Посмотреть сообщение
хотя лучше void main() функция не возвращает никакого значения для int main() требуетса
C++
1
return 0;
по стандарту принято писать
Код
int main()
а
Код
return 0;
пишется для грамотного завершения работы программы
Drake93
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 21
15.09.2011, 00:50  [ТС]     Доработайте пожалуйста! #19
Цитата Сообщение от MrGluck Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <conio.h>
#include <stdio.h>
#include <math.h>
 
float F(float x, float a, float b, float c)
{
      float f;
      if (x < 1 && c != 0) /* && означает и */
          f = a * pow(x, 2) + b/c; /* pow - возведение в степень */
          else
          {
              if (x > 15 && c == 0)
                  f = (x-a) / pow(x-c, 2);
              else
              f = pow(x/c, 2);
          }
      return f;
}
 
int main()
{
    float x1, x2, dx, a, b, c;
    printf("Enter start x: ");
    scanf("%f", &x1);
    printf("Enter final x: ");
    scanf("%f", &x2);
    printf("Enter step: ");
    scanf("%f", &dx);
    printf("Enter a: ");
    scanf("%f", &a);
    printf("Enter b: ");
    scanf("%f", &b);
    printf("Enter c: ");
    scanf("%f", &c);
    for (float x = x1 ; x <= x2; x += dx)
    {
        printf("%.2f  %.4f\n", x, F(x, a, b, c));
    }
    getch(); /* пауза */
    return 0;
}
Добавлено через 3 минуты


по стандарту принято писать
Код
int main()
а
Код
return 0;
пишется для грамотного завершения работы программы
Огромное спасибо! а то через 6 часов сдавать уже))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2011, 01:00     Доработайте пожалуйста!
Еще ссылки по теме:

C++ немогу доработать с вводам документа кто сможет доработайте
Подскажите пожалуйста C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,397
15.09.2011, 01:00     Доработайте пожалуйста! #20
Цитата Сообщение от Drake93 Посмотреть сообщение
Огромное спасибо! а то через 6 часов сдавать уже))

Не по теме:

Удачи. Первые шаги у вас хорошие.

Yandex
Объявления
15.09.2011, 01:00     Доработайте пожалуйста!
Ответ Создать тему
Опции темы

Текущее время: 15:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru