Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
..:::BesT:::..
 Аватар для Best-pm07
8 / 8 / 5
Регистрация: 19.03.2009
Сообщений: 195

Два элемента: 1 - после максимального элемента, 2 - перед ним (немогу сделать по аналогии)

26.03.2009, 11:40. Показов 1955. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите сделать следующее задание:

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

Вот похожее задание:
(Вставить число 100 после пятого элемента массива)

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
Program Example;
Const n=10; dd=51;
Type myarray=Array[1..n+1] Of Integer;
Var A: myarray;
x, k:Integer;
{x - значение нового элемента k - номер элемента, после которого вставляем}
Procedure Init2(Var m: myarray); 
{Процедура заполнения (инициализации) массива случайными числами}
Procedure Printl(nl: Integer; m: myarray); 
{Процедура вывода (распечатки) массива}
Procedure Insertl(kl, xl: Integer; Var m: myarray);
Var i: Integer;
Begin
{Сдвиг элементов на одну позицию назад} 
 For i:=n Downto kl+1 Do m[i+1]:=m[i]; 
 m[kl+l]:=xl;
{Вставка элемента после kl-го} 
End;
Begin
Init2(A);
Printl(n,A);  {Вывод начального массива из n элементов} 
  Writeln('Номер элемента, после которого вставлять, ');
Writeln('и значение нового элемента'); 
Readln(k,х); 
Insertl(k,х,А); 
Printl(n+1,А);{Вывод массива после вставки нового элемента} 
Readln; 
End.
Спасибо.

Добавлено через 15 минут 32 секунды
Нашел ещё похожее:
(выводит на экран те элементы заданного массива, которые расположены после максимального элемента всего массива.)
Делал Юрий Puporev

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
uses crt; {модуль для работы с клавиатурой, звуком и экраном. Мы применяем для очистки экрана}
const nmax=50;{максимальный размер массива, можно любой}
var a:array[1..nmax] of integer;{тип массива-целые числа}
    n,i,max,imax:integer;
begin
clrscr;{очищаем экран от старых записей}
repeat {в цикле вводим размер и прверяем чтоб не вылезти за границы}
write('Razmer massiva n=');
readln(n);
until (n>0)and(n<=nmax);
writeln('Vvedite ',n,' elementov massiva:');
for i:=1 to n do
  begin
    write('a[',i,']=');
    readln(a[i]);{присваиваем значения элементам массива}
  end;
clrscr;{очищаем экран от ввода}
writeln('Ishodnyj massiv:');
for i:=1 to n do
write(a[i],' ');{выводим массив в строку через пробел}
writeln;
max:=a[1];imax:=1;{считаем что максимальный первый и его номер 1}
for i:=2 to n do {идем дальше по массиву}
if a[i]>max then{если находим число большее предыдущего максимума}
  begin
    max:=a[i];{то это максимум}
    imax:=i;{запоминаем его номер}
  end;
writeln('Rezultat:');
for i:=imax+1 to n do {от числа за максимальным до конца}
write(a[i],' ');{выводим массив в строку через пробел}
readln
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.03.2009, 11:40
Ответы с готовыми решениями:

Вставить два элемента: первый — после максимального элемента, второй — перед максимальным элементом массива
вставить два элемента: первый- после максимального элемента, второй- перед максимальным элементом массива

Вставить два одинаковых элемента перед и после максимального элемента массива
помогите дописать программу: Дан массив из n элементов. Вставить два одинаковых элемента перед и после максимального элемента массива ...

Вставить два элемента после мах элемента и перед ним
Составить программу решения задачи на С++, использовать процедуры введения и вывода массивов, выделить в задаче вспомогательные алгоритмы и...

4
 Аватар для Splitter
203 / 145 / 16
Регистрация: 13.01.2009
Сообщений: 554
26.03.2009, 11:54
попробуйте так, не проверял, но должно сработать, в крайнем случае идея понятна...

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
Program Example;
Const n=10; dd=51;
Type myarray=Array[1..n+2] Of Integer;
Var A: myarray;
x, k, max,p,o:Integer;
{x - значение нового элемента k - номер элемента, после которого вставляем}
Procedure Init2(Var m: myarray); 
{Процедура заполнения (инициализации) массива случайными числами}
Procedure Printl(nl: Integer; m: myarray); 
{Процедура вывода (распечатки) массива}
 
Procedure Insertl(p, o, max: Integer; Var m: myarray);
Var i: Integer;
Begin
for i:=n+2 downto max+1 do m[i]:=m[i-2];
m[max-1]:=p;
m[max+1]:=o;
End;
 
Begin
Init2(A);
Printl(n,A);  {Вывод начального массива из n элементов} 
max:=1;
for i:=2 to n do if a[i]>a[max] then max:=i; 
 
Writeln('введите элемент который вставляем до максимального');
Readln(p);
 
Writeln('введите элемент который вставляем после максимального');
Readln(o);
 
Insertl(p,o,max,А); 
Printl(n+1,А);{Вывод массива после вставки нового элемента} 
Readln; 
End.
Добавлено через 47 секунд
попробуйте так, не проверял, но должно сработать, в крайнем случае идея понятна...

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
Program Example;
Const n=10; dd=51;
Type myarray=Array[1..n+2] Of Integer;
Var A: myarray;
x, k, max,p,o:Integer;
{x - значение нового элемента k - номер элемента, после которого вставляем}
Procedure Init2(Var m: myarray); 
{Процедура заполнения (инициализации) массива случайными числами}
Procedure Printl(nl: Integer; m: myarray); 
{Процедура вывода (распечатки) массива}
 
