Показать сообщение отдельно
Старый 15.11.2010, 21:28   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от 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? Чудеса... Нет, так не бывает.
Можно, конечно, "довести до ума" вариант со строками, только вот зачем?
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070