Const n=20; type omas=array[1..n] of integer; Procedure Del (var z:omas; k:byte); var i:byte; begin for i:=k to n-1 do z[i]:=z[i+1]; z[n]:=0; end; var a:omas; i,b:integer; begin Randomize; for i:=1 to n do begin a[i]:=random(20); write(a[i]:4); end; writeln; b:=6; i:=1; while (i<=n)and(a[i]<>b) do i:=i+1; if i<=n then begin Del(a,i); writeln('Размерность массива = ',n-1); for i:=1 to n-1 do write(a[i]:4); writeln; end else writeln('Массив не изменился'); end. Пример: 12 13 6 7 17 1 18 17 3 2 12 3 16 6 7 13 0 2 5 18 Размерность массива = 19 12 13 7 17 1 18 17 3 2 12 3 16 6 7 13 0 2 5 18
type omas=array[1..n] of integer;
Procedure Del (var z:omas; k:byte);
var i:byte;
begin
for i:=k to n-1 do z[i]:=z[i+1];
z[n]:=0;
end;
var a:omas; i,b:integer;
begin
Randomize;
for i:=1 to n do
begin
a[i]:=random(20);
write(a[i]:4);
end;
writeln;
b:=6;
i:=1;
while (i<=n)and(a[i]<>b) do i:=i+1;
if i<=n then
begin
Del(a,i);
writeln('Размерность массива = ',n-1);
for i:=1 to n-1 do write(a[i]:4);
writeln;
end else writeln('Массив не изменился');
end.
Пример:
12 13 6 7 17 1 18 17 3 2 12 3 16 6 7 13 0 2 5 18
Размерность массива = 19
12 13 7 17 1 18 17 3 2 12 3 16 6 7 13 0 2 5 18
Если что, программы проверял в PascalABC.NET 3.4.2, сборка 1837 от 12.10.2018
Первая программа (запрашивает значение икс, и в ответ выводит соответствующее значение зет):
var
x, Z: real;
begin
writeln('Введите исходные данные:');
write('x= ');
read(x);
if (x < -1) or (x > 1) then Z := 0
else Z := 1 - Abs(x);
writeln('ответ: Z= ', Z);
end.
Вторая программа (выводит значения икс в указанном диапазоне и с указанным шагом, и рядом с ними- соответствующие значения зет):
var
x, Z: real;
begin
writeln(' x Z');
x := -1.5;
while x <= 1.5 do
begin
if (x < -1) or (x > 1) then Z := 0
else Z := 1 - Abs(x);
writeln(x:4:1, Z:6:1);
x := x + 0.5;
end;
end.
Будет выведено примерно так (только там одинаковая ширина символов, поэтому всё ровненько выглядит):
x Z
-1.5 0.0
-1.0 0.0
-0.5 0.5
0.0 1.0
0.5 0.5
1.0 0.0
1.5 0.0