Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
puzzler
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 25
1

Программа по уравнению (или не знаю как)

09.10.2010, 16:19. Просмотров 1408. Ответов 24
Метки нет (Все метки)

Нужно написать прогу (или составить код программы в Dev-C++ 4.9.9.2 не знаю как правильно) для табулирования функции: вот она
Название: c333b8c6.jpg
Просмотров: 23

Размер: 3.7 Кб
*) Дано начальное- "AV" и конечное- "LV" значение аргумента (тобишь икса по идее), и число шагов "N" и сам шаг по формуле (ну я так понял) H=(B-A)/N. Найти значиние функции в пунктах AV, AV+H, AV+2*H,..., LV.
Я предрологаю, что все эти значения по идее должен пользователь вводить, хотя не уверен... Ну А и В это я так понимаю из самой функции =).


Вообщем ребята помогите, кто чем сможет. Сам как бы программированием не занимался никогда, а тут так поступил на программирование и сразу на С++, так для меня как китайский + не на родном языке обучение - литературу читаю, но идёт туго, пока много чего не понятно... могу только простые программки писать, а тут для меня супер высший пилотаж. И сроки поджимают. Думал справлюсь, но не тут то было...
вообщем вся надежда на вас.

 Комментарий модератора 
Во избежании потери информации на сторонних ресурсах загружайте изображения на форум через Вложения в Расширенном режиме редактирования сообщений.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2010, 16:19
Ответы с готовыми решениями:

программа виснет, не знаю что не так
Дана квадратная целочисленная матрица. Определить, является ли она магическим...

Программа с использованием windows.h не находит файла. Не знаю почему
Программа не находит файла. Не знаю почему. задача: 1.Считывания перечени...

Структура С++ нужна допомога, не знаю почему программа не работает, пожалуйста
#include "stdafx.h" #include <iostream> #include <stdio.h> #include <string>...

Интересная программа, но не знаю как составить (цикл)
Ребятки, кто в паскале хорошо разбирается, напишите пожалуйста прогу по этой...

Как сделать ограничение на перемещение? Или я не знаю как называется это правильно. (См. внутри)
Если нажимать на кнопки ВПРАВО ВЛЕВО ВВЕРХ ВНИЗ робот Петька перемещается...

24
-comrade-
357 / 358 / 167
Регистрация: 11.06.2010
Сообщений: 703
09.10.2010, 17:15 2
Пробуйте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
int main()
{
    double i,av,al,y,h;
    cout<<"  av="; cin>>av;
    cout<<"  al="; cin>>al;
    cout<<"  h=";  cin>>h;
    cout<<"\n  X    Y";
    cout.precision(3);
    for(i=av;i<=al;i+=h) 
     {
         y=(double)(7*i*i-1.3*i+5)/(11-sqrt(i));
         cout<<"\n  "<<i<<"  "<<y;
     }
    getch();
    return 1;
}
0
puzzler
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 25
10.10.2010, 02:06  [ТС] 3
Спасибо за помощь, вставил в программу, работает всё хорошо вроде =). Только вот я не очень понял, шаг "Н" должен считать пользователь? Или же это тоже в программе надо прописывать?
и ещё нюанс - когда я на практике в классе вписал cout<<, ну точнее скопировал в программу код, то услышал от препода, что таким мы ещё не пользуемся.
Мы прописываем типо таким - printf("... \n"); и scanf("...\n"); чтобы это работало на С. Ну я так понимаю.

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <stdio.h>
#include <math.h>
 
void tablica (double x, double y, double y_max, int l)
{
 
     if (y<y_max)
     { 
                 if (l==0){
     printf("\n%lf \t %lf",x,y);
   }}
 else  if (l==1){
           printf("\n%lf \t kompleksnoe chislo",x);
         }
else if (l==2){
      
           printf("\n%lf \t delenie na nol'",x);
         }
                 
 }
 
 
void ras4et (double x, double h, double c, double y_max)
{
     int i;
     double y;
     for (i=1; i<=20; i++)
     {
         y = (3 + sqrt(1 - pow(x,1.5))) / (4 - pow(x,2));
      if (x == 2 || x == -2){
         tablica (x,y,y_max,2);}
      else if (x > 1){
        tablica (x,y,y_max,1);}
      else if (x < 0){
        tablica (x,y,y_max,1);}
      else {
         tablica (x,y,y_max,0);}
if (i==1){
          x = x + h;
          }
          else{
         x = x + (i-1) * h * c;}
         }
         }
 
 
 
int main () 
{
 
double x, h, c, y_max;
 
printf ("################################################################");
printf ("\n####  Zadajutsja nachalnoe zna4enie argumenta A, verxnij   ###");
printf ("\n####  predel funkcii ym_max, shag H i koefficent shaga C.  ###");
printf ("\n####  Znachenie funkcii vqchisljaetsja v to4kax ##############"); 
printf ("\n####  A,A+H,A+H+C*H, A+H+C*H+C*2*H, poka zna4enie funkcii ####");
printf ("\n####  ne prevqsit verhnij predel ym_max,  ####################");
printf ("\n####  no ne bolshe, 4em v 20 tochkax.  #######################");
printf ("\n##############################################################");
 
printf ("\n Vvedite na4alnoe zna4enie A:");
 scanf ("%lf",&x);
printf ("\n Vvedite maksimalnoe zna4enie funkcii Ym:");
 scanf ("%lf",&y_max);
printf ("\n Vvedite shag priroshenija argumenta H:");
 scanf ("%lf",&h);
printf ("\n Vvedite koefficent prirosta C:");
 scanf ("%lf",&c);
printf("\n     X    \t      Y     \n\n");
 
ras4et (x, h, c, y_max);
 
getch ();
return (0); 
}

это вот я нашел пример табулирования, но задание не моё, а чьёто другое.
тут вот код просто больше намного поэтому я в конфузе небольшом =(
0
fasked
Эксперт С++
4982 / 2561 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
10.10.2010, 04:54 4
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
#include <stdio.h>
#include <math.h>
 
int main()
{
    double i,av,al,y,h;
    
    printf("av = ");
    scanf("%f", &av);
    
    printf("al = ");
    scanf("%f", &al);
    
    printf("h = ");
    scanf("%f", &h);
    
    printf("X\t|\tY\n");
 
    for(i = av;i <= al; i += h) {
         y = (double)(7*i*i - 1.3*i+5) / (11 - sqrt(i));
         printf("%.3f\t|\t%.3f\n", i, y);
    }
    
    return 0;
}
0
puzzler
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 25
10.10.2010, 15:08  [ТС] 5
fasked я вот прокомпилировал в программе (без ошибок), но при вводе данных, без разницы каких, мне программа всё время выдаёт один и тот же бесконечный ответ Х=0.000 У=0.455.
както не понятно ^_^

шаг значит пользователь сам должен считать да?
0
fasked
Эксперт С++
4982 / 2561 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
10.10.2010, 17:25 6
Цитата Сообщение от puzzler Посмотреть сообщение
шаг значит пользователь сам должен считать да?
А не знаю, я просто код переписал под Си. Что он должен делать я даже без понятия
Вы уж простите меня.
0
puzzler
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 25
10.10.2010, 20:03  [ТС] 7
а ну хорошо
благодарность fasked за перевод, но чтото выдаёт один и тот же бесконечный ответ =D

может кто нить на С этот код привести? код написаный -comrade- работает хорошо (хотя я туда потом попробую туда вставить код для шага, думаю должно получиться у меня его напсиать) только он не на С =)))
0
fasked
Эксперт С++
4982 / 2561 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
10.10.2010, 22:43 8
Цитата Сообщение от puzzler Посмотреть сообщение
может кто нить на С этот код привести? код написаный -comrade- работает хорошо
так я же именно это и сделал, непонятно откуда могла возникнуть проблема.
0
puzzler
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 25
11.10.2010, 00:04  [ТС] 9
Цитата Сообщение от fasked Посмотреть сообщение
так я же именно это и сделал, непонятно откуда могла возникнуть проблема.
вот и я не понимаю... вставляю код -comrade-, всё считает нормально, вставляю твой переведённый и без разницы что ввожу, получается Х равен 0.000 и У 0.455 и бесконечно считает...

usernet009 - технический университет
0
Миниатюры
Программа по уравнению (или не знаю как)  
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
11.10.2010, 04:37 10
когда делаешь scanf() для double, нужно делать через %lf
к printf() это не относится
1
puzzler
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 25
11.10.2010, 13:52  [ТС] 11
так тут вроде через %f и написано =) или...?)
0
illuminati
20 / 20 / 5
Регистрация: 14.06.2010
Сообщений: 108
11.10.2010, 13:57 12
puzzler, через %lf ...

