Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Vladimir
Помогите решить задачу. Она звучит так:
Код
var: x:array[1..100] of real;
      a:array[1..30] of 1..100;
      s:real;

Вычислить s - сумму тех элементов массива x, индексы которых совпадают со значениями элементов массива a (a[i]<>a[j] при i<>j ).
fms
по моему тут много ошибок в формулировке?.. нет?..

и в чем сложность для тебя?.. (раз уж тут практика объяснения теперь.. smile.gif)
Vladimir
Задача сформулирована именно так(ну может только "не равно" я заменил на "<>" и индексы я взял в скобки).
Сложность заключается в том, что я не понимаю что значит "of 1..100". И откуда у нас есть и a[i] и a[j], если массив a - не матрица?
___ALex___
Vladimir
fms тебя научит  :) ;)
fms
___ALex___, ха-ха..  >:(
fms
___ALex___
думаю у тебя лучше получится.. )
___ALex___
fms
я в хорошем смысле  :)
fms
___ALex___, еще бы в плохом.. smile.gif


может я что то не так думаю, но по моему тут все не так сложно..

a:array [1..30] of 1..100;

это означает, что значения элементов массива а изменяются в диапазоне от 1 до 100 т.к. коэффициенты массива х нумеруются от 1 до 100.. smile.gif вот и все.

хм.. а по твоему массив обязательно должен быть матрицей?!
а a[i]<>a[j] значит что элементы в массиве а не повторяются..
может я что то не так поняла, но по моему верно.

соответственно программа:

Код
Program hdkhj;
var x:array[1..100] of integer;
a:array[1..30] of 1..100;
s:real;
i,j:integer;
begin
for i:=1 to 30 do
read(a[i]);
for j:=1 to 100 do
read(x[j]);
s:=0;
for i:=1 to 30 do
for j:=1 to 100 do
if i=a[j] then
s:=s+x[i];

write('s: ',s);
end.
zx1024
s := 0;
for i := 1 to 30 do
 s := s + x[a[i]];
fms
zx1024
а какая разница?! ведь коэффициент при х равен эл-ту в массиве а..
fms
а.. все поняла.. )
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.