![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
I_am_HATED |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Женский Реальное имя: Ольга Репутация: ![]() ![]() ![]() |
1. Нахождение максимального значения в массиве среди всех чётных чисел. Длина массива вводится с клавиатуры. Печатать элементы массивы по 9 штук, по формату :6. Тип обрабатываемых данных - целые.
2. Заполнить двумерный массив A(MxN) элементов символами из одномерного массива В (длиной не более 256 элементов) "змейкой" от конца к началу - сперва N-ю строку справа налево, затем N-1-ю слева направо и т.д. Массив B предварительно заполняется из входного текстового файла. Оба массива распечатать. Предельные значения числа строк 16, столбцов 16. Тип обрабатываемых данных - символьный. Помогите решить, я что-то путаюсь в них.. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Что сама делала? Или хотя бы пыталась делать?
Что является основной проблемой при решении? Цитата Помогите решить Ключевое слово выделено, ты начинай, сделай хоть что-то, а мы поможем... |
Krjuger |
![]()
Сообщение
#3
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Черт взяли и удалила именно ту тему,куда писал)))По поводу второй задачи, заполнять змейкой,то что то в духе
k:=1;{индекс массива В}
s:=1;{переменная для чередования строк}
for i:=n downto 1 do begin
if s mod 2=0 then begin
for j:=1 to m do begin
A[i,j]:=B[k];
k:=k+1;
end;
else
for j:=m downto 1 do begin
A[i,j]:=B[k];
k:=k+1;
end;
end;
s:=s+1;
end;
Вот сам процесс заполнения,сначала справа налево,а потом меняеться.Так же надо предусмотреть когда массив В станет пустым,чтоб нули не приписывать. УЧТИ.Я лиш подал идею.Это не является решением твоей задачи.(чтоб это стало решением задачи, нужно еще доделать) Сообщение отредактировано: Krjuger - |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
"Змеек" как минимум 4 способа выложено на форуме, половина из них - в FAQ-е, отлаженные и оттестированные. Зачем опять велосипед - непонятно... Что, поиск можно отключать, никто не пользуется? Устроили здесь соревнования Formula I, главное быстрее ответить и счетчик накрутить?
|
Krjuger |
![]()
Сообщение
#5
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Нет, мне действительно интересно порешать такие задачки в свободное время))))насчет фака,иногда там бывают( конешно же все рабочие и отлаженые) задачи,но довольно "высоко" написанные.я имею в виду их писали бывалые програмисты,а не особо понимающим людям их решения тьма кромешная и им надо что нибудь попроще))
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Попроще - не значит правильнее, правда? Вот у тебя в решении - явное дублирование кода. Избавишься от условия if внутри цикла по строкам, +1 в репутацию тебе обеспечен (за освоение новых, более интересных, чем ты сейчас это делаешь, методов решения
![]() |
Krjuger |
![]()
Сообщение
#7
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Хорошо побежал подключать аспирантов...
![]()
k:=1;{индекс массива В}
s:=1;{переменная для чередования строк}
for i:=n downto 1 do begin
for j:=1 to m do begin
if s mod 2=0 then
A[i,j]:=B[k];
else
A[i,m-j+1]:=B[k];
k:=k+1;
end;
s:=s+1;
end;
Лучше этого придумать пока что ничего не смог. Сообщение отредактировано: Krjuger - |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Даже не думай, я ж еще и вопросы задавать буду, почему так, а не иначе...
![]() |
Krjuger |
![]()
Сообщение
#9
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Мож тогда чему нибудь и научусь
![]() Эм ну и где моя обещанная концетка*? Сообщение отредактировано: Krjuger - |
-volvo- |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата ну и где моя обещанная концетка*? Ты ж от if-а не избавился ![]() |
Krjuger |
![]()
Сообщение
#11
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
k:=1;{индекс массива В}
s:=m;{переменная для чередования строк}
p:=m;
d:=1;
for j:=m downto 1 do begin
for i:=n downto 1 do begin
A[i,s]:=B[k];
s:=abs(s-p)+1;
k:=k+m;
end;
d:=d+1;
k:=d;
s:=p-1;
end;
Не бей сильно,я не знаю будет работать или нет))))паскаля нету щас с собой(не дома).Это все на что меня хватило,но это уже изврат) |
Lapp |
![]()
Сообщение
#12
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
я не знаю будет работать или нет)))) Не, не будет ![]() Хоть я и не Паскаль..)) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Krjuger |
![]()
Сообщение
#13
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Ну подкиньте хоть идейку....Хотяб из теории,а то что то мой нерациональный ум ничего рационального не придумывает,а самому уже стало интересно.пока что я дошел только до варианта,где кол во строк четно.
Сообщение отредактировано: Krjuger - |
Lapp |
![]()
Сообщение
#14
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Ну подкиньте хоть идейку.. А при чем тут количество строк?... пока что я дошел только до варианта,где кол во строк четно. Идейку?.. Ну, смотри. Сделай переменную для величины изменения, d. Сначала положи d:=-1. Потом во внешнем цикле (в конце) умножай ее на -1. Второй индекс, i2, сначала положи равным m, а потом так: Inc(i2,d). -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Krjuger |
![]()
Сообщение
#15
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
k:=1;{индекс массива В}
s:=1;{переменная для чередования строк}
for i:=n downto 1 do begin
j:=m;
while (s mod 2=0) and (j>=1) do begin
A[i,j]:=B[k];
k:=k+1;
j:=j-1;
end;
while (s mod 2<>0) and (j>=1) do begin
A[i,m-j+1]:=B[k];
k:=k+1;
j:=j-1;
end;
s:=s+1;
end;
Вот еще вариантик.олько,что то мне подсказывает,что его ты тоже забракуеш,потому что Цитата Вот у тебя в решении - явное дублирование кода Опять же пишу из универа.через чужой ноут без паскаля(в плане паскаля у человека нет). Сообщение отредактировано: Krjuger - |
Unconnected |
![]()
Сообщение
#16
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Компилятор в голове... самонадеянно
![]() -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Lapp |
![]()
Сообщение
#17
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
что то мне подсказывает,что его ты тоже забракуеш,потому что Не только поэтому. Ты заменил if на while - и думаешь, прокатит? ))Цитата Вот у тебя в решении - явное дублирование кода Чем моя "идейка" не понравилась? вникай..)) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Krjuger |
![]()
Сообщение
#18
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Я не знаю почему,но на момент размещения своего варианта,я твою идею,не видел.насчет -1,щас посмотрим...)))
Unconnected компилятора в голове нету(процессор слишком слабенький,не тянет),задача больше математическая.Жаль до -1 сам не дошел( Сообщение отредактировано: Krjuger - |
Unconnected |
![]()
Сообщение
#19
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
uses crt;
const m=5;n=5;z=25;
var i,j,f:byte;
d:integer;
b:array[1..z] of byte;
a:array[1..m,1..n] of byte;
begin
clrscr;
randomize;
for i:=1 to z do
begin
b[i]:=random(10);
write(b[i],' ');
end;
readln;
d:=-1;
f:=1;
i:=m;
j:=n;
repeat
repeat
a[i,j]:=b[f];
write(a[i,j],' ');
delay(50000);
inc(f);
j:=j+d;
until (j+d=-1) or (j+d=n+1);
d:=-d;
dec(i);
writeln;
until (i=0);
readln;
end.
Мой вариант:) Не знаю правда, это ли Lapp имел в виду, когда говорил про d:=-1;, но кажется принцип похож) Сообщение отредактировано: Unconnected - -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#20
|
Гость ![]() |
Цитата но кажется принцип похож) Принцип, может, и похож, но у тебя вылет по ошибке 201 - Range Check, проверяй ![]() (не забудь включить контроль границ, естественно) |
![]() ![]() |
![]() |
Текстовая версия | 22.04.2025 5:34 |