Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 06.10.2009
Сообщений: 24
1

Заполнить матрицу в соответствии со схемой

10.06.2010, 22:24. Показов 801. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача - Дано натуральное N (1≤N≤10). Заполнить матрицу порядка N×N целыми числами 0, 1, 2, 3, …,
N^2–1 в соответствии со схемой расположенной ниже.



Программа работает , НО при вводе N=1 вылетает . Помогите найти и исправить ошибку .

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
uses crt;
var
 n:integer;
const
  nmax=10;
 
type
  TArray = array [1..nmax, 1..nmax] of Integer;
 
{Procedura vivodit matricu na ekran}
procedure Print(const a: TArray);
var
  i, j: integer;
begin
  for i := 1 to n do begin
    writeln;
    for j := 1 to n do begin
      write(a[i, j]:4);
    end;
  end;
end;
 
{Procedura sozdaet matricu i zapolnyaet ee v ykazannom poryadke}
procedure Create(var a: TArray);
var
  i, j, k: integer;
begin
 
   k := 0;
 
   i := 1;
   j := 1;
 
   a[i, j] := k;
 
   repeat
 
     if j < n then
       begin
         inc(j);
         inc(k);
         a[i, j] := k;
       end
     else
       begin
         inc(i);
         inc(k);
         a[i, j] := k;
       end;
 
        while (j > 1) and (i < n) do
          begin
            dec(j);
            inc(i);
            inc(k);
            a[i, j] := k;
          end;
 
           if i < n then
             begin
               inc(i);
               inc(k);
               a[i, j] := k;
             end
           else
             if j < n then
             begin
               inc(j);
               inc(k);
               a[i, j] := k;
             end;
 
              while (i > 1) and (j < n) do
              begin
                dec(i);
                inc(j);
                inc(k);
                a[i, j] := k;
              end;
 
   until (i = n) and (j = n);
end;
 
var
  a: TArray;
begin
  clrscr;
  writeln('vvedite n');
  readln(n);
  Create(a);
  Print(a);
  readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2010, 22:24
Ответы с готовыми решениями:

Заполнение матрицы в соответствии со схемой
Дано натуральное N (1&lt;=N&lt;=10). Заполнить матрицу порядка NxN целыми числами 1, 2, 3, …, N в...

Произвести сортировку элементов квадратной матрицы в соответствии с заданной схемой
помогите пожалуйста с задачкой условие: произвести сортировку элементов квадратной матрицы в...

Произвести сортировку элементов квадратной матрицы в соответствии с заданной схемой
Произвести сортировку элементов квадратной матрицы в соответствии с заданной схемой Порядок...

Заполнить массив A[NxN] случайными числами. Развернуть матрицу на 180 градусов и полученную матрицу сложить с исходной.
Пожалуйста помогите написать программу. Заполнить массив A случайными числами. Развернуть...

3
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
10.06.2010, 22:34 2
Цитата Сообщение от iYoung Посмотреть сообщение
НО при вводе N=1 вылетает
А какой смысл вводить 1?
Естественно вылетит при таких условиях
Pascal
1
2
while (j > 1)
while (i > 1)
1
1 / 1 / 0
Регистрация: 06.10.2009
Сообщений: 24
10.06.2010, 22:40  [ТС] 3
смысл в том , что без Н=1 задачу не принимают у меня . Сейчас поправлю условия , спасибо
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
10.06.2010, 22:43 4
Ну напиши типа
Pascal
1
2
3
4
5
6
7
8
9
writeln('vvedite n');
readln(n);
if n=1 then
 begin
  writeln('Нет ни одного шага, программа завершена!');
  readln;
  exit;
 end;
.........
1
10.06.2010, 22:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2010, 22:43
Помогаю со студенческими работами здесь

Изменить вид представления степенного ряда в соответствии со схемой Горнера
Работа с рекуррентными последовательностями. 13.2. Изменить вид представления степенного ряда в...

Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали
Паскаль.Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной...

Построчно ввести матрицу целых чисел 5х5 (любые целые числа), вторую матрицу заполнить случайными числами
Построчно ввести матрицу целых чисел 5х5 (любые целые числа), вторую матрицу заполнить случайными...

Заполнить матрицу целыми числами в соответствии со схемой
Дано натуральное N (1&lt;=N&lt;=10). Заполнить матрицу размера NxN целыми числами 0, 1, 2, 3, …,N^2-1 в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru