Очень нужна помощь отредактировать программу |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Очень нужна помощь отредактировать программу |
NasHab |
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Женский Реальное имя: Анастасия Репутация: 0 |
Добрый день! Помогите пожалуйста отредактировать эту программу, так что бы было меню. Буду очень благодарна!
program matritsa; const n=8; type matr= array[1..n,1..n] of integer; var a: matr; i, j, k,l,ko,sm : integer; Procedure findk ( a:matr; var k:integer ); var i, j: integer; begin for i:=1 to n do begin k:=i; for j:=1 to n do if A[i,j] <> A [j,i] then begin k:=0; break; end; if k>0 then break; end; end; begin for i:=1 to n do for j:=1 to n do begin write('a[',i,',',j,']='); read(a[i,j]) end; findk(a, k); writeln(k); writeln; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:3); writeln; end; writeln('Совпадающие строки и столбцы;'); l:=0;{считаем что совпадающих строк и столбцов нет} for k:=1 to n do begin i:=0;{считаем что в данных строке и столбце совпадений нет } for j:=1 to n do if a[k,j]=a[j,k] then i:=i+1;{если есть, считаем} if i=n then{если все совпали} begin writeln('Строка и столбец № ',k);{выводим на экран} l:=1;{фиксируем что есть такие} end; end; if l=0 then writeln('Таких строк и столбцов нет!'); writeln; for i:=1 to n do begin ko:=0;{считаем что отрицательных в строке нет} for j:=1 to n do if a[i,j]<0 then {если нашли} begin ko:=1;{фиксируем} break;{больше не ищем} end; if ko=1 then{если есть отрицательные} begin sm:=0;{сумма=0} for k:=1 to n do sm:=sm+a[i,k];{считаем сумму в строке} writeln('Сумма в строке ',i,'=',sm); end; end; readln end. |
OCTAGRAM |
Сообщение
#2
|
Большевик–концептуал Группа: Пользователи Сообщений: 194 Пол: Мужской Реальное имя: Иван Левашев Jabber: bu_gen@octagram.name Skype: i.levashew QQ: 3152538431 Ада: Сторонник Embarcadero Delphi: Сторонник Free Pascal: Разработчик Turbo Pascal: Установлен Репутация: 1 |
Не очень понятно, что за меню
-------------------- If you want to get to the top, you have to start at the bottom
|
NasHab |
Сообщение
#3
|
Группа: Пользователи Сообщений: 2 Пол: Женский Реальное имя: Анастасия Репутация: 0 |
|
Федосеев Павел |
Сообщение
#4
|
Знаток Группа: Пользователи Сообщений: 481 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 9 |
NasHab, давай неспеша и по-порядку.
Я взял форматтер исходного кода JCF (см. описание). Потом для выкладывания результата на форум воспользовался кнопкой на форме ответа CODE, после появившегося тега скопировал прогу, перешёл к концу проги и нажал кнопку # - закрыл тег. program matritsa; Вот это твоя программа. Теперь её возможно читать. Т.к. я не видел формулировок задач, то сразу ничего сказать не могу. Предполагаю, что каждый цикл - это и есть решение отдельной задачи. Предлагаю тебе самостоятельно преобразовать прогу так, чтобы решение каждой задачи оказалось в подпрограмме, а в основной программе эту процедуру вызывать. Ну вот, например, в начале программы осуществляется ввод исследуемой матрицы ..................................... Выделяем его в процедуру, а в основной программе вызываем её ........................... Потом такие же манипуляции с другими кусками кода. Когда это выполнишь - попробуем двигаться дальше. А без этого мы все запутаемся в массе операторов. |
OCTAGRAM |
Сообщение
#5
|
Большевик–концептуал Группа: Пользователи Сообщений: 194 Пол: Мужской Реальное имя: Иван Левашев Jabber: bu_gen@octagram.name Skype: i.levashew QQ: 3152538431 Ада: Сторонник Embarcadero Delphi: Сторонник Free Pascal: Разработчик Turbo Pascal: Установлен Репутация: 1 |
Объявляем переменную LastChoice, например, типа Integer для последнего выбранного пункта меню и делаем цикл repeat .. until LastChoice = номер того пункта меню, который нужен для выхода. В этом цикле в начале отображаем меню несколькими строками WriteLn, потом узнаём выбор пользователя, например, ReadLn(LastChoice), потом оператором case или if перебираем все пункты меню, кроме выхода.
-------------------- If you want to get to the top, you have to start at the bottom
|
Текстовая версия | 23.12.2024 19:46 |