Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 189

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Помоги пожалуйста решить задачку!
Сформировать случайным образом два массива A(15) и B(10). Из положительных элементов этих массивов образовать массив С(25). Если таких элементов не хватит, оставшиеся места массива С заполнить +1.
Спасибо!)

Jalina Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Jalina (статус: Посетитель)
Вопрос отправлен: 12 декабря 2008, 14:11
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Anderson N.N

Здравствуйте, Jalina!
Вот значит ответ
я тут использовал динамические массивы, поэтому
SetLength это указание размерности во время выполнения программы
RandomRange(число1, число2) - функция возращает случайное число из заданного диапазона

Приложение:
  1. var a,b,c:array of integer;
  2. i:integer;
  3. begin
  4. SetLength(a,15);
  5. SetLength(b,10);
  6. for i:=0 to 14 do
  7. begin
  8. a[i]:=RandomRange(-100,100);
  9. if i<10
  10. then b[i]:=RandomRange(-100,100);
  11. end;
  12. SetLength(c,25);
  13. for i:=0 to 24 do
  14. if (i<=14) then
  15. if (a[i]>0)
  16. then c[i]:=a[i]
  17. else c[i]:=1
  18. else
  19. if (i>14) then
  20. if (b[i]>0)
  21. then c[i]:=b[i-15]
  22. else c[i]:=1;


Ответ отправил: Anderson N.N (статус: 2-ой класс)
Время отправки: 12 декабря 2008, 17:03
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 12 декабря 2008, 23:14; участников в обсуждении: 2.
Вадим К

Вадим К (статус: Академик), 12 декабря 2008, 17:22 [#1]:

to Anderson N.N
Решение не соответствует условию. единички должны быть в конце, а у Вас есть в середине...
Галочка "подтверждения прочтения" - вселенское зло.
Anderson N.N

Anderson N.N (статус: 2-ой класс), 12 декабря 2008, 23:14 [#2]:

Поправка не обратил внимания вот правильный вариант теперь
единицы будут в конце

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:array of integer;
i,j:integer;
begin
SetLength(a,15);
SetLength(b,10);
SetLength(c,25);
for i:=0 to 14 do
begin
a[i]:=RandomRange(-100,100);
if i<10
then b[i]:=RandomRange(-100,100);
end;
j:=0;
for i:=0 to 24 do
if (i<=14) then
begin
if (a[i]>0)
then
begin
c[j]:=a[i];
inc(j);
end;
end
else
if (i>14) then
if (b[i-15]>0)
then
begin
c[j]:=b[i-15];
Inc(j);
end;
if (j<24) then
for i:=j to 24 do
c[i]:=1;
end;

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:57
Выполнено за 0.02 сек.