• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Массив: сжатие

  • Автор темы Автор темы zena
  • Дата начала Дата начала

zena

Новые
Регистрация
11 Ноя 2010
Сообщения
85
Реакции
1
Баллы
0
Массив: сжатие

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


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

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

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