Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2016, 21:49   #1
Jon_Morgan
Пользователь
 
Регистрация: 11.12.2016
Сообщений: 26
По умолчанию [free Pascal]: В заданном массиве удалить все числа, больше заданного числа R

Как проверять и выкидывать элементы из массивов?
Дана последовательность P[i] i=1,2...n (n<=30). Получить новую последовательность X[i], выбросив из исходной все числа, большие заданного числа R. ( Не использую функции и процедуры)

Последний раз редактировалось Вадим Мошев; 16.12.2016 в 23:36.
Jon_Morgan вне форума Ответить с цитированием
Старый 16.12.2016, 21:55   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Jon_Morgan Посмотреть сообщение
ыкидывать элементы из массивов
чтобы "выкинуть" элемент из массива, нужно на место "выкидываемого" переписать все те элементы, что расположены после него, после чего уменьшить размер массива на 1.

(NB. для динамических массивов можно сделать SetLength(), для статических вообще ничего не надо делать, нужно только длину массива хранить в отдельной переменной и
её уменьшать при необходимости.)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.12.2016, 23:33   #3
Jon_Morgan
Пользователь
 
Регистрация: 11.12.2016
Сообщений: 26
По умолчанию

Все равно не понимаю как изобразить это в коде
Jon_Morgan вне форума Ответить с цитированием
Старый 16.12.2016, 23:45   #4
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Сделай последовательно следующие этапы:

1) Дан массив, вывести его на экран. Когда справишься модифицируй программу чтобы
2) выводила на экран только меньше числа R, а больше просто игнорировало. Когда и с этим справишься, переходи к:
3) перенаправить из вывода на экран в новый массив Х.
ura_111 вне форума Ответить с цитированием
Старый 17.12.2016, 00:39   #5
Jon_Morgan
Пользователь
 
Регистрация: 11.12.2016
Сообщений: 26
По умолчанию

С 1 справился, а дальше не могу понять как каждый элемент проверять
Jon_Morgan вне форума Ответить с цитированием
Старый 17.12.2016, 00:40   #6
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

покажи
ura_111 вне форума Ответить с цитированием
Старый 17.12.2016, 00:54   #7
Jon_Morgan
Пользователь
 
Регистрация: 11.12.2016
Сообщений: 26
По умолчанию

Вот все что есть
Код HTML:
Program main;
var P, X:array[1..30] of integer;
i, n: integer;
begin
readln (n);
for i:=1 to n do P[i]:=random (100);
for i:=1 to n do write (P[i], ' ');
readln;
end.
Jon_Morgan вне форума Ответить с цитированием
Старый 17.12.2016, 01:06   #8
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

А ну проанализируй:

Код:
Program main;
var P, X:array[1..30] of integer;
i, n, R: integer;
begin
readln (n);

for i:=1 to n do P[i]:=random (100);
for i:=1 to n do write (P[i], ' ');
writeln (' ');

R:=70;
for i:=1 to n do 
if ( P[i]<R) then write (P[i], ' ');

readln;
end.
ura_111 вне форума Ответить с цитированием
Старый 17.12.2016, 01:27   #9
Jon_Morgan
Пользователь
 
Регистрация: 11.12.2016
Сообщений: 26
По умолчанию

Вроде понял, а как тогда оставшееся место заполнить ?
Jon_Morgan вне форума Ответить с цитированием
Старый 17.12.2016, 01:46   #10
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Процентов на 80% задача уже решена... Чтобы доделать, тебе надо просто перенаправить от "вывода на экран" в заполняемость массива "Х".
Единственно, для массива "Х" нельзя использовать тот же самый индекс "i", что и для P (ни в коем случае, нельзя) - для него надо организовать новый индекс (это будет счётчик "количества элементов меньше R"), который будет увеличиваться на 1-цу всякий раз, когда будет находится "<R"...

p.s.: ну всё я отчаливаю, - а то, если подробней написать - это значит просто сделать за тебя... Возьми, подумай/поэкспериментируй/помучийся и реши... Все через такое проходили (в своё время)...
ura_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование циклов (free Pascal) Jon_Morgan Помощь студентам 5 12.12.2016 13:59
обработка одномерных массивов (вставка, удаление и перестановка элементов) Pascal ABC Кеворк Помощь студентам 0 27.12.2011 18:16
Pascal - обработка одномерных массивов Russtein Помощь студентам 0 10.11.2011 18:29
Программирование операций обработки одномерных массивов Дима82 Помощь студентам 12 11.05.2008 15:24