N
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 |
|
|
; |
|
|
a2 |
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