Консультация № 181462
19.12.2010, 20:42
0.00 руб.
0 10 1
Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:

Даны действительные числа a1 ,…, a30. Получить: min (a1a16, a2a17,…, a15a30)

Обсуждение

Неизвестный
19.12.2010, 21:16
общий
Здравствуйте Артем!

Поясните что подразумевается под min (a1a16, a2a17,…, a15a30).............что тут означает a1a16 и так далее
Неизвестный
19.12.2010, 21:52
общий
Может, там тире должно стоять? Дескать, от и до...
Неизвестный
19.12.2010, 21:55
общий
А мне представляется что надо просто из a1 и а16 выбрать наименьший и включить его в поиск среди таких же наименьших.....вообщем думаю ненадо гадать на картах.....пусть откликнется хозяин вопроса и даст уточнение! )) в противном случае сделаю как подразумеваю)
Неизвестный
20.12.2010, 00:38
общий
я сам точно не знаю, похоже, что a1a16, a2a17 итд - это члены прогрессии, а найти нужно минимальный
Неизвестный
20.12.2010, 00:41
общий
Какой прогрессии? чтото совсем не понятно ваше задание.....данная запись очень смущает и напоминает двумерный массив чем то....вы не могли бы уточнить у преподавателя или у того, кто дал вам задание, что конкретно имеется ввиду. Не хочется тыкать пальцем в небо.
Неизвестный
20.12.2010, 08:41
общий
Может
a1a16, a2a17 ...
это произведения элементов массива, по крайней мере похоже. Подождем уточнений.
Неизвестный
20.12.2010, 10:35
общий
тема задачи-одномерные массивы, больше написать ничего не могу, сам не понимаю что тут нужно сделать
Неизвестный
20.12.2010, 19:39
общий
оформляю ответ в 2х вариантах.
Неизвестный
20.12.2010, 20:10
общий
это ответ
Здравствуйте, Артем!

1 вариант решения задачи.
За a1a16,a2a17..a15a30 берется произведение указанных елементов и поиск среди этих произведений минимального.

Код:
program p181462;
var a:array [1..30] of integer;
tmp,min:integer;
i,k:byte;
begin
randomize; //инициализация генератора случайных чисел
for i:=1 to 30 do {генерируем массив из случайных чисел}
begin
a[i]:=1+random(10);
end;
{поиск минимума среди произведений}
k:=15;
min:=a[1]*a[k];
for i:=2 to 15 do
begin
inc(k);
tmp:=a[i]*a[k];
if tmp<min then //сравниваем с минимумом
min:=tmp;
end;
{выводим минимум на экран}
write('минимум произведения елементов массива =',min);
readln;
readln;
end.


2 вариант решения.
За a1a16,a2a17..a15a30 беруртся елементы, сравниваются и ищется минимум для каждой из пар. После чего ищется минимум среди уже найденных минимумов и выдается на экран
Использован дополнительный массив

Код:
program p181462;
var a:array [1..30] of integer;
tmp:array [1..15] of integer;;
i,k,min:byte;
begin
randomize; //инициализация генератора случайных чисел
for i:=1 to 30 do {генерируем массив из случайных чисел}
begin
a[i]:=1+random(10);
end;
{поиск минимума среди пар}
k:=15;
i:=1;
while k<=30 do
begin
if a[i]<a[k] then
begin
tmp[i]:=a[i];
end
else
begin
tmp[i]:=a[k];
end;
inc(i);
inc(k);
end;
{после того как нашли минимумы пар => ищем минимум из отобранных минимумов пар}
min:=tmp[1]; //пусть минимум 1 елемент
for i:=2 to 15 do
begin
if min>tmp[i] then
min:=tmp[i];
end;
{выводим минимум на экран}
write('минимум произведения елементов массива =',min);
readln;
readln;
end.


Вот. Если все же определитесь с заданием то постараюсь сделать именно то что требовалось.
Удачи разобраться!
Неизвестный
20.12.2010, 20:14
общий
Техническая ошибочка в ответе..
Там в 2 варианте неуглядел и написано совсем не то:
Вместо
Код:
write('минимум произведения елементов массива =',min);

пишим
Код:
write('минимум среди минимумов пар елементов массива =',min);


Буду повнимательнее!
Форма ответа