Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Программирование циклических алгоритмов с заданным
Числом повторений Первая форма счетного оператора цикла позволяет наращивать параметр цикла на единицу (+1): FOR <параметр цикла>:= <min значение> TO <max значение> DO <оператор>; (Для) (увеличивая к) (выполнять) где <параметр цикла> - это переменная целого либо любого порядкового типа; <min, max значения> - это начальное и конечное значения параметра цикла (выражения того же типа, что и параметр цикла). Вторая форма позволяет уменьшать значение параметра цикла на единицу (-1): FOR <параметр цикла>:= <max знач.> DOWNTO <min знач.> DO <оператор>; (Для) (уменьшая к) (делать) Пример 1. Вычислить сумму элементов s=1+1/4+1/9+1/16+... . На основе анализа изменения параметра знаменателя определим алгоритм решения задачи и напишем программу: PROGRAM suma; VAR s, r: REAL; i, N: INTEGER; BEGIN s:=0; WRITELN('введите N'); READ(N); FOR I:=1 TO N DO begin r:=1/sqr(i); s:=s+r; end; WRITELN('Сумма=',s:6:2); END. Пример 2. Вычислить значения двух функций F1(x)=tg(x) и F2(x)=sin(x) в n точках, равномерно распределенных на интервале a ≤ x ≤ b, где a=-π/4, b=π.
Для реализации данной задачи разработана следующая программа:
Program Lab3; Const а = -pi/4; b = pi; Var F1, F2, x, dx: real; {dx - шаг изменения х} i, n: integer; {i - пеpеменная цикла} Begin writeln ('введите число точек N'); read(n); dx: = abs(b-a)/(n-1); x:=a; writeln (' _____________________________'); writeln ('| I | X | F1 | F2 |'); writeln ('|---|--------------|------------|------------|'); for i:=1 to n do {опеpатоp цикла} begin F2:=sin(x); F1:=F2/cos(x); {вычисление: tg x} writeln('|', i:3,' |', x:8:3,'|', f1:8:4,' |', f2:8:4,' |'); x:=x+dx; end; writeln('|________________________|); End.
Задание 2 (программа 3_2) Вычислить значения двух функций в n равномерно распределенных в диапазо-
не а≤x≤b точках. Результаты оформить в виде таблицы.
Лабораторная работа 4 Программирование циклических алгоритмов с предусловием Цель работы: научиться разрабатывать и отлаживать программы с неразветвленными и разветвленными циклами, управляемыми условиями. Структура оператора цикла с предусловием (с предварительной проверкой условия): WHILE <условие_выполнения> DO <оператор>; пока делать где <условие> - это любое логическое выражение, <оператор> - это произвольный оператор Турбо Паскаля, в том числе и составной. Пример. Для трех значений а = 0.1, 0.2,0.3 протабулировать функцию y=a.tg(x/4) при изменении аргумента x на интервале [0.5,0.9] с шагом, равным a. Program a4_1; var
a,x,y:real; Begin writeln('-------------------------'); writeln(' a | x | y |'); writeln('-------------------------'); a:=0.1; while a<=0.31 do begin writeln(a:5:2); x:=0.5; while x<=0.91 do begin y:=a*sin(x/4)/cos(x/4); writeln(x:12:2,' | ', y:10:2); x:=x+a; end; writeln('-------------------------'); a:=a+0.1 end; End. Задание 2 (программа 4_2) Модифицировать (изменить) программу 3_2 для вычисления функций F1(x) и F2(x) с применением вместо счетного цикла оператора цикла с предусловием. Выполнить ее и сравнить результаты с полученными в предыдущей работе.
Лабораторная работа 5 Программирование циклических алгоритмов С постусловием
Стpуктуpа оператора цикла с постусловием REPEAT <оператор 1>; (повторять) <оператор 2>; ... <оператор N> UNTIL <условие окончания цикла>; (до тех поp, пока) Пример. Вычислить 15 значений функций y1(x) = tg(x) ; и y2(x) = ctg(x) при a ≤ x ≤ b, a=0.6*Pi, b=0.7*Pi. Для вычислений разработана следующая программа: Program Lab5; Const n = 14; a = 0.6*Pi; b = 0.7*Pi; Var x, y1, y2, dx: real; Begin dx:=abs((a-b)/n); x:=a; Repeat y1:=sin(x)/cos(x); y2:=1/y1; writeln('x=', x:6:4,' y1= ', y1:7:4,' y2=', y2:7:4); x:=x+dx Until x>b; End. Пример 2. Вычислить сумму элементов s = 1+1/4+1/9+1/16+... c точностью до E = 0.00001
PROGRAM sum; CONST E=0.00001; {точность} VAR s,r: REAL; {s - сумма, r – слагаемое} i:INTEGER; {i - счетчик слагаемых} BEGIN s:=0; i:=1; REPEAT r:=1/sqr(i); {вычисление слагаемого} s:=s+r; i:=i+1 {счет слагаемых} UNTIL r<E; {сравнение слагаемого с Е} WRITELN ('Сумма=',s:9:5); {вывод суммы} END.
Задание 1 (программа 5_1) Модифицировать программу 3_2 для вычисления функций F1(x) и F2 (x) с применением оператора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.
Лабораторная работа 6 |
|||||||||||||||
Последнее изменение этой страницы: 2018-05-29; просмотров: 224. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |