Решите в паскале, . 1)дан массив, отсортировать все его элементы до максимального по возрастанию. 2)дан массив, отсортировать все его элементы от минимального по возрастанию. 3)дан массив, отсортировать все его элементы от максимального до минимального по убыванию. методом пузырька
250
490
Ответы на вопрос:
1. const n=20; var a: array[1..n] of integer; max,imax,i,j,t: integer; begin randomize; writeln('исходный массив: '); for i: =1 to n do begin a[i]: =random(51)-25; write(a[i],' ') end; writeln; max: =a[1]; imax: =1; for i: =2 to n do if a[i]> max then begin max: =a[i]; imax: =i; end; writeln('max = ',max); for i: =1 to imax-1 do for j: =1 to imax-i do if a[j]> a[j+1] then begin t: =a[j]; a[j]: =a[j+1]; a[j+1]: =t end; writeln('отсортированный массив: '); for i: =1 to n do write(a[i],' '); writeln; end. пример: исходный массив: -5 -17 -19 4 -10 16 21 -23 22 24 -5 19 11 -24 6 -25 13 3 9 0 max = 24 отсортированный массив: -23 -19 -17 -10 -5 4 16 21 22 24 -5 19 11 -24 6 -25 13 3 9 0 2. const n=20; var a: array[1..n] of integer; min,imin,i,j,t: integer; begin randomize; writeln('исходный массив: '); for i: =1 to n do begin a[i]: =random(51)-25; write(a[i],' '); end; writeln; min: =a[1]; imin: =1; for i: =2 to n do if a[i]< min then begin min: =a[i]; imin: =i; end; writeln('min = ',min); for i: =1 to n-imin-1 do for j: =imin to n-i do if a[j]> a[j+1] then begin t: =a[j]; a[j]: =a[j+1]; a[j+1]: =t end; writeln('отсортированный массив: '); for i: =1 to n do write(a[i],' '); writeln; end. пример: исходный массив: 3 -24 -16 -9 -25 3 -25 17 -22 -3 8 2 -7 -8 -8 -24 -23 12 24 -24 min = -25 отсортированный массив: 3 -24 -16 -9 -25 -25 -24 -24 -23 -22 -8 -8 -7 -3 2 3 8 12 17 24 3. const n=20; var a: array[1..n] of integer; max,imax,min,imin,i,j,t: integer; begin randomize; writeln('исходный массив: '); for i: =1 to n do begin a[i]: =random(51)-25; write(a[i],' ') end; writeln; max: =a[1]; imax: =1; min: =a[1]; imin: =1; for i: =2 to n do begin if a[i]> max then begin max: =a[i]; imax: =i; end; if a[i]< min then begin min: =a[i]; imin: =i; end; end; writeln('max = ',max,' min = ',min); if imax> imin then begin for i: =1 to imax-imin-1 do for j: =imin to imax-i do if a[j]> a[j+1] then begin t: =a[j]; a[j]: =a[j+1]; a[j+1]: =t end end else begin for i: =1 to imin-imax-1 do for j: =imax to imin-i do if a[j]< a[j+1] then begin t: =a[j]; a[j]: =a[j+1]; a[j+1]: =t end; end; writeln('отсортированный массив: '); for i: =1 to n do write(a[i],' '); writeln; end. пример: исходный массив: -12 13 1 -17 -13 -10 23 5 8 -11 -9 -2 17 19 10 -5 14 10 -20 -9 max = 23 min = -20 отсортированный массив: -12 13 1 -17 -13 -10 23 19 17 14 10 10 8 5 -2 -5 -9 -11 -20 -9
Pascalabc.net 3.3.5, сборка 1650 от 01.04.2018 внимание! если программа не работает, обновите версию! procedure bubblesort(a: array of integer; descending: boolean: =false; // нужна ли сортировка по невозрастанию u: integer: =-1; // начальный индекс v: integer: =-1); // конечный индекс // простая пузырьковая сортировка элементов с индексами с u по v begin // обеспечим корректность параметров u и v if u< 0 then u: =0; var n: =a.length; if (v< 0) or (v> =n) then v: =n-1; if u> v then swap(u,v) else if u=v then exit; // собственно, сортировка if descending then begin // по невозрастанию for var i: =v-1 downto u do for var j: =u to i do if a[j]< a[j+1] then swap(a[j],a[j+1]) end else begin for var i: =v-1 downto u do // по неубыванию for var j: =u to i do if a[j]> a[j+1] then swap(a[j],a[j+1]) end end; begin write(': '); var a: =arrrandom; a.println; var (imin,imax): =(a.indexmin,a.indexmax); var b: =copy(a); write('1: '); bubblesort(b,false,0,imax); b.println; b: =copy(a); write('2: '); bubblesort(b,false,imin); b.println; b: =copy(a); write('3: '); bubblesort(b,true,imax,imin); b.println end. пример : 70 61 10 72 17 84 19 35 83 47 1: 10 17 61 70 72 84 19 35 83 47 2: 70 61 10 17 19 35 47 72 83 84 3: 70 61 84 72 17 10 19 35 83 47
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
OneLoveAltezza12.01.2022 15:45
-
verachistova116.08.2021 16:49
-
DemonDogs31.05.2022 02:16
-
Mrsir227.04.2022 16:18
-
sergey123456789101102.05.2020 08:54
-
Mas432322.12.2022 16:58
-
зайка58305.01.2021 19:29
-
Katellil304.07.2022 03:48
-
ыссмиииии15.03.2020 15:29
-
bellatrissa2105.05.2021 07:37
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.