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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2017, 16:18   #1
yelloww
Новичок
Джуниор
 
Регистрация: 30.04.2017
Сообщений: 1
По умолчанию Функция в массиве

Помогите пожалуйста заменить действия с 38 строчки по 46,которые ищут максимальный элемент в массиве
Код:
begin 
max := a[k]; 
max_i := k; 
for i := k-1 downto 1 do 
if a[i] > max then 
begin 
max := a[i]; 
max_i := i; 
end;
, на функцию, которая уже делает эти действия. То есть мне нужно,чтобы функция была отражена в основной программе,а вот эти действия с 38 по 46 строчки ушли. Сама в целом задача: Одномерный массив заполнить случайными целыми числами. Упорядочить числа в массиве по возрастанию методом простого выбора, с помощью функции.


Код:
Uses crt; 
var 
b, i, k, n, max, max_i,n1,n2: integer; 
a: array of integer; 

function maxsimum(c:array of integer;n1,n2:integer):integer; 
var max,maxi,i:integer; 
begin 
max:=c[n1]; 
maxi:=n1; 
for i:=n1+1 to n2 do 
begin 
if c[i]>max then 
begin 
max:=c[i]; 
maxi:=i; 
end; 
end; 
maxsimum:=maxi; 
end; 

begin 
clrscr; 
setlength(a,1000) ; 
randomize; 
write('Введите длину массива '); 
read(n); 
for i := 1 to n do 
begin 
a[i] := random(25) - 12; 
write(a[i], ' '); 
end; 
writeln; 
write('Введите промежуток, на котором нужно найти максимальный элемент');writeln; 
read(n1,n2); 
writeln('Номер максимального элемента на этом промежутке:',maxsimum(a,n1,n2)); 
b:=a[n]; 
a[n]:=a[maxsimum(a,1,n)]; 
a[maxsimum(a,n1,n2)]:=b; 
for k := n-1 downto 1 do 
begin 
max := a[k]; 
max_i := k; 
for i := k-1 downto 1 do 
if a[i] > max then 
begin 
max := a[i]; 
max_i := i; 
end; 
b := a[k]; 
a[k] := max; 
a[max_i] := b; 
end; 
for i := 1 to n do write(a[i], ' '); 
end.
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 01.05.2017 в 12:40.
yelloww вне форума Ответить с цитированием
Старый 01.05.2017, 11:44   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,537
По умолчанию

С помощью функции - не получится - функция возвращает одно значение указанного типа. Для сортировки нужно применить подпрограмму (процедуру), параметрами которой будет имя массива и количество элементов. Вот в эту п/п и записать "действия с 38 по 46 строчки"

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


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция минимального количества изменений в массиве Alexpyth Python 1 12.11.2016 18:14
Функция перестановки элементов в массиве - C (Си) JamesFord Помощь студентам 0 25.12.2015 15:04
Функция поиск в массиве Sylar9 Общие вопросы C/C++ 3 30.03.2012 21:18
Вопрос: Функция поиска максимума в массиве. krugolet Общие вопросы C/C++ 5 20.12.2011 19:14
функция нахождения max/min эл-та в массиве Zhenya-Pvl Паскаль, Turbo Pascal, PascalABC.NET 3 20.12.2010 14:31