IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Очень нужна помощь отредактировать программу
сообщение
Сообщение #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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


NasHab, давай неспеша и по-порядку.
Я взял форматтер исходного кода JCF (см. описание). Потом для выкладывания результата на форум воспользовался кнопкой на форме ответа CODE, после появившегося тега скопировал прогу, перешёл к концу проги и нажал кнопку # - закрыл тег.
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.

Вот это твоя программа. Теперь её возможно читать.
Т.к. я не видел формулировок задач, то сразу ничего сказать не могу. Предполагаю, что каждый цикл - это и есть решение отдельной задачи.
Предлагаю тебе самостоятельно преобразовать прогу так, чтобы решение каждой задачи оказалось в подпрограмме, а в основной программе эту процедуру вызывать. Ну вот, например, в начале программы осуществляется ввод исследуемой матрицы
.....................................
begin
for i := 1 to n do
for j := 1 to n do
begin
Write('a[', i, ',', j, ']=');
Read(a[i, j]);
end;
..................................

Выделяем его в процедуру, а в основной программе вызываем её
...........................
procedure MatrCreate(var a: matr);
var
i, j: integer;
begin
for i := 1 to n do
for j := 1 to n do
begin
Write('a[', i, ',', j, ']=');
Read(a[i, j]);
end;
end;
................................
begin
MatrCreate(a);
............................
end.

Потом такие же манипуляции с другими кусками кода.

Когда это выполнишь - попробуем двигаться дальше. А без этого мы все запутаемся в массе операторов.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 16.06.2024 2:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name