0 / 0 / 0
Регистрация: 08.03.2012
Сообщений: 13

Написать программу для заполнения трех двумерных массивов последующего их вывода. Есть решение на C, помогите переписать на Pascal

04.04.2012, 11:01. Показов 2609. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Условие задачи
Напишите программу для заполнения трех двумерных массивов последующего их вывода.
Первый массив, размерностью n на m, заполняется данными, вводимыми с клавиатуры, так что заполнение ведется по диагоналям параллельным главной, начиная с правого верхнего угла.
Второй массив, размерностью n на n, заполняется случайными числами так, что в каждом столбце получается убывающая последовательность элементов.
Третий массив, размерностью n на n, заполняется для произвольного n так же, как для n=5.

Название: 233365fb555e.jpg
Просмотров: 348

Размер: 4.2 Кб

В последнем случае необходимо:
1)Описать построение массива для двух разных n;
2)Написать программу;
3)Привести трассировку для n=4.

Алгоритм работы
Первый массив заполняем следующим образом: вводим элементы в двумерный массив, как сказано в условии, при этом предварительно проверяем индекс элемента. Если индекс не попадает в массив, то производим корректировку, например, при вылезании за границы массива вправо, очередным будет элемент в первой строке следующей диагонали и т.п.
Второй массив: для получения убывающей последовательности в столбцах будем заполнять массив таким образом, что каждый вновь задаваемый элемент меньше предыдущего в столбце за счет уменьшения вышестоящего элемента на любое число от 1 до 40.
Третий массив: заполнение ведем по строкам и столбцам, чередуя, при этом после заполнения пары строка-столбец меняем направление заполнения. Одновременно уменьшается и количество недостающих элементов в строках и столбцах. Например, при n=4, заполнение массива идет так: - заполняем первую строку (4 числа), - уменьшаем количество заполняемых элементов (3) - заполняем последний столбец, начиная со второй строки(3 числа) - меняем направление - заполняем последнюю строку, начиная с предпоследнего элемента (3 числа) - уменьшаем количество заполняемых элементов (2) - заполняем первый столбец, начиная с предпоследней строки (2 числа) - меняем направление - заполняем вторую строку со второго столбца (2 числа) - уменьшаем количество заполняемых элементов (1) - заполняем предпоследний столбец с третьей строки (1 число) - меняем направление - заполняем третью строку с третьего элемента (1 число) - массив заполнен.

Есть решение задачи на С. Помогите, пожалуйста, переписать его на языке Pascal.

C
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
//Первый массив:
void main( void )
{
  int N, M, i, x, y, Mas[20][20];;
 
   cout <<"Введите кол-во строк n= ";
 cin >>N;
 cout <<"Введите кол-во столбцов m= ";
 cin >>M;
 x = 1;
 y = M;
  for (i = 1; i <= N * M; i ++)
  {
/* Возврат в начало следующей диагонали, если вылезли вниз */
    if  (x>N)
    { while (y!=1)
        {x--;
        y--;}
     x++;}
 
/* Возврат в начало следующей диагонали, если вылезли вправо */
    if  (y>M)
    { while (x!=1)
        { x--;
          y--;}
      y--;
    }
/* Возврат в начало следующей диагонали, если вылезли вверх */
    if  (x<1)
    { while (x!=1)
        { x++;
         y++;}
    }
/* Возврат в начало следующей диагонали, если вылезли влево */
   if  (y<1)
    { while (y!=1)
        { x++;
          y++;}
    }
/* Вводим значение элемента массива */
    cout<<"["<<x<<"]["<<y<<"]= ";
    cin>>Mas[x][y];
/* Переходим к следующей */
    x ++;
    y ++;
  }
 
 /* Вывод массива */
  for (x = 1; x <= N; x++)
  {
    for (y = 1; y <= M; y++)
      cout<<" "<<Mas[x][y];
      cout<<endl;
  }
}
 
//Второй массив:
void main( void )
{
  int N, i, x, y, Mas[20][20];;
 
   cout <<"Введите порядок матрицы n= ";
 cin >>N;
 
randomize();
 for (x = 1; x<=N ; x++)
  {
     for (y = 1; y<=N; y++)
    {
    Mas[x][y]=Mas[x-1][y]-random(40)-1;
    }
  }
 
 
 /* Вывод массива */
  for (x = 1; x <= N; x++)
  {
    for (y = 1; y <= N; y++)
      cout<<" "<<Mas[x][y];
      cout<<endl;
  }
}
 
//Третий массив:
void main ()
{
int result[100][100];
int x,y,d,max,i,j,n;
 
cout <<"\n n=";
cin>>n;
 
   y = 0;
   x = 1;
   max = n*n;
   i = n;
   d = 1;
//заполняем массив
   while (i>=1)
   {
     for (j=1;j<=i;j++)
      {y=y+d;
       result[x][y] = max;
       max--;
      }
    i--;
     for (j=1;j<=i;j++)
      {
       x=x+d;
       result[x][y]=max;
       max--;
      }
    d=d*(-1);
   }
 
 
//выводим массив
    for (i=1;i<=n;i++)
     {
        cout<<endl;
           for (j=1;j<=n;j++)
              {  cout.width(2);
             cout <<result[i][j] <<" ";}
     }
    
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.04.2012, 11:01
Ответы с готовыми решениями:

Напишите программу для заполнения трех двумерных массивов и последующего их вывода
Напишите программу для заполнения трех двумерных массивов и последующего их вывода. Первый массив, размером m×n, заполняется...

Написать программу для двумерных массивов
Найти среднее арифметическое элементов каждого столбца матрицы B(N,M) (N&lt;=10;M&lt;=15) и переписать их в одномерный массив C. Положительные...

Какие есть виды массивов (кроме одномерных, двумерных и двумерных ступенчатых массивов)?
Какие есть виды массивов (кроме одномерных, двумерных и двумерных ступенчатых массивов)? И почему такая вот запись является...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.04.2012, 11:01
Помогаю со студенческими работами здесь

Написать программу. Сортировка двумерных массивов
Отсортировать строки двумерного массива в порядке возрастания максимальных элементов строк.

Написать программу, определяющую для каждого из трех массивов количество перемен знаков
Написать программу,определяющую для каждого из трех одномерных массивов: А ,В , С количество перемен знаков. Написать функции: -...

Алгоритм заполнения двумерных массивов
помогите написать алгоритм для заполнения матрицы nXn 1 6 7 2 5 8 3 4 9 и вторая на фото

Реализация заданного алгоритма заполнения двумерных массивов
Добрый день, уважаемые форумчане! Помогите пожалуйста реализовать следующие алгоритмы заполнения двумерных массивов: 1) Имеются два...

Написать программу обработки двумерных массивов, используя динамическое размещение данных
Сформировать вектор из наименьших значений элементов столбцов и найти их среднее арифметическое помогите написать программу..


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru