Внимание! center-referat.ru не продает дипломы, аттестаты об образовании и иные документы об образовании. Все услуги на сайте предоставляются исключительно в рамках законодательства.

Готовые дипломные, курсовые, рефераты. Вы можете бес-платно скачать любую понравившуюся работу.

Напишите программу, которая сортирует массив и находит количество различных чисел в...

Сегодня примерно в 16:11 на наш email ящик поступил вопрос, который наши модераторы от-несли к категории Разное. Постараемся дать на него полноценный ответ.

Тема вопроса с пояснением

Напишите программу, которая сортирует массив и находит количество различных чисел в нем.
Используйте алгоритм быстрой сортировки.

Пример:
Массив:
5 3 4 2 1 6 3 2 4
После сортировки:
1 2 2 3 3 4 4 5 6
Различных чисел: 5

Ответ с привлечением экспертов

Среди нашей команды есть эксперты, которые успешно отвечают на вопросы из рубрики "Информатика". Напомним, что вы задали следующий вопрос:

Напишите программу, которая сортирует массив и находит количество различных чисел в нем.
Используйте алгоритм быстрой сортировки.

Пример:
Массив:
5 3 4 2 1 6 3 2 4
После сортировки:
1 2 2 3 3 4 4 5 6
Различных чисел: 5

И сразу же ответим на него:

После проведенного совещания с другими специалистами нашего сервиса, мы склонны пола-гать, что правильный ответ на заданный вами вопрос будет звучать следующим образом:

Var i, j, h, a, z, n, k: integer;
array1: array [1..100] of integer;
array2: array [1..100] of integer;
procedure swap(var x, y: integer);
var t: integer;
begin
t := x; x := y; y := t
end;
begin
randomize;
write('Введите значение N: ');
readln(n);
for i := 1 to n do
begin
array1[i] := random(10) + 1;
end;
for i := 1 to n do
begin
writeln('Массив:');
for i := 1 to n do write(array1[i], ' ');
writeln;
end;
for h := 1 to n - 1 do
for z := 1 to n - h do
if array1[z] > array1[z + 1] then
swap(array1[z], array1[z + 1]);
for i := 1 to n do
begin
writeln('После сортировки:');
for i := 1 to n do write(array1[i], ' ');
writeln;
end;
for i:=1 to n do
begin
k := 0;
for j := 1 to n do
if array1[i] <> array1[j] then k:=k+1;
if k = n - 1 then array2[i] := array1[i];
end;
for i := 1 to n do
if array2[i] > 0 then a := a + 1;
writeln('Различных чисел: ', a);
end.

Авторские права 2002-2021 center-referat.ru