Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Массив: сжатие (http://www.tehnari.ru/f43/t42103/)

zena 15.11.2010 17:58

Массив: сжатие
 
Сжать массив чисел а длиной n, удалив при этом каждый k-нный элемент.
Составить на Pascal.


Помогите пожалуста!!! Не могу никак понять что за сжатие!!! При написании программы у меня появилась проблемка: массив не хочет вводится-выдаёт ошибку, хотя в разделе объявления переменных эта самая переменная была объявлена как массив.

В общем прошу помощи.:tehnari_ru_942:

Dram 15.11.2010 18:17

Выкладываете свои наработки ..посмотрим что не так..
Как я понял надо сначала заполнить и вывести массив, Ввести с клавы k-й элемент и заполнить след. массив этими же элементами исключая k-е

zena 15.11.2010 19:25

Вот наработки. Здесь заменён массив на строку, т.к. при операторе ввода массива у меня выскакивает ошибка.
Цитата:

program jfjf;
var
n,k:integer;
m,s:string;
begin
n:=length(m); {dlina stroki(massiva)}
readln(m);
readln(s); {stroka}
REadln(k); {udalenie k simwola}
delete(); {Здесь не могу понять что нужно записать}
writeln(s);
end.

Vladimir_S 15.11.2010 21:28

Цитата:

Сообщение от zena (Сообщение 418299)
Вот наработки. Здесь заменён массив на строку, т.к. при операторе ввода массива у меня выскакивает ошибка.

Во-первых, зачем так сложно? Если я правильно понял и речь идет о том, чтобы ввести массив из, например, 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? Чудеса... Нет, так не бывает.
Можно, конечно, "довести до ума" вариант со строками, только вот зачем?

zena 15.11.2010 22:24

Цитата:

Теперь по Вашей программе.
Ну как же это Вы ухитряетесь определить длину строки length(m) не введя ПРЕДВАРИТЕЛЬНО самой строки m? Чудеса... Нет, так не бывает.
Можно, конечно, "довести до ума" вариант со строками, только вот зачем?
Ой и правда. Что-то у меня всё перепуталось:tehnari_ru_325:
Кстати ещё раз спасибо!!!

Vladimir_S 15.11.2010 22:38

Цитата:

Сообщение от zena (Сообщение 418429)
Ой и правда. Что-то у меня всё перепуталось:tehnari_ru_325:
Кстати ещё раз спасибо!!!

Всегда пожалуйста.


Часовой пояс GMT +4, время: 18:46.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.