Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2015, 11:58   #1
Boys
 
Регистрация: 30.10.2015
Сообщений: 8
По умолчанию Дан двумерный массив А, заполненный случайным образом. Вставить после столбцов, содержащих максимальный элемент массива, столбец

Дан двумерный массив А, заполненный случайным образом. Вставить после столбцов, содержащих максимальный элемент массива, столбец из нулей.
Желательно с процедурами init,print,insert
Boys вне форума Ответить с цитированием
Старый 30.10.2015, 12:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Массив получается должен быть динамическим?
попытки и наработки имеешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2015, 12:28   #3
Boys
 
Регистрация: 30.10.2015
Сообщений: 8
По умолчанию

только процедуры init и print
Код:
procedure init(var x : dmyarray);
var i,j:integer;
begin
for i:=1 to n do
 for j:=1 to m do
  x[i,j]:=random(50)-5;
end;
Код:
procedure print(x : dmyarray);
var i,j:integer;
begin
for i:=1 to n do
 begin
 for j:=1 to m do
  write(x[i,j]:5);
 writeln;
 end;
writeln;
end;

Последний раз редактировалось Stilet; 30.10.2015 в 13:58.
Boys вне форума Ответить с цитированием
Старый 30.10.2015, 13:58   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как полностью выглядит твой код?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2015, 17:17   #5
Boys
 
Регистрация: 30.10.2015
Сообщений: 8
По умолчанию

Вот начало
Код:
program Ex1;
const n=5; m=6;
type dmyarray=array[1..n,1..m] of integer;
var a : dmyarray;

procedure init(var x : dmyarray);
var i,j:integer;
begin
for i:=1 to n do
 for j:=1 to m do
  x[i,j]:=random(50)-5;
end;

procedure print(x : dmyarray);
var i,j:integer;
begin
 for i:=1 to n do
 begin
  for j:=1 to m do
    write(x[i,j]:5);
  writeln;
 end;
 writeln;
end;
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 30.10.2015 в 17:29.
Boys вне форума Ответить с цитированием
Старый 30.10.2015, 17:33   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Boys, Вы задали СТАТИЧЕСКИЙ массив. изменить его размеры в программе НЕВОЗМОЖНО.

чтобы это стало возможным, нужно выбрать один вариант из трёх
вариант 1. сделать статический массив с удвоенным числом столбцов. Хранить переменную, где отмечать, сколько столбцов занято. если нужно вставить новый столбец - увеличивать данную переменную

вариант 2. использовать динамические массивы, если они есть в вашей версии Паскаля.

вариант 3. Использовать указатели, выделять память под нужное число строк/столбцов. Это самый сложный и не надёжный (багопасный) вариант.

выбирайте, какой Вам вариант по душе.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.10.2015, 17:41   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... Так, поскольку на вопрос о динамическом массиве ты не ответил, пишу как есть:
Код:
program Ex1;
const n=5; m=6;
type dmyarray=array[1..n,1..m+1] of integer;
var a : dmyarray;
...
procedure insert();
var i,j,imax,jmax:integer;
begin
 imax:=1; jmax:=1;
 for i:=1 to n do for j:=1 to m do if a[i,j]<a[imax,jmax] then begin imax:=i;jmax:=j;end;
 for j:=m downto jmax do for i:=1 to n do a[i,j+1]:=a[i,j];
 for i:=1 to n do a[i,jmax]:=0;
end;
...
Тут твои процедуры
Годится?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2015, 17:50   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
type dmyarray=array[1..n,1..m+1] of integer;
на мой взгляд - нет, не годится!

в условии:
Цитата:
Вставить после столбцов, содержащих максимальный элемент массива
подразумевается, что таких столбцов может быть и несколько.
думаю. что после каждого столбца, содержащего максимальное значение, нужно вставить новый пустой столбец.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.10.2015, 18:47   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну пусть будет 1..m*m чтоб мало не казалось
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.11.2015, 11:49   #10
Boys
 
Регистрация: 30.10.2015
Сообщений: 8
По умолчанию

Не правильно работает
Код:
program Ex1;
const n=5; m=6;
type dmyarray=array[1..n,1..m*m] of integer;
var a : dmyarray;
procedure init(var x:dmyarray);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
x[i,j]:=random(50);
end;
procedure print(x:dmyarray);
var i,j:integer;
begin for i:=1 to n do
begin
for j:=1 to m do
write(x[i,j]:5);
writeln;
end;
writeln
end;
procedure insert(var x:dmyarray);
var i,j,imax,jmax:integer;
begin
 imax:=1; jmax:=1;
 for i:=1 to n do for j:=1 to m do if a[i,j]<a[imax,jmax] then begin imax:=i;jmax:=j;end;
 for j:=m downto jmax do for i:=1 to n do a[i,j+1]:=a[i,j];
 for i:=1 to n do a[i,jmax]:=0;
end;
begin
randomize;
init(a);
print(a);
insert(a);
print(a)
end.

Последний раз редактировалось Аватар; 02.11.2015 в 13:05.
Boys вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дан двумерный массив размером 5*6, заполненный случайным образом 1. заменить максимальный элемент каждой строки на противоположный Иляна Паскаль, Turbo Pascal, PascalABC.NET 1 20.01.2013 18:29
Дан двумерный массив размером n*m, заполненный случайным образом. enkel Паскаль, Turbo Pascal, PascalABC.NET 0 16.11.2012 18:53
Дан одномерный массив из 10 целых чисел заполненный случайным образом. denpanov Помощь студентам 3 31.10.2012 21:42
Дан двумерный массив размером n*m, заполненный случайным образом. php Matisse228 PHP 1 25.10.2012 16:34
Дан двумерный массив размером 5 х 6, заполненный случайным образом dark999 Помощь студентам 7 19.04.2011 23:05