0 / 0 / 0
Регистрация: 04.01.2015
Сообщений: 6
1

Процедуры и функции

04.01.2015, 12:03. Показов 342. Ответов 1
Метки нет (Все метки)

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

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

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


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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.
Нужно добавить Сортировку в мою программу или написать вашу.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2015, 12:03
Ответы с готовыми решениями:

Функции и процедуры. При помощи процедуры записать слова задом наперед
Дана строка S, состоящая из не менее 5 слов. При помощи процедуры записать слова задом наперед....

Задачник Абрамян. Процедуры и функции. Процедуры с числовыми параметрами
Описать процедуру RectPS(x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника...

Какие процедуры и функции вызываются из заданной процедуры
Подскажите, каким образом, используя сведения из представлений словаря данных, получить информацию...

Процедуры и функции. Процедуры с числовыми параметрами
Описать процедуру RectPS (x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника...

1
Почетный модератор
64089 / 47498 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
04.01.2015, 12:36 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Const n=10;
type mas=array[1..n] of integer;
procedure vvod(var Massiv:mas);
var i:integer;
begin
for i:=1 to n do
  begin
   write('Введите ',i,' элемент');
   readln(Massiv[i]);
  end;
end;
procedure vivod(Massiv:mas);
var i:integer;
begin
for i:=1 to n do
write(Massiv[i],' ');
writeln;
end;
procedure max(Massiv:mas;var imx:integer);
var i:integer;
begin
imx:=1;
for i:=2 to n do
if Massiv[i]>Massiv[imx] then imx:=i;
writeln('Максимальный элемент=',Massiv[imx],' его номер=',imx);
end;
procedure sort(var Massiv:mas;a,b:integer);
var i,j,x:integer;
begin
for i:=a to b-1 do
for j:=i+1 to b do
if Massiv[i]>Massiv[j] then
 begin
  x:=Massiv[i];
  Massiv[i]:=Massiv[j];
  Massiv[j]:=x
 end
end;
var Massiv:mas;
    imx:integer;
begin
vvod(Massiv);
writeln('Исходный массив ');
vivod(Massiv);
max(Massiv,imx);
if imx<3 then writeln('До максимального элемента нет элементов для сортировки')
else
 begin
  sort(Massiv,1,imx-1);
  writeln('Первое преобразование ');
  vivod(Massiv);
 end;
if imx>n-3 then writeln('После максимального элемента нет элементов для сортировки')
else
 begin
  sort(Massiv,imx+1,n);
  writeln('Второе преобразование ');
  vivod(Massiv);
 end;
sort(Massiv,1,n);
write('Итоговое преобразование ');
vivod(Massiv);
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.01.2015, 12:36

Процедуры и функции. Процедуры с числовыми параметрами
Процедуры и функции. Процедуры с числовыми параметрами Всем привет, помогите пожалуйста сделать...

Процедуры и функции: решить через процедуры S=a*x+b*y+c*z.
Пожалуста помогите решить через процедуры S=a*x+b*y+c*z.

Подпрограммы-процедуры и процедуры-функции
Мне надо вычислить приближенное значение интеграла с помощью подпрограммы-процедуры и...

Процедуры и функции: вычислить значения функции на заданном отрезке с заданным шагом
ребята, помогите, пожалуйста! Срочно нужна такая программка по выделенному варианту... у самой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru