Составление программ на Turbo Pascal
1. Пример простейшей программы на Turbo Pascal (программы с линейным
алгоритмом) - вычисление площади треугольника по формуле Герона:
S= , где a, b, с – стороны треугольника, полупериметр р = ;
Программа
| Пояснения к данной программе
|
Program Geron;
var a,b,c,p,S,Y:real;
begin
writeln('Вычисление площади треугольника по формуле Герона.');
writeln('Введите стороны треугольника a, b, c:');
readln(a,b,c);
p:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln('Площадь треугольника равна: S=', S);
writeln('Для выхода из программы введите число 1.');
readln(y);
end.
| Оператор присваивания имеет вид:=, например: x:=a+b; b:=1;
Присваивание-это вычислительная операция вида: c:=a+b, заключаю-
щаяся в вычислении выражения, указанного справа, и записи полу-
ченного результата в переменную, указанную слева.
Операторы ввода данных: read(x,y,z), readln(a,b,c).
Второй из операторов (readln) осуществляет построчный ввод данных.
Операторы вывода данных: write(s), writeln(u,v).
Второй из операторов (writeln) осуществляет построчный вывод данных.
Все математические формулы записываются в одну строку. Пример:
S:=sqrt(p*(p-a)*(p-b)*(p-c));
|
2. Теперь, рассмотрим пример программы с алгоритмической структурой ветвления с использованием логических операций.
Для этого дополним программу вычисления площади треугольника по формуле Герона исследованием существования треугольника, если заданы его три стороны. (Исходные данные должны удовлетворять основному соотношению для сторон треугольника: длина каждой стороны должна быть меньше длин двух других сторон).
| Имея возможность в одном условном операторе записывать достаточно сложные логические выражения, мы можем сразу «отфильтровать» все варианты неверных исходных данных. Тогда данную программу можно составить так:
|
program tangle;
var a,b,c,p,S,Y:real;
begin
writeln('Вычислите площадь треугольника по трем сторонам');
writeln('и проведите его анализ.');
writeln('Введите стороны треугольника a,b,c:');
read(a,b,c);
p:=(a+b+c)/2;
S:=sqrt(abs(p*(p-a)*(p-b)*(p-c)));
if (a>=(b+c)) or (b>=(a+c)) or (c>=(a+b))
then writeln('Треугольник не существует.')
else if (a=b) and (b=c)
then writeln('Треугольник равносторонний, его площадь S=',s)
else if (a=b) or (b=c) or (a=c)
then writeln('Треугольник равнобедренный, его площадь S=',s)
else writeln('Треугольник разносторонний, его площадь S=',s);
if (a*a=(b*b+c*c)) or (b*b=(a*a+c*c)) or (c*c=(a*a+b*b))
then writeln('Треугольник прямоугольный.');
writeln('Для выхода из программы введите число 1.');
readln(Y);
end.
| Program Geron;
var a,b,c,p,S,:real;
begin
writeln('Введите длины сторон треугольника:'); write('а='); readLn(a);
write('b='); readLn(b);
write ('c='); readLn(c);
if (a>0) and (b>0) and (c>0) and (a+b>c)
and (b+c>a) and (a+c>b)
then begin
p:=(a+b+c)/2;
S:=Sqrt(p*(p-a)*(p-b)*(p-c));
writeln('Площадь=',S)
end
else writeln('Неверные исходные данные')
End.
|
3. Пример программы на использование в Turbo Pascal типа данных Boolean
Программа
| Пояснения к данной программе
|
uses crt;
Var a, b: boolean; Begin clrscr; writeln('Логический тип данных Boolean'); writeln; a:=true; b:=false; writeln('a=',a,' b=',b); writeln; writeln('a=',ord(a),' b=',ord(b)); writeln; readln end.
| 1. Аббревиатура CRT будет расшифровываться по-русски как «электронно-лучевая трубка». И действительно, в модуле CRT реализованы специальные процедуры и функции для работы с текстовой информацией на дисплее, позволяющие:
управлять текстовыми режимами, организовывать окна вывода на экран, настраивать цвета символов на экране, управлять курсором.
Его стандартное местонахождение – системная библиотека TURBO.TPL.
Для подключения модуля достаточно включить его в директиву USES (использовать) в самом начале программы:
USES CRT; {означает: модуль CRT подключен }
При подключении модуля CRT исключаются медленная функция MS DOS и повышается скорость вывода информации на дисплей.
2. ClrScr-сокращенная запись функции реализованной в модуле CRT. Она выполняет процедуру очистки текущего окна на экране.
|
СОДЕРЖАНИЕ ЗАНЯТИЯ.
Самостоятельная работа.
Задание
1. Вызвать Turbo Pascal, набрать вышеуказанные программы и провести анализ
2. Наберите программу, задайте разные значения переменной, например, 1,5 и т.д. Обратите внимание на результат. Измените в программе знак < на знак > и задайте те же значения. Сравните полученные результаты.
program aba;
var x: real;
t: boolean;
begin
read (x);t:=x<round(x); { арифметическая функция round(x) - округление числа}
writeln(t);
end
3. Наберите программу, дайте для а и в разные значения,обратите внимание на результат.
Program a1;
Var x,y:Boolean;
A,b:integer;
Begin
Writeln(‘a,b ввести’);
Read(a,b);
X:=true;
Y:=false;
If a>b then writeln (‘a>b-‘,x) else writeln (‘a>b-‘,y);
Readln;
End.
4. Вычислить значения логических выражений:
а) К mod 7=K div 5-1 при К=15; в) not odd(n)при n=0; д) (x*y<>0) and (y>x) при х=2, y=l;
б) odd(trunc(10*P)) при Р=0.182; г) t and (P mod 3=0) при t=true, P=10101; e) a or not b при a=false, b=true.
5. Если a=true и х=1, то какое значение получит логическая переменная d после выполнения оператора присваивания: a) d:=x<2; б) d:=not a or odd(x);
6. При подключении модуля CRT исключаются медленная функция MS DOS и повышается скорость вывода информации на дисплей. Понятно, что чем «медленнее» работает компьютер, тем заметнее будет эффект от подключения модуля CRT. Эту разницу можно увидеть: для чего просмотрите пример двух программ (без запуска)
Пример:
{Программа использует стандартный вывод}
PROGRAM Standart Output;
VAR i: Byte; {счетчик цикла }
for i: = 1 to 100 do Write (‘* Турбо Паскаль*’);
WriteLn
END.
{Программа использует средства модуля CRT}
PROGRAM CRT_Output;
USES CRT;
VAR i: Byte;
BEGIN
for i: = 1 to 100 do Write (‘* Турбо Паскаль*’);
WriteLn
END.
11.2. Работа с преподавателем:
При появлении затруднений или при ошибочных действиях обратиться к преподавателю для исправления ошибок.
К концу занятия показать преподавателю отчет о выполненной работе и получить зачет по данной работе.
11.3. Контроль исходного и заключительного уровня знаний:
Тестирование на компьютере.
Беседа преподавателя со студентом по вопросам самоподготовки.
Воспользуйтесь поиском по сайту: