Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/22: Рейтинг темы: голосов - 22, средняя оценка - 4.73
 Аватар для Cooper Black
5 / 5 / 0
Регистрация: 17.10.2009
Сообщений: 11

Сортировка,Рекурсия

27.11.2009, 19:36. Показов 4748. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста решить задачки...заранее спасибо!
1)Массив записей содержит фамилии участников соревнования по прыжкам в длину и результаты трех попыток.Расположите записи в порядке занятых спортсменами мест.
P.s В программе должны присутствовать процедуры или функции, и метод сортировки если возможен.
2)Разработайте рекурсивную функцию нахождения максимального элемента данной последовательности

Название: Безымянный.jpg
Просмотров: 323

Размер: 3.1 Кб
P.s Задачу надо решить с помощью рекурсивных процедур и функций
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.11.2009, 19:36
Ответы с готовыми решениями:

Рекурсия: сортировка элементов массива по возрастанию
Помогите не могу понять где ошибка, может что-то не дописал, но массив не сортируется по возрастанию чисел((( Program laksikogr_perest; ...

Блок схема.Сортировка «Пузырьком», Сортировка методом «Последовательных перестановок», Сортировка «Вставками»
Помогите, нужны блок схемы Сортировка «Вставками» Program Vstavka; uses dos; Type mass=array of integer; Var i,b,n,j,a:...

1)Бинарный поиск 2)Сортировка включением 3)Шейкерная сортировка 4)Сортировка разделением
1)В заданном массиве К(N) найти индексы элементов, которые кратны минимальному значению элемента массива. 2)Задан массив AX (N). Добавить...

14
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.11.2009, 20:25
2.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
uses crt;
type mas=array[1..50]of integer;
var a:mas;
    n,i:integer;
function Max(n:integer):integer;
var w:integer;
begin
if n>1 then
 begin
  w:=Max(n-1);
  if a[n]<w then Max:=w
  else Max:=a[n]
 end
else Max:=a[1]
end;
 
begin
clrscr;
randomize;
write('Razmer massiva A n=');
readln(n);
writeln('Massiv A:');
for i:=1 to n do
  begin
    a[i]:=random(20);
    write(a[i],' ');
  end;
writeln;
write('max=',Max(n));
readln
end.
2
 Аватар для Cooper Black
5 / 5 / 0
Регистрация: 17.10.2009
Сообщений: 11
27.11.2009, 20:35  [ТС]
Спасибо огромное! а в первую хотя бы по какому алгоритму решать?..
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.11.2009, 20:37
Cooper Black, По алгоритму быстрой сортировки qwicksort, могу скинуть для числового массива, а для записей сам сделаешь, мне некогда писать программу.
1
 Аватар для Cooper Black
5 / 5 / 0
Регистрация: 17.10.2009
Сообщений: 11
27.11.2009, 20:38  [ТС]
скинь пожалуйста, я сам попробую..)
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.11.2009, 20:41
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
uses crt;
type massiv=array [1..5000] of integer;
var
  x:massiv;
  i,n:integer;
procedure sort(l,r:integer);
var
  i,j,x1,y1,m: integer;
begin
  i:=l;
  j:=r;
  m:=round ((l+r)/2);
  x1:=x[m];
  repeat
    while x[i]<x1 do inc(i);
    while x[j]>x1 do dec(j);
    if i<=j then 
     begin
      y1:=x[i];
      x[i]:=x[j];
      x[j]:=y1;
      inc(i);
      dec(j);
     end;
  until i>j;
  if l<j then sort(l,j);
  if i<r then sort(i,r);
end;
 
begin
clrscr;
randomize;
write('Введите размер массива не более 5000 n=');
readln(n);
writeln('Исходный массив:');
for i:=1 to n do
  begin
   x[i]:=random(50)-10;
   write(x[i],' ');
  end;
writeln;
sort(n,1);
writeln('Массив после сортировки: ');
for i:=1 to n do
write(x[i],' ');
readln;
end.
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
27.11.2009, 22:28
Puporev, а разве не проще будет пузырьком? Тем более что они этого еще не учили... Тут же не сказано какой именно сортировкой...
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.11.2009, 22:31
Inadequate, А чем быстрая хуже? Разделил пополам и сортируй пузырьком по частям.
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
28.11.2009, 01:58
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
type
  rec=record
    Sur:string[20];
    P1,P2,P3:real;
    Place:integer;
  end;
var
  a,b:array[1..1000]of rec;
  i,j,max,pl:integer;
begin
  writeln('Ââåäèòå êîëè÷åñòâî ñïîðòñìåíîâ...');
  readln(max);
  for i:=1 to max do
  begin
    write('Ôàìèëèÿ: ');
    readln(a[i].Sur);
    write('Ïåðâàÿ ïîïûòêà: ');
    readln(a[i].P1);
    write('Âòîðàÿ ïîïûòêà: ');
    readln(a[i].P2);
    write('Òðåòüÿ ïîïûòêà: ');
    readln(a[i].P3)
  end;
  {âûïîëíÿåì ñîðòèðîâêó ìàññèâà}
  for i:=1 to max do
    for j:=i to max do
      if (a[i].P1+a[i].P2+a[i].P3)<(a[j].P1+a[j].P2+a[j].P3) then
      begin
        b[i].Sur:=a[i].Sur;
        a[i].Sur:=a[j].Sur;
        a[j].Sur:=b[i].Sur;
        b[i].P1:=a[i].P1;
        a[i].P1:=a[j].P1;
        a[j].P1:=b[i].P1;
        b[i].P2:=a[i].P2;
        a[i].P2:=a[j].P2;
        a[j].P2:=b[i].P2;
        b[i].P3:=a[i].P3;
        a[i].P3:=a[j].P3;
        a[j].P3:=b[i].P3
      end;
  {âûâîäèì âñåõ ñïîðòñìåíîâ}
  writeln('Òàáëèöà ðåêîðäñìåíîâ:');
  for i:=1 to 3 do
    writeln(a[i].Sur,' ',a[i].P1,' ',a[i].P2,' ',a[i].P3,' ',i,' ìåñòî')
end.
1
 Аватар для Storm255
0 / 0 / 0
Регистрация: 17.10.2009
Сообщений: 46
28.11.2009, 02:14
всуну своих пять копеек)):в начале второй прописываем Uses crt; в начале ибо не пашет в абц просто так)
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.11.2009, 08:06
Inadequate, Это у тебя рекурсивная сортировка? Я думал ты знаешь рекурсивный пузырек, аж удивился.

Добавлено через 9 минут
И потом зачем сортировать все поля отдельно? Это же запись.
Да и сумму баллов можно сразу в записи считать.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
rec=record
    Sur:string[20];
    P1,P2,P3,sm:real;
    Place:integer;
  end;
  .....................
var x:rec;
................  
for i:=1 to max do
  begin
    write('Фамилия: ');
    readln(a[i].Sur);
    write('Первая попытка: ');
    readln(a[i].P1);
    write('Вторая попытка: ');
    readln(a[i].P2);
    write('Третья попытка: ');
    readln(a[i].P3)
    a[i].sm:=a[i].p1+a[].p2+a[i].p3;  
    end;  
......................
for i:=1 to max do
for j:=i to max do
if a[i].sm<a[j].sm then
 begin
  x:=a[i];
  a[i].:=a[j];
  a[j]:=x;
 end;
2
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
28.11.2009, 12:08
Цитата Сообщение от Puporev Посмотреть сообщение
Это у тебя рекурсивная сортировка?
а где здесь написано про рекурсию?
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.11.2009, 12:10
Inadequate, Прошу прощения, я так понял, а автору вообще пофиг.
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
28.11.2009, 12:29
Цитата Сообщение от Puporev Посмотреть сообщение
И потом зачем сортировать все поля отдельно? Это же запись.
Да и сумму баллов можно сразу в записи считать.
А вот за это действительно не подумал... Спасибо...

Добавлено через 12 минут
посмотрел на ссвоё решение, понял, что написал чушь полную,(зачем то завел второй массив, не сделал проверку, завел лишнюю переменную, лоханулся с записями... да уж бывают тупняки...). Вот так всё должно было выглядеть:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
type
  rec=record
    Sur:string[20];
    P1,P2,P3,res:real;
    Place:integer;
  end;
var
  a:array[1..1000]of rec;
  temp:rec;
  i,j,max:integer;
begin
  writeln('Ââåäèòå êîëè÷åñòâî ñïîðòñìåíîâ...');
  readln(max);
  for i:=1 to max do
  begin
    write('Ôàìèëèÿ: ');
    readln(a[i].Sur);
    write('Ïåðâàÿ ïîïûòêà: ');
    readln(a[i].P1);
    write('Âòîðàÿ ïîïûòêà: ');
    readln(a[i].P2);
    write('Òðåòüÿ ïîïûòêà: ');
    readln(a[i].P3);
    a[i].res:=a[i].P1+a[i].P2+a[i].P3;
  end;
  {âûïîëíÿåì ñîðòèðîâêó ìàññèâà}
  for i:=1 to max do
    for j:=i to max do
      if (a[i].res)<(a[j].res) then
      begin
        temp:=a[i];
        a[i]:=a[j];
        a[j]:=temp
      end;
  {âûâîäèì âñåõ ñïîðòñìåíîâ}
  writeln('Òàáëèöà ðåêîðäñìåíîâ:');
  for i:=1 to 3 do
    if i<=max then
      writeln(a[i].Sur,' ',a[i].P1,' ',a[i].P2,' ',a[i].P3,' ',i,' ìåñòî')
end.
1
 Аватар для Cooper Black
5 / 5 / 0
Регистрация: 17.10.2009
Сообщений: 11
28.11.2009, 15:12  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Inadequate, Прошу прощения, я так понял, а автору вообще пофиг.
автору не пофиг..он тихо наблюдает за происходящим.и в первой действительно не нужна рекурсия....

Но все равно, спасибо вам обоим что доделали задачу!..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.11.2009, 15:12
Помогаю со студенческими работами здесь

Рекурсия
Напишите пожалуйста 2 задачи на рекурсию, только как можно проще и если не трудно, распишите действия

Рекурсия
Здравствуйте. Такое задание: Даны натуральные числа p, r, k. Получить f(k), где f(x)= { x, если 0&lt;x&lt;9; g(x)...

Рекурсия
Помогите,пожалуйста,с программой.Вычисляет неправильно,а разобраться не могу,где ошибаюсь.( ...

Рекурсия
Помогите пожалуйста написать программу по теме: рекурсия! она в вордовском файлике)

Сортировка массивов. Сортировка выбором
Помогите пожалуйста, я что-то совсем запуталась при составлении данной программы... Сортировка выбором. Дана последовательность чисел...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru