IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Процедуры и функции, Процедуры и функции
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


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

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

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


Код 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.

Нужно добавить Сортировку в мою программу или написать вашу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


По поводу сортировки загляни в FAQ - ссылка выделена красным в верхней части этой страницы. Там есть статьи по работе с массивами и отдельная о сортировках.
Продолжай - будут вопросы - заходи.
На период отладки могу порекомендовать типизированные константы (предопределённые массивы).
Код
type
  Mas = array [1..n] of integer;
const   <--------- если у тебя TurboPascal или
var    <-------- если у тебя FreePascal
  Massiv: Mas = (1, 5, 6, 3, 0, -1, 4, 100, -300, 500);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.05.2024 1:17
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name