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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2016, 19:43   #1
yabusic
 
Регистрация: 20.11.2016
Сообщений: 6
По умолчанию Задача по паскалю

Выполнить сортировку массива двумя способами: методом прямого выбора и методом обмена. Ввод элементов массива организовать способом, указанным в варианте задания.
Кол-во элементов: 10;
Организация ввода: через константы;
Вид сортировки: по убыванию.
Заранее спасибо!
yabusic вне форума Ответить с цитированием
Старый 20.11.2016, 21:23   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

https://delphicomponent.ru/189-sorti...-v-delphi.html
digitalis вне форума Ответить с цитированием
Старый 20.11.2016, 21:39   #3
yabusic
 
Регистрация: 20.11.2016
Сообщений: 6
По умолчанию

Я знаю принцип сортировки, проблема с константами.
yabusic вне форума Ответить с цитированием
Старый 20.11.2016, 22:29   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
var a: array[0..3] of Integer = (5, 7, 1, 3);
В турбо вроде так нельзя, там только const и как выше.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.11.2016, 22:31   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от yabusic Посмотреть сообщение
Организация ввода: через константы;
Так что ли?
Код:
const 
 ARR:array[1..10]of Integer=(5,6,-7,1,2,0,1,1,55,-777);
type_Oleg вне форума Ответить с цитированием
Старый 20.11.2016, 22:35   #6
yabusic
 
Регистрация: 20.11.2016
Сообщений: 6
По умолчанию

const n=10;
const a:array[1..n] of integer = (1,2,3,4,5,6,7,8,9,10);
var i,j,k:integer;
begin
write('Исходный массив');
for i:=1 to n-1 do
for j:=1 to n-1 do
if (a[j]<a[j+1]) then
begin
k:=a[j];
a[j]:=a[j+1];
a[j+1]:=k;
end;
write('Отсортированный массив');
for i:=1 to n do
write(a[i]:4);
writeln;
end.
Говорит, что нельзя изменить значение константы.
yabusic вне форума Ответить с цитированием
Старый 21.11.2016, 08:26   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Небось PascalABC ?

так просто перенесите константу в обычный массив.
вот так:
Код:
const n=10;
 const CC:array[1..n] of integer = (1,2,3,4,5,6,7,8,9,10);
 var
   a:array[1..n] of integer;
   i,j,k:integer;
 begin
 write('Исходный массив');
 for i:=1 to n do begin a[i] := CC[i]; Write(a[i]:4,' '); end;
 WriteLn;

 
 for i:=1 to n-1 do
   for j:=1 to n-1 do
      if (a[j]<a[j+1]) then
        begin
         k:=a[j];
         a[j]:=a[j+1];
         a[j+1]:=k;
        end;
        
 write('Отсортированный массив');
 for i:=1 to n do write(a[i]:4);
 writeln;
 end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.11.2016, 12:58   #8
yabusic
 
Регистрация: 20.11.2016
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Небось PascalABC ?

так просто перенесите константу в обычный массив.
вот так:
Код:
const n=10;
 const CC:array[1..n] of integer = (1,2,3,4,5,6,7,8,9,10);
 var
   a:array[1..n] of integer;
...
Спасибо!

_____________
не злоупотребляйте излишним цитированием, цитируйте только то, что нужно для вашего ответа, остальное удаляйте!
Модератор

Последний раз редактировалось Serge_Bliznykov; 21.11.2016 в 13:48.
yabusic вне форума Ответить с цитированием
Старый 21.11.2016, 13:01   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Моя реализация алгоритма малость эффективнее, только на Си. Только там меняются сразу 3 элемента структуры, но это и козе понятно.

http://programmersforum.ru/showthrea...37#post1643837 ( с последующим уточнением ) ;
yabusic при ответе полное цитирование не обязательно. В других форумах за это мало-мало секут розгами и говорят "овекрквотинг" .

Последний раз редактировалось digitalis; 21.11.2016 в 13:08.
digitalis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по Паскалю daled Паскаль, Turbo Pascal, PascalABC.NET 3 15.09.2015 13:26
Задача по Паскалю 4еловек Паскаль, Turbo Pascal, PascalABC.NET 2 30.10.2012 17:30
Задача по паскалю КоварнаяНяка Помощь студентам 4 17.12.2010 21:41
Задача по паскалю DarknooB Помощь студентам 2 16.12.2010 22:35
задача по Паскалю))) Лилля Помощь студентам 2 25.09.2010 17:56