3897
.pdfN
K=0
S=0
I=1
I<=N
Т.Ц.
I=I+1
S/K
END
11
Схема циклического процесса с разработанным телом цикла и блоком начальных значений
А
А <0
K=K+1
S= S +А
Обозначает выход из цикла, если выполняется условие окончания цикла, т. е. I > N, и продолжение программы
Программа: PROGRAM PR1;
VAR N, S, K, I, A: INTEGER; {описание переменных } BEGIN
WRITELN (‘Введите количество обрабатываемых чисел’);
READLN (N); |
{блок начальных} |
S: =0; |
|
K: =0; |
{значений} |
|
12 |
WRITELN(‘введите последовательность’, N, ‘целых чисел, через пробел’); |
|
FOR I : = 1 TO N DO |
|
BEGIN |
{тело цикла начало} |
READ (A); |
|
IF A<0 THEN |
|
BEGIN |
{начало составного оператора} |
S: =S+A; |
|
K:= K+1; |
|
END; |
{конец составного оператора} |
END; |
{конец тела цикла} |
WRITELN (‘среднее арифметическое =’, S/K); |
|
READLN; |
{конец строки, переход на новую строку экрана} |
READLN; |
{задержка экрана для просмотра результатов} |
END.
Пример 2. Задана последовательность символов, заканчивающаяся символом ‘*’. Определить максимальную цифру и её номер в последовательности. В этом примере неизвестно, сколько раз будет выполняться цикл, но известно, что его надо закончить, как только обрабатываемый символ будет ‘*’. Поэтому следует использовать схему варианта б) параметр цикла обрабатываемое значение С.
C
C<>’*’
Схема циклического процесса с заполненными блоками параметра цикла
Т.Ц.
С
NOM=1
MAX=’0’
I = 1
C
C<>’*’
Т.Ц.
С
NOM,
MAX
END
13
Схема циклического процесса с разработанным телом цикла и блоком начальных значений
С цифра?
MAX<C
MAX=C
NOM=I
I=I + 1
Программа: PROGRAM PR2;
VAR I, NOM : INTEGER; MAX, C : CHAR ; BEGIN
MAX : =’0’; {блок начальных} NOM:=1;
MAX=’0’
I:=1; {значений}
WRITELN(‘Введите последовательность символов, в конце *’);
|
14 |
READ (C); |
|
WHILE C<>’*’ do |
|
BEGIN |
{тело цикла начало} |
IF C in '0'..'9' |
THEN |
IF MAX< C THEN |
|
BEGIN |
{начало составного оператора} |
MAX : =C; |
|
NOM : =I; |
|
END; |
{конец составного оператора} |
I: =I+1; |
|
READ(C); |
|
END; |
{конец тела цикла} |
WRITELN (‘MAX=’, MAX, ’NOM=’, NOM); |
|
READLN; |
{задержка экрана для просмотра результатов} |
END.
3. Лабораторный практикум 3.1. Лабораторная работа 1.
Программирование линейных алгоритмов
Цель работы – овладение практическими навыками разработки и программирования вычислительного процесса линейной структуры и навыками по отладке и тестированию программ.
Задания для самостоятельной подготовки
1.Изучить:
–запись констант, переменных, стандартных функций;
–правила записи выражений на языке Паскаль;
–оператор присваивания;
–организацию простейшего ввода-вывода данных;
2.Разработать алгоритм решения в соответствии с заданием, составить схему алгоритма.
3.Составить программу решения задачи.
4.Подготовить тестовые варианты исходных данных и вычислить для них вручную или с помощью микрокалькулятора значения вычисляемых в программе величин.
5.Реализовать программу на ЭВМ, сравнить результаты счёта с тестовыми.
6.Оформить отчёт по приведённому ниже образцу.
Постановка задачи
15
1.Вычислить на ЭВМ значения переменных, указанных в варианте, по заданным расчётным формулам и наборам исходных данных.
2.Записать выражение, зависящее от координат точек X1 и Y1 и принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если точка не принадлежит этой области. Для заданных точек вычислить выражение и результат выдать на печать.
Пример оформления и выполнения задания:
а) вычислить значения Y и P, для заданных значений a, z ,x по приведённым ниже формулам.
Y |
a tg 3 x2 |
|
|
z 2 |
|
|
; |
|
|
a 2 |
x2 |
||||
|
|
|
|
|
|||
|
|
2 |
|
2 |
z |
|
|
P |
ln(a x |
|
) |
Sin |
|
|
|
|
a |
|
|||||
|
|
|
|
|
|
при a = 0,59; z = -4,8; x = 2,1;
б) определить, принадлежит ли точка T(x1,y1) к заштрихованной области.
y
0 |
1 |
х |
Структурная схема для а)
А,Х,Z
C=SIN (X)/COS( X)
Y=A*C*SQR(С)+SQRT(Z*Z/(A*A+X*X));
P= ln(A+X*X)+SQR(Sin(Z/A));
Y, P
16
Структурная схема для б)
X1, Y1
L=(x1 =0)AND(y1 =0)AND(SQR(x1)+SQR(y1) =1);
ТОЧКА С КООРДИНАТАМИ
L
ПРИНАДЛЕЖИТ |
НЕ ПРИНАДЛЕЖИТ |
ЗАДАННОЙ ОБЛАСТИ
program Prim1;
{ лабораторная работа 1}
{студент группы ИСЭ X1 Иванов И.И.} var A, X, Z, Y, P, C: REAL;
X1, Y1: REAL;
L: BOOLEAN;
BEGIN
{вариант а) }
WRITELN (' введите A, X, Z'); READLN (A, X, Z);
C: = Sin(x*x)/Cos(x*x);
Y: = A*C*SQR(С)+SQRT(Z*Z/(A*A+X*X)); P: = ln(A+X*X)+SQR(Sin(Z/A));
WRITELN ('Y = ', Y:8:3, 'P = ', P:8:3);
17
{вариант б) }
WRITELN ('введи координаты: X1, Y1'); READLN (X1, Y1);
L:=(X1 =0)AND(Y1 =0)AND(SQR(X1)+SQR(Y1) =1);
WRITELN(‘Точка с координатами’,X1:8:2,Y1:8:2);
IF L THEN WRITELN(‘принадлежит’)
ELSE WRITELN(‘ не принадлежит’); WRITELN(‘заданной области’);
READLN; {задержка экрана для просмотра результатов}
END.
В качестве тестового набора исходных данных используем следующие значения переменных: a = 1, z = 1, x =0,5. Тогда вычисляемые значения Y и P будут равны:
y |
1 tg3(05,)2 |
|
|
1 |
|
0911, ; |
|
|
|||||
|
(05,)2 |
|||||
|
1 |
|
|
|||
p |
ln(1 0,25) Sin2 (1) |
0,931 |
|
|
Для варианта б) при x1 = 0,5; y1 = 0,5 результат TRUE, при x1 = 1,5; y1 = 1,5 результат FALSE.
3.2. Варианты задания к лабораторной работе 1
Вариант 1
А. Вычислить значения a , b для заданных значений y z ,x по приведённым ниже формулам:
a |
2Cos( x |
|
/ 6) |
; |
||
1 / 2 |
Sin |
2 |
|
|||
|
y |
|
||||
b |
1 |
|
z 2 |
|
, |
|
|
|
|
||||
3 |
z 2 / 5 |
|
при x = 1,26; y = 0,5; z = -0,85.
Б. Определить, принадлежит ли точка T(x1,y1) к замкнутой области – прямоугольнику.
y
1
0
2 x
18
Вариант 2
А. Вычислить значения s , φ для заданных значений y, x по приведённым ниже формулам:
|
x2 |
|
x3 |
x4 |
x 0,335; |
|||
s 1 x |
|
|
|
|
|
|
при |
|
2! |
3! |
|
|
4! |
||||
|
|
|
|
|
||||
x(sin x3 |
cos2 y) |
|
при y |
0,025 . |
Б. Определить, принадлежит ли точка T(x1,y1) к замкнутой области – прямоугольнику.
y
0
-2 |
x |
-1
Вариант 3
А. Вычислить значения y, s для заданных значений a, b, t по приведённым ниже формулам:
y |
e bt sin(at b) |
|
|
bt a |
|
; |
s |
b sin(at 2 cos2t) |
1 , |
|
|
при a = -0,5; b = 1,7; t = 0,44.
Б. Определить, принадлежит ли точка T(x1,y1) к замкнутой области – ромбу.
y 1
-1 |
1 |
х |
-1
19
Вариант 4
А. Вычислить значения y, ω для заданных значений a, b, x по приведённым ниже формулам:
w |
x2 b |
b2 sin3 (x |
a) / x ; |
|
|
|
|
|
|
y |
cos2 x3 |
x / a2 b2 |
, |
при x = -2,9; a = 1,5; b = 5,5.
Б. Определить, принадлежит ли точка T(x1,y1) к залитой области – окружности.
y
1
-1 |
0 |
1 |
x |
-1
Вариант 5
А. Вычислить значения a , b для заданных значений y z ,x по приведённым ниже формулам:
s x3 tg 2 (x b)2 a / x b ;
Q |
bx2 |
a |
, |
|
eax |
1 |
|||
|
|
при x = 0,64; a = 1,5; b = 0,8.
Б. Определить, принадлежит ли точка T(x1,y1) к залитой области – четверти окружности.
y
0
1 x
-1
20
Вариант 6
А. Вычислить значения r, s для заданных значений a, b, ,x по приведённым ниже формулам:
R |
x 2 (x 1) / b sin2 (x |
a) ; |
||
|
|
|
|
|
s |
|
xb / a cos2 (x |
b)3 |
|
|
|
|
|
, |
при a = 0,7; b = 0,05; x = 0,2.
Б. Определить, принадлежит ли точка T(x1,y1) к залитой области – четверти окружности.
y
-1 |
x |
-1
Вариант 7
А. Вычислить значения y, z для заданных значений a, b, x по приведённым ниже формулам:
|
sin3 (x2 a)2 |
|
|
|
y |
x / b ; |
|||
|
x2 |
|
|
|
z |
|
cos(x b)3 |
, |
|
|
|
|||
|
a |
|
|
при a = 1,1; b = 0,4; x = 0,5.
Б. Определить, принадлежит ли точка T(x1,y1) к заштрихованной области.
y
1
-1 |
1 |
-1