|
1 / 1 / 0
Регистрация: 18.03.2020
Сообщений: 81
|
||||||
Сделать процедуру для ручного заполнения матрицы14.09.2020, 17:48. Показов 2028. Ответов 2
всем привет, суть задачи в том, что бы сделать процедуру для заполнения ручного 2умерного массива или же матрицы.
я знаю нет смысла делать процедуру для этого, фишка просто в том что бы практиковаться мне не пришло в голову пока ничего другого. Вот в итоге я что-то попытался написать и выходит какой-то конфликт а именно "Форматное выражение может использоваться только внутри write, writeln и str" не совсем понимаю, может посоветуете или поправите как правильнее сделать именно из моего "кода" Заранее спасибо. да и вообще правильно ли я расположил объявление массива как тип для использования в процедуре, если нет то как правильнее.
0
|
||||||
| 14.09.2020, 17:48 | |
|
Ответы с готовыми решениями:
2
Быстрый способ ручного заполнения матрицы Дописать программу для ручного ввода размерности матрицы с клавиатуры вместо константы в паскале
|
|
Модератор
10442 / 5734 / 3406
Регистрация: 17.08.2012
Сообщений: 17,442
|
||||||
| 14.09.2020, 21:59 | ||||||
Сообщение было отмечено AlexeyNo как решение
Решение
У Вас как с русским? Нельзя сделать неправильную программу правильнее. Для начала программу нужно сделать правильной, и только после этого её можно сделать правильнее.
Не ошибка. Строка со словом program в современных паскалях не обязательна. Не объявляйте глобальные переменные до подпрограмм без особой на то необходимости. Объявление глобальных переменных до подпрограмм порождает трудно устранимые ошибки из-за пересечения областей видимости глобальных и локальных переменных. Нелепо передавать в подпрограмму счётчики циклов. Счётчики циклов объявляйте как локальные переменные. Иногда в подпрограммы передаются размеры массива. Но Вам-то зачем: размеры массива у Вас не изменяются. Если в подпрограмме желаете ввести массив, так и указывайте в формальных параметрах массив, а не бог весть что. Незачем одиночный оператор заключать в операторные скобки begin..end (строки 11..13). В стандартном паскале бывает только форматированный вывод, но никак не форматированный ввод. Вам же написали, что форматированное выражение (типа Вашего b[k,l]:3:1) используется только внутри write, writeln и str. Следовательно, внутри readln это самое выражение использовано быть не может. Не постигаю, как Вы этого не смогли понять. Не ошибка, но глаза режет. Паскаль - не С++, незачем после writeln указывать пустые скобки. И, кстати, в строке 14 нужен не writeln, а readln. в 20 строке ошибка: глобальные переменные i и j не были инициализированы, поэтому их значения равны 0, и будет ошибка выхода индексов за границы массива, поскольку индексация массива "a" начинается с 1. Вы, вероятно, хотели в строке 20 весь массив вывести. Делается это совсем не так, как Вы написали. В подавляющем большинстве диалектов паскаля нельзя вывести массив одним оператором, а в тех диалектах, где это возможно, вывод массива делается совершенно не так, как Вы написали. Вы правильно думаете, подпрограммы в Вашей программе нужны как зайцу стоп-сигнал. Подпрограммы используются тогда, когда нужно более одного раза повторить фрагмент кода, возможно, с разными (формальными) параметрами, либо когда фрагмент программы представляет собой достаточно сложную, но логически завершённую часть кода (типа вычисления какого-нибудь интеграла Френеля), или внутри модулей. Но, раз Вы зачем-то используете отдельную подпрограмму для однократного ввода массива, то почему бы не использовать подпрограмму для однократного вывода массива. Вы путаете операторы write и writeln. Если желаете что-то писать на паскале, Вам нужно освоить от силы 100 страниц любой книжки по любому паскалю. Исправленная программа (на основе Вашего кода):
И ещё. Когда пишете какой-либо текст, в нужных местах используйте, пожалуйста, прописные буквы и запятые. У Вас их нет, что ли, или Вам их жалко? Ну тогда вот Вам запас на первое время: АААБББВВВГГГДДДЕЕЕЁЁЁЖЖЖЗЗЗИИИЙЙЙ КККЛЛЛМММНННОООПППРРРСССТТТУУУФФФ ХХХЦЦЦЧЧЧШШШЩЩЩЪЪЪЫЫЫЬЬЬЭЭЭЮЮЮЯЯЯ AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMM NNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,, Еще научитесь в нужных местах писать "что бы" слитно. А то смешно получается: "суть задачи в том, что бы сделать..." по смыслу это то же самое, что и "суть задачи в том, что хотелось бы (для смеха, к примеру) что-то сделать, правда, не знаю, что именно, но сделать (так, для хохмы, от нечего делать или, к примеру, от скуки)...". Типа, "Что бы такого сделать плохого". А вот "Суть задачи в том, чтобы сделать..." означает "Суть задачи в том, что нужно сделать...".
1
|
||||||
|
1 / 1 / 0
Регистрация: 18.03.2020
Сообщений: 81
|
|
| 14.09.2020, 22:13 [ТС] | |
|
Cyborg Drone, спасибо, я постараюсь исправиться, а ваш запас сохраню. На память.)
0
|
|
| 14.09.2020, 22:13 | |
|
Помогаю со студенческими работами здесь
3
Как создать хранимую процедуру для заполнения таблицы с уникальными ключами? Помогите сделать функцию рандомного заполнения матрицы
Посоветуйте компонент для заполнения матрицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|