![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Kelsi |
![]()
Сообщение
#1
|
Гость ![]() |
У меня тут одна задачка... не поможете ли решить?
Дано целое n<=100 и вещественный вектор a из n элементов. Вычислить величину z=сумма(от i=1 до r)xiyi, где элементами вектора x(x1,x2,...,xp) являются отрицательные элементы вектора а, взятые в порядке их следования, элементами вектора y(y1,y2,...,yq) являются неотрицательные элементы вектора а, взятые в порядке их следования, а r=min(p,q). ![]() |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
И что тут сложного ?? может уже что-то сама сделала ? покажи, если что не так, исправим.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Kelsi |
![]()
Сообщение
#3
|
Гость ![]() |
Если б я в этом, что понимала... У меня Паскаля отродясь не было
![]() |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Ну, вот что пришло в голову:
Код const { Это только для примера, чтобы убедиться, что программа работает } n = 10; a: array[1 .. n] of real = (1, 2, -4, 5, -6, 9, -11, 8, 11, 10); var i, i_neg, i_non_neg: integer; z: real; begin z := 0; { это можно раскомментировать и сюда будут записаны случ. значения } { for i := 1 to n do a[i] := random(200) - 100; } i_neg := 1; i_non_neg := 1; repeat while (a[i_neg] >= 0) and (i_neg <= n) do inc(i_neg); if i_neg <= n then begin while (a[i_non_neg] < 0) and (i_non_neg <= n) do inc(i_non_neg); if i_non_neg <= n then begin z := z + a[i_neg]*a[i_non_neg]; inc(i_neg); inc(i_non_neg); end; end; if (i_neg > n) or (i_non_neg > n) then break; until false; writeln('z = ', z:0:0); end. |
Kelsi |
![]()
Сообщение
#5
|
Гость ![]() |
Volvo,ты просто супер-пупер!Сспасибо, что взялся помочь! :rev:
Но не мог бы мне объяснить, что такое inc и для чего он нужен (в смысле какие ф-ии выполняет)? i_neg, i_non_neg - это у тебя x,y? A[i]=random(200)-100 ![]() break, по ходу дела прирывает цикл? Мне действительно хочется это все понять... Нет смысла списывать чужие решения - это мозгов не прибавит! ![]() Объясни если не сложно... |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
По порядку:
Цитата(Kelsi @ 12.04.05 19:48) что такое inc и для чего он нужен (в смысле какие ф-ии выполняет)? inc(x) это то же самое, что и x := x + 1;Цитата(Kelsi @ 12.04.05 19:48) i_neg, i_non_neg - это у тебя x,y? Не совсем ![]() Цитата(Kelsi @ 12.04.05 19:48) A[i]=random(200)-100 Это - генерация случайных чисел в интервале от -100 до 100![]() Цитата(Kelsi @ 12.04.05 19:48) break, по ходу дела прирывает цикл? :yes: |
Kelsi |
![]()
Сообщение
#7
|
Гость ![]() |
Для отрицательных чисел в массиве нужно всегда использовать такую загогулину-random? ;)
P.S. от куда ты такой умный взялся ![]() |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата(Kelsi @ 12.04.05 20:22) P.S. от куда ты такой умный взялся Это как понимать? ![]() ![]() Цитата Для отрицательных чисел в массиве нужно всегда использовать такую загогулину-random? Об этом Вы сможете прочитать в любой книжке по Паскалю.Закрыто |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:31 |