Procedure Insertl(p, o, max: Integer; Var m: myarray);
Var i: Integer;
Begin
for i:=n+2 downto max+1 do m[i]:=m[i-2];
m[max-1]:=p;
m[max+1]:=o;
End;
 
Begin
Init2(A);
Printl(n,A);  {Вывод начального массива из n элементов} 
max:=1;
for i:=2 to n do if a[i]>a[max] then max:=i; 
 
Writeln('введите элемент который вставляем до максимального');
Readln(p);
 
Writeln('введите элемент который вставляем после максимального');
Readln(o);
 
Insertl(p,o,max,А); 
Printl(n+1,А);{Вывод массива после вставки нового элемента} 
Readln; 
End.
1
..:::BesT:::..
 Аватар для Best-pm07
8 / 8 / 5
Регистрация: 19.03.2009
Сообщений: 195
26.03.2009, 12:10  [ТС]
В программе ошибки, исправил, но вот последнюю не могу - не знаю как

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
Program Example;
uses wincrt;
Const n=10; dd=51;
Type myarray=Array[1..n+2] Of Integer;
Var A: myarray;
x, k, max,p,o, i:Integer;
Procedure Init2(Var m: myarray);
Procedure Printl(nl: Integer; m: myarray);
Procedure Insertl(p, o, max: Integer; Var m: myarray);
Var i:Integer;
Begin
for i:=n+2 downto max+1 do m[i]:=m[i-2];
m[max-1]:=p;
m[max+1]:=o;
End;
Begin
Init2(A);
Printl(n,A);
max:=1;
for i:=2 to n do if a[i]>a[max] then max:=i;
Writeln('введите элемент который вставляем до максимального');
Readln(p);
Writeln('введите элемент который вставляем после максимального');
Readln(o);
Insertl(p,o,max, a);
Printl(n+1,a);
Readln;
end.
Ошибка в последней строчке:

Error 85: ";" expected
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
26.03.2009, 12:12
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
64
65
66
67
68
69
70
71
72
Program Example;
uses crt;
const n=20; {размер исходного массива}
      e1=50;e2=70;{числа для вставки}
type myarray=array[1..n+2] of integer;{максимальный размер массива}
procedure Init2(var m:myarray);{создание и вывод исходного массива}
var i:integer;
begin
writeln('Ishodnyj massiv:');
for i:=1 to n do
  begin
    m[i]:=random(20);
    write(m[i],' ');
  end;
writeln;
writeln;
end;
procedure Printl(nl:integer;imax:integer; var m: myarray);{вывод результата}
var i:integer;
begin
for i:=1 to nl do
 if i=imax+1 then{если это максимальный}
   begin
    textcolor(12);{выделим ярко-красным}
    write(m[i],' ');
   end
else if (i=imax)or(i=imax+2)then
   begin
    textcolor(14);{перед ним и после него - желтым}
    write(m[i],' ');
   end
else
   begin
    textcolor(15);{остальные белым(или тем который используется по умолчанию)}
    write(m[i],' ');
   end;
end;
procedure Max(m:myarray; var imax:integer);{поиск номера максимального}
var i,max:integer;
begin
max:=m[1];
for i:=2 to n do
if m[i]>max then
  begin
    max:=m[i];
    imax:=i;
  end;
end;
procedure Insert(imax:integer;var nl:Integer; var m:myarray);{вставка элементов}
var i:integer;
begin
nl:=n+2;{новая длина массива}
{posle}
for i:=nl-1 downto imax+1 do m[i]:=m[i-1];
m[imax+1]:=e1;
{pered}
for i:=nl downto imax do m[i]:=m[i-1];
m[imax]:=e2;
end;
var a:myarray;
    imax,n1:Integer;
begin
clrscr;
randomize;
Init2(A);
Max(A,imax);
writeln('Номер максимального элемента=',imax);
writeln;
Insert(imax,n1,A);
Printl(n1,imax,A);
readln
end.
1
..:::BesT:::..
 Аватар для Best-pm07
8 / 8 / 5
Регистрация: 19.03.2009
Сообщений: 195
26.03.2009, 12:37  [ТС]
Puporev, cgfcb,j большое
программу посмотрел и разобрался, но слишком уже очень большая она
я программирую на Borland Pascal 7.0, поэтому такое как
clrscr; и textcolor; у меня не работают

это я поубирал, то вот просто сильно уж сложно написана программа, вообще предполагается что элементы будут водиться с клавиатуры

Незнаю даже, но попробую как-нибудь переделать вашу программу и убрать случайный выбор цифр

Спасибо вам.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2009, 12:37
Помогаю со студенческими работами здесь

Вставить два элемента: после максимального и перед максимальным элементом массива
Вставить два элемента: первый - после максимального элемента, второй - перед максимальным элементом массива

Вставить два элемента: после максимального и перед максимальным элементом массива
Вставить два элемента: первый - после максимального элемента, второй - перед максимальным элементом массива

Найти сумму и произведение элементов перед и после максимального элемента массива
В заданном массиве S (10) найти сумму элементов, расположенных перед максимальным элементом и произведение элементов, стоящих после...

Среднее арифметическое элементов, расположенных после максимального элемента перед минимальным
Нужно написать функцию коротая считает среднее арифметическое элементов, расположенных после максимального элемента та перед минимальным....

Вставить элемент с нулевым значением перед минимальным и после максимального элемента массива
Дан массив размера N. Вставить элемент с нулевым значением перед минимальным и после максимального элемента массива


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru