
- •14 Июня 2011, протокол №
- •Введение
- •Распределение времени на изучение дисциплины
- •Программа дисциплины
- •Раздел 1. Основы алгоритмизации. Понятие алгоритма. Форма записи алгоритма. Типы структур в алгоритмах. Линейные алгоритмы. Разветвляющиеся алгоритмы. Циклические алгоритмы. Схемы алгоритмов
- •Раздел 2. Система программирования Паскаль
- •1.2 Данные
- •1.3 Типы данных
- •1.3.1 Скалярные типы данных
- •1.3.2 Структурированные типы данных
- •1.4 Выражения и операции
- •Порядок выполнения операций
- •2 Структура программы
- •Комментарии
- •3 Операторы
- •3.1 Простые операторы
- •3.2 Процедуры ввода-вывода
- •3.3 Структурные операторы
- •4 Встроенные (стандартные) процедуры и функции
- •5 Примеры программ
- •5 .1. Вычислить периметр и площадь треугольника по трем сторонам a1,a2,a3.
- •Программа
- •5.8 Пример использования оператора цикла for
- •Члены прогрессии
- •5.9 Пример использования оператора цикла while
- •5.10 Пример использования оператора цикла repeat
- •6. Массивы
- •6.1 Массивы. Определение, описание типа
- •6.2 Действия над массивами
- •6.3 Действия над элементами массива
- •6.4 Инициализация массива
- •6.5 Ввод и вывод элементов массива
- •6.6 Примеры программ
- •7. Двумерные массивы
- •7.2. Описание двумерных массивов
- •7.3. Примеры программ
- •Домашняя контрольная работа по предмету "Программирование" Общие указания
- •Вариант 5
- •Вариант 7
- •Вариант 8
- •Литература
- •Программа, методические указания и контрольные задания
4 Встроенные (стандартные) процедуры и функции
Обращение |
Тип аргумента |
Тип результата |
Функция |
Abs(x) |
I, R |
I, R |
Модуль аргумента x |
Arctan(x) |
I, R |
R |
Арктангенс x (радианы) |
Cos(x) |
I, R |
R |
Косинус x (x в радианах) |
Exp(x) |
I, R |
R |
ex – экспонента |
Frac(x) |
I, R |
R |
Дробная часть x |
Int(x) |
I, R |
R |
Целая часть x |
Ln(x) |
I, R |
R |
Натуральный логарифм x |
Random |
|
R |
Псевдослучайное число в интервале [0, 1) |
Random(x) |
I |
I |
Псевдослучайное число в интервале [0, x) |
Round(x) |
R |
I |
Округление до ближайшего целого |
Sin(x) |
I, R |
R |
Синус x (x в радианах) |
Sqr(x) |
I, R |
I, R |
Квадрат x |
Sqrt(x) |
I, R |
R |
Корень квадратный из x |
Trunc(x) |
R |
I |
Ближайшее целое, не превышающее x по модулю |
5 Примеры программ
5 .1. Вычислить периметр и площадь треугольника по трем сторонам a1,a2,a3.
Решение:
Блок-схема алгоритма решения задачи приведена на рис.1.
Программа:
PROGRAM PL;
VAR A1,A2,A3,P,P1,S:REAL;
BEGIN
WRITELN(' Введите стороны треугольника a1,a2,a3');
READ(A1,A2,A3);
P:=A1+A2+A3; P1:=P/2;
S:=SQRT(P1*(P1-A1)*(P1-A2)*(P1-A3));
WRITE('P=',P,' S=',S)
END.
5.2 Даны X и Y. Вычислить значение выражения:
Решение:
Блок-схема алгоритма решения задачи приведена на рис. 2.
Программа:
PROGRAM PRIM;
VAR X,Y,Z,A,B:REAL;
BEGIN
WRITELN('Введите значения X,Y');
READ(X,Y);
A:=Y-SQRT(ABS(X));
B:=(SQR(COS(PI*X))-ARCTAN(SQR(X)*X))/EXP(X*Y);
Z:=SIN(ABS(A*B));
WRITE('Z=',Z)
END.
5.3. Вычислить арифметическое выражение
Если описать В как логическую переменную, определить ее значение отдельно:
В:=x<0
то условный оператор примет вид
IF B THEN y:=x+1 ELSE y:=2*x
5.4. Вычислить А=N+40, если значение 15<N<25. При всех других значениях N вычислить В=M+1.
Условный оператор имеет вид
IF (N>15) AND (N<25) THEN A:=N+40 ELSE B:=M+1;
Обратите внимание на логическое выражение: когда выполняются одновременно оба условия N>15 и N<25, только тогда вычисляется значение А=N+40. Значения переменных N и M определяют до выполнения оператора.
Условный оператор можно расширить за счет вложенности новых условий в операторе. Это приводит к сокращению числа операторов, но одновременно снижает наглядность программы. Новое условие может записываться за ключевыми словами THEN и ELSE. По принятому соглашению в языке ПАСКАЛЬ ключевое слово ELSE всегда относится к ближайшему ему слову IF.
Н
апример:
IF B1 THEN A1 ELSE IF B2 THEN A2 ELSE A3;
5.5. Составить программу для вычисления значения функции
Z=X3/Y, где Y=SIN NX+0.5.
Схема алгоритма решения приведена на рис.3.
Khjjgkhghkjgfjkhfghjkfhgjhghjfgjhgfhkjfghjgfhfjgjhjhjhjh vnbnvbhhvbn ntgfttruyhjkgnbgjhyufdgyghiufjnmtgujkfg
В программе используются имена N,X для исходных данных, имя Y для промежуточного значения и имя Z для результата.
Для записи программы используются два варианта записи условного оператора.
Вариант 1.
PROGRAM USL1;
LABEL 20,30;
VAR N:INTEGER; X,Y,Z:REAL;
BEGIN
READ(N,X);
Y:=SIN(N*X)+0.5;
IF Y=0 THEN GOTO 20;
Z:=SQR(X)*X/Y;
WRITE('Z=',Z);
GOTO 30;
20: WRITE('Y=0');
30:
END.
Вариант 2.
PROGRAM USL2;
VAR N:INTEGER; X,Y,Z:REAL;
BEGIN
READ(N,X);
Y:=SIN(N*X)+0.5;
IF Y=0 THEN WRITE('Y=0')
ELSE BEGIN
Z:=X*X*X/Y;
WRITE('Z=',Z)
END
END.
Вариант 1 написан в соответствии со схемой алгоритма, приведенной на рис.3, а вариант 2 использует возможности языка.
5.6. Составить программу для вычисления функции
Получить разветвление на три ветви можно различными сочетаниями операторов перехода и условного. Однако в языке ПАСКАЛЬ условный оператор можно наращивать за счет использования вложенности условий. С использованием одного условного оператора программа имеет вид
Program usl3;
Var x,a,b,z:real;
Begin
Read(x,a,b);
If x<=a then z:=sin(x)
Else If x>b then z:=sin(x)/cos(x)
Else z:=cos(x);
Writeln(z)
End.
5.7. Ввести номер дня недели и вывести соответствующий ему день недели на русском и английском языках.