Консультация № 161415
25.02.2009, 22:15
0.00 руб.
0 7 1
Доброго времени суток!Если нетрудно,помогите чем можете)
Даны натуральные числа n,b0,b1...bn.Вычислить f(b0)+(b1)+...+(bn),где f(x)=xвквадрате,если x кратно 3;f(x)=x,если x при делении на 3 дает остаток 1;f(x)=x/3 в остальных случаях.
Заранее спасибо :)

Обсуждение

давно
Профессор
401888
1232
26.02.2009, 09:53
общий
f(b0)+(b1)+...+(bn)

Что Вы сдесь хотели написать?
1. F(b0+b1+..bn); или
2.F(b0)+F(b1)+...F(bn);
или как то еще ?
Неизвестный
26.02.2009, 18:15
общий
В условии стоит именно Вычислить f(b0)+(b1)+...+(bn)
давно
Профессор
401888
1232
26.02.2009, 18:57
общий
Ну тогда, удачи!
Неизвестный
26.02.2009, 21:44
общий
Спасибо,но мб хоть чем-нибудь поможете... Хоть идею дайте...
давно
Профессор
401888
1232
26.02.2009, 21:48
общий
Вы сами неужели не видите, что неверно написано условие. Идея такая, выяснить что требуется сделать.
давно
Профессор
401888
1232
27.02.2009, 08:33
общий
это ответ
Здравствуйте, Бойко Вадим Игоревич!
Поскольку Вы все-таки не предоставили исправленное условие, логично предположить, что оно выглядит так: Вычислить f(b0)+f(b1)+...+f(bn).
Кроме того было бы логично, поскольку имеем дело с натуральными числами, числа, кратные 3 делить на 3, а не числа, дающие остаток 2. С этим ладно, второй массив сделаем вещественного типа, но думаю что и тут в условии ошибка. Но, имея этот код, легко изменить его, если уточнится условие.


Приложение:
uses crt;
const nmax=50;{максимальный размер массивов}
type Tnatur=1..maxint;{тип натуральные числа}
var n,i:byte;
b:array[0..nmax] of Tnatur;{исходный массив}
f:array[0..nmax] of real;{результирующий массив}
begin
clrscr;
randomize;{генерация псевдослучайных чисел}
repeat
write('n=');{вводим размер массива с проверкой правильного ввода}
readln(n);
until (n>0)and(n<=nmax);
writeln('Ishodnyj massiv:');
for i:=0 to n do
begin
b[i]:=random(20)+1;{псевдослучайные числа в инт. 1-20}
write(b[i],' ');
end;
writeln;
writeln;
writeln('Rezultat:');
for i:=0 to n do
begin
if b[i] mod 3=0 then f[i]:=sqr(b[i]){если кратно 3}
else if b[i] mod 3=1 then f[i]:=b[i]{если в остатке 1}
else f[i]:=b[i]/3;{если в остатке 2}
write(f[i]:7:2);{выводим в форматированном виде, 7 позиций под число, 2 знака после запятой}
end;
readln
end.

Неизвестный
28.02.2009, 18:49
общий
Спасибо)
Форма ответа