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

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

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

 
 Ответить  Открыть новую тему 
> Процедуры и функции, Процедуры и функции
NikiTaMoz
сообщение 4.01.2015 12:35
Сообщение #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 
 К началу страницы 
+ Ответить 
Федосеев Павел
сообщение 4.01.2015 13:00
Сообщение #2


Бывалый
***

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

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


По поводу сортировки загляни в 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 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 28.04.2024 16:31
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"