Добавлено через 35 секунд
там float, а надо long float
0
puzzler
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 25
11.10.2010, 17:56  [ТС] 13
ааа понял пардон =)
если делать через if то и else значит должен быть... я такое делал на уровне приметива, например, четное или не четное число вводит пользователь. Тут посложнее будет я думаю - как это сделать?)
0
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
12.10.2010, 02:06 14
Цитата Сообщение от puzzler
если делать через if то и else значит должен быть...
если в общем, то if может быть без else

Цитата Сообщение от puzzler
Ну А и В это я так понимаю из самой функции =).
они должны быть заданы заранее или введены
A, B, H
по ходу A и B - это "начальное AV и конечное LV"

и число шагов "N"

получается тебе нужно вводить
AV, LV, N

H ты вычисляешь (LV - AV) / N и потом используешь в цикле
0
puzzler
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 25
12.10.2010, 20:28  [ТС] 15
мне кажется, что А и B - это значения перед Х и Хв квадрате (ах^2+bx+c), значит их вводить не надо, так как они уже есть по уравнению, а вот AV и LV ввести надо, а также число шагов N.
выходит, что нужен код , где нужно ввести AV, LV, N, потом считается шаг (ну это я впринципе могу ещё сделать), и затем программа должна считать значение Y по X, a X у нас в пределе AV(начальный икс), AV+H, AV+2*H, AV+3*H... и до LV(конечный икс), и сам шаг по формуле H=(B-A)/N, тобишь H=(-1,3-7)/N ну и вывести значения все от подсчетов на экран. Вот с этим уже проблемы =(.
ну по крайней мере я так понимаю.

Кто поможет такой вот код написать на С, с использованием %if , как ранее упоминалось?

у меня просто полтора дня осталось, а потом МоментоМорэ
0
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
13.10.2010, 03:24 16
AV, AV+H, AV+2*H,..., LV.
вот из этой формулы следует, что шаг вычисляется на основе AV и LV
AV и LV - это начало и конец отрезка на оси x
а шаг как раз для иксов

то, что там оказался квадратный многочлен - просто совпадение

тебе нужен цикл for, и где там if ?
0
Iworb
анимешник++
93 / 60 / 7
Регистрация: 03.11.2009
Сообщений: 424
13.10.2010, 09:20 17
Попробовал переделать выше написанную программу как понял я. Проверок на то, что av<al и что n>0 я не делал (на скорую руку), поэтому дабы получать ответ советую вводить корректные значения ^_^
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
int main()
{
    float av,al,h,f;
    int n;
    printf("  av="); scanf("%f",&av);
    printf("  al="); scanf("%f",&al);
    printf("  n="); scanf("%d",&n);
    printf("\n  X    Y");
    h=(al-av)/(float)n;
    for(i=av;i<=al;i+=h) 
     {
         f=(7*i*i-1.3*i+5)/(float)(11-sqrt(i.);
         printf("\n  %3f %3f",i,f);
     }
    getch();
    return 1;
}
0
puzzler
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 25
13.10.2010, 15:46  [ТС] 18
Благодарю, только вот при компиляции если файл в формате СРР, то возникает ошибочка снизу, а если в формате С, то ошибочка сверху =(((

PS. желательно покажите, как для С исправить)
0
Миниатюры
Программа по уравнению (или не знаю как)   Программа по уравнению (или не знаю как)  
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
13.10.2010, 15:51 19
Уберите using namespace std;
Вместо #include <iostream> напишите #include <stdio.h>
После int n; напишите int i;
0
puzzler
0 / 0 / 0
Регистрация: 07.10.2010
Сообщений: 25
13.10.2010, 23:58  [ТС] 20
сделал, теперь выдаёт ошибку в другом месте (файл формата С)
0
Миниатюры
Программа по уравнению (или не знаю как)  
13.10.2010, 23:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2010, 23:58

Нужно написать какую-то формулу или зависимость, я не знаю как назвать, как у меня получилось такое улучшение
Товарищи, пишу работу и в ней есть небольшая часть по математике, не знаю в тот...

Про процедуру или функцию (не знаю как правильно назвать)
Всем привет! Помогите пожалуйста чайнику При создании формы я получаю список...

div-ное окно!или я не знаю как это сделать(
Ребят как сделать,чтобы при переходе по закладкам правая часть формы менялась...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru