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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2012, 17:46   #1
dragodar
Пользователь
 
Регистрация: 30.09.2012
Сообщений: 51
По умолчанию работа с масивами в Делфи7

Помогите пожалуйста я проболел а на завтра надо написать прогу в Дельфи 7...описываю требуемую задачу

написать массив и заполнить главную диагональ числами 0 а также заполнить дополнительную диагональ 0 при пересечении диагоналей пишется число -1
Если число строк и колонок непарное то -1 пишется ровно в пересечении
если число строк и колонок парное то -1 пишется как

0_____0
_0____0
__-1-1
__-1 -1
_0_____0
0_______0
(так выглядит задача парного массива)
Заранее спасибо!

Последний раз редактировалось dragodar; 14.10.2012 в 17:49.
dragodar вне форума Ответить с цитированием
Старый 14.10.2012, 17:47   #2
dragodar
Пользователь
 
Регистрация: 30.09.2012
Сообщений: 51
По умолчанию

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

Последний раз редактировалось dragodar; 14.10.2012 в 17:51.
dragodar вне форума Ответить с цитированием
Старый 14.10.2012, 17:51   #3
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

объясните понятие парный и не парный массив... это четное и нечетное количество строк и столбцов?... и дополнительная диагональ не побочной ли называется?...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 14.10.2012, 19:16   #4
dragodar
Пользователь
 
Регистрация: 30.09.2012
Сообщений: 51
По умолчанию

да да просто у меня с русским небольшие проблемы))))
dragodar вне форума Ответить с цитированием
Старый 14.10.2012, 19:47   #5
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
var
mas : array [1..20,1..20] of integer;
i,j, n : integer;
begin
write(' Введите размерность матрицы ');
readln(n);
// заполение матрицы нулями
for i:=1 to n do
  for j:=1 to n do
    mas[i,j] := 0;


if odd(n) then // если нечетное
  begin
    mas[n div 2 + 1, n div 2 + 1] := -1;
  end
else // если четное
  begin
    for i:= n div 2 to n div 2 + 1 do
      for j:= n div 2 to n div 2 + 1 do
        mas[i,j] := -1;
  end;
// вывод результата
for i:=1 to n do
  begin
    for j:=1 to n do
      write(mas[i,j] :3);
   writeln;
  end;


end.
подгоните под себя если что...

второй вариант... с рандомным заполнением чисел
Код:
var
mas : array [1..20,1..20] of integer;
i,j, n : integer;
begin
write(' Введите размерность матрицы ');
readln(n);
randomize;
// заполняем матрицу случайными значениями
for i:=1 to n do
  for j:=1 to n do
    mas[i,j] := random(26) - 25;

// обнуляем диагонали
for i:=1 to n do
  for j:= 1 to n do
      if (i = j) or ( i = n - j + 1) then
         mas[i,j] := 0;

// заполняем пересечение
if odd(n) then // если нечетное
  begin
    mas[n div 2 + 1, n div 2 + 1] := -1;
  end
else
  begin
    for i:= n div 2 to n div 2 + 1 do
      for j:= n div 2 to n div 2 + 1 do
        mas[i,j] := -1;
  end;

for i:=1 to n do
  begin
    for j:=1 to n do
      write(mas[i,j] :3);
   writeln;
  end;


end.
пишу код не только за печеньки

Последний раз редактировалось VIK_aka_TOR; 14.10.2012 в 19:52.
VIK_aka_TOR вне форума Ответить с цитированием
Старый 14.10.2012, 20:03   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И от меня тоже идея:
Код:
const n=8;
var i,j:integer;
begin
 for i:=1 to n do begin
  for j:=1 to n do begin
    if
     (
       not odd(n)
       and   ((i>=(n div 2)) and (i<=(n-(n div 2)+1)))
       and((j>=(n div 2)) and (j<=(n-(n div 2)+1)))
     ) or (
      odd(n) and (i=(n div 2+1)) and (j=(n div 2+1))
     )
    then write(-1:3)
    else    write(0:3);
  end; writeln;
 end;
 readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.10.2012, 20:09   #7
dragodar
Пользователь
 
Регистрация: 30.09.2012
Сообщений: 51
По умолчанию

у меня выводится ошибка raised exception class einouterror with message 'i/o error 105' что эт такое???

Последний раз редактировалось dragodar; 14.10.2012 в 20:48.
dragodar вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с масивами vlgolu Помощь студентам 0 12.06.2012 01:00
работа с масивами Универ Паскаль, Turbo Pascal, PascalABC.NET 1 29.05.2012 00:59
работа с последовательностями и масивами (С++) kochet-kov Помощь студентам 24 19.12.2010 16:29
Работа с 1Д масивами Паскаль art_d Помощь студентам 6 24.11.2010 13:57
Работа с масивами. Dukem Помощь студентам 3 25.09.2010 21:43