|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
15.06.2014, 12:36 | #1 (permalink) |
Member
Регистрация: 22.08.2013
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задача, Pascal, нужна помощь с решением
Program Zadacha; Var a:array [1..n,1..m] of integer; i,j,k,t,n,m:integer; Begin for i:=1 to n do Begin for j:=1 to m do Begin a[i,j]:=random(40)-20; write(a[i,j]:4); end; writeln; end; writeln; for j:=1 to n do for i:=1 to n-1 do for k:=1 to n-i do if a[k,j>a[k+l,j]] then Begin t:=a[k,j]; a[k,j]:=a[k+l,j]: a[k+l,j]:t; end; writeln('Rezultat:'); for i:=1 to n do Begin for j:=1 to n do write(a[i,j]:4); writeln; end; readln end. |
15.06.2014, 12:36 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Вам хорошо было бы ознакомиться со схожими обсуждениями на нашем форуме Нужна помощь с решением задачи на языке Паскаль ООП в Delphi. Задача. Нужна помощь Turbo Pascal. Нужна помощь Нужна срочная помощь с программой на Pascal Работа с файлами, Pascal, нужна помощь Строки, Pascal. Нужна помощь |
15.06.2014, 12:38 | #2 (permalink) |
Member
Регистрация: 22.08.2013
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Код:
Program Zadacha; Var a:array [1..n,1..m] of integer; i,j,k,t:integer; Begin for i:=1 to n do Begin for j:=1 to m do Begin a[i,j]:=random(40)-20; write(a[i,j]:4); end; writeln; end; writeln; for j:=1 to n do for i:=1 to n-1 do for k:=1 to n-i do if a[k,j>a[k+l,j]] then Begin t:=a[k,j]; a[k,j]:=a[k+l,j]: a[k+l,j]:t; end; writeln('Rezultat:'); for i:=1 to n do Begin for j:=1 to n do write(a[i,j]:4); writeln; end; readln end. |
15.06.2014, 13:47 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Разумеется, выдает! Вы же вводите массив "a:array [1..n,1..m] of integer;" не определив предварительно эти самые n и m. Грубейшая ошибка!
Выход: Вариант 1: Если Вы знаете размерность массива, то ПЕРЕД разделом описания переменных соблаговолите эту размерность задать в виде констант, например: Код:
Const n=15; m=8; Вариант 2: Если Вы хотите сделать программу более "универсальной", то задайте максимально возможные значения размеров массива. Например, так: Код:
Const Nmax=50; Mmax=40; Код:
Var a:array [1..Nmax,1..Mmax] of integer; n,m:integer; ... Код:
Begin write('n= '); readln(n); write('m= '); readln(m); ... |
15.06.2014, 13:57 | #4 (permalink) |
Member
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,309
Сказал(а) спасибо: 11
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 13090
|
const n=5;
m=6; Var a:array [1..n,1..m] of integer; i,j,k,t:integer; Begin for i:=1 to n do Begin for j:=1 to m do Begin a[i,j]:=random(40)-20; write(a[i,j]:4); end; writeln; end; writeln; t:=1; repeat for i := 1 to m - 1 do for j := 1 to m-i do if a[t, j] > a[t,j+1] then begin k:=a[t,j]; a[t,j]:=a[t,j+1]; a[t,j+1]:=k; end; Inc(t); until t>n; writeln('Rezultat:'); for i:=1 to n do Begin for j:=1 to m do write(a[i,j]:4); writeln; end; readln end. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|