51

Помагите пжл, составить программу на языке ПАСКАЛЬ СОСТАВИТЬ…

mishelgk 17 марта 2023

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

категория: информатика

41

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.

пользователи выбрали этот ответ лучшим

Знаете другой ответ?
Другие вопросы по информатике

ПОПУЛЯРНОЕ
Есть интересный вопрос? Задайте его нашему сообществу, у нас наверняка найдется ответ!
Делитесь опытом и знаниями, зарабатывайте награды и репутацию, заводите новых интересных друзей!
Задавайте интересные вопросы, давайте качественные ответы и зарабатывайте деньги. Подробнее...