Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_ИНФОРМАТИКА_Паскаль_ч.1.doc
Скачиваний:
1
Добавлен:
16.08.2019
Размер:
1.09 Mб
Скачать
  1. Практическая часть

2.1. Ознакомиться с описанием лабораторной работы и по указанию преподавателя запустить систему программирования Turbo Pascal.

2.2. Изучить структуру окна системы программирования и основные операции в ней по пунктам 1.1 – 1.6 описания.

2.3. Для каждого из заданий составить блок-схему алгоритма решения и текст программы в рабочей тетради и предъявить их преподавателю. Для пояснения исходных данных, результатов и основных операций текст программы следует сопровождать комментариями.

2.4. По указанию преподавателя войти в режим редактирования, набрать текст программы и сохранить его в рабочем каталоге.

2.5. Выполнить компиляцию программы.

2.6. При выполнении п. 2.5 могут возникнуть ошибки. Сообщение компилятора об ошибке выдается в верхней части окна редактирования. При этом курсор устанавливается в ту позицию текста, где возможна ошибка. Если сразу после этого нажать <F1>, то на экране появляется дополнительная информация об ошибке. Нажатие любой другой клавиши стирает эту информацию. При возникновении ошибки необходимо исправить ошибку и повторить п. 2. 5.

2.7. Подобрать исходные данные и запустить программу на выполнение. Результаты зафиксировать в отчете в рабочей тетради. Если возникли ошибки на этапе выполнения, то необходимо попытаться изменить исходные данные и повторить пп. 2.5 - 2.7.

2.8. Аккуратно оформить отчет по лабораторной работе и предъявить его преподавателю. В отчете по каждому заданию должны быть отражены следующие пункты:

  1. БСА алгоритма задачи.

  2. Исходный текст программы с комментариями.

  3. Результаты отладки по п.2.6.

  4. Результаты решения по п. 2.7.

Задания к лабораторной работе.

1 . Вычислить выражение u=((x+y-z)3 – (x-y+z)2 + |x+y+z|)/log2(tg(z)).

2. Вычислить выражение h=2z3+x2/2+|y3|/3 + (z4(ln(x)+1)5)/3.

3. На плоскости заданы точки A, B, C своими координатами в декартовой системе координат. Найти расстояние каждой точки до точки D(-124, -340).

4. Определить высоту h треугольника АВС, если его площадь равна s и основание больше высоты на величину a.

5. Найти решение квадратного уравнения ax2+bx+c=0 для a=3.45, b=5.6, c=-4.5.

6. Написать программу, которая для заданного целого числа а печатает на экране следующую таблицу:

a

a a2

а3 а4 a6

а6 а3 а2 a

Лабораторная работа № 2 Программирование разветвляющихся вычислительных процессов

1. Теоретическая часть

Вычислительный процесс называется разветвляющимся, если он содержит несколько направлений, отличающихся друг от друга содержанием выполняемых действий.

В языке Turbo Pascal для реализации разветвляющихся вычислительных процессов служат следующие операторы:

    • условный оператор if;

    • оператор выбора case;

    • оператор перехода goto.

Оператор if используется в программе, когда в зависимости от некоторого условия надо выбрать одно из двух действий, или когда какое-либо действие должно быть выполнено только при выполнении заданного условия.

В общем виде оператор if записывается так:

if <условие> then

begin

{операторы, выполняемые, если условие истинно}

end

else

begin

{операторы, выполняемые, если условие ложно}

end;

Выполняется оператор if следующим образом.

Сначала вычисляется значение выражения <условие>. Затем, если условие выполняется (то есть значение выражения <условие> равно true), то выполняются операторы, следующие за ключевым словом then, находящиеся между begin и end. Если условие не выполняется (значение выражения <условие> равно false), то выполняются операторы, следующие за словом else, находящиеся между begin и end.

Если при выполнении (или невыполнении) условия надо выполнить только один оператор, то ключевые слова begin и end после then (else) можно не писать.

Если какое-либо действие нужно выполнить только при выполнении некоторого условия и пропустить это действие в случае невыполнения условия, то оператор if может быть записан в другой форме:

if <условие>

then

begin

{операторы, выполняемые, если условие истинно}

end;

П р и м е р 1. Вычислить корни квадратного уравнения ax2+bx+c=0.

Блок-схема алгоритма решения задачи приведена на рис. 1.

Рис. 1

Текст программы:

Program Korni;

var

a, b, c: real; {коэффициенты уравнения}

d: real; {дискриминант}

x1, x2: real; {корни уравнения}

label 1,2;

begin

writeln(‘Введите коэффициенты a, b, c’);

readln(a, b, c);

d := b*b-4*a*c;

if d=0 then

begin x1:= -b/(2*a); x2:=x1; goto 1 end

else

if d>0 then

begin x1:= (-b-sqrt(d))/(2*a); x2:= (-b+sqrt(d))/(2*a) end

else begin writeln (‘Уравнение не имеет действительных корней’);

goto 2;

end;

1: writeln(‘x1=’,x1:6:2, ‘x2=’,x2:6:2);

2: end.

Оператор case позволяет реализовать множественный выбор и в общем виде записывается так:

case <выражение> of

<список констант 1> :begin

{последовательность операторов 1}

end;

<список констант 2> :begin

{последовательность операторов 2}

end;

<список констант N> :begin

{последовательность операторов N}

end;

else

begin

{последовательность операторов, выполняемая}

{в случае, если значение выражения не попало}

{ни в один из списков констант}

end;

end;

Здесь: <выражение>- выражение, от значения которого зависит дальнейший ход программы (то есть одна из последовательностей операторов, которая должна быть выполнена);

<список констант>- константы, разделенные запятыми. Если константы представляют диапазон чисел, то вместо списка можно указать первую и последнюю константу диапазона, разделив их двумя точками. Например, список 1,2,3,4,5,6 может быть заменен диапазоном 1..6.

Если между begin и end находится только одна оператор, то слова begin и end можно не писать.

Примеры:

1. case day of

1, 2, 3,4, 5: write ('Рабочий день. ');

6 : write (' Суббота ! ') ;

7 : write (' Воскресенье ! ') ;

end;

2. case day of

1..5 : write ( ' Рабочий день . ' );

6: write (' Суббота ! ') ;

7: write ('Воскресенье! ');

end;

Оператор case выполняется следующим образом. Сначала вычисляется значение выражения, стоящего после case, затем полученное значение последовательно сравнивается с константами из списков констант. Если значение выражения совпадает с константой из списка, то выполняется соответствующая этому списку последовательность операторов, и на этом выполнение оператора case завершается. Если значение выражения не совпадает ни с одной константой из всех списков, то выполняется последовательность операторов, следующая за else. Допускается не указывать else и соответствующую последовательность операторов. В этом случае, если значение выражения не совпадает ни с одной константой из всех списков, то выполняется следующий за саsе оператор программы.

П р и м е р 2. Составить программу, имитирующую работу микрокалькулятора.

Блок-схема алгоритма решения представлена на рис. 2.

Рис. 2

Текст программы:

Program Calculator;

Var

oper: char; {символ арифметической операции}

x, a, b :real; {x – результат, a, b – операнды}

stop :Boolean; {признак ошибочной операции}

begin

stop := false;

Write(‘Введите a и b’);

Readln(a, b);

Write(‘Введите символ операции ');

Readln(oper);

Case oper of {выбор арифметического действия}

+’: x:= a+b;

‘-‘: x:= a-b;

‘*”: x:= a*b;

‘/’: x:= a/b

else stop:=true

end;

if not stop then writeln(‘Результат = ‘, x:6:3)

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]