Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 15.11.2010, 17:58   #1 (permalink)
zena
Member
 
Регистрация: 11.11.2010
Сообщений: 85
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Репутация: 20
По умолчанию Массив: сжатие

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


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

В общем прошу помощи.
zena вне форума   Ответить с цитированием

Старый 15.11.2010, 17:58
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Давайте проясним ситуацию, прочитав похожие темы на форуме

Медленное копирование и сжатие файлов
Массив

Старый 15.11.2010, 18:17   #2 (permalink)
Dram
Экономичный вид памяти
 
Аватар для Dram
 
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
По умолчанию

Выкладываете свои наработки ..посмотрим что не так..
Как я понял надо сначала заполнить и вывести массив, Ввести с клавы k-й элемент и заполнить след. массив этими же элементами исключая k-е
Dram вне форума   Ответить с цитированием
Старый 15.11.2010, 19:25   #3 (permalink)
zena
Member
 
Регистрация: 11.11.2010
Сообщений: 85
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Репутация: 20
По умолчанию

Вот наработки. Здесь заменён массив на строку, т.к. при операторе ввода массива у меня выскакивает ошибка.
Цитата:
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.
zena вне форума   Ответить с цитированием
Старый 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 вне форума   Ответить с цитированием
Старый 15.11.2010, 22:24   #5 (permalink)
zena
Member
 
Регистрация: 11.11.2010
Сообщений: 85
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Репутация: 20
По умолчанию

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

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 15.11.2010, 22:38   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от zena Посмотреть сообщение
Ой и правда. Что-то у меня всё перепуталось
Кстати ещё раз спасибо!!!
Всегда пожалуйста.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.