Составление линейных программ
Практическая работа
Цель работы: | Научиться работать в среде программирования Турбо Паскаль, составлять арифметические выражения и использовать операторы ввода и вывода. |
Простейшая программа на языке Паскаль имеет следующую структуру:
PROGRAMИмя программы; USES Список используемых библиотек (модулей); VAR Определение переменных программы; BEGIN Основной блок программы END. |
С помощью директивы USES подключаются библиотечные модули из стандартного набора Турбо Паскаль. USES используется в программе только один раз. Список библиотек дается через запятую:
USESCRT, DOS, Graph;
{подключены три библиотеки с соответствующими именами}
Если библиотеки не используются, то эта директива не используется.
Блок VAR содержит список переменных программы и их типов. Этих блоков может быть несколько, но переменные в них не должны повторятся. Базовыми типами данных в Паскале являются следующие:
1. INTEGER – целые числа.
2. REAL – вещественные числа (числа с дробной частью).
3. CHAR – символьный тип.
4. BOOLEAN – логический тип (данные этого типа могут принимать только одно из двух значений: TRUE – истина или FALSE – ложь).
Например:
VARK,I,J:INTEGER;A,B:REAL;
Основной блок программы всегда начинается словом BEGIN, а заканчивается END и на конце «точка». После «точки» компилятор уже ничего не принимает.
Компилятор Турбо Паскаля накладывает некоторые ограничения на текст программы. Так, длина строки не может превысить 126 символов. В конце каждой строки в основном блоке программы и в процедурах и функциях должны стоять «;».
Ни одна программа не обходится без инструкций присваивания. В результате выполнения этой инструкции переменная получает некоторое значение. Этот оператор в общем виде выглядит как
Переменная := Значение;
Составной символ «:=» читается как «становится равным». В операции присваивания слева всегда стоит имя переменной, а справа – то, что представляет ее значение (значение как таковое или выражение). После присваивания переменная слева получает новое значение.
Например:
a:=2.4;
d:=b*b-4*a*c;
Для присваиваемых выражений однозначно определяются правила вычислений: действия выполняются слева на право с соблюдением следующего старшинства (в порядке убывания):
1. Действия в скобках;
2. Математические функции;
3. NOT;
4. *, /, DIV, MOD, AND;
5. +, -, OR;
6. =, <>, <, >, <=, >=, IN.
Паскаль имеет следующие стандартные математические функции.
ABS(X) | |
PI | p |
SIN(X) | |
COS(X) | |
ARCTAN(X) | |
SQRT(X) | |
SQR(X) | |
POWER(X,5) | х5 |
EXP(X) | |
LN(X) | |
TRUNC(X) | Целая часть значения Х |
FRAC(X) | Дробная часть значения Х |
INT(X) | Целая часть значения Х |
ROUND(X) | Округление Х до целого |
RANDOM | Случайное число от 0 до 1 |
RANDOM(X) | Случайное число от 0 до Х |
ODD(X) | Возвращает TRUE, если Х – нечетное число. |
A DIV B | Целая часть от деления А на В (например: 5 div 3 будет 1) |
A MOD B | Остаток от деления А на В (например: 5 mod 3 будет 2) |
С помощью этих математических функций и основных операций составляются арифметические выражения, при этом очень важно в выражении расставить правильно скобки, учитывая приоритеты выполняемых операций. Например:
Выражение
на языке Паскаль будет выглядеть как
abs(ln(x))-sqr(x-2)+(exp(x+3)-3*x)/(1+cos(sqrt(x)))
Или выражение
будет выглядеть следующим образом:
(sqrt(exp(x)-1)-sqr(x)*(1+sin(pi*x))/(x*arctan(x/sqrt(1+sqr(x))))
Если в программе какие-либо данные задаются в момент работы программы (например, коэффициенты квадратного уравнения или другие нужные переменные), то в программе необходимо использовать операторы ввода.
1. READLN(Переменная1,Переменная2, … , ПеременнаяN);
Переменная1, Переменная2, … , ПеременнаяN – имена переменных, которые вводятся.
После выполнения этого оператора, курсор переходит на новую строку.
2. READ(Переменная1,Переменная2, … , ПеременнаяN);
После выполнения этого оператора, курсор остается на этой же строке.
Если вводятся несколько переменных, то переменные можно разделять пробелом или ENTER. В конце ввода необходимо нажимать ENTER.
Операторы ввода работают следующим образом: встретив такой оператор в программе, компилятор считывает его и приостанавливает дальнейшее чтение программы, пока пользователь не введет нужные данные. Например:
READLN a,b,c;
требует ввода значения трех переменных (значения можно разделять пробелами или нажатием клавиши ENTER).
Для вывода информации на экран используются следующие операторы:
1. WRITELN(Список выводимых переменных и сообщения);
После выполнения этого оператора, курсор переходит на новую строку. Выводимые выражения отделяются друг от друга запятыми.
Если выводится набор символов, то он заключается в апострофы:
WRITELN(‘P=’,P);
После работы этого операторы мы увидим на экране
Р=значение переменной Р.
2. WRITE(Список выводимых переменных и сообщения);
После выполнения этого оператора, курсор остается на этой же строке.
Если необходимо вывести значение переменной, объявленной типом REAL, то программист имеет возможность задать число позиций для выводимой величины и число позиций, отводимых под дробную часть.
WRITELN(‘P=’,P:10:2);
Здесь под Р отводится 10 позиций, а из них 2 – под дробную часть. Т.е., если Р=13.852, то Р распределиться по этим позициям следующим образом
. |
При этом вначале будут пять пробелов. И на экране при выводе мы увидим следующее:
Р= 13.85
Если выводится величина, объявленная типом INTEGER, то можно задать только общее число позиций (т.е. используется только одно число).
Пример:
Написать программу вычисления пути, пройденного телом. Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление пути.
Введите начальную скорость (м/с) – > 3
Введите время (с) – > 5
Введите ускорение (м/с2) - >1
Тело прошло путь 27.50 м
Блок-схема этой задачи:
Программа выглядит следующим образом:
program prac3;
uses crt; {Модуль crt необходим для работы с экраном
например, для очистки экрана от предыдущих
результатов работы программ}
var a,t,v0,S:real; {а – ускорение, t – время, v0 – начальная скорость,
S – путь}
begin
clrscr; {Оператор очистки экрана}
writeln('Вычисление пути.');
write('Введите начальную скорость (м/с) -> ');
readln(v0); {Ввод начальной скорости}
write('Введите время (с) -> ');
readln(t); {Ввод времени}
write('Введите ускорение (м/с2) -> ');
readln(a); {Ввод ускорения}
S:=v0*t+a*sqr(t)/2; {Расчет пути}
writeln; {Вывод пустой строки}
writeln('Тело прошло путь ',S:6:2,' м'); {Вывод нужных данных}
readln;
end.
Пример:
Написать программу для расчета значения
, где и
вводиться пользователем с клавиатуры во время работы программы.
Блок-схема этой задачи:
Программа выглядит следующим образом:
{ Вычисление значения z}
program prac3;
uses crt; {Модуль crt необходим для работы с экраном
например, для очистки экрана от предыдущих
результатов работы программ}
var x,y,z,t:real;
begin
clrscr; {Оператор очистки экрана}
write('Введите значение t -> ');
readln(t);
x:=pi*ln(t);
y:=sqrt(t*(2+sin(t)));
z:=sqr((x+y)/(2*x))-sqrt(x)/(x+3*y);
writeln('Значение функции z=',z:9:6); {Вывод нужных данных}
readln;
end.
Задание (инструкция 3)
№1
1. Написать программу вычисления площади прямоугольника. Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление площади прямоугольника
Введите исходные данные:
Длина (см) – > 9
Ширина (см) – > 7.5
Площадь прямоугольника: 67.50 кв.см.
2. Составить программу и вычислить значение функции
, где
Ответ.
Введите а 2
Введите b 1
№2
1. Написать программу вычисления объема параллелепипеда (V=a*b*c). Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисления объема параллелепипеда
Введите исходные данные:
Длина (см) – > 9
Ширина (см) – > 7.5
Высота (см) – > 5
Объем: 337.50 куб.см.
2. Составить программу и вычислить значение функции
, где
Ответ.
Введите a 2
Введите b 4
54.38
№3
1. Написать программу вычисления площади поверхности параллелепипеда S=2*(a*b+b*c+a*c). Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление площади поверхности параллелепипеда.
Введите исходные данные:
Длина (см) – > 9
Ширина (см) – > 7.5
Высота (см) – > 5
Площадь поверхности: 300.00 кв.см.
2. Составить программу и вычислить значение функции
, где
Ответ.
Введите a 2
Введите b 4
Введите c 5
3.80
№4
1. Написать программу вычисления объема куба (V=a3). Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление объема куба.
Введите длину ребра (см) – > 9.5
Объем куба: 857.38 куб.см.
2. Составить программу и вычислить значение функции
, где
Ответ.
Введите a 3
Введите n 4
Введите d 2
№5
1. Написать программу вычисления объема цилиндра (V=Pi*R2*H). Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление объема цилиндра.
Введите исходные данные:
Радиус основания (см) – > 5
Высота цилиндра (см) – > 10
Объема цилиндра 785.0 см.куб.
2. Составить программу и вычислить значение функции
Ответ.
Введите a 2
Введите n 4
13.35
№6
1. Написать программу вычисления стоимости покупки, состоящей из нескольких тетрадей и карандашей. Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление стоимости покупки.
Введите исходные данные:
Цена тетради (руб) – > 2.75
Количество тетрадей – > 5
Цена карандаша (руб) – > 0.85
Количество карандашей – > 2
Стоимость покупки: 15.45 руб.
2. Составить программу и вычислить значение функции
Ответ.
Введите a 4
Введите b 6
Введите c 7
3.507
№7
1. Написать программу вычисления стоимости покупки, состоящей из нескольких тетрадей и такого же количества обложек к ним. Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление стоимости покупки.
Введите исходные данные:
Цена тетради (руб) – > 2.75
Цена обложки (руб) – > 0.5
Количество комплектов (шт) – > 7
Стоимость покупки: 22.75 руб
2. Составить программу и вычислить значение функции
Ответ.
Введите a 3
Введите b 7
Введите h 5
520.981
№8
1. Написать программу вычисления стоимости некоторого количества (по весу) яблок. Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление стоимости покупки.
Введите исходные данные:
Цена одного килограмма яблок (руб) – > 8.5
Вес яблок (кг) – > 2.3
Стоимость покупки: 19.55 руб.
Ответ.
Цена одного кг яблок (руб) 8.5
Вес яблок (кг) 2.3
Стоимость покупки: 19.55 руб.
2. Составить программу и вычислить значение функции
Ответ.
Введите a 2
Введите r 3
65.973
№9
1. Написать программу вычисления площади треугольника, если известна длина основания и высоты (S=1/2*a*h). Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).
Вычисление площади треугольника.
Введите исходные данные:
Основание (см) – > 8.5
Высота (см) – > 10
Площадь поверхности: 42.50 кв.см.