Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
27
Добавлен:
31.03.2015
Размер:
26.89 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ФИЛИАЛ ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ

(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)» в г. Смоленске

Кафедра информатики

Отчет

по лабораторной работе №1

Тема: «Линейные и разветвляющиеся алгоритмы в Pascal'е»

по курсу: «Информатика и программирование»

Студент: Асафьев М.О.

Группа: ПИЭ-12

Преподаватель: Нестеров А.П.

Вариант: 1

Смоленск, 2012

Теоретическое введение:

1. Терминология:

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

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

Ветвление (оператор ветвления) - конструкция ,которая обеспечивает выполнение какого-либо действия при условии истинности логического выражения.

Линейный алгоритм - такой алгоритм, в котором все операции выполняются последовательно друг за другом.

2. Виды блоков:

- блок начала-конца алгоритма.

- блок ввода-вывода данных

- арифметический блок

- условный блок

3. Условные операторы в Pascal'е:

If условие

then

begin

операторы;

end

else

begin

операторы;

end;

Также Pascal имеет условный оператор выбора : case of

Техническое задание:

1. Рассчитать площадь и периметр треугольника по значениям двух катетов, введенных с клавиатуры.

2. Сделать расчеты по двум заданным тригонометрическим формулам, с введением параметра.

3. Определить, попадет ли точка, координаты которой введены с клавиатуры в заштрихованную область или нет.

Анализ технического задания:

1. Для решения этой задачи необходимо занести в программу две формулы, по которым будут производиться вычисления.

2. Для решения этой задачи нужно так же занести в программу две формулы, по которым будут производиться вычисления.

3. Для решения этой задачи необходимо организовать условный оператор (If-then-Else), по которому будет проводиться отбор.

Блок-схема алгоритма:

Модульная структура программы:

1. Программа состоит из одного модуля - самой программы Ploshad.

2. Программа состоит из одного модуля - самой программы Rad.

3. Программа состоит из одного модуля - самой программы Elips.

Спецификация на программные модули:

1. Имя модуля

1. Ploshad.

2. Rad.

3. Elips.

2. Имя вызывающего модуля

1. нет

2. нет

3. нет

3. Входные данные

1. a - первый катет, тип: integer

b - второй катет, тип: integer

2. a - параметр, тип: real

3. a - радиус по абсциссе, тип: integer

b - радиус по ординате, тип: integer

x - абсцисса, тип: integer

y - ордината, тип: integer

4. Выходные данные

1. P - периметр треугольника, тип: real

S - площадь треугольника, тип: real

2. z1 - значение первого выражения, тип: real

z2 - значение второго выражения, тип: real

3. Программа делает вывод на основе (не)выполнения условий.

5. Выполняемая функция

1. Вывод на экран значений площади и периметра треугольника, у которого катеты вводятся с клавиатуры, а гипотенуза рассчитывается по формуле.

2. Вывод на экран двух значений, которые получаются из расчета по формулам.

3. Вывод на экран словосочетания, которое является выводом к (не)выполнению условий: "(не)принадлежит".

6. Особенности и ограничения

1. нет

2. нет

3. нет

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

1. program ploshad;

Uses Crt;

var

a, b, S:integer;

P, x:real;

BEGIN

CLRSCR;

writeln('wwedite znachenie pervogo kateta');

readln(a);

writeln('wwedite znachenie vtorogo kateta');

readln(b);

begin

x:=sqrt(sqr(a)+sqr(b));

S:=(a*b)/2;

P:=a+b+x;

end;

writeln('ploshad treugolnika ravna ',S);

writeln('perimetr treugolnika raven ',P:2:2);

readln;

END.

2. Program rad;

Uses Crt;

var

a,z1,z2:real;

BEGIN

CLRSCR;

writeln('wwedite znachenie paremetra a');

readln(a);

begin

Z1:=cos(a)+cos(2*a)+cos(6*a)+cos(7*a);

Z2:=4*(cos(a/2))*cos((5*a)/2)*cos(4*a);

writeln('z1= ',z1:2:2);

writeln('z2= ',z2:2:2);

end

readln;

END.

3. Program elips;

Uses Crt;

var

x,y,a,b:integer;

D1:real;

BEGIN

CLRSCR;

writeln('wwedite radius po abscisse');

readln(a);

writeln('wwedite radius po ordinate');

readln(b);

writeln('wwedite abscissu');

readln(x);

writeln('wwedite ordinatu');

readln(y);

D1:=((x*x)/(a*a))+((y*y)/(b*b));

If (D1<1) and ((x>1) or (x<(-1))) then

writeln('tochka prinadlezhit')

Else

writeln('tochka ne prinadlezhit');

readln;

END.

Результаты тестирования:

1. Корректные данные

1. a=4, b=3, x=5. P=12; S=6.

2. a=30. z1= -0,55; z2= -0,5044

3. a=6, b=3, x=2, y=1. 'tochka prinadlezhit'

2. некорректные данные

1. буквенные значения - программа выдает ошибку.

2. буквенные значения - программа выдает ошибку.

3. буквенные значения - программа выдает ошибку.

3. граничные данные

1. нет

2. нет

3. нет

ВЫВОД ПО ТЕСТИРОВАНИЮ

Во всех трех программах расчеты происходят при корректных данных верно, при вводе буквы или символа, программы выдают ошибку. Граничных данных нет.

Заключение:

В процессе выполнения данной лабораторной работы я усвоил следующее:

  • повторил виды блоков.

  • вспомнил навыки при написании элементарных программ.

  • повторил написание блок-схем под элементарные программы.

  • научился работать по четко установленному плану.

Соседние файлы в папке лаб.1