
Последние записи
- Кодировка в INDY 10 (как бороться с «???»)
- Переход по ссылке при клике на кнопку, счётчик кликов по кнопке и число переходов по ссылке на ява скрипт
- Сравнение двух диапазонов ячеек Excel на полное совпадение данных
- С++. Как напечатать в консоли два столбца?
- Конвертирование PNG в JPG на Delphi
- Можно ли, название сайта которое находится в шапке заключать в HTML тег h1 или h2 h3 h4 h5 h6?
- как бороться со знаками вопросов при проблеме с кодировкой в INDY 10 Delphi ?
- Связать ProgressBar + скорлинг в Texbox
- RichEdit и выгрузка в RTF-файл (добавление в конец файла)
- Чтение разделов из IniFile / MemIniFile

Оплата за обучение в Kata Academy только после твоего трудоустройства в IT
Начни карьеру Middle Java-разработчика, подробнее на сайте академии, ссылка - https://clck.ru/fCrQw

Интенсив по Python - 3-5 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
17th
Ноя
Удаление элементов из одномерного массива
Posted by obzor under Delphi
Удалить все элементы, большие данного числа А (А вводить с клавиатуры).
var i,j,a:integer;
len:integer=10;
p:array of integer;
begin
Write('a = '); Readln(a);
Randomize;
SetLength(p,len);
For i:=0 to len-1 do
begin
p[ i]:=Random(21);
Write(p[ i]:2,' ');
end;
Writeln;
Writeln;
i:=0;
Repeat
If p[ i]>a then
begin
For j:=i to len-2 do
p[j]:=p[j+1];
len:=len-1;
i:=i-1;
end;
i:=i+1;
Until i>=len;
For i:=0 to len-1 do
Write(p[ i]:2,' ');
Writeln;
Readln;
end.
А можно как-то сделать без процедуры SetLength?
ну, вряд ли.
процедура SetLength устанавливает размер для динамических массивов.
Можно, наверное, вместо динамических массивов использовать статические (ну, скажем, на 1000 элементов) и хранить отдельно счётчик N — сколько элементов в массиве заполнено.
Но зачем, если в PascalABC.NET есть нормальные динамические массивы?!
вот, смотрите:
const
MaxLen=10;
var i, j, A, n:integer;
p:array[0..MaxLen-1] of integer;
begin
Write('A = '); Readln(A);
Randomize;
n:=MaxLen;
For i:=0 to n-1 do begin
p[ i]:=Random(21);
Write(p[ i]:2,' ')
end;
WriteLn;
// Удаление из массива всех больше A - точнее, оставляем все элементы, которые меньше или равны A
j := 0;
for i := 0 to n - 1 do
if p[ i]<=A then
begin
p[j] := p[ i];
j += 1;
end;
n := j;
Write('Array after Delete:');
for i:=0 to n-1 do Write(p[ i]:2,' ');
WriteLn;
end.
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту

пеллетные котлы

Пеллетный котел Emtas

Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)