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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2015, 12:26   #1
skyline17
Новичок
Джуниор
 
Регистрация: 04.01.2015
Сообщений: 4
По умолчанию Процедуры и функции

В одномерном массиве определить максимальное значение. Рассортировать до максимального значения по возрастанию. Результат вывести. Затем рассортировать после максимального значения по возрастанию и снова вывести. А затем рассортировать весь массив и снова вывести.

В программе должны быть и процедуры и функции.

Моя Программа:


Код Pascal
Код:
Const n=10;
type mas=array[1..n] of integer;
var Massiv:mas;
    max,i,pozicia,j,c:integer;
 
procedure vivod(Massiv:mas);
var i:integer;
begin
 for i:=1 to n do
  write(Massiv[i],' ');
writeln;
end;
begin
 for i:=1 to n do
  begin
   write('Введите ',i,' элемент');
   readln(Massiv[i]);
  end;
write('Входной массив ');
vivod(Massiv);
 max:=Massiv[1];
 pozicia:=1;
 for i:=1 to n do
  if Massiv[i]>max then
   begin
    max:=Massiv[i];
    pozicia:=i;
   end;
  for i:=pozicia-1 downto 2 do
  for j:=1 to i do
   if Massiv[j]>Massiv[j+1] then
    begin
     c:=Massiv[j];
     Massiv[j]:=Massiv[j+1];
     Massiv[j+1]:=c;
    end;
write('первое преобразование ');
vivod(Massiv);
for i:= pozicia+1 to n-1 do
   for j:=i+1 to n do
    if Massiv[i]>Massiv[j] then
     begin
      c:=Massiv[i];
      Massiv[i]:=Massiv[j];
      Massiv[j]:=c;
     end;
write('второе преобразование ');
vivod(Massiv);
for i:=n-1 downto 2 do
  for j:= 1 to i do
    if Massiv[j]>Massiv[j+1]  then
     begin
      c:=Massiv[j];
      Massiv[j]:=Massiv[j+1];
      Massiv[j+1]:=c;
     end;
write('Итоговое преобразование ');
vivod(Massiv);
 
readln;
end.
Нужно добавить Сортировку в мою программу или написать вашу.

Последний раз редактировалось Stilet; 04.01.2015 в 14:51.
skyline17 вне форума Ответить с цитированием
Старый 06.01.2015, 17:29   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

Код:
//----- сортируем по размеру в порядке возрастания --------------------
c1,c2,c3:Integer;         
for j:=1 to n-1 do for i:=1 to n-1 do
         begin
            c1:=Massiv[i];
            c2:=Massiv[i+1];
            if(c2<c1)then
            begin
               c3:=Massiv[i+1];//запоминаем i+1-й элемент
               Massiv[i+1]:=Massiv[i];//сдвигаем на 1 вверх
               Massiv[i]:=c3;//меняем на большее значение
            end;
         end;
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось Stilet; 06.01.2015 в 17:58.
NetSpace вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры и функции. Владимир93 Помощь студентам 8 20.03.2014 18:31
Процедуры и функции - Заданы три двумерных массива одинаковой размерности. Написать фукнции и процедуры их обработки sekirei Паскаль, Turbo Pascal, PascalABC.NET 8 21.11.2013 15:45
процедуры и функции..... Грета Помощь студентам 2 27.12.2011 21:40
процедуры и функции allegri Помощь студентам 2 09.01.2011 21:16
процедуры и функции stud3nt Паскаль, Turbo Pascal, PascalABC.NET 6 02.07.2010 14:11