Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2017, 20:13   #1
yoor
Новичок
Джуниор
 
Регистрация: 15.01.2017
Сообщений: 2
По умолчанию Pascal. Методы сортировок одномерного массива

Реализовать программно решение задачи с учетом следующих требований:
1. Использование подпрограмм обязательно.
2. метод и вид сортировки (по убыванию\возрастанию) запросить у пользователя

Задача:

Написать программу для сортировки только отрицательных элементов массива.

Пример: 13 -7 4 -6 -9 -1 5 7 -> -1 -4 -6 -7 -9 13 5 7
yoor вне форума Ответить с цитированием
Старый 16.01.2017, 12:34   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,985
По умолчанию

Код:
type tArr=array of integer;

procedure Sort(var p:tArr;vid:char);
var i,j,k,z:integer;
    d:boolean;
begin
   k:=0;
   For i:=Low(p) to High(p) do
      If p[i]<0 then
      begin
         z:=p[i];
         For j:=i downto k+1 do
            p[j]:=p[j-1];
         p[k]:=z;
         k:=k+1;
      end;
   If vid='u' then
      Repeat
         d:=false;
         For i:=Low(p)+1 to k-1 do
            If p[i-1]<p[i] then
            begin
               d:=true;
               z:=p[i];
               p[i]:=p[i-1];
               p[i-1]:=z;
            end;
      Until not d;
   If vid='v' then
      Repeat
         d:=false;
         For i:=Low(p)+1 to k-1 do
            If p[i-1]>p[i] then
            begin
               d:=true;
               z:=p[i];
               p[i]:=p[i-1];
               p[i-1]:=z;
            end;
      Until not d;
end;

var p:tArr;
    i,l:integer;
    vid:char;
begin
   Randomize;
   l:=5+Random(10);
   SetLength(p,l);
   For i:=0 to l-1 do
   begin
      p[i]:=-10+Random(21);
      Write(p[i]:2,'  ');
   end;
   Writeln;
   Writeln;
   Writeln('vid sort: u - ubyvanie');
   Writeln('          v - vozrastanie');
   Write('vid sort: ');Readln(vid);
   Sort(p,vid);
   For i:=0 to l-1 do
      Write(p[i]:2,'  ');
   Writeln;
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 16.01.2017, 13:17   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
метод и вид сортировки (по убыванию\возрастанию) запросить у пользователя
С видом понятно. Что имеется в виду под методом? Их (алгоритмов сортировки) не один и не два
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.01.2017, 13:30   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,985
По умолчанию

Пусть автор уточняет
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 17.01.2017, 15:21   #5
yoor
Новичок
Джуниор
 
Регистрация: 15.01.2017
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
С видом понятно. Что имеется в виду под методом? Их (алгоритмов сортировки) не один и не два
Их 3: выбор, обмен и вставка
yoor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Визуализация сортировок одномерного массива PavelDD Паскаль, Turbo Pascal, PascalABC.NET 2 15.02.2013 20:56
методы сортировок C++ Versus12243 Общие вопросы C/C++ 0 19.01.2011 22:56
Усовершенствованные методы сортировок -=Domestos=- Помощь студентам 1 20.12.2006 20:51