![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
tryno |
![]()
Сообщение
#1
|
|||
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Реальное имя: Галя Репутация: ![]() ![]() ![]() |
Нужно Вставить число T
перед всеми элементами меньшими числа P (вставка и удаление элементов одномерных массивов) Program s;
Const n=7;
Type myarray = Array[1.. 2*n] Of Integer;
Var A : myarray;
x, k, i, p, t, y :Integer;
Procedure Init(Var m: myarray);
begin
writeln(' ','Vveden massiv: ');
for i:=1 to n do begin
m[i]:=random(20);
end;
end;
Procedure Print(n1: Integer; m: myarray);
begin
write(' ');
for i:=1 to n1 do
write(' ',m[i]);
end;
Procedure Insert2(k1, x1: Integer; Var m: myarray);
Var i : Integer;
begin{сдвиг элементов на одну позицию назад, - это номер последнего эл. в дан. мом.}
For i:= n+k Downto k1-1 Do
m[i+1]:= m[i];{ вставка эл. на место перед k1-м}
m[k1-1]:=x1;{увеличение счетчика вставляемых элементов}
Inc(k);
end;
Begin
Init(A);Print(n,A);
Write(' ','Vvedite vstavlyaemoe chislo T:');Readln(y);
Write(' ','Vvedite chislo dlya sravnenya P:');Readln(P);
k:=0;
For i:= n Downto 1 Do If A[i]<P Then Insert2(i,y,A);
Print(n+k,A);
Readln;
End.
Как доделать программу чтоб работала ?
|
|||
![]() ![]() |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
у меня вот такое получилось:
program vstavka;
uses crt;
const n=5;
var ar:array[1..2*n] of integer;
i,j,t,p,razm:integer;
begin
clrscr;
{заполнение с выводом на экран}
for i:=1 to n do
begin
ar[i]:=random(10);
write(ar[i]:3);
end;
p:=10; {здесь сделаешь ввод, а не присваивание... если хочешь}
t:=9;
razm:=n;
i:=1;
while i<=razm do
begin
if ar[i]<p then
{сдвиг и вставка}
begin
for j:=razm downto i do
ar[j+1]:=ar[j];
ar[i]:=t;
inc(i);
inc(razm);
end;
inc(i);
end;
writeln;
{вывод результата}
for i:=1 to razm do
write(ar[i]:3);
readln;
end.
подпрограммы специально не стала выделять... думаю, сама это сделаешь без труда. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
tryno |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Реальное имя: Галя Репутация: ![]() ![]() ![]() |
спасибо большое - все работает!
|
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 11:18 |