Отсортировать массив целых чисел методом вставки в порядке возрастания - Turbo Pascal
Формулировка задачи:
Дан массив целых чисел А [1.N]. Отсортировать их методом вставки в порядке возрастания (оформить в виде про
Листинг программы
- PROGRAM LAB4;
- USES CRT;
- VAR
- A: ARRAY [1..10] OF INTEGER;
- I, J, T,N, Sum, Kolich: INTEGER;
- SrArif: REAL;
- BEGIN
- CLRSCR;
- WRITE('Vvedite chislo elementov massiva N = ');
- READLN(N);
- WRITELN('Vvodite elementy massiva: ');
- FOR I := 1 TO N
- DO
- READ(A[I]);
- FOR I := 1 TO N-1
- DO
- FOR J := I + 1 to N
- DO
- IF A[J] < A[I]
- THEN
- BEGIN
- T := A[I];
- A[I] := A[J];
- A[J] := T;
- END;
- Sum := 0;
- Kolich := 0;
- FOR I := 1 TO N
- DO
- IF A[I] < 0
- THEN
- BEGIN
- Sum := Sum + A[I];
- Kolich := Kolich + 1;
- END;
- IF Kolich > 0
- THEN
- BEGIN
- SrArif := Sum / Kolich;
- Kolich := Kolich - 1
- END
- ELSE
- WRITELN('chisel, ydov uslov, net');
- WRITELN('Srednee arif= ',SrArif:4:2);
- WRITE('Otsortirovannyu po vosrastaniu massiv: ');
- FOR I := 1 TO N
- DO
- WRITE (A[I]:4);
- WRITELN;
- READKEY
- END.
Вот эту программу надо переделать, чтоб были функции и процедуры
Решение задачи: «Отсортировать массив целых чисел методом вставки в порядке возрастания»
textual
Листинг программы
- PROGRAM LAB4;
- USES CRT;
- type
- arr=ARRAY [1..10] OF INTEGER;
- VAR
- A: ARR;
- I,N: INTEGER;
- cc: REAL;
- procedure sort(var x:arr; const n:integer);
- var
- i,j,t:integer;
- begin
- FOR I := 1 TO N-1
- DO
- FOR J := I + 1 to N
- DO
- IF x[J] < A[I]
- THEN
- BEGIN
- T := x[I];
- x[I] := x[J];
- x[J] := T;
- END;
- end;
- function avg( x:arr; const n:integer):real;
- var
- sum,kolich,i:integer;
- begin
- Sum := 0;
- Kolich := 0;
- FOR I := 1 TO N
- DO
- IF A[I] < 0
- THEN
- BEGIN
- Sum := Sum + A[I];
- Kolich := Kolich + 1;
- END;
- IF Kolich > 0
- THEN
- BEGIN
- avg := Sum / Kolich;
- Kolich := Kolich - 1
- END
- ELSE
- WRITELN('chisel, ydov uslov, net');
- end;
- BEGIN
- CLRSCR;
- WRITE('Vvedite chislo elementov massiva N = ');
- READLN(N);
- WRITELN('Vvodite elementy massiva: ');
- FOR I := 1 TO N
- DO
- READ(A[I]);
- cc:=avg(a,n);
- WRITELN('Srednee arif= ',cc:4:2);
- sort(a,n);
- WRITE('Otsortirovannyu po vosrastaniu massiv: ');
- FOR I := 1 TO N
- DO
- WRITE (A[I]:4);
- WRITELN;
- END.
Объяснение кода листинга программы
- Создается программа Lab4, которая использует библиотеку CRT.
- Определяется тип данных arr, который представляет собой массив целых чисел размером от 1 до 10.
- Создаются переменные A, I, N и cc, которые представляют собой массив, индексы, номер элементов и среднее арифметическое соответственно.
- Определяется процедура sort, которая принимает массив x и его размер n в качестве параметров.
- Внутри процедуры sort происходит сортировка массива x методом вставки в порядке возрастания.
- Для каждого элемента x[i] выполняется проверка: если он меньше элемента A[i-1], то происходит обмен элементов.
- В функции avg, которая вычисляется внутри процедуры sort, происходит подсчет суммы и количества элементов массива.
- После завершения сортировки вызывается функция avg, чтобы вычислить среднее арифметическое.
- Выводится сообщение о том, что среднее арифметическое равно определенному значению.
- Выводится отсортированный массив.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д