|
Вопрос # 2 189/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Помоги пожалуйста решить задачку!
Сформировать случайным образом два массива A(15) и B(10). Из положительных элементов этих массивов образовать массив С(25). Если таких элементов не хватит, оставшиеся места массива С заполнить +1.
Спасибо!)
 |
Вопрос задала: Jalina (статус: Посетитель)
Вопрос отправлен: 12 декабря 2008, 14:11
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Anderson N.N
Здравствуйте, Jalina!
Вот значит ответ
я тут использовал динамические массивы, поэтому
SetLength это указание размерности во время выполнения программы
RandomRange(число1, число2) - функция возращает случайное число из заданного диапазона
Приложение: Переключить в обычный режим- var a,b,c:array of integer;
- i:integer;
- begin
- SetLength(a,15);
- SetLength(b,10);
- for i:=0 to 14 do
- begin
- a[i]:=RandomRange(-100,100);
- if i<10
- then b[i]:=RandomRange(-100,100);
- end;
- SetLength(c,25);
- for i:=0 to 24 do
- if (i<=14) then
- if (a[i]>0)
- then c[i]:=a[i]
- else c[i]:=1
- else
- if (i>14) then
- if (b[i]>0)
- then c[i]:=b[i-15]
- 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 (статус: 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;
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|