Форум программистов, компьютерный форум, киберфорум
Maple
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 23

Программирование алгоритма

18.11.2013, 19:56. Показов 1936. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

У меня есть алгоритм, который надо запрограммировать. Этот алгоритм вся суть моей работы. Я зашел в тупик из-за "несовместимости" массивов с матрицами + сам язык изложения алгоритма какой-то сложный. Вся информация есть - мой Maple-файл с расчетами и подробный алгоритм. Что делаю не так? Посмотрите. Буду очень признателен.
Вложения
Тип файла: rar МODD_1.rar (182.3 Кб, 12 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2013, 19:56
Ответы с готовыми решениями:

Программирование алгоритма с циклом
Вычислить квадратный корень выражения x+|y|^2+1. Если вычисление невозможно, то подробно объяснить почему.

Программирование алгоритма с циклом
Вычислить в цикле произведение выражения tg(e)+y^3+3. Начальное и конечное значения, а так же шаг вводить на форме

Программирование алгоритма с линейной структурой
β(x)=(〖cos〗^2*a/bx+2)/(a^2+sin bx )+bx/2 при a=ln√b/x; b=2e^(-x); x=2,35 Помогите составить пожалуйста. Добавлено...

13
Модератор
Эксперт по математике/физике
 Аватар для VSI
5291 / 4073 / 1392
Регистрация: 30.07.2012
Сообщений: 12,489
20.11.2013, 03:20
Правила форума CyberForum.ru
4.12. Картинки и любые другие файлы загружайте на форум, во избежание их удаления или потери на сторонних ресурсах.
5.18. Запрещено размещать задания в виде картинок и других файлов с их текстом.
2
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 23
21.11.2013, 18:20  [ТС]
Посмотрите,пожалуйста, программную реализацию алгоритма. Код полностью с комментариями и оформленный и готовый. Возможно, будут замечания или важные комментарии. Не упустил ли я чего, а то меня погрешность не устраивает.
Вложения
Тип файла: rar MODD.rar (27.2 Кб, 6 просмотров)
0
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 23
22.11.2013, 20:46  [ТС]
Возник вопрос: имеется массив от 0 до m и до n

Code
1
2
3
4
5
6
7
8
9
10
11
12
for i from 0 to m do 
for j from 0 to n do 
G6[0, 0] := 0; 
G6[0, 1] := 1; 
G6[0, 2] := 2; 
G6[1, 0] := 1; 
G6[1, 1] := 1; 
G6[1, 2] := -1 end do end do; 
 
print(G6);
print(`output redirected...`); 
# input placeholder
Надо вычислить обобщенную обратную матрицу. НО. Как можно перевести массив в матрицу ,если там ноль стоит изначально. А матрицы все с 1 должны начинаться и пишет ошибку. Сам алгоритм Мура-Пенроуза вычисляет неквадратные матрицы легко - нет проблем, но я не могу даже довести массив до него. Я голову сломал уже...может есть какое отображение чисто элементов,чтобы 00 - это 11, 01 - это 12 со старыми значениями.Я и индексы менял и подпрограмму писал...и конвертировал - не хочет. Были бы маленькие матрицы - можно было от руки вводить, но у меня размерности 30,50,100...Все перепробывал: ничего не помогает. Как быть, что же делать?
0
Модератор
Эксперт по математике/физике
 Аватар для VSI
5291 / 4073 / 1392
Регистрация: 30.07.2012
Сообщений: 12,489
22.11.2013, 21:24
Цитата Сообщение от IOF
...Как можно перевести массив в матрицу...
Из КАКОГО массива Вам надо "перевести в матрицу"??? Что он из себя представляет? Где он хранится? В файле? Он - результат предварительных расчетов? Сколько в нем элементов? Его размерность?.......
Выложите ОДИН МАССИВ, который Вы хотите "перевести в матрицу"...

Matlab M
1
2
3
4
5
6
7
8
9
restart;
G6 := Matrix(2, 3);
for i to 2 do
for j to 3 do
G6[i, j] := i+j
end do
end do;
print(G6);
print(`output redirected...`);
0
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 23
22.11.2013, 21:34  [ТС]
Он результат предварительных расчетов. Его размерность m на n. m <>n. Через двойной цикл for a[i,j] присваиваются элементы. от нуля до m и от 0 до n. Надо из этого массива получить обобщенную матрицу, но чтобы это сделать надо его представить матрицей с теми же значениями. Но матрица задается от 1.((((.
Вложения
Тип файла: rar Подпрограмма A+ матрицы.rar (10.3 Кб, 3 просмотров)
0
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 23
22.11.2013, 21:39  [ТС]
Matlab M
1
2
3
4
5
6
7
8
9
10
11
for i from 0 to m do 
for j from 0 to n do 
 
G1[i, j] := 1 
 
end do end do; 
print(G1);
 
print(`output redirected...`); 
# input placeholder
                               G1
Вот, например, такой массив c нулевыми счетчиками и m=3 n=2
0
Модератор
Эксперт по математике/физике
 Аватар для VSI
5291 / 4073 / 1392
Регистрация: 30.07.2012
Сообщений: 12,489
22.11.2013, 22:45
А так не пойдет?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
restart;
for i from 0 to 3 do
for j from 0 to 2 do
G1[i, j] := i+j
end do
end do;
print(G1);
G6 := Matrix(4, 3):
for i from 1 to 4 do
for j from 1 to 3 do
G6[i, j] := G1[i-1, j-1]
end do
end do;
print(G6)
0
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 23
23.11.2013, 00:05  [ТС]
Нет. Вы подставляете готовые размерности. В моем случае n и m разные. И это будет считать процедура. То есть мне нужен способ как от

For i from 0 from m do
For i from 0 to n do

G[i,j]:=G1[i,j]

Od
Od

перейти к

For i from 1 to m+1 do
For i from 1 to n+1 do

G[i,j]:=G1[i,j]

Od
Od

И обратно.
Как бы сделать перенос индексной системы с сохранением размерности и значений. Честно, не знаю, возможно ли это вообще. Или прийдется все делать от индекса 1 с самого начала.
0
Модератор
Эксперт по математике/физике
 Аватар для VSI
5291 / 4073 / 1392
Регистрация: 30.07.2012
Сообщений: 12,489
23.11.2013, 01:02
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
restart
m := 3: n := 2:
for i from 0 to m do
for j from 0 to n do
G1[i, j] := i+j
end do
end do;
print(G1);
G6 := Matrix(m+1, n+1):
for i from 1 to m+1 do
for j from 1 to n+1 do
G6[i, j] := G1[i-1, j-1]
end do
end do;
print(G6)
1
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 23
23.11.2013, 09:23  [ТС]
При 3 и 2 будет работать. А при 2 и 3 не будет. Нужен алгоритм при любых значениях. Просто это параметры сетки и их надо варьировать в исследовании.
0
Модератор
Эксперт по математике/физике
 Аватар для VSI
5291 / 4073 / 1392
Регистрация: 30.07.2012
Сообщений: 12,489
23.11.2013, 11:15
Цитата Сообщение от IOF
При 3 и 2 будет работать. А при 2 и 3 не будет...
Да неужели "не будет"? А не пробовали поменять числовые значения m и n? Или для этого Вам нужна помощь?
Работает при любых значениях...
2
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 23
23.11.2013, 13:34  [ТС]
Верно. У меня просто начальная матрица была фиксированная и в подпрограмме было вычисление обратной матрицы, а затем обратно из матрицы в массив. Но матрица меняла с mn на nm. Следовательно и в цикле надо было от n начинать при переводе из матрицы в массив. Спасибо.
0
617 / 242 / 16
Регистрация: 31.07.2013
Сообщений: 376
23.11.2013, 14:28
Если нужно просто получить доступ к элементам массива (с любой нижней границей индексов) как к элементам матрицы (у которой элементы нумеруются с 1), достаточно вместо квадратных скобок (mathematical indexing) использовать круглые (programmer indexing):

Matlab M
1
2
3
4
5
6
7
> m := 2: n := 3:
  G1 := Array(0..m, 0..n, (i, j) -> i+j):
  [G1[0, 0], G1[m, n]];
  [G1(1, 1), G1(m+1, n+1)];
 
                                [0, 5]
                                [0, 5]
В этом случае G1(1, 1) возвратит то же значение, что и G1[0, 0], и т.д.

Можно также использовать конвертацию
Matlab M
1
2
3
4
5
> G2 := convert(G1, Matrix);
 
                             [0    1    2    3]
                       G2 := [1    2    3    4]
                             [2    3    4    5]
или

Matlab M
1
2
3
4
G2 := Matrix(m+1, n+1, G1);
                             [0    1    2    3]
                       G2 := [1    2    3    4]
                             [2    3    4    5]
и в обратную сторону:

Matlab M
1
2
3
4
5
6
> G3 := Array(0..m, 0..n, (i, j) -> G2[i+1, j+1]):
  [G3[0, 0], G3[m, n]];
  [G3(1, 1), G3(m+1, n+1)];
 
                                [0, 5]
                                [0, 5]
или

Matlab M
1
2
3
4
5
6
7
> G3 := Array(0..m, 0..n):
  G3(1..m+1, 1..n+1) := G2:
  [G3[0, 0], G3[m, n]];
  [G3(1, 1), G3(m+1, n+1)];
 
                                [0, 5]
                                [0, 5]
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.11.2013, 14:28
Помогаю со студенческими работами здесь

Программирование и исследование алгоритма сжатия информации: с чего начать?
Преподаватель задал задание написать программу... на тему : &quot;Программирование и исследование алгоритма сжатия информации&quot;.. и я не...

Напишите программу, выполняющую шифрование с использованием алгоритма транслитерации слова ПРОГРАММИРОВАНИЕ
Напишите программу, выполняющую шифрование с использованием алгоритма транслитерации слова ПРОГРАММИРОВАНИЕ, при которой для перемешивания...

Реализуйте на практике 2 алгоритма поиска и 2 алгоритма сортировки. Результаты сравните
Всем привет! Я в С++ абсолютный чайнег, поэтому за дебильные вопросы сапогами не пинайте))) в общем есть код работающий в борланде....

Программа для сравнения производительности необобщенного алгоритма ArrayList и обобщенного алгоритма List
Доброе время суток форумчане! Наткнулся я в книжке на этот код, решил проверить у себя, и получилось так, что код написан с ошибками в: ...

Составить блок – схему алгоритма и определить, что выводится в результате выполнения следующего алгоритма
Всем привет. Помогите плиз. Составить блок – схему алгоритма и определить, что выводится в результате выполнения следующего алгоритма: 1....


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru