Родились сегодня:
goldssky@yandex.ru


Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Модератор

768

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

342

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Академик

278

Россия, Санкт-Петербург


ID: 325460

CradleA

Мастер-Эксперт

211

Беларусь, Минск


ID: 137394

Megaloman

Мастер-Эксперт

148

Беларусь, Гомель


ID: 400815

alexleonsm

6-й класс

130


ID: 400669

epimkin

Профессионал

120


8.8.15

09.05.2021

JS: 2.8.21
CSS: 4.5.5
jQuery: 3.6.0
DataForLocalStorage: 2021-05-14 03:16:12-standard


Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 200423

Раздел: Pascal / Delphi / Lazarus
Автор вопроса: Edison (Посетитель)
Дата: 16.03.2021, 09:08 Консультация закрыта
Поступило ответов: 1

Уважаемые эксперты! Пожалуйста, нужна помощь в решении задачи на Delphi.

Разработать программу по работе с массивами согласно условию:
Запросить размерность одномерного массива. Заполнить его случайными числами от -10 до 30. Удалить из массива:
Все отрицательные элементы; Выводить все промежуточные значения; Заполнять случайными числами.

Ответ # 280824 от puporev
Здравствуйте, Edison!
Код
procedure TForm1.Button1Click(Sender: TObject);
var a:array of integer;
    n,i,k:integer;
begin
if not TryStrToInt(Edit1.Text,n)or(n<1)then
 begin
  ShowMessage('Неверно введен размер массива');
  Edit1.Clear;
  Edit1.SetFocus;
  exit;
 end;
Label3.Caption:='';
setlength(a,n);
for i:=0 to n-1 do
 begin
  a[i]:=-10+random(41);
  Label3.Caption:=Label3.Caption+'  '+inttostr(a[i]) ;
 end;
i:=n-1;
k:=-1;
for i:=0 to i do
if a[i]>=0 then
 begin
  inc(k);
  a[k]:=a[i];
 end;
Label5.Caption:='';
if k=n-1 then label5.Caption:='В массиве нет отрицательных элементов'
else if k=-1 then label5.Caption:='Все элементы удалены'
else
for i:=0  to k do
Label5.Caption:=Label5.Caption+'  '+inttostr(a[i]) ;
end;

Предлагаемый вид формы.

puporev

Профессор
16.03.2021, 14:01
5


Спасибо

Мини-форум консультации # 200423

q_id

puporev

Профессор

ID: 401888

1

= общий =    16.03.2021, 09:53
Edison:

Укажите IDE:
Delphi(консольное или оконное приложение), Lazarus(консольное или оконное приложение), Паскаль(Турбо, Free, ABC, ABC.net)

q_id

Edison

Посетитель

ID: 404480

2

= общий =    16.03.2021, 12:32
puporev:

Delphi, оконное приложение

q_id

Edison

Посетитель

ID: 404480

3

= общий =    16.03.2021, 16:36
puporev:

А вы можете, пожалуйста, сделать так, чтобы массив выводился не в Label, а в StringGrid?

q_id

puporev

Профессор

ID: 401888

4

= общий =    16.03.2021, 17:05
Edison:

Код
procedure TForm1.Button1Click(Sender: TObject);
var a:array of integer;
    n,i,k:integer;
begin
if not TryStrToInt(Edit1.Text,n)or(n<1)then
 begin
  ShowMessage('Неверно введен размер массива');
  Edit1.Clear;
  Edit1.SetFocus;
  exit;
 end;
setlength(a,n);
with StringGrid1 do
 begin
  fixedrows:=0;
  rowcount:=1;
  fixedcols:=0;
  colcount:=n;
  defaultcolwidth:=30;
  for i:=0 to n-1 do
   begin
    a[i]:=-10+random(41);
    cells[i,0]:=inttostr(a[i]) ;
   end;
 end;
i:=n-1;
k:=-1;
for i:=0 to i do
if a[i]>=0 then
 begin
  inc(k);
  a[k]:=a[i];
 end;
if k=n-1 then ShowMessage('В массиве нет отрицательных элементов')
else if k=-1 then ShowMessage('Все элементы удалены')
else
with StringGrid2 do
 begin
  fixedrows:=0;
  rowcount:=1;
  fixedcols:=0;
  colcount:=k+1;
  defaultcolwidth:=30;
  for i:=0 to k do
  cells[i,0]:=inttostr(a[i]) ;
 end;
end;

Предлагаемый вид формы.

-----
Прикрепленные файлы:

q_id

Edison

Посетитель

ID: 404480

5

= общий =    17.03.2021, 00:45
puporev:

Спасибо

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

puporev

Профессор

Рейтинг: 111

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 74

Степанов Иван /REDDS

4-й класс

Рейтинг: 1

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0

Асмик Гаряка

Советник

Рейтинг: 0

Орловский Дмитрий

Мастер-Эксперт

Рейтинг: 0