Цитата:
Сообщение от zena
Вот наработки. Здесь заменён массив на строку, т.к. при операторе ввода массива у меня выскакивает ошибка.
|
Во-первых, зачем так сложно? Если я правильно понял и речь идет о том, чтобы ввести массив из, например, 10 чисел, а затем "сжать" его, удалив, например, каждое третье, до делается это, скажем, так:
Код:
CONST
N=10;
VAR
A,B:ARRAY[1..N] of Integer;
k,M:Byte;
i:Integer;
BEGIN
For i:=1 to N do
begin
Write('A[',i:2,']= ');
ReadLn(A[i]);
end;
Write('k= ');
ReadLn(k);
M:=0;
For i:=1 to N do
begin
Write(A[i]:5);
If (i mod k)>0 then
begin
Inc(M);
B[M]:=A[i];
end;
end;
WriteLn;
For i:=1 to M do Write(B[i]:5);
ReadLn;
END.
И никаких ошибок, уверяю Вас, не выскочит.
Теперь по Вашей программе.
Ну как же это Вы ухитряетесь определить длину строки length(m) не введя ПРЕДВАРИТЕЛЬНО самой строки m? Чудеса... Нет, так не бывает.
Можно, конечно, "довести до ума" вариант со строками, только вот зачем?