![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Amele |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 6 Пол: Женский Репутация: ![]() ![]() ![]() |
Плз, помогите решить задачу. Нужно оч срочно. Я над ней голову уже 2 недели ломаю, никак.
Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами. |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Как делала то показывай ... Минимальный и максимальный находить умеешь ? Если нет, воспользуйся поиском, решалось много-много раз.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Amele |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 6 Пол: Женский Репутация: ![]() ![]() ![]() |
Вот я её попыталась решить:
Код program rtt; var a:array [1..10] of integer; i,max,min,k,b,k1,c,v,d:integer;f:char; begin for i:= 1 to 10 do begin readln(a[i]); end; max:=a[1]; k:=1; c:=0; v:=0; min:=a[1]; k1:=1; for i:= 1 to 10 do begin if a[i]<min then begin min:=a[i]; k:=i end; if a[i]>max then begin max:=a[i]; k1:=i end; end; if (k1 mod 2=0) and (k<k1) then c:=k1 div 2 if (k1 mod 2<>0) and (k<k1) then c:=(k1-1) div 2; If (k mod 2=0) and (k1<k) then v:=k div 2 If (k mod 2<>0) and (k1<k) then v:=(k-1) div 2; for i:= k to c do begin b:=a[k+i]; a[k+i]:=a[k1-i]; a[k1-i]:=b; end; for i:= k1 to v do begin d:=a[k1+i]; a[k1+i]:=a[k-i]; a[k-i]:=d; end; for i:= 1 to 10 do begin write(a[i]:3); end; readln(f); end. Но почему-то не получается. В чем ошибки-то? |
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
uses crt; -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Amele |
![]()
Сообщение
#5
|
![]() Группа: Пользователи Сообщений: 6 Пол: Женский Репутация: ![]() ![]() ![]() |
Огромное спасибо.
|
Tan |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: ![]() ![]() ![]() |
Amele, но решение klem4 верно только если вам надо найти первый интервал на векторе. То есть код ищет первый Мах Мin или Min Max интервал и меняет порядок в нём, но если вам надо чтобы на всех возможных интервалах удовлетворяющих условию задания порядок менялся, надо доделывать. То есть вариант 1 2 3 10 4 5 6 7 8 1 выдаст 1 3 2 10 4 5 6 7 8 1, хотя по идее ответ 1 3 2 10 8 7 6 5 4 1 будет правильнее. Вообще если лексически рассмотреть вопрос, то фраза
Цитата между минимальным и максимальным элементами. подразумевает, что интервалов может быть больше 1, если бы речь шла об одном то по - идее было бы написано так : Цитата между минимальным и максимальным элементом Возможно я перемудрил.-------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 13:47 |