![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
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 - 5.01.2005 14:42 -------------------- На самом деле самого дела нет. В самой деятельности заключена самость дела и наоборот. Наоборот получим оборот на, таким образом перевернем образ...
|
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 14:05 |