В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
deneleslamov2
deneleslamov2
20.05.2023 09:53 •  Информатика

Дан массив из 20 произвольных
элементов, каждый из
которых не больше 80
Отсортируйте массив в
порядке возрастания.
на паскаль ​

Показать ответ
Ответ:
fgydsgfgysa
fgydsgfgysa
24.09.2022 20:25
Как ч понял сортировка по неубыванию это сортировка по возрастанию. То есть легкие элементы всплывают наверх, а тяжелые перемещаются вниз:

//Pascal
const m = 1000
var
    arr: array[1..m] of integer;
    n,i, j, k: integer;
begin
    readln(n);
    write ('Исходный массив: ');
    for i := 1 to n do begin
        readln(arr[i]);
    end;
//сортировка методом пузырька   
    for i := 1 to n-1 do
        for j := 1 to n-i do
            if arr[j] > arr[j+1] then begin
                k := arr[j];
                arr[j] := arr[j+1];
                arr[j+1] := k
            end;
 
    write ('Отсортированный массив: ');
    for i := 1 to n do
        write (arr[i]:4);
end.

Алгоритм сортировки на классическом языке программирования С

# define SWAP(A,B) {A=A^B;B=A^B;A=A^B;}
void bubblesort(int A[], int n)
 {
     int i, j;
     for(i = n-1 ; i > 0 ; i--)
          { for(j = 0 ; j < i ; j++)
               {
                   if( A[j] > A[j+1] ) SWAP(A[j],A[j+1]);
               }
           }
   }
0,0(0 оценок)
Ответ:
Айринчик
Айринчик
22.12.2021 06:00
1. Вот так сейчас решают подобные задачи:

// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
  Writeln(Range(1,100).Select(i->sin(i)*cos(i)).Where(x->x<>0).Average)
end.

Тестовое решение:
-0.00136006072493969

2. А вот так учат писать это же школьные учителя:

// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
var
  m:array[1..100] of real;
  i,k:integer;
  s:real;

begin
  s:=0;
  k:=0;
  for i:=1 to 100 do begin
    m[i]:=sin(i)*cos(i);
    if m[i]<>0 then begin
      s:=s+m[i];
      k:=k+1
      end
    end;
  Writeln(s/k)
end.

Тестовое решение:
-0.00136006072493969
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота