Схема алгоритма и текст программы
Лабораторная работа Тема: Вычисление сумм (произведений) конечного числа элементов ряда. Оператор FOR …DO (FOR ... DOWNTO) Цель работы: научиться разрабатывать блок-схему алгоритма и программу с использованием операторов цикла FOR …DO на примере вычисления сумм (произведений) элементов конечного ряда Теоретическая часть Оператор FOR …DO Циклические вычисления в Паскале реализуются с помощью операторов FOR...TO(DOWNTO)...DO, WHILE...DOили REPEAT...UNTIL. Особенностью операторов FOR...TO (DOWNTO)...DOявляется встроенный внутренний счетчик цикла, фиксирующий количество повторений. Форматы записи оператора:
FOR переменная цикла := выражение 1 TO выражение 2 DO {операторы тела цикла}; или FOR переменная цикла :=выражение 1DOWNTO выражение 2 DO {операторы тела цикла}; В формате: переменная цикла(управляющая переменная, счетчик цикла) – имя переменной целочисленного типа; выражения1 и 2 — выражения, тип результата которых совпадает с типом переменной цикла; операторы тела цикла — любой исполнимый оператор или блок операторов, заключенных в операторные скобки; FOR, TO, DOWNTOи DO– ключевые слова. !!! Использование оператора FOR регламентируется следующими правилами. · Переменная цикла, её начальное и конечное значения должны быть одного типа. · При выполнении оператора очередное значение параметра цикла вычисляется автоматически. В частности, для целого типа шаг изменения значения переменной цикла равен 1 при конструкции с TO и -1 при конструкции с DOWNTO. · После служебного слова DO может стоять только один оператор. Если в цикле необходимо выполнить группу операторов, то их заключают в операторные скобки BEGIN...END, образуя составной оператор. · Цикл не выполняется вообще, если начальное значение переменной цикла больше (при DOWNTO меньше), чем конечное. В этом случае управление передается оператору, следующему непосредственно за конструкцией FOR..TO(DOWNTO)...DO. · В конструкции FOR..TO(DOWNTO)...DO используется только одна переменная цикла. При наличии вложенных циклов у каждой конструкции FOR..TO(DOWNTO)...DO должна быть своя, отличающаяся от других переменная. · При организации вложенных циклов внутренний и внешний циклы не должны пересекаться. Цикл, который начинается последним, должен завершаться первым: FOR N := 1 TO5 DO BEGIN WRITELN (N:2,'.'); FOR J := 1 TO 5 DO WRITELN (N:2,'.', J:2,'.') END;
Пример работы циклов Пример 3.1. Найти сумму конечного ряда. Значение x вводится с клавиатуры.
program Project1; var x,s:real; i:integer; begin Write('x='); Readln(x); s:=0; for i:=1 to 10 do //начало цикла For s:=s+x*i; //конец цикла For Writeln('s=',s:5:3); //вывод результата Readln; end.
Пример 3.2. Дано действительное число х. Вычислить сумму элементов ряда. Число суммируемых элементов ряда (N) задается во время работы программы с клавиатуры.
. Program Project2; //вычисление суммы заданного числа элементов ряда var x,s,a:real; f:longint; i,n,k:integer; begin //начало раздела операторов write('введите значение x='); readln(x); write('введите значение n='); readln(n); //значение первого слагаемого ряда вычисляется до цикла a:=x; //значение x в степени (2*1-1) f:=1; //значение f=(2*1-1)!=1 s:=a; //а - значение 1-го слагаемого, s=a //к - переменная для изменения знака очередного слагаемого с + на - k:=1; for i:=2 to n do //начало цикла begin k:=- k; //значение (-1) для i-го слагаемого a:=a * sqr(x); //вычисление х в степени (2i+1) i-го слагаемого f:=f * (2*i-2)*(2*i-1); //вычисление факториала i-го слагаемого s:=s+k*a/f; //добавление i-го слагаемого к общей сумме end; //конец цикла //вывод результата на экран writeln('при x=',x:4:2,' сумма', n,' элементов =',s:7:5); readln; end.
Пример 3.3. Задано число х и натуральное число N. Вычислить произведение N элементов ряда .
Для вычисления произведения целесообразно использовать рекуррентные соотношения, т.е. каждую дробь в скобках, начиная со второй, выражать через предыдущую. Это позволит существенно сократить объем вычислений. Расчет N! в числителе дроби каждого множителя выполняется в программе в теле цикла по формуле f:=f*n. p:=p*(2+f/a) - формула умножения элементов ряда Р=P1*P2*…*Pi-1 на очередной Piэлемент ряда.
Схема алгоритма и текст программы
Program Project3; //вычисление произведения заданного числа элементов ряда
var x,p,a : real; f : longint; i,n : integer; begin write('введите x='); readln(x); write('введите n='); readln(n); p:=1; //начальное значение произведения a:=1; f:=1; //начальные значение числителя и знаменателя дроби for i:=1 to n do //начало цикла begin a:= a*x; f:=f*i p:=p*(2+f/a); end; //конец цикла //вывод результата на экран writeln('при x=',x:4:2,' произведение', n:2,' элементов=',p:7:5); readln; end.
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1686)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |