Помагите пжл, составить программу на языке ПАСКАЛЬ СОСТАВИТЬ ПРОГРАММУ СОКРАЩЕНИЯ ОДНОМЕРНОГО ЧИСЛОВОГО МАССИВА ПУТЕМ УДАЛЕНИЯ ( ВСЕХ ЭЛЕМЕНТОВ С НУЛЕВЫМИ ЗНАЧЕНИЯМИ . ДОПОЛНИТЕЛЬНЫЙ МАССИВ ИСПОЛЬЗОВАТЬ НЕ РАЗРЕШАЕТСЯ ) ..........

Помагите пжл, составить программу на языке ПАСКАЛЬ СОСТАВИТЬ ПРОГРАММУ СОКРАЩЕНИЯ ОДНОМЕРНОГО ЧИСЛОВОГО МАССИВА ПУТЕМ УДАЛЕНИЯ ( ВСЕХ ЭЛЕМЕНТОВ С НУЛЕВЫМИ ЗНАЧЕНИЯМИ . ДОПОЛНИТЕЛЬНЫЙ МАССИВ ИСПОЛЬЗОВАТЬ НЕ РАЗРЕШАЕТСЯ ) .........ЕСЛИ МОЖЕТИ ПОЯСНИТЕ СЛОВАМИ ЧТО ДЕЛАЕТ ПРОГРАММА
Гость
Ответ(ы) на вопрос:
Гость
var   a : array of integer;   n, i, last : integer; begin   read (n);   setlength (a, n);   for i := 0 to n - 1 do     read (a[i]);   last := 0;   for i := 0 to n - 1 do     if a[i] <> 0 then     begin       a[last] := a[i];       inc (last);     end;   setlength (a, last);   for i := 0 to last - 1 do     write (a[i], ' '); end.   Суть такова. Имеем динамический массив. Считали массив, так как динамический, то от нуля все. Установили последнюю свободную ячейку 0. Идем по массиву и ищем ненулевое значение. Как только нашли, пишем его в свободную ячейку и увеличиваем занчение свободной ячейки на 1. При этом наши данные не затираются. После окончания всех операций в last лежит длина массива. Статитечкий массив.  var   a : array [1..100] of integer;   n, i, last : integer; begin   read (n);   for i := 1 to n do     read (a[i]);   last := 1;   for i := 1 to n do     if a[i] <> 0 then     begin       a[last] := a[i];       inc (last);     end;   dec (last);   for i := 1 to last do     write (a[i], ' '); end.  
Не нашли ответ?
Ответить на вопрос
Похожие вопросы