• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Сортировка одномерного массива-метод выбора и перестановки

Major_Pain

Ученик
Регистрация
27 Дек 2010
Сообщения
9
Реакции
0
Баллы
0
Сортировка одномерного массива-метод выбора и перестановки

Дан массив с (n) . Переписать в мас¬сив х (n) все ненулевые элементы массива Затем упорядочить методом «выбора и перестановки» по возрастанию но¬вый массив.

Программа не пашет, помогите плиз...
Решение: program o;const n=10; var
c:array[1..n] of real;
x:array[1..n] of real;
i,j,n_min:integer; min,t:real;
begin
randomize;
for i:=1 to n do
begin
for i:=1 to n do
c:=random(10)-5;
end;
for i:=1 to n do
begin
if c<>0 then
x:=c;
end;
begin
for i:=1 to n-1 do

begin
min:=1000;
for i:=j to n do
begin
if x<min then
begin
min:=x;
n_min:=i;
end;
for j:=1 to n do
t:=x[n_min];
x[n_min]:=x[j];
x[j]:=t;
writeln('t=',t);
end;
end;end;
end.
Заранее огромное спасибо)
 
А вот интересно, для кого и для чего я вчера в этой теме распинался, ошибки анализировал и т.п., если все до одного ляпсусы предыдущей благополучно перенесены в следующую программу, да еще новых добавлено? Ну как знаете.
Вот вам работающий вариант, как хотите, так и разбирайтесь:
Код:
const
 n=10;
var
 c,x:array[1..n] of Integer;
 i,j,m,t:integer;
begin
 randomize;
 for i:=1 to n do
  begin
   c[i]:=random(10)-5;
   Write(c[i]:4);
  end;
 Writeln;
 Writeln;
 m:=0;
 for i:=1 to n do
  if c[i]<>0 then
   begin
    Inc(m);
    x[m]:=c[i];
    write(x[m]:4);
   end;
 Writeln;
 Writeln;

 for i:=1 to m-1 do
  for j:=1 to m-i do
   if x[j]>x[j+1] then
    begin
     t:=x[j];
     x[j]:=x[j+1];
     x[j+1]:=t;
    end;

  for i:=1 to m do
   Write(x[i]:4);
  writeln;
 readln;
END.
 
Назад
Сверху