![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Sahsok |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Исходные данные:
1.квадратная нечетная матрица размернастью (m x m ); Минимальный размер 5х5 максимальный 21х21. 2.начальные элементы матрицы нулевые. 3. троектория обхода матрицы на рисунке Программа должна обеспечивать: 1. Ввод даных с клавиатуры. 2. Вывод заданой матрицы на экран с последующим изображением процесса обхода заданной троектории. 3 Вывод в файл значений обхода матрицы (их координат), при этом имя файла вводится с клавиатуры. П.с. если задать размер отличный от того, который на рисунке,троектория должна возрасти соответственно размерам. P.p.s У меня в субботу пересдача, а меня без этой задачи на экзамен не пустят. Краем глаза видел экзаменационные билеты: ТАКОГО там точно нет. Я не могу понять к чему такие задачи дают на специальности, которые к компам имеют косвенное отношение. Эскизы прикрепленных изображений ![]() |
![]() ![]() |
dushik |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 49 Пол: Мужской Репутация: ![]() ![]() ![]() |
Обход в твоей задаче состоит из четырех частей:
1. "бугорки" внизу матрицы. 2. Вертикальная "палка" слева (хотя это обходом можно и не считать). 3. "Ступеньки" в левом верхнем углу. 4. И треугольник вверху. Я зделал первые три пункта, последний, скажу честно, лень. Просто вижу никто не торопится тебе делать задачу, так что на хотя бы это: Код Uses CRT; Const m = 11; Var mat : Array [1..m, 1..m] of Byte; FName : String; F : Text; i, j : Integer; n, k : Integer; l : Integer; flag : Boolean; Begin ClrScr; Write('File Name: '); ReadLn(FName); Assign(F, FName); ReWrite(F); For i := 1 to m do Begin For j := 1 to m do Begin mat[i, j] := 0; End; End; n := Round(m / 4); i := m; j := m; flag := True; l := 0; While (j > 0) do {obhod 1} Begin if (flag) Then Begin if (l = 0) Then Begin for k := i DownTo i-n+1 do Begin mat[k, j] := 1; j := j - 1; End; i := k+1; End Else Begin for k := i DownTo i-n+2 do Begin mat[k, j] := 1; j := j - 1; WriteLn(F, '(', k, ';', j, ')'); End; i := k+1; End; End Else Begin for k := i To m do Begin mat[k, j] := 1; j := j - 1; l := l + 1; WriteLn(F, '(', k, ';', j, ')'); End; i := k - 1; End; flag := not flag; End; {konez 1-ogo obhoda} n := (m div 2) + 1; {2-oy obhod} j := 1; for i := k DownTo n do Begin mat[i, j] := 1; WriteLn(F, '(', i, ';', j, ')'); End; l := n - 1; {3-iy obhod} for k := 1 to l do Begin for j := 1 to n do Begin mat[i, j] := 1; WriteLn(F, '(', i, ';', j, ')'); End; i := i - 1; n := n - 1; End; mat[1, 1] := 1; WriteLn(F, '(1;1)'); For i := 1 to m do Begin WriteLn; For j := 1 to m do Begin if (mat[i, j] = 1) Then TextColor(Green) Else TextColor(White); Write(mat[i, j], '|'); End; End; ReadLn; Close(F); End. Сообщение отредактировано: dushik - -------------------- На самом деле самого дела нет. В самой деятельности заключена самость дела и наоборот. Наоборот получим оборот на, таким образом перевернем образ...
|
![]() ![]() |
![]() |
Текстовая версия | 10.09.2025 3:06 |