0 / 0 / 0
Регистрация: 21.05.2019
Сообщений: 8

Протабулировать функцию у на заданном отрезке

21.05.2019, 19:21. Показов 1743. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Протабулировать функцию у на заданном отрезке и записать в
одномерный массив А все ее значения до минимального, а в массив В – все
отрицательные значения до максимального.
y = 3cos5x + 2sinx
[-π, π] , h = π /10.
В массиве А поменять местами первый с последним элементом, второй
с предпоследним и т. д. Массив В упорядочить по убыванию элементов.
Из массивов А и В сформировать двумерный массив Е, размерность
которого равна наименьшей из размерностей массивов А и В. Элементы
главной диагонали матрицы – единицы, а вне главной диагонали
вычисляются по формуле:
E[I][J] = A[I]*B[J] A[J]*B[I].
В
полученном массиве определить число отрицательных элементов и,
если оно больше трети всех элементов матрицы, транспонировать матрицу.

Вывести на печать все значения исходной функции на отрезке в виде
таблицы "Х Y", массивы А и В в виде строк до и после изменения, матрицу E
до и после изменения, все искомые результаты.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2019, 19:21
Ответы с готовыми решениями:

Протабулировать произвольную функцию на отрезке a, b с шагом h с использованием делегата
Протабулировать произвольную функцию на отрезке a,b с шагом h с использованием делегата для задания вида табулируемой функции. определить 3...

Протабулировать функцию с=arccos(а+в/х) на заданном интервале
на интервале 0,014≤a≤0,847 с шагом Δа=0,312 для каждого "в" из интервала 0,014≤в≤0,021 с шагом Δв=0,001. протабулировать функцию...

Протабулировать функцию на заданном промежутке с заданным шагом
помогите с задачкой: Табулировать функцию y=cos(x) в промежутке с шагом 0.2

3
2374 / 776 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
22.05.2019, 01:13
Цитата Сообщение от Лучший в мире Посмотреть сообщение
E[I][J] = A[I]*B[J] A[J]*B[I].
Вот как понять данную формулу, когда в ней не хватает знака операции?
А поскольку это особенно на процесс программирования не влияет, то эта формула записана следующим образом
E[I][J] = A[I]*B[J] - A[J]*B[I]. То есть добавлена операция вычитания. В таком виде эта формула запрограммирована


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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
using System;
 
 
namespace ConsoleApp5
{
    class Program
    {
        static double func (double x)
        {
           return 3*Math.Cos(5*x) + 2*Math.Sin(x);
        }
 
        static void Printarr(double[] arr)
        {
            for (int j = 0; j < arr.Length; j++)
                Console.Write(" {0:0.0000}", arr[j]);
            Console.WriteLine();    
        }
 
        static void Main(string[] args)
        {
           
            double[] a = new double[25];
            double[] b = new double[25];
            double[] wrk = new double[25];
            double h = Math.PI / 10;
            int g = 0;
            double x1 = - Math.PI;
            Console.WriteLine("Табуляция функции:");
            Console.WriteLine("    X     |     Y  ");
            while (x1 <= Math.PI)
            {
                wrk[g] = func(x1);
                Console.WriteLine(" {0,8:0.0000} | {1,8:0.0000}", x1, wrk[g]);
               
                g = g + 1;
                x1 = x1 + h;
          
            }
            double maxelem = double.MinValue;
            double minelem = double.MaxValue;
            int kmax = 0;
            int kmin = 0;
            for (int k = 0; k < g; k++)
            {
                if (wrk[k] < minelem)
                {
                    minelem = wrk[k];
                    kmin = k;
                }
 
                if (wrk[k] > maxelem)
                {
                    maxelem = wrk[k];
                    kmax = k;
                }
            }
            Console.WriteLine("Элемент с максимальным значением {0:0.0000}", maxelem);
            Console.WriteLine("Элемент с минимальным значением {0:0.0000}", minelem);
            for (int j = 0; j < kmin; j++)
                a[j] = wrk[j];
            int j1 = 0;
            for (int j = 0; j < kmax; j++)
                if (wrk[j] < 0)
                {
                    b[j1] = wrk[j];
                    j1 = j1 + 1;
                }
            Array.Resize(ref a, kmin);
            Array.Resize(ref b, j1);
            Console.WriteLine("Массив A:");
            Printarr(a);
            Console.WriteLine("Массив B:");
            Printarr(b);
            Array.Reverse(a);
            Console.WriteLine("Измененный массив A:");
            Printarr(a);
            Array.Sort(b);
            Array.Reverse(b);
            Console.WriteLine("Отсортированный массив B:");
            Printarr(b);
            int n = Math.Min(a.Length, b.Length);
            Console.WriteLine("Наименьшая размерность массива: {0}",n);
            double[,] e = new double[n, n];
 
            for (int i = 0; i < n; i++)
                for (int j = 0; j < n; j++)
                {
                    if (i == j)
                        e[i, j] = 1;
                    else
                        e[i, j] = a[i] * b[j] - a[j] * b[i];  // Формула для заполнения боковых диагоналей матрицы.
 
                }
            Console.WriteLine("Матрица:");
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                    Console.Write(" {0,7:0.0000}", e[i,j]);
                Console.WriteLine();
            }
            int cou = 0;
            for (int i = 0; i < n; i++)
                for (int j = 0; j < n; j++)
                    if (e[i,j] < 0)
                        cou = cou + 1;
            int Tret = Convert.ToInt32(n * n / 3);
            Console.WriteLine("Количество отрицательных элементов {0} ",cou);
            Console.WriteLine("Одна третья элементов {0} (округлено до целого) ", Tret);
            if (cou > Tret)
            {
                Console.WriteLine("Количество отрицательных элементов матрицы превышает треть количества элементов");
                double tmp;
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < i; j++)
                    {
                        tmp = e[i,j];
                        e[i,j] = e[j,i];
                        e[j,i] = tmp;
                    }
                }
                Console.WriteLine("Транспонированная матрица:");
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < n; j++)
                        Console.Write(" {0,7:0.0000}", e[i, j]);
                    Console.WriteLine();
                }
            }
            else
                Console.WriteLine("Количество отрицательных элементов меньше  одной трети элементов матрицы");
 
 
            Console.ReadLine();
        }
    }
}
1
0 / 0 / 0
Регистрация: 21.05.2019
Сообщений: 8
22.05.2019, 01:28  [ТС]
Спасибо огромное за ответ, но почему то язык программирования C# а мне нужна C++, если вы могли бы написать на С++ тоже самое- буду очень признателен!
0
22.05.2019, 10:31
 Комментарий модератора 
Цитата Сообщение от Лучший в мире Посмотреть сообщение
но почему то язык программирования C# а мне нужна C++, если вы могли бы написать на С++ тоже самое- буду очень признателен
Ну, так Вы в какой раздел написали?
Если хотите на С++ пишите в раздел https://www.cyberforum.ru/cpp-beginners/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.05.2019, 10:31
Помогаю со студенческими работами здесь

Протабулировать функцию на заданном отрезке
Здравствуйте. Я точно знаю, что здесь сидят умные ребята. Курсач на носу. Помогите пожалуйста. 1. Протабулировать функцию у = sin(x+ i)...

Протабулировать функцию на заданном отрезке
Здравствуйте. Помогите пожалуйста. Используя два вида операторов цикла составить программы табулирования функции y=f(x) на отрезке с...

Протабулировать функцию на заданном отрезке
Суть задания: 1. Протабулировать функцию y = f(x) на заданном отрезке. 2. Найти минимальное и максимальное значения...

Протабулировать функцию y=tg(x)-x/3 на заданном отрезке.
1.Протабулировать функцию y=tg(x)-x/3 на заданном отрезке. 2.Найти минимальное и максимальное значения функции на отрезке. 3.Найти...

Протабулировать функцию на заданном отрезке
Здравствуйте! Буду очень благодарен за помощь и объяснение задачи. Вот такая вот задача: Протабулировать функцию F (x) на отрезке с...


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

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

Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru