Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 28.12.2010, 10:43   #1 (permalink)
Major_Pain
Новичок
 
Регистрация: 27.12.2010
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Сортировка одномерного массива-метод выбора и перестановки

Дан массив с (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[i]:=random(10)-5;
end;
for i:=1 to n do
begin
if c[i]<>0 then
x[i]:=c[i];
end;
begin
for i:=1 to n-1 do

begin
min:=1000;
for i:=j to n do
begin
if x[i]<min then
begin
min:=x[i];
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.
Заранее огромное спасибо)
Major_Pain вне форума   Ответить с цитированием

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

Скорее всего в схожих темах вы найдете много полезной информации

Сортировка по алфавиту
Сортировка в Паскале
Что нужно делать с WiFi после перестановки ОС?

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

А вот интересно, для кого и для чего я вчера в этой теме распинался, ошибки анализировал и т.п., если все до одного ляпсусы предыдущей благополучно перенесены в следующую программу, да еще новых добавлено? Ну как знаете.
Вот вам работающий вариант, как хотите, так и разбирайтесь:
Код:
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.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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

Опции темы
Опции просмотра

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

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




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

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