Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 27.02.2012, 12:35   #1 (permalink)
scorpius
Member
 
Регистрация: 20.02.2012
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Pascal. Работа с одномерными массивами

aacuiyiiue.png

i.png
пожалуйста,помогите... не понимаю,как делать..(((
scorpius вне форума   Ответить с цитированием

Старый 27.02.2012, 12:35
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Рекомендую поискать информацию в похожих темах

Паскаль. Работа с двумерными массивами
Помогите, пожалуйста. Работа с одномерными массивами, Паскаль
Помогите с массивами в Pascal
Задача с массивами
Помогите с массивами
Работа с текстовым файлом, Pascal

Старый 27.02.2012, 12:55   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от scorpius Посмотреть сообщение
пожалуйста,помогите... не понимаю,как делать..
И не стыдно? Задачки-то школьные! Ладно, ждите, будет время - нарисую. Хотя... знали бы Вы, до чего противно иметь дело с лоботрясами, стоящими на позиции "не умею и не знаю и учиться не желаю!".
Vladimir_S вне форума   Ответить с цитированием
Старый 27.02.2012, 13:10   #3 (permalink)
scorpius
Member
 
Регистрация: 20.02.2012
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Стыдно..очень
(
scorpius вне форума   Ответить с цитированием
Старый 27.02.2012, 14:13   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Код:
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.
Vladimir_S вне форума   Ответить с цитированием
Старый 27.02.2012, 20:13   #5 (permalink)
scorpius
Member
 
Регистрация: 20.02.2012
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо, очень помогли!!!!!!
scorpius вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 26.03.2012, 18:43   #6 (permalink)
scorpius
Member
 
Регистрация: 20.02.2012
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

вот только не могу понять,что такое Р,gm. и почему P:=1.0; P:=P*a[i]; и вот эти строки:
gm:=Exp(Ln(P)/30);
writeln('Geometric mean is ',gm:0:3);
writeln('New array:')

совсем запутался..
scorpius вне форума   Ответить с цитированием
Старый 26.03.2012, 18:45   #7 (permalink)
scorpius
Member
 
Регистрация: 20.02.2012
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

и почему a[i]:=Random(90)+10, а не a[i]:=Random(100)?..
scorpius вне форума   Ответить с цитированием
Старый 26.03.2012, 20:16   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ну что же, раз Вы пытаетесь разобраться, а не, как некоторые, просто тупо переписать и не глядя сдать - помогу с превеликим удовольствием.
Цитата:
Сообщение от scorpius Посмотреть сообщение
совсем запутался..
Сейчас распутаю, потерпите.
Для начала - проясним суть задания: прежде всего, нужно найти среднее геометрическое 30 чисел. По определению это значит, что нужно найти произведение этих чисел, а затем извлечь из него корень тридцатой степени. Из этого и будем исходить.
Цитата:
Сообщение от scorpius Посмотреть сообщение
вот только не могу понять,что такое Р,gm.
Идентификаторы. P - это произведение 30-ти чисел, gm - искомое среднее геометрическое.
Цитата:
Сообщение от scorpius Посмотреть сообщение
и почему P:=1.0; P:=P*a[i];
Потому что именно так ищется произведение элементов массива: присваивается исходное значение, равное 1, а затем последовательно домножается на каждый элемент.
Цитата:
Сообщение от scorpius Посмотреть сообщение
и вот эти строки: gm:=Exp(Ln(P)/30);
А это есть извлечение корня 30-й степени. Если Вы не в курсе, то извлечение корня степени n эквивалентно возведению в степень 1/n. Возведение же числа в произвольную степень делается так: берется логарифм основания, умножается на показатель и от результата берется экспонента. Несколько подробнее об этом здесь, в самом конце.
Цитата:
Сообщение от scorpius Посмотреть сообщение
writeln('Geometric mean is ',gm:0:3);
Выдача на экран сообщения (на англ. языке) "Среднее геометрическое есть" и дальше полученный результат. Формат 0:3 означает "показать три знака после десятичной точки, а до нее - уж как получится".
Цитата:
Сообщение от scorpius Посмотреть сообщение
writeln('New array:')
Вывод на экран заголовка "Новый массив:"
Цитата:
Сообщение от scorpius Посмотреть сообщение
и почему a[i]:=Random(90)+10, а не a[i]:=Random(100)?..
Потому что Ваш вариант допускает a[i]=0, каковое значение при вычислении среднего геометрического является запретным. У меня поставлен диапазон от 10 до 99. Можете другой взять, лишь бы не допустить появления среди элементов массива нуля.
Vladimir_S вне форума   Ответить с цитированием
Старый 26.03.2012, 20:27   #9 (permalink)
scorpius
Member
 
Регистрация: 20.02.2012
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

очень здорово разъясняете!
scorpius вне форума   Ответить с цитированием
Старый 26.03.2012, 20:34   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от scorpius Посмотреть сообщение
очень здорово разъясняете!
Вопрос не в том, как разъясняю. Всё понятно, или еще есть вопросы? Не стесняйтесь, спрашивайте, если что.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
паскаль; турбо; паскаль


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 07:21.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.