![]() |
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). ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ну, вот что пришло в голову:
Код 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. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 18:19 |