![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
DarkGhost |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Реальное имя: Максим Репутация: ![]() ![]() ![]() |
Дан двумерный массив размером MxN. Преобразовать его по правилу – все элементы каждого столбца матрицы умножить на элемент этого столбца. Из первых четырех строк массива сформировать четыре новых вектора (одномерные массивы). Упорядочить каждый вектор по убыванию.
Исходные данные: - число строк и столбцов M и N; - двумерный массив действительных чисел размерностью MхN. Выходные данные: - минимальный элемент каждого столбца; - матрица, полученная делением каждого столбца на минимальный элемент в этом столбце; - четыре упорядоченных вектора по убыванию, полученные из первых строк матрицы; Всё это нужно сделать в простейшей графической оболочке с использованием процедур. Вот то, что я попробовал/смог сделать сам. Program DivMax; Сообщение отредактировано: DarkGhost - 9.05.2011 20:12 |
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Вот то, что я попробовал/смог сделать сам. Хорошо. А в чем, собственно, состоит вопрос? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
DarkGhost |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Реальное имя: Максим Репутация: ![]() ![]() ![]() |
Вопросов несколько)))
1) как правильно вставить процедуру DivAMin... Чтобы она исполнялась, а после сначала выводились минимальные значения строк, а после формирующиеся векторы... Write(f,DivAMin(G, M, N) - это видимо не верно. возможно DivAMin; но почему то не получается, как не пытался. 2) пытаюсь описать кнопку F5 выход из программы, но выдает тоже ошибку... #63: begin {Выход} пока вроде бы всё...Эти ошибки уже мешают нормально протестировать программу) |
TarasBer |
![]()
Сообщение
#4
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
1. Ну может добавить вывод в саму DivAMin? Правда, это антиструктурно. Ну добавь тогда в неё var-параметр строкового типа, чтобы она выводила информацию в него. А потом
DivAMin(G,M,N,S); Write(f,S); 2. Ошибку при компиляции или при выполнении? Кстати, ты учёл, что F5 - это сканкод? То есть надо выбор по readKey делать так:
-------------------- |
DarkGhost |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Реальное имя: Максим Репутация: ![]() ![]() ![]() |
при компиляции.
Спасибо, с этим разобрался. А вот с процедурой DivAMin безуспешно. т.е. как переделать? Function DivAMin(var A: Matrix; M, N: integer;st:string): real; и потом DivAMin(G,M,N,S); так? |
TarasBer |
![]()
Сообщение
#6
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Почти:
Function DivAMin(var A: Matrix; M, N: integer;var st:string): real; -------------------- |
DarkGhost |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Реальное имя: Максим Репутация: ![]() ![]() ![]() |
спасибо, заработало, но выводит некорректные значения, видимо в самом алгоритме уже ошибся...
Ещё появился вопрос при запуске программы отображение надписей F1,F2,F3, ESC нормальное, после выполнения любой процедуры становится некорректным (уменьшается до нечитаемого). |
TarasBer |
![]()
Сообщение
#8
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
В самом конце
Код while not EOF(f) do begin ReadLn(f, s); OutTextXY(10, j, s); j := j + 11; end; У тебя каким шрифтом делается это самое OutTextXY? Ведь перед тем, как попасть сюда, программа могла побывать в ветке, что сворачивает граф.режим, снова его возвращает и шрифт при этом становится тем, который по умолчанию. -------------------- |
DarkGhost |
![]()
Сообщение
#9
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Реальное имя: Максим Репутация: ![]() ![]() ![]() |
Так этот текст правильно выводится, вроде бы.
Спасибо, проблему решил. Проблема была в этом, SetTextStyle(1, 0, 1);... Осталось решить проблему с расчетом/выводом значений и похоже всё сделано... |
![]() ![]() |
![]() |
Текстовая версия | 17.07.2025 18:01 |