|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.11.2008, 16:34 | #1 |
Регистрация: 19.10.2008
Сообщений: 7
|
Pascal-процедуры и функции
1.Создать два одномерных массива А и В различной длины. Рассортировать числа до максимального значения по возрастанию. Результат вывести. Затем рассортировать числа, расположенные после максимального значения по возрастанию и снова вывести. И, наконец, рассортировать весь массив по возрастанию и снова вывести.
с применением процедур и функций. Результаты выводить в отдельных окнах и различным цветом. |
16.11.2008, 17:27 | #2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
И что, к чему это условие задачи, совсем не понятно...
E-Mail: arigato.freelance@gmail.com
|
17.11.2008, 20:03 | #3 |
Регистрация: 19.10.2008
Сообщений: 7
|
ПРИМЕР:
Даны два массива 1) 34 12 54 24 3 6 2) 34 56 67 3 4 0 Т.е необходимо: а)отсортировать массив 1) по возрастанию до МАКСИМАЛЬНОГО ЗНАЧЕНИЯ = 54 таким образом чтобы получился массив 12 34 54 24 3 6 б)После этот же массив 1) необходимо отсортировать по возрастанию но уже ПОСЛЕ максимального элемента массива т.е. получится 34 12 54 3 6 24 Аналогичные опреации проделать с массивом 2) Вот моя зарисовка......... program PRIM_2; const na=5; nb=10; type mas=array[1..nb] of real; var a, b:mas; i:integer; Procedure SOZD(var d:mas; k:integer);{создание массива} begin for i:=1 to k do d[i]:=random*500; end; Procedure VIVOD(d:mas; k:integer; t:string);{вывод массива} begin writeln(t); for i:=1 to k do write(d[i]:0:0, ' '); writeln; end; function max(d:mas; k:integer):real;{выявление максимального элемента массива} var i:integer; m:real; c:real; begin m:=-maxint; for i:=1 to k do if d[i]>m then m:=d[i]; max:=m; end; procedure SORT(var d:mas; k:integer);{попытка отсортировать массив до максимального элемента} var c:real; begin i:=1; repeat if d[i]>d[i+1] then begin c:=d[i]; d[i]:=d[i+1]; d[i+1]:=c; if i>1 then dec(i) end else inc(i); until i>=k or d[i]=???;{так и не понял чему приравнять d[i] чтоб он прекпащал сортировку, т.е выходил из цикла когда d[i] равнялся бы максимальному значению в массиве} end; BEGIN randomize; SOZD(a, na); VIVOD(a, na, 'massiv A'); writeln('max_mas A=', max(a, na):0:0); SORT(a, na); VIVOD(a, na, 'massiv A posle'); SOZD(b, nb); VIVOD(b, nb, 'massiv B'); writeln('max_mas B=', max(b, nb):0:0); readln END. Больше всего меня интересует как отсортировать массив по возрастанию до максимального значения и после максимального значения.... P.S.за ранее благодарен за содействие)) |
18.11.2008, 14:30 | #4 |
Участник клуба
Регистрация: 10.11.2008
Сообщений: 1,502
|
1. найти индекс максимального элемента
2. Если самая простая пузырьковая, то Код:
Нормальное состояние техники - нерабочее, все остальное частный случай.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Процедуры и функции | V25 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 17.11.2008 20:02 |
Функции и процедуры | _Антон_ | Помощь студентам | 4 | 15.11.2008 19:58 |
Turbo Pascal. Задача на функции/процедуры | Manchester | Помощь студентам | 8 | 14.11.2008 22:00 |
Процедуры и функции | KulOle | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 26.10.2008 14:18 |
Процедуры и функции | 11111 | Помощь студентам | 10 | 26.11.2007 15:06 |