Запуск программы в среде 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= ( Запуск программы в среде Free Pascal и просмотр результатов - student2.ru +3)/2-( Запуск программы в среде Free Pascal и просмотр результатов - student2.ru +5)/4+…+ Запуск программы в среде Free Pascal и просмотр результатов - student2.ru +35)/34- ( Запуск программы в среде Free Pascal и просмотр результатов - student2.ru +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+ Запуск программы в среде Free Pascal и просмотр результатов - student2.ru ), 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.

Наши рекомендации