пятница, 20 мая 2011 г.

Наиболее распространенные задачи на экзамене по информатике 1 курс УГАТУ

Для тех, кто берет задачи на 3 - это вычисление суммы или произведения какого-нибудь ряда. Разберем их на примерах.

Сумма ряда.
Числовой ряд -
Сумма всех его элементов - - называется суммой ряда и обозначается так - .

Очередной элемент обычно изображается некой формулой, например -

Нужно только правильно интерпретировать эту формулу в Паскале.

Пример.
Найти сумму ряда , где кол-во элементов m=10 (пишется сверху значка суммы, в данном случае вместо бесконечности).

var m,n,a: integer;
// m - число элементов, n - счетчик, a - текущий элемент
s:real;
// s - сумма
begin
write('Введите m:');
readln(m);
// Число элементов m обычно указывается в задаче
s:= 0;
// В начале сумма равна 0
for n:=1 to m do begin
// считаем сумму от 1 до последнего элемента
a:=2/(n*n+6*n+8); // очередной элемент
s:=s+a;
// добавляем текущий элемент к уже найденной сумме
end;
writeln(s:3:3);
// выводим сумму на экран. :3:3 означает, что цифра будет выводиться в формате 3 цифры до запятой и 3 цифры после запятой, чтобы избежать вывода очень маленького числа в подобном виде 1.9679e+006 - 1 число до запятой, умноженное на 10 в степени n
readln;
// ожидаем нажатия клавиши, чтобы увидеть выведенное на экран
end.
// конец программы


Ряд называется знакочередующимся, если его члены попеременно принимают значения противоположных знаков, т. е.: , т.е. если в формуле присутствует -1 в какой-то степени n.
Пример - - вместо 2 в числителе - (-1)^n
Такой элемент вычисляется следующим образом:
при четном n (-1)^n=1
при нечетном n (-1)^n=-1

if odd(n) then b:=-1 else b:=1;
// Функция Odd возвращает истину, если данное число n нечетно.
a:=b/(n*n+6*n+8); // формула (-1)^n/(n^2+6n+8)
s:=s+a;


Формула с факториалом.
Факториа́л числа n (обозначается n!, произносится эн факториа́л) — произведение всех натуральных чисел до n включительно:

По определению полагают 0! = 1. Факториал определён только для целых неотрицательных чисел.
Пример - - вместо 2 в числителе - 2!

Функцию определения факториала добавляем после блока var и перед первым begin:

function fac(k:integer):integer;
begin
if k=1 then fac:=1
else fac:=fac(k-1)*k;
end;


В итоге текущий элемент определяем так:
a:=fac(2)/(n*n+6*n+8); // формула 2!/(n^2+6n+8)
s:=s+a;


Произведение ряда.

Важный момент - начальное значение произведения равно 1. Если 0, тогда в ответе всегда будет 0, т.к. 0 умножить на что угодно будет 0 :)

Пример.
Найти произведение ряда П(2/(n^2+6n+8)), сверху m, снизу n=1, где кол-во элементов m=10.

var m,n,a: integer;
// m - число элементов, n - счетчик, a - текущий элемент
p:real;
// p - произведение
begin
write('Введите m:');
readln(m);
// Число элементов m обычно указывается в задаче
p:= 1;
// В начале произведение равно 1 - ВАЖНО!
for n:=1 to m do begin
// считаем сумму от 1 до последнего элемента
a:=2/(n*n+6*n+8); // очередной элемент
p:=p*a;
// умножаем текущий элемент на уже найденное произведение
end;
writeln(p:3:3);
// выводим произведение на экран. :3:3 означает, что цифра будет выводиться в формате 3 цифры до запятой и 3 цифры после запятой, чтобы избежать вывода очень маленького числа в подобном виде 1.9679e+006 - 1 число до запятой, умноженное на 10 в степени n
readln;
// ожидаем нажатия клавиши, чтобы увидеть выведенное на экран
end.
// конец программы



Удачи на экзамене! :)
Если сомневаетесь в своих силах, пишите мне - помогу :)
Стоимость помощи на экзамене - 300 рублей при условии сдачи вами практической части.

Комментариев нет:

Отправить комментарий