Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Електронный_лаб_практ_ОПтаАМ_I.doc
Скачиваний:
6
Добавлен:
27.11.2019
Размер:
1.3 Mб
Скачать

2. Тексты программ:

PROGRAM z41;  (* 1-й способ с оператором перехода                GOTO *)

CONST

k=2; (* поименованная константа *)

LABEL 1; (* метка *)

VAR

x,s,a:REAL; (* переменная, сумма, элемент суммы *)

i,j,znak,fakt:INTEGER; (* номер элемента суммы,                 переменная цикла, знак, факториал *)

BEGIN

s:=0.0;

i:=0;

znak:=1;

x:=0.1;

1: i:=i+1;

znak:=znak*(-1);

fakt:=1;

FOR j:=1 TO (k*i+1) DO fakt:=fakt*j;

a:=znak*EXP((k*i+1)*LN(k*x))/fakt;

s:=s+a;

IF ABS(a)>0.0001 THEN GOTO 1;

WRITE(‘При a= ’,a:9:7, ‘сумма= ’,s:9:7);

WRITELN(‘на’ 4:2,‘-ой итерации’);

END.

3а) Схема алгоритма задачи 4 (1-й способ (опера-торы IF и GOTO))

X – аргумент

S – сумма

а – член ряда

znak – знак члена ряда

i – номер итерации

j – счётчик циклов

K – коэффициент

FAKT факториал

Объявление

переменных

Вывод результата

PROGRAM z42;

(* 2-й способ с оператором цикла WHILE *)

CONST

k=2; (* поименованная константа *)

VAR

x,s,a:REAL; (* переменная, сумма, элемент суммы *)

i,j,znak,fakt:INTEGER; (* номер элемента суммы,

переменная цикла, знак, факториал *)

BEGIN

s:=0.0;

i:=0;

znak:=1;

x:=0.1;

a:=1;

WHILE ABS(a)>0.0001 DO

BEGIN

i=i+1;

znak:=znak*(-1);

fakt:=1;

FOR j:=1 TO (k*i+1) DO

fakt:=fakt*i;

a:=znak*EXP((k*i+1)*LN(k*x))/fakt;

s:=s+a;

END;

WRITE(‘При a= ’,a:9:7, ‘сумма= ’,s:9:7);

WRITELN(‘на ’i:2,‘-ой итерации’);

END.

3б) Схема алгоритма задачи 4 (2-й способ (цикл WHILE))

X – аргумент

S – сумма

а – член ряда

znak – знак члена ряда

i – номер итерации

j – счётчик циклов

K – коэффициент

FAKT факториал

Объявление

переменных

Вывод результата

PROGRAM z43;

(* 3-й способ с оператором цикла REPEAT *)

CONST

k=2; (* поименованная константа *)

VAR

x,s,a:REAL; (* переменная, сумма, элемент суммы *)

i,j,znak,fakt:INTEGER; (* номер элемента суммы, переменная цикла, знак, факториал *)

BEGIN

s:=0.0;

i:=0;

znak:=1;

x:=0.1;

REPEAT

i:=i+1;

znak:=znak*(-1);

fakt:=1;

FOR j:=1 TO (k*i+1) DO

fakt:=fakt*j;

a:=znak*EXP((k*i+1)*LN(k*x)/fakt;

s:=s+a:

UNTIL ABS(a)>0.0001;

WRITE(‘При а= ’,а:9:7, ‘сумма= ’,s:9:7);

WRITELN(‘на ’ i:2,‘-ой итерации’);

END.

3в) Схема алгоритма задачи 4 (3-й способ (цикл REPEAT))

X – аргумент

S – сумма

а – член ряда

znak – знак члена ряда

i – номер итерации

j – счётчик циклов

K – коэффициент

FAKT факториал

Объявление

переменных

Вывод результата

PROGRAM z44; (* 4-й способ с операторами описания   и вызова процедур и функций *)

CONST

k=2; (* поименованная константа )

VAR

x,s,a,i:REAL; (* переменная, сумма, элемент суммы,

номер элемента суммы *)

i1:INTEGER; (* целый тип номера элемента суммы *)

FUNCTION fakt(f:INTEGER):INTEGER; (* функция                                       факториал *)

VAR fak,j:INTEGER; (* локальные переменные *)

BEGIN

fak:=1;

FOR j:=1 TO f DO

fak:=fak*j;

fakt:=fak;

END;

PROCEDURE summa(VAR,s:REAL; b:REAL); (* процедура                                          суммы *)

BEGIN

s:=s+b;

END;

FUNCTION stepen(osn:REAL;step:INTEGER):RЕАL;                                (* функция степени *)

VAR k:INTEGER; (* локальные*)

st:REAL; (* переменные *)

BEGIN

st:=1.0;

FOR k:=1 TO step DO

st:=st*osn;

stepen:=st;

END;

BEGIN

s:=0.0;

i:=0;

x:=0.1;

REPEAT

summa(i,1.0);

i1:=TRUNC(i);

a:=stepen(-1.0,i1)* stepen(k*x,k*i1+1)/fakt(k*i1+1);

summa(s,a);

UNTIL ABS(a)<0.0001;

WRITE(‘При a= ’,a:9:7, ‘сумма= ’,s:9:7);

WRITELN(‘на ’,i1:2,‘-ой итерации’);

END.

3г) Схема алгоритма задачи 4 (4-й способ (FUNCTION и PROCEDURE))

Объявление

переменных

Вывод результата

Описание функции

Описание процедуры

Описание функции

Вызов процедуры

Преобразование к целому типу

Вызов процедуры

Функция FAKT

F – формальный параметр

j – счётчик циклов

FAK – промежуточная переменная

Объявление

переменных

Присвоение значения функции

Передача значения параметру

Процедура SUMMA

Передача значений параметрам

S, B – формальные параметры

Функция STEPEN

OSN, STEP – формальные параметры

K – счётчик циклов

ST – промежуточная переменная

Объявление

переменных

Присвоение значения функции

Передача значений параметрам

Задача 5

1. Условие: Составить схему алгоритма и написать ВР-программу обработки одномерного массива целых чисел (вид обработки см. в табл. П. 2). Результат вывести на экран дисплея.

Пример: вид обработки заключается в подсчете количества положительных элементов массива.