Написать код к !
написать функцию вычисления суммы ряда:
· стандартный диапазон значений x =0..9, шаг 0.1. убедиться, что на этом диапазоне элемент суммы ряда стремится к 0, при необходимости скорректировать диапазон;
· вычислить значения суммы ряда и контрольной функции, к которой он сходится, с точностью до 4 знаков после запятой;
· исходя из полученного значения n и формулы ряда объяснить различную скорость сходимости для разных x;
ряд: (x-1)/x+(x-1)^2/2x^2+(x-1)^3/3x^3+…+(x-1)^n/nx^n
функция: ln(x)
мои наброски, которые не сработали:
double sum(double x, double eps, int& n) {
double s, sn; // сумма и текущее слагаемое ряда
int a;
int b;
n = 1;
for (s = 0., sn = (x-1)/x ; abs(sn) > eps; n++) {
b = x * (1+n);
a = pow(x - 1, n);
s += sn;
sn = sn*a/b ;
}
return s;
}
// вычисление степенного ряда для x в диапазоне от 0.1 до 1 с шагом 0.1
int main() {
double x, y;
int nn;
for (x = 0.1; x < = 1.; x += 0.05) {
y = sum(x, 0.0001, nn);
printf("n=%d x=%0.1lf\t sum=%0.4lf\t log=%0.4lf\n", nn, x, y, log(x));
}
}
const
nn=30;
mm=30;
var
a:array[1..mm,1..nn] of integer;
m,n,i,j,k,s:integer;
begin
Writeln('Введите число строк и столбцов массива: '); Read(m,n);
Randomize;
Writeln('*** Исходный массив ***');
k:=0;
for i:=1 to m do begin
for j:=1 to n do begin
a[i,j]:=Random(51)-25;
Write(a[i,j]:4);
if Odd(a[i,j]) then Inc(k)
end;
Writeln
end;
if k>5 then begin
Writeln('Средние арифметические отрицательных элементов по строкам');
for i:=1 to m do begin
s:=0; k:=0;
for j:=1 to n do
if a[i,j]<0 then begin Inc(k); s:=s+a[i,j] end;
if k>0 then Writeln(s/k:9:5) else Writeln(' 0.00000');
end
end
else begin
Writeln('*** Результирующий массив ***');
for i:=1 to m do begin
for j:=1 to n do begin a[i,j]:=2*a[i,j]; Write(a[i,j]:4) end;
Writeln
end
end
end.
Тестовые решения:
Введите число строк и столбцов массива:
8 6
*** Исходный массив ***
-16 -8 -1 24 -22 1
-9 -20 -25 13 -11 10
-15 10 -12 20 -22 3
-6 25 -3 25 -14 22
24 -4 24 17 -4 -17
-23 -9 -22 1 -18 -13
-12 13 6 -16 2 -13
19 8 -22 14 -3 4
Средние арифметические отрицательных элементов по строкам
-11.75000
-16.25000
-16.33333
-7.66667
-8.33333
-17.00000
-13.66667
-12.50000
Введите число строк и столбцов массива:
3 5
*** Исходный массив ***
3 24 -21 -22 -8
-21 14 -22 0 -22
15 -16 -2 6 22
*** Результирующий массив ***
6 48 -42 -44 -16
-42 28 -44 0 -44
30 -32 -4 12 44
На протяжении всей истории существования человека он то и дело пытался совершенствовать мир вокруг, чтобы улучшить свою жизнь сделать ее проще и комфортнее. История создания компьютера – это прежде всего стремление человека изобрести устройство для решения задач, непосильных для человеческого разума. И как показывает практика, задача эта исполнена на "ура".
Если вы думаете, что компьютер появился несколько десятилетий назад, то глубоко заблуждаетесь, ведь его история насчитывает несколько столетий. Конечно же, первые предки современного ПК были очень примитивными и даже язык не поворачивается назвать их "компьютерами", но не пройдя всех этих этапов становления он, возможно, не стал таким чудом техники.
Итак, первым созданным компьютером в истории человечества считается машина для подсчетов Блеза Паскаля, возникшая в 1642 году. Это был первый примитивный калькулятор, который изобретателю слагать и вычитать. Изобретение Паскаля считается нулевым этапом в разработке компьютеров и для своего времени это было прогрессивное устройство, ведь ранее никаких попыток механизировать вычисления не было.
Придуманный Паскалем "компьютер" назвали "Паскалина" и представлял он собой ящик с многочисленными шестернями. С колесиков прибор позволял вводить числа от 0 до 9, а в верхней части корпуса, после ввода исходных данных, показывался результат.