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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2013, 21:01   #1
lena-tus
Пользователь
 
Регистрация: 16.05.2012
Сообщений: 10
Восклицание Сортировка в одномерном массиве

1. Задан одномерный массив из 8 элементов строкового типа со значением в диапазоне. Разработать программу, которая осуществляет упорядочение массива по невозрастанию методом «прямого выбора»
2. Задан одномерный массив из 8 элементов вещественного типа со значением в диапазоне -10-45..10+38 . Разработать программу, которая осуществляет упорядочение массива по невозрастанию методом «простого обмена»
Помогите реализовать на Паскале!

Последний раз редактировалось lena-tus; 16.02.2013 в 21:12.
lena-tus вне форума Ответить с цитированием
Старый 16.02.2013, 21:19   #2
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

Не поленилась переписать задание. Молодец. А так могла бы фотку нужной страницы учебника с телефона выложить. Может покажешь что ты писала и что не вышло? Просто интересно, может теме место в разделе фриланс.
execom вне форума Ответить с цитированием
Старый 16.02.2013, 21:28   #3
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

1)Прямой выбор
Код:
{$APPTYPE CONSOLE}
program VR;
const
N=8;
var
a:array[1..N] of integer;
buf:integer;
j,i:integer;
begin
  writeln('Vvedite massiv iz 8 elementov');
  for i:=1 to N-1 do
   read (a[i]);
   readln(a[N]);
   writeln('Sort...');
   for i:=1 to n-1 do
     for j:=i+1 to n do
       if a[i]>a[j] then
         begin
          Buf:=a[i];
          a[i]:=a[j];
          a[j]:=Buf;
         end;
   for j:=1 to n do
          write(a[j],' ');
          writeln;
  readln;
end.
2) Простой обмен(пузырек)
Код:
{$APPTYPE CONSOLE}
program VR;
const
N=8;
var
a:array[1..N] of integer;
buf:integer;
j,i:integer;
begin
  writeln('Vvedite massiv iz 8 elementov');
  for i:=1 to N-1 do
   read (a[i]);
   readln(a[N]);
   writeln('Sort...');
   for i:=1 to N-1 do
     begin
       for j:=1 to N-1 do
         begin
           if a[j]>a[j+1] then
             begin
               buf:=a[j];
               a[j]:=a[j+1];
               a[j+1]:=buf;
             end;
         end;
        for j:=1 to n do
          write(a[j],' ');
          writeln;
     end;
  readln;
end.
если пишешь на паскале то первую строку замени на USES CRT;

Последний раз редактировалось execom; 16.02.2013 в 21:37.
execom вне форума Ответить с цитированием
Старый 16.02.2013, 21:37   #4
lena-tus
Пользователь
 
Регистрация: 16.05.2012
Сообщений: 10
По умолчанию

Если со второй еще как-то разберусь, то в первой не могу понять как, каким образом элементы строкового типа сортировать. Думаю необходимо определить длину строки, сформировать одномерный массив и его упорядочить. Но как это сделать практически? Увы и ах...( Пожалуйста, помогите.
lena-tus вне форума Ответить с цитированием
Старый 16.02.2013, 21:39   #5
lena-tus
Пользователь
 
Регистрация: 16.05.2012
Сообщений: 10
По умолчанию

Большое спасибо за помощь (за задачу 2) И... я не волшебник, я еще только учусь!
lena-tus вне форума Ответить с цитированием
Старый 16.02.2013, 21:42   #6
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

ну очевидно надо строки по ASCII сортировать.. В общем пример простейшей реализации сортировок я привел тебе осталось только правильно типизировать под свою задачу.
execom вне форума Ответить с цитированием
Старый 16.02.2013, 21:56   #7
lena-tus
Пользователь
 
Регистрация: 16.05.2012
Сообщений: 10
По умолчанию

Спасибо за вимание и помощь!
lena-tus вне форума Ответить с цитированием
Старый 16.02.2013, 21:56   #8
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

возможно правильно будет примерно так
1)
Код:
{$APPTYPE CONSOLE}
program VR;
const
N=8;
var
a:String;
buf:Char;
j,i:integer;
begin
  writeln('Vvedite massiv iz 8 simvolov v rjad');
   readln(a);
   writeln('Sort...');
   for i:=1 to n-1 do
     for j:=i+1 to n do
       if ord(a[i])>ord(a[j]) then
         begin
          Buf:=a[i];
          a[i]:=a[j];
          a[j]:=Buf;
         end;
   for j:=1 to n do
          write(a[j],' ');
          writeln;
  readln;
end.
2)
Код:
{$APPTYPE CONSOLE}
USES SysUtils;
const
N=8;
var
a:array[1..N] of real;
buf:real;
j,i:integer;
st : string;
begin
  writeln('Vvedite massiv iz 8 veshestvennih elementov');
  for i:=1 to N-1 do
  begin
   readln(st);
   a[i]:=StrToFloat(st);
  end;
   writeln('Sort...');
   for i:=1 to N-1 do
     begin
       for j:=1 to N-1 do
         begin
           if a[j]>a[j+1] then
             begin
               buf:=a[j];
               a[j]:=a[j+1];
               a[j+1]:=buf;
             end;
         end;
        for j:=1 to n do
          write(a[j]:5,2,' ');
          writeln;
     end;
  readln;
end.
увы проверить не могу т.к. среды под рукой нет
execom вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатели в одномерном массиве, Си zenya21 Помощь студентам 1 10.12.2012 13:26
Зацикливание в одномерном массиве. torren108 Помощь студентам 2 09.12.2011 21:41
пв одномерном массиве... Avvakymova Паскаль, Turbo Pascal, PascalABC.NET 4 13.05.2011 19:53
Группа в одномерном массиве BaronVik Помощь студентам 5 21.10.2010 05:58
Поиск в одномерном массиве Joxter Помощь студентам 6 13.12.2008 14:19