IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Одномерный массив
Kelsi
сообщение 10.04.2005 15:23
Сообщение #1


Гость






У меня тут одна задачка... не поможете ли решить?
Дано целое n<=100 и вещественный вектор a из n элементов. Вычислить величину z=сумма(от i=1 до r)xiyi, где элементами вектора x(x1,x2,...,xp) являются отрицательные элементы вектора а, взятые в порядке их следования, элементами вектора y(y1,y2,...,yq) являются неотрицательные элементы вектора а, взятые в порядке их следования, а r=min(p,q). huh.gif
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
volvo
сообщение 12.04.2005 0:18
Сообщение #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.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"