Программу дала училка условия немного тупы хотя бы с 1 написать 2 программы на языке паскаль 1) массив чисел a1, упорядочить так, чтобы положительные и отрицательные числа чередовались, учитывая что их количество одинаковое. 2) 1: реализовать процесс полного построения алгоритма для , выполняющей следующие операции: • ввод с клавиатуры числовой последовательности (одномерного массива); • сортировка последовательности по возрастанию (убыванию) указанным методом; • поиск заданного элемента в последовательности (по вариантам) цель поиска данных: - варианты 19 – поиск ключевого (заданного) элемента; сортировку данных реализовать: - варианты 1, 9 - алгоритмом хоара в форме программы отобразить поля вывода с пояснениями для следующих данных программы: исходная последовательность; отсортированная последовательность; ключевой элемент для поиска для вариантов 1, 3, 6, 9; результат поиска
115
238
Ответы на вопрос:
1. const n=30; var a,b: array[1..n] of integer; i,j,k: integer; begin { самое сложное - создать такой массив, где положительные и отрицательные элементы будут случайно перемешаны и их будет по n/2. если организовать ввод с клавиатуры, то это гораздо проще. } randomize; { инициализация "флажком" - значением 1000 } for i: =1 to n do a[i]: =1000; { сначала генерируем n/2 случайных отрицательных на случайных местах } for i: =1 to (n div 2) do begin k: =random(50)-50; { случайное отрицательное значение } { а теперь ищем случайное свободное место } repeat j: =random(30)+1 until a[j]=1000; a[j]: =k end; { теперь осталось сгенерировать n/2 случайных положительных чисел и разместить их на свободных местах } for i: =1 to (n div 2) do begin k: =random(50)+1; { случайное положительное значение } { а теперь ищем свободное место } j: =0; repeat inc(j) until a[j]=1000; a[j]: =k end; { и только отсюда начинается собственно } writeln('исходный массив'); for i: =1 to n do write(a[i]: 4); writeln; { j - количество обработанных отрицательных, k - количество положительных, а массив строим так, что отрицательные элементы на нечетных местах } if a[1]< 0 then begin b[1]: =a[1]; j: =1; k: =0 end else begin b[2]: =a[1]; j: =0; k: =1 end; for i: =2 to n do if a[i]< 0 then begin inc(j); b[2*j-1]: =a[i] end else begin inc(k); b[2*k]: =a[i] end; writeln('результирующий массив'); for i: =1 to n do write(b[i]: 4); writeln end. тестовое решение: исходный массив 43 44 34 21 14 -26 32 35 -25 -8 42 -35 -37 12 45 -25 31 8 -16 -5 8 -25 -19 -15 -27 -16 12 26 -14 -41 результирующий массив -26 43 -25 44 -8 34 -35 21 -37 14 -25 32 -16 35 -5 42 -25 12 -19 45 -15 31 -27 8 -16 8 -14 12 -41 26
Как то так, возможно будет ошибка, я не проверял, но это можешь сделать ты var index: byte; n: longint; max; begin index: =0; max: =-32000; repet readln(n); if max< n then begin index: =index+1; max: =n; end; until n< > 0; writeln(n, ' ',index); end.
Популярно: Информатика
-
axmet201.03.2022 03:08
-
krngorohova18.05.2020 20:23
-
Аким54811.03.2023 05:34
-
Julyash10.05.2022 13:37
-
Vasyliev20.08.2022 12:14
-
nasipkalievnurz15.05.2020 10:04
-
SANNIKOVDIMA31.01.2022 16:24
-
Omursinovaa0304.11.2021 10:55
-
summani200521.08.2020 14:37
-
Елька16516.09.2020 11:27