Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Краткие сведения из теории. ЛАБОРАТОРНАЯ РАБОТА N2



ЛАБОРАТОРНАЯ РАБОТА N2

Тема: " Алгоритмизация линейных вычислительных процессов " Цель работы

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

Краткие сведения из теории

Понятие алгоритма

         
Определение 1. Алгоритм -

это четкое

описание последовательности действий,

приводящих к решению задачи.

         
В теории

алгоритмов принята

следующая

классификация алгоритмов:

линейные,

разветвляющиеся, циклические.

         

Линейный алгоритм состоит

из

последовательности

действий, каждое из которых

выполняется только один раз в порядке их следования.

   
             

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

Определение 2. Схема алгоритма - это графическое изображение алгоритма с помощью различных геометрических фигур или блоков. Каждому блоку соответствует определенный этап решения задачи. Блоки соединяются линиями потока информации, причем линии определяют направление вычислений сверху вниз и слева направо. Если необходимо отразить другое направление (снизу вверх или справа налево), то на линиях ставятся стрелки. Внутри блоков записываются выполняемые действия.

Этапы решения задачи на ЭВМ

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

дано: определить:

промежуточные величины.

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

3.Разработка алгоритма и его графическое описание. Алгоритмизация задачи

         

представляет собой первый этап программирования.

В процессе его

выполнения
устанавливается необходимая последовательность

арифметических и

логических

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

численный метод. Эту

последовательность можно записать в виде схемы алгоритма.

   

4.Запись алгоритма на языке программирования. Алгоритм, записанный в графическом виде, далее записывается в виде последовательности операторов выбранного языка программирования, т.е. составляется программа решения задачи.

5.Разработка контрольного теста и отладка программы. Отладка программы необходима для выявления и устранения ошибок, допущенных на предыдущих этапах.

Правильность выполнения программы осуществляется сравнением результатов,

полученных при расчете нескольких вариантов задачи вручную и на ЭВМ.

Полученный

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

6.Работа на ЭВМ с получением результатов. После решения задачи на ЭВМ необходим анализ результатов. Решение задачи на ЭВМ производится по отлаженной программе для всего множества исходных данных. Анализ результатов выполняется, как правило, лицом, в интересах которого решалась задача.

Примеры: CONST

NMIN = 1; NMAX = 100; LIM = C;

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

Описание переменных начинается с ключевого слова VAR, за которым идет перечисление имен всех переменных программы с указанием их типов, разделенных символом " двоеточие".

Общий вид описания переменных: VAR

V1, V2, V3,..., Vn: T;

где V1, V2, V3,..., Vn - имена переменных данного типа; Т - тип переменных.

В разделах описаний данное может быть описано только один раз. Примеры описания переменных стандартного типа.

VAR    
A, B, C : real; {переменные действительного типа}
N, K, L, M : integer; {переменные целого типа}
D, BETA : boolean; {переменные логического типа}
Stroka : string[10]; {переменные строкового типа, в квадратных скобках указана

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

Оператор присваивания

Этот оператор относится к простым операторам, т.к. не содержит внутри себя других операторов.

Синтаксис оператора присваивания:

V: = A;

здесь V - имя переменной;

": = " - знак присваивания;

А- выражение.

Данный оператор вычисляет значение выражения А и присваивает полученное значение переменной V. Выражение в правой части может быть арифметическим, логическим и символьным. Поэтому при использовании оператора присваивания нужно следить за тем, чтобы переменная в левой части и выражение в правой части были одного и того же типа. Из этого правила существует одно исключение: разрешается при целочисленном выражении использовать переменную действительного типа в левой части. В этом случае значение вычисленного выражения будет преобразовано в действительный тип.

Примеры:

Т: = 527.475;
M: = TEM;
Y: = SQRT(Т);
L: = A and B;
ST: = 'PASCAL';
C5: = 2*K-SIN(PI/4-Х);

Здесь T, Y, C5 имеют действительные значения и должны быть описаны в разделе переменных как данные типа REAL.

Переменная ST должна иметь строковый тип в разделе описаний VAR; переменные М и ТЕМ должны иметь любые одинаковые типы, а переменные К и Х могут быть либо

действительного типа, либо целого.  
Неверные записи:  
а) VAR б) VAR
D: REAL; A, B, C, D: REAL;
beqin beqin
D: = '7' A: = (B< C) and (D> C)
end. end.

Впримере а) переменной D типа REAL присваивается константа типа CHAR. Это вызовет ошибку " несоответствие типа данных".

Впримере б) переменной А действительного типа присваивается значение логического выражения, что также приведет к ошибке " несоответствие типов данных".

Задание A.

Словесная постановка задачи.

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

 

Дано: а - длина катета, с - длина гипотенузы.

Определить: b - длина искомого катета, S - площадь треугольника. Промежуточные величины: нет.

Математическая постановка.

По теореме Пифагора имеем:

с2 = а2 + b2, откуда b = (c2 − a2.

Тогда площадь S = a *2 b

Разработка схемы алгоритма.

В первую очередь необходимо вычислить b =

(c2 − a2, затем S=

a * b

.

 
 

2

 

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

Задание Б.

Словесная постановка.

Определить длину ломаной линии, состоящей из трех звеньев, если известны координаты вершин (рис.3).

Дано: координаты вершин х1, y1, x2, y2, x3, y3, x4, y4.

Определить: L - длина ломаной.

Математическая постановка.

 

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

L1 = ((x2− x1)2 +(y2− y1)2 ), L2 = ((x3 − x2)2 + (y3− y2)2 ),
L3 = ((x4 − x3)2 + (y4− y3)2 ), откуда L = L1 + L2 + L3.

Задание В.

Словесная постановка задачи.

Тело брошено вертикально вверх с некоторой скоростью V. Определить время, за которое тело пролетит заданное расстояние S.

Дано: V - скорость; S - расстояние; g = 9, 8 - ускорение свободного падения. Определить: t - время.

Промежуточные величины: D.

Математическая постановка задачи.

Расстояние рассчитывается по формуле, известной из физики:

S = Vt − gt2; 2

отсюда 2S = 2Vt - gt2.

Так как нам нужно определить t, запишем это выражение в виде квадратного уравнения: gt2 - 2Vt + 2S = 0.

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

 

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

В общем виде уравнение имеет вид: ах2+ bх + с = 0.

Определим дискриминант и корни: D = b2- 4ac; x1 =

− b +D ;
    2a  
       

 

           
    2g     2g

Разработка схемы алгоритма.

Вычисляем последовательно D, t1, t2.

Примеры программ линейных процессов

Запишем программы рассмотренных выше задач.

Задание А.

Program TREYG; Var

a, b, c, s: real; Begin

write('введите длину катета: '); readln(a);

write('введите длину гипотенузы: '); readln(с);

b: = SQRT(c * c - a * а); S: = a * b / 2;

WRITELN('Длина второго катета=', b: 6: 1); WRITELN('Площадь треугольника=', s: 8: 2)

End.

Контрольный тест.

Допустим а = 5; с = 6.
Тогда b = (36 − 25) = 11≈ 3, 3;

 

S = 5 * 3.3 /2 ≈ 8, 25.

Протокол работы на ЭВМ.

Введите длину катета: 5 < ENTER> Введите длину гипотенузы: 6 < ENTER>

Длина второго катета = 3.3
Площадь треугольника = 8.25

Результаты работы программы и ручного счета совпали.

Задание Б.

Program DLINA; Var

x1, y1, x2, y2, x3, y3, x4, y4: real; L, L1, L2, L3: real;

Begin

Write('Введите координаты вершин х, y: '); readln(x1, y1, x2, y2, x3, y3, x4, y4);

L1: = SQRT(SQR(x2 - x1) + SQR(y2 - y1));

L2: = SQRT(SQR(x3 - x2) + SQR(y3 - y2));

L3: = SQRT(SQR(x4 - x3) + SQR(y4 - y3)); L: = L1 + L2 + L3;

Writeln('L1 = ', L1: 4: 1, ' L2 = ', L2: 4: 1, ' L3 = ', L3: 4: 1); Writeln('Длина ломаной =', L: 6: 1)

End.

Контрольный тест.

Пусть А(1, 1); В(4, 5); С(7, 3); D(10, 7). Тогда

L1= ((4 − 1)2 + (5− 1)2 )= (9 +16)= 5;
L2= ((7 − 4)2 + (3− 5)2 )= (9 + 4)= 13≈ 3, 6;
L3= ((10 − 7)2 + (7− 3)2 )= (9 +16)= 5;

L = 5 + 3, 6 + 5 ≈ 13, 6.

Протокол работы на ЭВМ.

Введите координаты вершин x, y: 1 1 4 5 7 3 10 7

L1 = 5.0 L2 = 3.6 L3 = 5.0
Длина ломаной = 13.6
Задание В.  

Program TELO; Const

g = 9.8; Var

s, v, t1, t2, D: real; Begin

write('Введите расстояние: '); readln(s);

write('Введите скорость: '); readln(v);

D: = 4 * v * v - 8 * g * s;

t1: = (2 * v + SQRT( D )) / (2 * g); t2: = (2 * v - SQRT( D )) / (2 * g); Writeln('t1 = ', t1: 4: 2, 't2 = ', t2: 4: 2)

End.

В этой задаче при анализе решения отрицательные значения времени отбрасываются.

Контрольные вопросы

1.Что называется алгоритмом?

2.Перечислите типы алгоритмов.

3.Дайте определение линейного алгоритма.

4.Перечислите способы описания алгоритмов.

5.Что называется схемой алгоритма?

6.Какие блоки используются для описания линейных алгоритмов?

7.Опишите этапы решения задачи на ЭВМ.

8.Дайте понятие контрольного теста.

9.Дайте понятие алгоритмического языка.

10.Что называется транслятором?

11.Что такое объектный модуль?

12.Что представляет собой программа на алгоритмическом языке?

13.Дайте понятие оператора.

14.Опишите структуру программы на Паскале.

15.Поясните смысл объявления констант и переменных.

16.Опишите выполнение оператора присваивания.

17.Объясните выполнение оператора ввода.

18.Что такое бесформатный вывод данных?

19.Какие форматы вывода данных вам известны?

20.В следующих операторах присваивания укажите типы переменных:

а: = 32;

х: = sin(y + 2.3);

l: = (k > 3) and (d < c);

m: = 'Сегодня' + t;

b: = '1993'.

Задание к работе

Выполнить индивидуальное задание.

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

Задачу необходимо решать согласно рассмотренной технологии: а) изучить словесную постановку задачи; б) сформулировать математическую постановку задачи;

в) выбрать метод решения задачи, если это необходимо; г) разработать схему алгоритма; д) записать разработанный алгоритм на языке Паскаль;

е) разработать контрольный тест программы; ж) отладить программу; з) написать отчет.

Содержание отчета

1.Титульный лист.

2.Словесная постановка задачи.

3.Математическая формулировка задачи.

4.Схема алгоритма решения задачи.

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

6.Контрольный тест.

7.Результат тестирования программы.

8.Ответы на контрольные вопросы к лабораторной работе по согласованию с преподавателем.

21

Варианты индивидуальных заданий

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

2.Треугольник задан длинами сторон. Найти радиусы вписанной и описанной окружностей.

3.Найти корни системы двух алгебраических уравнений с двумя неизвестными по формуле Крамера, считая, что система разрешима.

4.Хозяин хочет оклеить обоями квартиру. Определить количество необходимых рулонов и затрат на их приобретение.

5.В некотором треугольнике основание больше высоты на заданную величину d. Определить значение высоты и основания, если известна величина площади треугольника.

6. Известны координаты вершин треугольника. Определить периметр и площадь треугольника.

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

8.Дано действительной число a. Не пользуясь никакими другими арифметическими операциями, кроме умножения, получить а8 за три операции.

9.Дано действительной число a. Не пользуясь никакими другими арифметическими операциями, кроме умножения, получить а5 и а13 за пять операций.

10.Определить площадь равнобедренной трапеции, если заданы основание b, высота h и угол при основании b, равный L.

 

ЛАБОРАТОРНАЯ РАБОТА N2

Тема: " Алгоритмизация линейных вычислительных процессов " Цель работы

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

Краткие сведения из теории

Понятие алгоритма

          Определение 1. Алгоритм -

это четкое

описание последовательности действий,

приводящих к решению задачи.

          В теории

алгоритмов принята

следующая

классификация алгоритмов:

линейные,

разветвляющиеся, циклические.

         

Линейный алгоритм состоит

из

последовательности

действий, каждое из которых

выполняется только один раз в порядке их следования.

                 

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

Определение 2. Схема алгоритма - это графическое изображение алгоритма с помощью различных геометрических фигур или блоков. Каждому блоку соответствует определенный этап решения задачи. Блоки соединяются линиями потока информации, причем линии определяют направление вычислений сверху вниз и слева направо. Если необходимо отразить другое направление (снизу вверх или справа налево), то на линиях ставятся стрелки. Внутри блоков записываются выполняемые действия.


Поделиться:



Последнее изменение этой страницы: 2019-05-04; Просмотров: 180; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.066 с.)
Главная | Случайная страница | Обратная связь