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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2012, 18:11   #1
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию Паскаль. Одномерный и двумерный массив.

Возникла проблема преобразования одномерного массива в двумерный.
Я в первой процедуре создал одномерный массив, а во второй пытаюсь его преобразовать, но получается так, что в каждой строке у меня одинаковые числа, например, 24 24 24 24 24
3 3 3 3 3
12 12 12 12 12
............
Вот, мои наработки:
Код:
Procedure OM(Var m1:mas1; Var m2:mas2; Var i:integer);
Var e,bd:integer;
a:mas2;
Begin
For i:=1 to 110 do begin
 m1[i]:=Random(60)-30;
 Write('| x',i:0,' = ',m1[i]:0,' |');
 end;
 Writeln;
end;

Procedure DM1(Var m2:mas2; m1:mas1; i:integer);
Begin
 For i:=10 to 13 do begin
  For j:=10 to 15 do begin
  m2[i,j]:=m1[i];
  Write(m2[i,j]:5);
  end;
  writeln;
 end;
end;
Женька Good вне форума Ответить с цитированием
Старый 19.03.2012, 18:31   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

так первое
Зачем здесь
Цитата:
Код:
Procedure OM(Var m1:mas1; Var m2:mas2; Var i:integer); Одно не используется другое можно как локаль!
Var e,bd:integer; вот это
a:mas2; //для чего?
Begin
For i:=1 to 110 do begin
 m1[i]:=Random(60)-30;
 Write('| x',i:0,' = ',m1[i]:0,' |');
 end;
 Writeln;
end;
Потом что каасаемо
Цитата:
Код:
Procedure DM1(Var m2:mas2; m1:mas1; i:integer);
Begin
 For i:=10 to 13 do begin
  For j:=10 to 15 do begin
  m2[i,j]:=m1[i]; //счётчик идёт только по строкам! Не правильно в итоге по массиву пробегаете 
  Write(m2[i,j]:5);
  end;
  writeln;
 end;
end;
Да и тем более вы заграницы улезете!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 19.03.2012, 21:21   #3
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Код:
Procedure OM(Var m1:mas1);
Var i:integer;
Begin
For i:=1 to 110 do begin
 m1[i]:=Random(60)-30;
 Write('| x',i:0,' = ',m1[i]:0,' |');
 end;
 Writeln;
end;

Procedure DM1(Var m2:mas2; m1:mas1);
Begin
 For i:=1 to 5 do begin
  For j:=1 to 3 do begin
  m2[i,j]:=m1[j+3*(i-1)];
  Write(m2[i,j]:5);
  end;
  writeln;
 end;
end;
Вот так вот работает, а как изменить m2[i,j]:=m1[j+3*(i-1)], чтобы числа из одномерного массива начинались браться с 10 элемента, а не с 1-ого?
Женька Good вне форума Ответить с цитированием
Старый 19.03.2012, 21:33   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

ну вот так
Код:
Procedure DM1(Var m2:mas2; m1:mas1);
var
    k: integer;
Begin
   k := 10;
 For i:=1 to 5 do begin
  For j:=1 to 3 do begin
  m2[i,j]:=m1[k];
  Write(m2[i,j]:5);
    Inc(k);
  end;
  writeln;
 end;
end;
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 19.03.2012, 21:36   #5
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
ну вот так
Код:
    Inc(k);
что вот это значит?
Женька Good вне форума Ответить с цитированием
Старый 19.03.2012, 21:38   #6
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

На будущее можно вот тут спросить
ОН ВСЁ ЗНАЕТ
Inc(k) То же самое что k := k+1;
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 19.03.2012, 21:41   #7
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

k:=k+1;
Вот это называется инкремент. Увеличение числа на единицу
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный и двумерный массив Almost456 Паскаль, Turbo Pascal, PascalABC.NET 6 25.12.2012 18:30
Двумерный и одномерный массив(в VBA) Артем8 Помощь студентам 0 11.06.2010 12:34
одномерный и двумерный массив на VB2008 twikker Помощь студентам 2 17.04.2010 01:24
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Одномерный и двумерный массив [Паскаль] Ximer Помощь студентам 6 15.05.2009 16:15