• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Pascal. Работа с одномерными массивами

scorpius

Новые
Регистрация
20 Фев 2012
Сообщения
27
Реакции
0
Баллы
0
Pascal. Работа с одномерными массивами

Безымянный.webp

о.webp
пожалуйста,помогите... не понимаю,как делать..(((
 
пожалуйста,помогите... не понимаю,как делать..
И не стыдно? Задачки-то школьные! Ладно, ждите, будет время - нарисую. Хотя... знали бы Вы, до чего противно иметь дело с лоботрясами, стоящими на позиции "не умею и не знаю и учиться не желаю!".
 
Код:
Var
 a,b:Array[1..30] of Integer;
 P,gm:Real;
 i:byte;
Begin
 Randomize;
 P:=1.0;
 writeln('Initial array:');
 for i:=1 to 30 do
  begin
   a[i]:=Random(90)+10;
   write(a[i]:4);
   P:=P*a[i];
  end;
 writeln;
 gm:=Exp(Ln(P)/30);
 writeln('Geometric mean is ',gm:0:3);
 writeln('New array:');
 for i:=1 to 30 do
  begin
   b[i]:=a[i]-Round(gm);
   write(b[i]:4);
  end;
 readln
End.
 
Спасибо, очень помогли!!!!!!:tehnari_ru_088:
 
вот только не могу понять,что такое Р,gm. и почему P:=1.0; P:=P*a; и вот эти строки:
gm:=Exp(Ln(P)/30);
writeln('Geometric mean is ',gm:0:3);
writeln('New array:')

совсем запутался..
 
и почему a:=Random(90)+10, а не a:=Random(100)?..
 
Ну что же, раз Вы пытаетесь разобраться, а не, как некоторые, просто тупо переписать и не глядя сдать - помогу с превеликим удовольствием.
совсем запутался..
Сейчас распутаю, потерпите.
Для начала - проясним суть задания: прежде всего, нужно найти среднее геометрическое 30 чисел. По определению это значит, что нужно найти произведение этих чисел, а затем извлечь из него корень тридцатой степени. Из этого и будем исходить.
вот только не могу понять,что такое Р,gm.
Идентификаторы. P - это произведение 30-ти чисел, gm - искомое среднее геометрическое.
и почему P:=1.0; P:=P*a;
Потому что именно так ищется произведение элементов массива: присваивается исходное значение, равное 1, а затем последовательно домножается на каждый элемент.
и вот эти строки: gm:=Exp(Ln(P)/30);
А это есть извлечение корня 30-й степени. Если Вы не в курсе, то извлечение корня степени n эквивалентно возведению в степень 1/n. Возведение же числа в произвольную степень делается так: берется логарифм основания, умножается на показатель и от результата берется экспонента. Несколько подробнее об этом здесь, в самом конце.
writeln('Geometric mean is ',gm:0:3);
Выдача на экран сообщения (на англ. языке) "Среднее геометрическое есть" и дальше полученный результат. Формат 0:3 означает "показать три знака после десятичной точки, а до нее - уж как получится".
Вывод на экран заголовка "Новый массив:"
и почему a:=Random(90)+10, а не a:=Random(100)?..
Потому что Ваш вариант допускает a=0, каковое значение при вычислении среднего геометрического является запретным. У меня поставлен диапазон от 10 до 99. Можете другой взять, лишь бы не допустить появления среди элементов массива нуля.
 
очень здорово разъясняете!
 
:)
вот в концовочке еще одну строку не совсем понимаю :
b:=a-Round(gm)
 
:)
вот в концовочке еще одну строку не совсем понимаю :
b:=a-Round(gm)

Так ведь в задании велено получить массив b путем вычитания из элементов массива a округленного до целого среднего геометрического. Вот это оно и есть.
 
Ах, точно. Спасибо!!!!!!
 
Назад
Сверху