Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 23.12.2012, 16:14   #1 (permalink)
Serega61
Новичок
 
Регистрация: 23.12.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Сортировка массива

дан массив x(n). Переписать в массив y(n) элементы массива x, большие 3. Затем упорядочить методом "выбора и перестановки" по возрастанию новый массив. Подскажите как убрать нули в массиве после перестановки?

program sort_2;
const n=10;
var
x: array [1..n] of real;
y: array [1..n] of real;
k,i,j,n_min: integer; min,temp: real;
begin
writeln('Массив Х');
randomize;
for i:=1 to n do
begin
x[i]:=random(100)-50;
write(x[i]:4:0);
end;
writeln;
writeln('Массив Y');
k:=1;
for i:=1 to n do
begin
if x[i]>3 then
begin
y[k]:=x[i];
write('b[',k,']=',y[k],' ');
k:=k+1;
end;
end;
writeln;
//------------------------------------
for j:=1 to n do
begin
min:=1000;
for i:=j to n do
begin
if y[i]<min then
begin
min:=y[i];
n_min:=i;
end;
end;
temp:=y[n_min];
y[n_min]:=y[j];
y[j]:=temp;
end;
writeln('после сортировки');
for i:=1 to n do
write(' ',y[i]);
writeln
end.

Результат:

Массив Х
-25 -24 -37 45 -25 -4 3 -17 42 26
Массив Y
b[1]=45 b[2]=42 b[3]=26
после сортировки
0 0 0 0 0 0 0 26 42 45
Serega61 вне форума   Ответить с цитированием

Старый 23.12.2012, 16:14
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

На форуме найдены следующие темы, которые имеют схожее содержание с вашей темой

Сортировка на C#
Сортировка в Vista
Сортировка по алфавиту

Старый 23.12.2012, 17:26   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Serega61 Посмотреть сообщение
Подскажите как убрать нули в массиве после перестановки?
Да... опять на те же грабли.
Прежде всего, необходимо зафиксировать длину нового массива Y. В том варианте, который предложил я, она равна k, в Вашем варианте это k-1. В следующей части программы всюду вместо n нужно поставить k-1.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 22:41.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.