Запуск программы в среде Free Pascal и просмотр результатов
После того как текст программы набран, его следует перевести в машинный код. Для этого необходимо вызвать транслятор с помощью команды Compile — Compile (комбинация клавиш Alt+F9). На первом этапе транслятор проверяет наличие синтаксических ошибок. Если в программе нет синтаксических ошибок, то на экране сообщается о количестве строк транслированной программы и объёме доступной оперативной памяти.
Если на каком-либо этапе транслятор обнаружит ошибку, то в окне редактора курсор укажет ту строку программы, в которой ошибка была обнаружена. При этом в верхней строке редактора появится краткое диагностическое сообщение о причине ошибки.
Для запуска транслированной программы необходимо выполнить команду Run — Run (комбинация клавиш Ctrl+F9), после чего на экране появляется окно командной строки, в котором пользователь и осуществляет диалог с программой. После завершения работы программы вновь появляется экран среды Free Pascal.
Лабораторная работа № 1
Условный оператор и программирование разветвляющихся алгоритмов.
Цель работы: Изучение приемов программирования разветвляющихся алгоритмов с использованием оператора сравнения и логических операций над данными типа boolean.
Пример первого задания.
Составить программу вычисления функции:
х2+1, x<0
Y= x-2,1, x>п/2
Sinx, 0<=x<=п/2
Для произвольного X и вычислить значения Y(x) в точках:
Х1= -2,5 х2=-0,5 х3=1,5
Program Func;
var
x,y:real;
BEGIN
Write(‘введите х=’); readln(x);
If x<0 then y := sqr(x)+1
else
if x>pi/2 then y := x-2.1
else
y := sin(x);
writeln( ' Y= ' , у: 6: 3)
END.
Пример второго задания.
Составить программу определения произведения двух наименьших целых чисел А,В,С (А<>В<>С<>0) .
Program mult;
var
max,a,b,с : integer;
mul : integer;
BEGIN
writeln('введите 3 целых числа А,В,С'); readln(a,b,c);
max:= a ;
if b>max then max:=b;
if c>max then max:=c;
mul:= (a *b*с) div max ;
writeln('произведение двух наименьших=',mul)
END.
3. Лабораторная работа № 2.
Операторы цикла и программирование циклических алгоритмов.
Цель работы:
1. Изучение приемов программирования циклических алгоритмов с применением трех различных операторов цикла.
2. Изучение приемов программирования при работе с перечисляемыми типами.
Пример первого задания.
Найти сумму членов знакопеременного ряда.
S= ( +3)/2-( +5)/4+…+ +35)/34- ( +35)/36
Program sum_;
var
a,i : integer;
s : геа1 ;
BEGIN
s:=0; {сумма}
i:=2; {начальное значение}
a:=l; {«мигалка»}
while i< = 36 do
begin
s:=s+a*(sqrt(i)+(i+1))/i;
i:=i+2;
a := -a
end;
writeln(‘s= ‘,s:6:2)
END.
Пример второго задания.
Составить программу табулирования функции:
Ex+Sin2x*cos(x-2), x<=1
Y=
2x+ ), x>1
на отрезке х [0,2] с шагом h
Program tab_;
const
h=0.2;
var
x : real;
BEGIN
x:=0;
while x < = ( 2 + h / 2) do
begin
if x < = 1 then у:=exp(x) +sqr(sin(x))*соs(x-2)
else
у:=еxр(ln(2)*x)+sqrt(x+6);
writeln('x = ' , x : 5 : 2, ' у = ' , у : 7 : 2) ;
x:= x + h
end
END.
Пример третьего задания.
Определить по заданной дате (число, месяц, год.) дату следующего дня (число, название месяца, год).
Program data_;
type
mes= (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec);
day=1..31;
year=1900..2010;
var
d : day;
m : mеs;
g : year;
n : 1..12;
BEGIN
Write(‘введите дату D,N,G’); readln(d,n.g);
Case n of
1:m:=jan;
2:m:=feb;
3:m:=mar;
4:m:=apr;
5:m:=may;
6:m:=jun;
7:m:=jul;
8:m:=aug;
9:m:=sep;
10:m:=oct;
11:m:=nov;
12:m:=dec;
end;
Case m of
Jan, mar, may, jul, aug, oct:
If d=31 then
begin
d:=1; m:=succ(m)
end
else
inc(d);
apr, jun, sep, nov:
f d=30 then
begin
d:=1; m:=succ(m)
end
else
inc(d);
dec:
If d=31 then
begin
d:=1; m:=jan; inc(g)
end
else
inc(d);
feb:
if ((d=28) and (not((g mod 400=0) or (g mod 4=0) and (g mod 100<>0)))
or (d=29) then
begin
d:=1; m:=mar;
end
else
inc(d);
end; {case}
writeln(‘дата следующего дня: ‘);
write(d:2);
Case m of
jan : write(‘января’);
feb : write(‘февраля’);
mar : write(‘марта’);
apr : write(‘апреля’);
may : write(‘мая’);
jun :write(‘июня’);
ju1 : wгite( ‘июля‘ ) ;
aug : wгitе('августа' ) ;
sep :write('сентября');
oct : write('октября');
nov : write('ноября');
dec : write('декабря');
end;
write(g:5, ' года')
END.
Лабораторная работа №3.