Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 30

Программа с массивом и функцией. Вывести таблицу значений функции

20.03.2015, 20:56. Показов 1331. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте , у меня возникла проблема при написании программы, задание по математическому выражению составить программу , которая в качестве параметров функции должны использоваться диапазон и шаг значений аргумента. В результате работы должен быть получен набор пар аргумент значение.
Я написал программу , оказалось что нужно было сделать через массив. Собственно вопрос как правильно сделать программу через массив. пример не могу найти в интернете.

Вот программа которую я составил :
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
#include <iostream>
#include <cmath>
using namespace std;
 
struct Advert
{
    double start;
    double end;
    double step1;
    double step2;
    double y;
};
 
Advert Roots(double start, double end, double step1, double step2 = 0);
 
int main()
{
    Advert r;
    double start, end, step1;
    setlocale (LC_ALL, "russian");
    cout<<"y=( sqrt(3/2) )*( sin(3*x+PI) )"<<endl;
    cout<<"Введите начало диапозона (число)= ";
    cin>>start;
    cout<<"Введите конец диапозона (число)= ";
    cin>>end;
    cout<<"Введите шаг диапозона (число)= ";
    cin>>step1;
    r = Roots (start, end, step1);
 
}
 
Advert Roots (double start, double end, double step1, double step2)
{
    Advert temp;
    temp.start = start;
    temp.end   = end;
    temp.step1 = step1;
    temp.step2 = step2;
    
    system("cls");
    const double PI = 3.1415;
        if (start==end)
                {
                cout<<"У введенного диапазона нет пространства для шага"<<endl;
                }
else
{
    while (start<end)
                {
                 step2=step2+step1;
                 temp.y =  sqrt(3.0/2.0) * sin(3.0 * step2 + PI) ;
                     cout<<"Изменение диапазона= "<<start<<'\t'<<"Изменение функции = "<<temp.y<<'\t'<<endl;
                     step2=step2+step1;
                    start=start+step2; 
            while (start>=end)
                {
                cout<<"Диапазон закончился"<<endl;
                break;
                }
        }
 
    return temp;
}

Надо сделать её через массив, я вот начал , тут застопорился , не понимаю просто что делать дальше...
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
#include <iostream>
#include <cmath>
using namespace std;
typedef unsigned int ui;
struct Massive
{
    Massive *mas;
    ui massive1;
};
struct Advert
{
    double start;
    double end;
    double step1;
    ui res;
    double y;
};
Advert Function (ui start =0, ui end =0, ui step1 = 0, ui step2=0);
void PrintAdvert(const Advert &a);
int main()
{
    ui start, end, step1;
    setlocale (LC_ALL, "russian");
    cout<<"y=( sqrt(3/2) )*( sin(3*x+PI) )"<<endl;
    cout<<"Введите начало диапозона (число)= ";
    cin>>start;
    cout<<"Введите конец диапозона (число)= ";
    cin>>end;
    cout<<"Введите шаг диапозона (число)= ";
    cin>>step1;
}
 
 
ui Function (ui start, ui end, ui step1, int step2)
{
     Massive temp2;
     temp2.massive1 = (end - start) / step1;
     temp2.mas  = new Massive[temp2.massive1];
    system("cls");
    const double PI = 3.1415;   
    for (ui i=1;i <= end;i++)
    {
        temp2.mas[i];
 
 
    }
 
    return  sqrt(3.0/2.0) * sin(3.0 * step2 + PI);
}
void PrintAdvert(const Advert &a)
{
    while (a.start>=a.end)
                {
                cout<<"Диапазон закончился"<<endl;
                break;
                }
 
   if (a.start==a.end)
                {
                cout<<"У введенного диапазона нет пространства для шага"<<endl;
                }
else
{
    if(a.step1>=a.end)
                {
                 cout<<"Шаг больше введенного диапазона"<<endl;
                 
                }
   }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2015, 20:56
Ответы с готовыми решениями:

Вывести таблицу значений функции (программа зацикливается)
Уже перепробовал разные варианты кода,все ровно не получается Нужно вывести таблицу значений ф-ции,с диапазоном от -4 до 4,шаг 0.5 ...

Вывести таблицу значений функции y=f(x) для всех значений x в пределах
Вывести таблицу значений функции y=f(x) для всех значений x в пределах от a до b с шагом h. Значение действительного параметра k вводится с...

Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) с точностью ε. Вывести число итераций
Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) с точностью ε. Вывести число итераций, необходимое для...

6
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.03.2015, 21:02
И где тут массив? Что это за структура с указателем?
0
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 30
20.03.2015, 21:04  [ТС]
не пойму как правильно сделать эту программу через массив, пока дошёл только как объявить сам массив и число его переменных, прошу совета
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.03.2015, 21:13
Набор пар аргумент-значение, это массив структур {аргумент, значение}. Так?
Не вижу ничего похожего.
0
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 30
20.03.2015, 21:19  [ТС]
ну у меня есть первая программа примерно что нужно сделать, вот как это организовать с массивом я не пойму, может пример какой нибудь подскажите...
0
21 / 21 / 13
Регистрация: 28.04.2013
Сообщений: 85
21.03.2015, 12:12
Лучший ответ Сообщение было отмечено alex58 как решение

Решение

C++
1
2
temp2.massive1 = (end - start) / step1;
temp2.mas  = new Massive[temp2.massive1]
это полная лажа.
пока что запомни 1 простую вещь : если ты используешь new, то ОБЯЗАТЕЛЬНО ты должен будешь это самое что ты веделил сделать delete, и никак иначе.

по теме тебе нужно организовать структуру аргумент-значение, создать из них массив и заполнить его
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
// сама структура
struct Pair
{
   int arg;
   int value;
}
// ....
 
int main()
{
   // ...
 
   // узнаем сколько нам нужно элементов и выделим памяти под них
   int n =  (end - start) / step1;
   Pair* mas = new Pair[n];
   // тут заполним как нибудь вот так
   for( int i = 0; i < n; ++i )
   {
      mas[i].arg = start + i*step1;
      mas[i].value = f( mas[i].arg ); // что там тебе надо посчитать я хз, тут подставить твою формулу надо
   }
   // теперь у нас есть массив из n пар аргумент - значение
 
   // ....
 
   // обязательно освободим выделенное оператором new
   delete[] mas;
   return 0;
}
1
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 30
21.03.2015, 13:33  [ТС]
Очень благодарен за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.03.2015, 13:33
Помогаю со студенческими работами здесь

Вывести таблицу значений функции
Всем привет, только начал изучать C++ и не могу никак написать программу вычисляющую значение функции, помогите Диапазон значений x

Вывести таблицу значений функции
Помогите решить задачу? Вычислить значения функции √xch(x) на отрезке с шагом 0.2

Вывести таблицу значений функции
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Xнач. до Хкон. с шагом dX. F= -ax(в квадрате) + b при...

Вывести таблицу значений функции
Вычислить и вывести на экран в виде таблицы значение функции y(x) на интервале от x0 до xn с шагом dx. A, B, C, D, X, x0, xn и dx -...

Вывести таблицу значений функции
Написать программу, которая выводит таблицу значений функции y= –2,4x^2 + 5x – 3 в диапазоне от –2 до 2 с шагом 0,5. Через while


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru