![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
-Мария- |
![]() ![]()
Сообщение
#1
|
Гость ![]() |
Добрые люди! Помогите, чем сможете...
У меня че-то не получается сделать так, чтобы прога заработала, то одна ошибка, то другая, особенно с типами данных, я уж не знаю че делать.. На всякий случай текст задачи: Дана матрица R(4,3), состоящая из чисел типа WORD. Найти сумму элементов того столбца матрицы, где находится максимальный элемент, и разделить на максимальный элемент все элементы второй строки. Вывести полученную матрицу. Написать программу без функций и процедур. Оформить деление на максимальный элемент в виде процедуры, а нахождение суммы элементов столбца матрицы, в виде функции. Может еще какие ошибки заприметите... Заранее спасибо.. Текст программы: program Matrica; Модуль1 unit ccc; Модуль2 unit ccc; ![]() Прикрепленные файлы ![]() ![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата(-Мария- @ 16.05.05 12:27) Написать программу без функций и процедур. Цитата(-Мария- @ 16.05.05 12:27) Оформить деление на максимальный элемент в виде процедуры, а нахождение суммы элементов столбца матрицы, в виде функции. Противоречия не видите? Кроме этого - у в приведенной программе есть неоднозначность - в обоих подключаемых модулях есть функция с одним и тем же именем... В таком случае желательно явно указывать, из какого модуля вызывать процедуру. Еще одно: clrscr; ... слишком много параметров - функция ждет 2, передаются 3... |
-Мария- |
![]() ![]()
Сообщение
#3
|
Гость ![]() |
Цитата(volvo @ 16.05.05 12:32) Противоречия не видите? Вот в этом-то и фишка, что функции и процедуры запихнуть надо в модули, а основной текст проги должен быть без них. |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Вот что получилось у меня:
Прикрепленные файлы ![]() |
-Мария- |
![]() ![]()
Сообщение
#5
|
Гость ![]() |
Спасибо за выделенное мне время
![]() вопрос: Можно ли получить инфо поподробнее по этой строчке? ms[which, i] := ms[which, i] div max; И еще почему Type в отдельном модуле, это по собственому желанию или так и надо? |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Я на Сурсах вообще-то написал про это...
![]() Дело в том, что Паскаль считает два типа, которые определены совершенно одинаково, но в разных модулях (или в модуле и основной программе, неважно) РАЗНЫМИ !!! Они же описаны в разных местах... И естественно, может возникнуть ошибка "несоответствие типов". Поэтому везде, где только можно желательно выносить определение типов в отдельный модуль и подключать его по мере необходимости... Насчет ms[which, i] := ms[which, i] div max;... Здесь есть небольшая проблемка. Во-первых, используется Div потому что результат должен быть целый, а оператор "/" дает вещественный результат. А во вторых - можно обойтись совсем без этого, т.к. при целочисленном делении ЛЮБОГО элемента матрицы на ее максимальный элемент получится 0, итого можно просто заменять всю вторую строку нулями и не мучаться ![]() |
-Мария- |
![]() ![]()
Сообщение
#7
|
Гость ![]() |
у меня новая проблема:
1. ошибка "Не делится на 0", при чем по сути дела прога должна сначала запросить ввод элементов матрицы, чего не происходит 2.Что-то я не вникла в Цитата А во вторых - можно обойтись совсем без этого, т.к. при целочисленном делении ЛЮБОГО элемента матрицы на ее максимальный элемент получится 0, итого можно просто заменять всю вторую строку нулями и не мучаться Я думала, что только при делении 0 на любое число получается 0, а 2-я строка не обязательно из нулей, может я какое-то свойство матрицы позабыла? |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата(-Мария- @ 16.05.05 19:20) 1. ошибка "Не делится на 0", при чем по сути дела прога должна сначала запросить ввод элементов матрицы, чего не происходит Я не знаю, что было в программе изменено, но моя версия отработала без нареканий... Цитата(-Мария- @ 16.05.05 19:20) Я думала, что только при делении 0 на любое число получается 0, а 2-я строка не обязательно из нулей, может я какое-то свойство матрицы позабыла? Если я поделю НАЦЕЛО 5 на 12, сколько будет (целая часть)? Правильно, 0... То же самое происходит и там, при делении каждого элемента строки на максимум матрицы, т.е. на заведомо БОЛЬШЕЕ число. Частное ВСЕГДА будет равно 0... А делить НЕнацело мне не дает ограничение Цитата Дана матрица R(4,3), состоящая из чисел типа WORD |
-Мария- |
![]()
Сообщение
#9
|
Гость ![]() |
Цитата(volvo @ 16.05.05 19:32) Я не знаю, что было в программе изменено, но моя версия отработала без нареканий... Я не изменяла в самой проге, пришлось поновой сохранить модули, чтобы основная прога их видела, а так он мне писал Unit file format error (про TPU) к самому тексту я и не притрагивалась.. |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Какие TPU? Я никакие TPU не присоединял... Это что-то с компилятором. Сам свои же TPU-шки не понимает...
|
-Мария- |
![]()
Сообщение
#11
|
Гость ![]() |
Цитата(volvo @ 16.05.05 19:50) Какие TPU? Я никакие TPU не присоединял... Это что-то с компилятором. Сам свои же TPU-шки не понимает... Ну дак,я сохранила еще в этом TPU все модули, т к компилятор требовал... а ему мало этого, теперь с 0 проблемы |
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 5:06 |