русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Тема 1.4. Алгоритмический ряд.


Дата добавления: 2014-02-04; просмотров: 836; Нарушение авторских прав


Тип лекции: текущая

План:

1. Алгоритмический ряд

 

Оператор цикла применяется при выполнении расчетов или других действий, повторяющихся определенное количество раз. Оператор имеет вид:

For i:= N1 To N2 Do "оператор";

либо

For i:= N1 DownTo N2 Do "оператор";

Здесь i - параметр цикла (переменная порядкового типа),

N1, N2 - начальное и конечное значения параметра цикла i.

N1, N2 могут быть константами, переменными или выражениями порядкового типа.

Напомним, что "оператор" может иметь вид: Begin "операторы" end;

Схема выполнения оператора цикла с параметром имеет вид:

 

В случае связки "To" цикл выполняется при условии N1 <= N2 и происходит с единичным возрастанием параметра цикла i от N1 до N2. В случае связки DownTo цикл выполняется при условии N1 >= N2 и происходит с единичным уменьшением параметра цикла i от N1 до N2.

В операторе цикла не разрешается присваивать параметру цикла какое-либо значение.

После окончания цикла значение параметра цикла "i" неопределенно.

Оператор цикла часто применяется для суммирования значений некоторой последовательности чисел или значений функции при известном числе операций суммирования. Напомним некоторые определения, связанные с расчетом суммы последовательности.

Сумма членов последовательности величин

a1, a2, a3, . . . , an

называется конечной суммой

Sn = a1 + a2 + a3+ . . . + an

Для некоторых последовательностей известны формулы расчета конечных сумм, например:

при an = an-1 + d; Sn = (a1 + an)*n/2; - арифметическая прогрессия,

при an = an-1 * q; Sn= (a1 - an*q)/(1-q); - геометрическая прогрессия,

где d и q - постоянные числа.

Здесь N-ый член последовательности выражается через (N-1)-ый член. Такие зависимости называются реккурентными.



Конечная сумма последовательности может быть неизвестна, тогда для ее расчета применяется алгоритм суммирования членов последовательности в цикле от 1 до N. Приведем пример расчета конечной суммы последовательности: 12 + 32 + 52 +. . . + (2*N-1)2; Sn = N*(4*N2-1)/3;

PROGRAM SUM_K; { расчет конечной суммы }var a, S, Sn, i, N : word;Begin write('Введите число членов суммы N='); readln(N); S:= 0; For i:= 1 to N do begin { цикл суммирования } a := Sqr(2*i-1); S:= S+a end; Sn := N*(4*N*N-1) div 3; Writeln('Конечная сумма S=', S:10:2); Writeln('Расчет конечной суммы по формуле Sn=', Sn:10:2); Writeln('Нажми Enter'); ReadLn End.

В некоторых случаях "N"-ый член последовательности определяется через сумму предыдущих членов, например,

an= p*Sn-1,

тогда

Sn= Sn-1 + an = Sn-1*(1+р),

и конечную сумму можно рассчитать по формуле:

Sn = S0*(1+p)N,

где "S0" - начальная сумма.

Рассмотрим программу вычисления конечной суммы денежного вклада в банк через N месяцев при ежемесячной процентной ставке "pr" (5% cоответствует pr=5).

PROGRAM VKLAD; { расчет конечной суммы вклада в банк }var S, Sn, pr : Real; i, N : Integer;Begin Write('Введите начальную сумму вклада S='); readln(S); Write('Введите процент по вкладу pr='); readln(pr); Write('Введите количество месяцев вклада N='); readln(N); For i:= 1 to N do S:= S*(1+pr/100); { цикл произведений } Writeln('Конечная сумма вклада S=', S:10:2); { Оператор для расчета "Sn" напишите самостоятельно } Writeln('Расчет конечной суммы вклада по формуле Sn=', Sn:10:2); Writeln('Нажмите Enter'); readln End.

Часто применяются вложенные операторы цикла. Например, если необходимо провести все варианты расчета при изменении нескольких параметров в заданных диапазонах.

Составим программу расчета функции y = A*sin(x) - cos(x)/A; при изменении аргумента "x" в диапазоне от 0 до Pi с шагом Pi/100 и при изменении параметра "A" в диапазоне от 1 до 3 с шагом 0.5.

Program tabl;var y, x, a, dx : real; i, j: integer;Begin Writeln(' Расчет по формуле: y=A*sin(x)-cos(x)/A; '); Writeln('--------------------------------------------------'); Writeln('| X | A=1.0 | A=1.5 | A=2.0 | A=2.5 | A=3.0 |'); Writeln('--------------------------------------------------'); dx := pi/100; for i:= 0 to 100 do begin { внешний цикл изменения аргумента "X" } x:= dx*i; Write( x:8:4 ); for j := 1 to 5 do begin{ вложеннный цикл изменения параметра "A" } A := 0.5*(j+1); y := A*sin(x)-cos(x)/A; Write(y:8:4) end; Writeln; {перевод курсора на новую строчку} if ((i+1) mod 20) = 0 then readln{задержка прокрутки экрана до нажатия Enter} end; readln;End.


<== предыдущая лекция | следующая лекция ==>
Цикл с постусловием (цикл ДО) | Операторы цикла с условием


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.456 сек.