Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические материалы по программированию.doc
Скачиваний:
9
Добавлен:
03.11.2018
Размер:
635.9 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

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

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Методические указания и задания для

самостоятельной работы. по дисциплине

« Программирование на языке высокого уровня»

для студентов специальности –

230201 Информационные системы и технологии

Иркутск – 2009

1.Линейные и разветвляющиеся вычислительные процессы.

Пример 1.1. Прямая на плоскости задана координатами двух точек. Найти уравнение прямой, перпендикулярной данной и проходящей через первую точку.

Постановка задачи.

Прямая на плоскости задана координатами двух точек P(x1,y1) и Q(x2,y2). Найти уравнение прямой, перпендикулярной данной и проходящей через первую точку. Уравнение представить в виде: Ax+By+C=0. Построение точек и прямых производится на листе формата А4(210х 297).

Таблица спецификаций.

Имя

Назначение

тип

ОДЗ

x1,x2

Координаты точек по оси ОХ

Целые числа

От -210 до 210

y1,y2

Координаты точек по оси ОY

Целые числа

От -297 до 297

A,B,C

Коэффициенты уравнения прямой

Целые числа

От -200 до 200

a1, b1,c1

Вспомогательные переменные

Строка

Znak1,Znak2

Вспомогательные переменные

Символ

‘+’ или ‘-’

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

Начало

Ввод

координат

точки

А1=Y1-Y2

- - - - - - - - - - - - В1=Х2-Х1

С1=(Х1-Х2)Y1+(Y2-Y1)Х1

А2=-В1

- - - - - - - - - - - - В21

С21 Х1 – А1 Y1

Вывод

результатов

Листинг программы.

program P2;

{$APPTYPE CONSOLE}

uses

SysUtils;

Var

a,b,c::integer;

x1,y1,x2,y2:integer;

a1, b1,c1:String;

Znak1,Znak2:Char;

begin

{ Ввод исходных данных }

Write('x1='); Read(x1);

Write('y1='); Read(y1);

Writeln;

Write('x2='); Read(x2);

Write('y2='); Read(y2);

{ Определение коэффициентов заданной прямой }

a:=y1-y2;

b:=x2-x1;

c:=(x1-x2)*y1-(y2-y1)*x1;

a1:=IntToStr(a);

b1:=IntToStr(abs(b));

c1:=IntToStr(abs(c));

{Вывод уравнения заданной прямой}

Writeln('Rezult1');

If b>=0 then Znak1:='+'else Znak1:='-';

If c>=0 then Znak2:='+'else Znak2:='-';

Writeln(a1,'x',Znak1,b1,'y',Znak2,c1,'=0');

Readln;

{ Определение коэффициентов прямой, перпендикулярной данной }

a:=-b;

b:=a;

c:=b*x1-a*y1;

a1:=IntToStr(a);

b1:=IntToStr(abs(b));

c1:=IntToStr(abs(c));

{ Вывод уравнения прямой, перпендикулярной данной}

Writeln('Rezult2');

If b>=0 then Znak1:='+'else Znak1:='-';

If c>=0 then Znak2:='+'else Znak2:='-';

Writeln(a1,'x',Znak1,b1,'y',Znak2,c1,'=0'); Readln; End.

Задания для самостоятельного выполнения по теме «Линейные и разветвляющиеся вычислительные процессы»

1.По заданной первой букве геометрической фигуры (“П” - прямоугольник, ”Т» - треугольник, ”К» - квадрат) вычислить площадь соответствующей фигуры.

2.Вычислить периметр и площадь правильного 17-угольника, вписанного в окружность заданного радиуса.

3.Треугольник задан длинами трех своих сторон. Найти углы этого треугольника.

4.По координатам трех вершин прямоугольного треугольника найти его площадь и периметр.

5.Даны произвольные числа A, B и C. Определить, можно ли построить треугольник с такими длинами сторон, если нельзя то напечатать 0, иначе напечатать 3, 2, 1 в зависимости от того, равносторонний это треугольник, равнобедренный или какой-либо иной.

6.Треугольник АВС задан длинами своих сторон. Найти длину высоты, опущенной из вершины В.

7.Треугольник АВС задан координатами своих вершин. Найти углы треугольника.

8. Треугольник АВС задан координатами своих вершин, найти его площадь.

9.По заданным трем точкам на плоскости проверить лежат ли они на одной прямой.

10.По заданным трем точкам на плоскости проверить лежат ли они на окружности заданного радиуса.

11.Треугольник задан длиной стороны и двумя прилегающими к ней углами. Определить его площадь.

12.По заданным трем точкам на плоскости проверить могут ли они быть вершинами треугольника.

13.Найти стороны равнобедренного прямоугольного треугольника, если известна высота, опущенная на гипотенузу.

14.Квадрат задан координатами вершин. Вычислить его площадь.

15.Ромб задан координатами своих вершин. Вычислить длину его диагоналей.

16.Треугольник АВС задан координатами своих вершин, найти центр вписанной в него окружности.

17.В прямоугольном треугольнике известны длины катетов и гипотенузы. Определить его углы и периметр.

18.Правильный треугольник задан координатами своих вершин. Определить длину его биссектрисы.

19.Трапеция задана координатами своих вершин. Определить ее периметр.

20.Квадрат задан координатами вершин. Вычислить его периметр.

21. Квадрат задан координатами вершин. Определить точку пересечения его диагоналей.

22.Треугольник задан длинами своих сторон. Определить радиус вписанной в него окружности.

23.Квадрат задан координатами вершин. Вычислить длину его диагоналей.

24. Правильный треугольник задан координатами своих вершин. Определить точку пересечения его высот.

25.Заданы три точки на плоскости. Определить две максимально удаленные друг от друга.

26.Правильный треугольник задан координатами своих вершин. Определить длину его стороны.

27.Правильный треугольник задан координатами своих вершин. Определить его периметр.

28.Трапеция задана координатами своих вершин. Определить ее площадь.

29.Правильный треугольник задан координатами своих вершин. Определить его высоту.

30.Прямоугольник задан координатами своих вершин. Определить его площадь.

Справочная информация

ЭЛЕМЕНТАРНЫЕ КОНСТРУКЦИИ ЯЗЫКА ПАСКАЛЬ.

Элементарные конструкции языка ПАСКАЛЬ включают в себя имена, числа и строки.

Имена (идентификаторы) называют элементы языка - константы, метки, типы, переменные, процедуры, функции, модули, объекты. Имя - это последовательность букв и цифр, начинающаяся с буквы. В именах может использоваться символ _ подчеркивание. Имя может содержать произвольное количество символов, но значащими являются 63 символа.

Не разрешается в языке ПАСКАЛЬ использовать в качестве имен служебные слова и стандартные имена, которыми названы стандартные константы, типы, процедуры, функции и файлы. Для улучшения наглядности программы в нее могут вставляться пробелы. По крайней мере один пробел требуется вставить между двумя последовательными именами, числами или служебными и стандартными именами. Пробелы нельзя использовать внутри имен и чисел.

Примеры имен языка ПАСКАЛЬ:

A b12 r1m SIGMA gamma I80_86

Числа в языке ПАСКАЛЬ обычно записываются в десятичной системе счисления. Они могут быть целыми и действительными. Положительный знак числа может быть опущен. Целые числа записываются в форме без десятичной точки, например:

217 -45 8954 +483

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

28.6 0.65 -0.018 4.0 5Е12 -1.72Е9 73.1Е-16

ПАСКАЛЬ допускает запись целых чисел и фрагментов действительных

чисел в форме с порядком в шестнадцатиричной системе счисления:

$7F $40 $ABC0

Строки в языке ПАСКАЛЬ - это последовательность символов, записанная между апострофами. Если в строке в качестве содержательного символа необходимо употребить сам апостроф, то следует записать два апострофа. Примеры строк:

'СТРОКА' 'STRING' 'ПРОГРАММА'

СТАНДАРТНЫЕ ТИПЫ ДАННЫХ ЯЗЫКА ПАСКАЛЬ

К стандартным относятся целые, действительные, логические, символьный и адресный типы.

ЦЕЛЫЕ типы определяют константы, переменные и функции, значения

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

Над целыми операндами можно выполнять следующие арифметические операции: сложение, вычитание, умножение, деление, получение остатка от деления. Знаки этих операций:

+ - * div mod

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

остатка от деления - остаток от деления целых. Например:

17 div 2 = 8, 3 div 5 = 0.

17 mod 2 = 1, 3 mod 5 = 3.

Операции отношения, примененные к целым операндам, дают результат логического типа TRUE или FALSE ( истина или ложь ).

В языке ПАСКАЛЬ имеются следующие операции отношения: равенство =, неравенство <>, больше или равно >=, меньше или равно <=, больше >, меньше < .

К аргументам целого типа применимы следующие стандартные (встроенные) функции, результат выполнения которых имеет целый тип:

Abs(X), Sqr(X), Succ(X), Pred(X),

и которые определяют соответственно абсолютное значение Х, Х в квадрате, Х+1, Х-1.

Следующая группа стандартных функций для аргумента целого типа дает действительный результат:

Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X), Sqrt(X).

Эти функции вычисляют синус, косинус и арктангенс угла, заданного в радианах, логарифм натуральный, экспоненту и корень квадратный соответственно. Результат выполнения функции проверки целой величины на нечетность Odd(X) имеет значение истина, если аргумент нечетный, и значение ложь, если аргумент четный:

X=5 Odd(X)=TRUE , X=4 Odd(X)=FALSE.

Для быстрой работы с целыми числами определены процедуры:

Inc(X) X:=X+1

Inc(X,N) X:=X+N

Dec(X) X:=X-1

Dec(X,N) X:=X-N

ДЕЙСТВИТЕЛЬНЫЕ типы определяет те данные, которые реализуются подмножеством действительных чисел, допустимых в данной ЭВМ.

Над действительными операндами можно выполнять следующие арифметические операции, дающие действительный результат:

сложение + , вычитание - , умножение * , деление / .

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

Один из операндов, участвующих в этих операциях, может быть целым.

К действительным аргументам применимы функции, дающие действительный результат:

Abs(X), Sqr(X), Sin(X), Cos(X), ArcTan(X), Ln(X), Exp(X), Sqrt(X), Frac(X), Int(X), Pi.

Функция Frac(X) возвращает дробную часть X, функция Int(X) – целую часть X.

Безаргументная функция Pi возвращает значение числа Пи действительного типа.

К аргументам действительного типа применимы также функции

Trunc(X) и Round(X),

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

ЛОГИЧЕСКИЙ тип (Boolean) определяет те данные, которые могут принимать логические значения TRUE и FALSE.

К булевским операндам применимы следующие логические операции:

not and or xor.

Логический тип определен таким образом, что FALSE < TRUE. Это поз-

воляет применять к булевским операндам все операции отношения.

СИМВОЛЬНЫЙ тип (Char) определяет упорядоченную совокупность символов, допустимых в данной ЭВМ. Значение символьной переменной или константы - это один символ из допустимого набора.

Символьная константа может записываться в тексте программы как один символ, заключенный в апострофы, например:

'A' 'a' 'Ю' 'ю';

КОНСТАНТЫ

Тип констант в языке ПАСКАЛЬ определяется по их виду: константы целого типа - это целые числа, не содержащие десятичной точки, константы действительного типа - действительные числа, логические константы - логические значения TRUE и FALSE, символьные константы – либо строки длиной в один символ, либо конструкции вида #K или ^K.

ВЫРАЖЕНИЯ ЯЗЫКА ПАСКАЛЬ

Выражение состоит из констант, переменных, указателей функций, знаков операций и скобок. Выражение задает правило вычисления некоторого значения. Порядок вычисления определяется старшинством (приоритетом) содержащихся в нем операций. В языке ПАСКАЛЬ принят следующий приоритет операций:

1. унарная операция not, унарный минус -, взятие адреса @

2. операции типа умножения * / div mod and shl shr

3. операции типа сложения + - or xor

4. операции отношения = <> < > <= >= in

Выражения входят в состав многих операторов языка ПАСКАЛЬ, а также могут быть аргументами встроенных функций.

ОПЕРАТОР ПРИСВАИВАНИЯ

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

Имя переменной := Выражение;

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