КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
При вычислении суммы необходимо перед циклом задать начальное значение суммы равное нулю S = 0, а внутри цикла, используется прием накопления по выражению S:=S+Y; где S - накапливаемая сумма; Y - слагаемое. По данному выражению каждое новое значение получается добавлением слагаемого к предыдущей сумме. Пример 1. Вычислить сумму синусов чисел от 1 до 1000. Суммировать и выводить на экран только положительные значения синусов. PROGRAM ех_2 (input, output); VAR i: integer; s: real; BEGIN s:= 0; FOR i:=l TO 1000 DO Begin If sin(i)<0 then continue; s:= s + sin(i); writeln(' sin (' , i, ' ) =' ,sin (i)); End; Writeln('Сумма равна: ',s); Readln; END. Пример 2.Составить программу для приближенного вычисления определенного интеграла методом прямоугольников с шагом интегрирования h. Приближенное вычисление можно производить по формуле Программа имеет вид PBOGRAM INTRL(INPUT, OUTPUT); VAR I,N:INTEGER; A,B,H,X,Y:REAL; BEGIN READ(A,B,H); N:=TRUNC((B-A)/H)+1; X:=A; Y:=0; FOR I:=l TO N DO BEGIN Y:=Y+(EXP(X) + 1)/X*H; X:=X+H ; END; WRITELN(Y) END. Для накопления произведения необходимо перед циклом задать начальное значение произведения (пусть Р: = 1;), а внутри цикла накапливать произведение, используя оператор присваивания P:=P*Y; где Р - промежуточное произведение, a Y - сомножитель. Пример 3.Составить программу для вычисления среднего геометрического положительных элементов массива X (x1, х2, . . ., x40). В программе используется прием накопления произведения. Следовательно, до начала цикла необходимо задать, например, Р=1. В цикле перед накапливанием произведения необходимо выбирать положительные элементы массива. Программа имеет вид PROGRAM SREDG (INPUT,OUTPUT); CONST IMAX=40; VAR P,S:REAL ; N,I:INTEGER; X: ARRAY [1..IMAX] OF REAL; BEGIN FOR I: =1 TO IMAX DO READ (X[I]); P: = l; N:=0; FOR I:=l TO IMAX DO IF X[I]>0 THEN BEGIN P:=P*X[I]; N:=N+1 END; S:=EXP(N*LN(P)); WRITE ('S =’ ,S:8:3) END. Пример 4.Составить программу для вычисления n!,считая, что . В этом случае начальное значение произведения может быть равно 2 (2!). Программа имеет вид PROGRAM FACT (INPUT,OUTPUT); VAR N, NF, I:INTEGER; BEGIN READ(N); NF:=2; FOR I:=3 TO N DO NF:=NF*I WRITE (‘NF =' , NF:10) END. Контрольные вопросы. 1. Где задается и чему равно начальное значение суммы (произведения)? 2. По какой формуле накапливается сумма (произведения)? 3. Чему может быть равно начальное значение суммы при вычислении суммы членов бесконечного ряда? 4. Как вычисляется текущий член ряда? 5. Что является условием повторения цикла при вычислении суммы?
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|