Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массивы, принцып действия 
:(
    Опции темы
Neo007
  Дата 24.4.2006, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 21.3.2006

Репутация: нет
Всего: нет



Постоянно мучаюсь с массивами....
обьясните кто нибудь как с ними совладать. Каждый раз даються в заданиях двумерные массивы с множеством циклов, смотря на эту путаницу цифр просто пугаюсь и закрываю книгу...
Обьясните как легче высчитывать большие цепи цыклов в массивах.
Вот например: 
Код

program massiv2;
 const   num=10; var i,j,k : integer;
 ms: array[1..num, 1..num] of integer;
 begin
     i:=1;
   repeat
     for j:=1 to num do
          ms[i,j]:=0;
   i:=i+1
   until i>num;
   k:=1;
   for i:=1 to 7 do
     begin
    j:=4-i; if j<1 then j:=1;
   while(j <= 6-i) do
      begin  ms[i,j]:=k; k:=k+1; j:=j+1; end;
    j:=5+i;
   while((j <= 7+i) and (j<=num)) do
      begin  ms[i,j]:=k; k:=k+1; j:=j+1  end;
     end;
   for i:=1 to num do
     begin writeln;
           for j:=1 to num do write( ms[i,j]:7)
     end;
    end.

Как разобраться в этой путанице? с чего лучше всего начать? 
И ведь ещё надо учесть по чему выравниваеться массив по строчкам или столбцам...
 
PM MAIL   Вверх
volvo877
Дата 24.4.2006, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(Neo007 @  24.4.2006,  20:12 Найти цитируемый пост)
с чего лучше всего начать? 
С форматирования кода... Сравни тот код, что был у тебя с этим (заметь, КОД один и тот же):

Код

program massiv2;
const
  num=10;

var
  i, j, k: integer;
  ms: array[1 .. num, 1 .. num] of integer;

begin
  i:=1;
  repeat

      for j:=1 to num do ms[i, j]:=0;
      i:=i+1

  until i>num;

  k:=1;
  for i:=1 to 7 do begin

      j:=4 - i;
      if j<1 then j := 1;
      while(j <= 6-i) do begin
          ms[i,j]:=k; k:=k+1; j:=j+1;
      end;

      j:=5+i;
      while((j <= 7+i) and (j<=num)) do begin
          ms[i,j]:=k; k:=k+1; j:=j+1
      end;

  end;

  for i:=1 to num do begin
      writeln;
      for j:=1 to num do write( ms[i,j]:7)
  end;

end.
Чувствуешь разницу? Структура программы должна просматриваться, а не каша... Иначе программа будет просто нечитабельна (по крайней мере для новичка).

P.S. Смысла использования в первом цикле Repeat ... Until я не понял. Зачем? Чтобы усложнить программу? Можно же обойтись обычным For-ом... 
PM MAIL   Вверх
TatyanaQueen
Дата 15.5.2006, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 15.5.2006

Репутация: нет
Всего: нет



Что должно получиться в итоге и есть ли ошибки?
Type a=array[1..3] of real
var b:a
c: array [1..3] of a
d: array [1..5]
c [5,3]
c [3,5]
d [1]:=b[1]
Помогите SOS 
PM MAIL   Вверх
Rondo
Дата 15.5.2006, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 24.2.2006
Где: там..

Репутация: нет
Всего: нет



Код

type 
  a=array[1..3] of real
var 
  b:a
  c: array [1..3] of a
  d: array [1..5]


а это что? 
Код

  c [5,3]
  c [3,5]
  d [1]:=b[1]
 
--------------------
Начинающий кодер  
PM MAIL ICQ   Вверх
MacTep
Дата 16.5.2006, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Цитата(TatyanaQueen @  15.5.2006,  21:43 Найти цитируемый пост)
Type a=array[1..3] of real
var b:a
c: array [1..3] of a
d: array [1..5]
c [5,3]
c [3,5]
d [1]:=b[1]

А вот всем этом деле вообще точки с запятыми не ставятся??? Если нет, то это ошибка. Это раз. А два - последние три строчки тоже не понимаю. 


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Palladin
Дата 26.6.2006, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: нет
Всего: 17



ну, поидеи, индекс через запятую smile а где автор вообще smile  


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1129 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.