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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2012, 23:43   #1
Svoloch
 
Регистрация: 03.11.2012
Сообщений: 8
По умолчанию Двумерный массив

Необходимо обработать несколько одномерных массивов объединенных в двумерный массив

Два массива размером 200 и 5 элементов, соответственно, заполните в случайном порядке символами, коды которых расположены в диапазоне от 40 до 200. Проверить входит ли меньший массив полностью в больший и, если это так, то в большем массиве все элементы, принадлежащие меньшему массиву, заменить на символы "пробел". Выполните сортировку полученных массивов. Для контроля результата сделайте распечатку массивов, в том числе исходного.

С одномерными массивами все в порядке, я заполнил их,распечатал, рассортировал.см.ниже
Код:
var
a:array[1..200] of char;
b:array[1..5] of char;
i,n,j,k:integer;
t:char;
begin
randomize;
writeln('исходный массив а');
for i:=1 to 200 do
begin
n:=random(161)+40;
a[i]:=chr(n);
write(a[i],' ');
end;
writeln('исходный массив b');
for i:=1 to 5 do
begin
n:=random(161)+40;
b[i]:=chr(n);
write(b[i],' ');
end;
for i:=1 to 5 do
for j:=1 to 200 do
if b[i]=a[j] then
begin
inc(k);
break;
end;
writeln;
writeln('k=',k);
if k=5 then
for i:=1 to 200 do
for j:=1 to 5 do
if a[i]=b[j] then a[i]:=' ';
for i:=1 to 200 do
for j:=2 to 200 do
if a[j]<a[j-1] then
begin
t:=a[j];
a[j]:=a[j-1];
a[j-1]:=t;
end;
writeln('новый массив а');
for i:=1 to 200 do
write(a[i],' ');
for i:=1 to 5 do
for j:=2 to 5 do
if b[j]<b[j-1] then
begin
t:=b[j];
b[j]:=b[j-1];
b[j-1]:=t;
end;
writeln('новый массив b');
for i:=1 to 5 do
write (b[i],' ');
readln;
end.
А как с этой задачей сделать двумерный массив что то не разберусь. Но я так понял программа похожая должна быть и поменяться должно буквально несколько строк.Помогите пожалуйста сделать двумерный массив.
Svoloch вне форума Ответить с цитированием
Старый 02.12.2012, 00:05   #2
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Cначала описываете тип массив.
Код:
type
  mass = array[1..50] of char;
Потом объявляете массив типа, описанного выше:
Код:
a:array[1..50] of mass;
Ну и в коде программы, где были циклы под одномерный массив, добавляем внутри ещё один цикл.
Вот примерно так
Код:
begin
  randomize;
  writeln('исходный массив а');
  for i:=1 to 50 do
  begin
    
    for j := 1  to 50 do
    begin
      n:=random(161)+40;
      a[i][j]:=chr(n);
      write(a[i][j],' ');
    end;
  end;
  writeln('исходный массив b');
  for i:=1 to 5 do
  begin
    n:=random(161)+40;
    b[i]:=chr(n);
    write(b[i],' ');
  end;
for i := 1 to 5 do
  for j := 1 to 50 do
    for d := 1 to 50 do
      if b[i]=a[j][d] then
      begin
        inc(k);
        break;
      end;
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com

Последний раз редактировалось kventin_zhuk; 02.12.2012 в 00:07.
kventin_zhuk вне форума Ответить с цитированием
Старый 02.12.2012, 00:16   #3
Svoloch
 
Регистрация: 03.11.2012
Сообщений: 8
По умолчанию

а что такое
Код:
a:array[1..50] of mass
?
вроде у меня таких цифр нет. есть 200 и 5.
и еще двумерный массив вроде записывается так
Код:
var
a:array[1..N,1..M] of char
?
Svoloch вне форума Ответить с цитированием
Старый 02.12.2012, 00:22   #4
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Цитата:
Сообщение от Svoloch Посмотреть сообщение
а что такое
Код:
a:array[1..50] of mass
?
вроде у меня таких цифр нет. есть 200 и 5.
и еще двумерный массив вроде записывается так
Код:
var
a:array[1..N,1..M] of char
?
1. Я выше объявил тип mass, это массив из 50-ти символов. А дальше объявил массив типа mass(массив массивов).
2. Цифры 50 взял из головы, выберите их таким образом, чтобы у вас получился двухмерный массив 200 элементов (10 * 20 например)
3. Да, так тоже объявляются двухмерные массивы, но тогда , чтобы получить доступ к элементу массива нужно будет писать a[i, j]. В моём же случае нужно будет писать a[i][j].
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 02.12.2012, 00:52   #5
Svoloch
 
Регистрация: 03.11.2012
Сообщений: 8
По умолчанию

Понятно. только теперь почему то когда ввожу счетчики
Код:
i,n,j,k:integer;
t:char;
Компилятор выдает ошибку, что вместо запятых надо "=" поставить. Почему так?
Svoloch вне форума Ответить с цитированием
Старый 02.12.2012, 00:58   #6
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Цитата:
Сообщение от Svoloch Посмотреть сообщение
Понятно. только теперь почему то когда ввожу счетчики
Код:
i,n,j,k:integer;
t:char;
Компилятор выдает ошибку, что вместо запятых надо "=" поставить. Почему так?
Не совсем понял, какие счётчики вы вводите?
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 02.12.2012, 00:59   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Почему так?
; где-то выше этих строк забыл поставить видимо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2012, 01:02   #8
Svoloch
 
Регистрация: 03.11.2012
Сообщений: 8
По умолчанию

";" стоит перед счетчиками везде

Цитата:
Не совсем понял, какие счётчики вы вводите?
Ну так после массивов счетчики мне надо ввести, как я вводил в примере в самом начале когда разбирался с одномерными массивами

Вообщем ввел как Вы сказали, кучу ошибок выдает.

Последний раз редактировалось Stilet; 02.12.2012 в 01:21.
Svoloch вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив Seferus Паскаль, Turbo Pascal, PascalABC.NET 0 28.06.2012 23:17
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Двумерный массив Daemon88 Паскаль, Turbo Pascal, PascalABC.NET 4 29.04.2011 13:57
Двумерный Массив shket07 Паскаль, Turbo Pascal, PascalABC.NET 2 15.03.2011 11:14
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40