лаб раб. Основы алгоритмизации. Построение блоксхем линейных вычислительных процессов
![]()
|
Лабораторная работа №1. Тема: «Основы алгоритмизации. Построение блок-схем линейных вычислительных процессов» Цель лабораторной работы: Целью данной лабораторной работы является ознакомление с основами программирования на языке Си, его особенностями, синтаксисом, компиляцией и отладкой. Теоретические сведения. Решение любой задачи на ЭВМ происходит в несколько этапов: постановка задачи; конструирование алгоритма решения задачи; составление программы по разработанному алгоритму; ввод в ЭВМ программы и исходных данных; отладка и тестирование программы; получение решения и анализ результатов. Алгоритм – конечная последовательность точно определенных действий, приводящих к однозначному решению поставленной задачи. Главная особенность любого алгоритма – формальное исполнение, позволяющее выполнять заданные действия (команды) не только человеку, но и различным техническим устройствам (исполнителям). Процесс составления алгоритма называется алгоритмизацией. Алгоритмы могут быть заданы: словесно, таблично, графически (с помощью блок-схем). Словесное задание описывает алгоритм с помощью слов и предложений. Табличное задание служит для представления алгоритма в форме таблиц и расчетных формул. Графическое задание, или блок-схема, – способ представления алгоритма с помощью геометрических фигур, называемых блоками. Последовательность блоков и соединительных линий образуют блок-схему. Описание алгоритмов с помощью блок-схем является наиболее наглядным и распространенным способом задания алгоритмов. Блок-схемы располагаются сверху вниз. Линии соединения отдельных блоков показывают направление процесса обработки в схеме. Каждое такое направление называется ветвью. Алгоритм независимо от его структуры всегда имеет по одному блоку «Начало» и «Конец». Его ветви должны в конце сойтись, и по какой бы ветви не было бы начато движение, оно всегда должно привести к блоку «Конец». При задании алгоритма с помощью блок-схемы используются строго определенные блоки. Основные типы блоков приведены в таблице 1. Следует отметить, что все блоки нумеруются. В этом случае номера проставляются вверху слева от блока (блоки «Начало», «Конец» и соединительные блоки не умеруются). Стрелки на соединяющих линиях обычно не ставят при аправлении сверху вниз и слева направо; если направление противоположное, то его показывают стрелкой на линии. Таблица 1. Основные типы блоков. ![]() Алгоритмы бывают линейные, разветвляющиеся и циклические. Линейный алгоритм не содержит логических условий, имеет одну ветвь обработки и изображается линейной последовательностью связанных друг с Начало Конец19 другом блоков. Условное изображение линейного алгоритма может быть представлено на рис. 1.1. ![]() Рис.1.1 Блок-схема линейного алгоритма Чаще всего линейные алгоритмы используются для программирования вычислений по формулам. В этом случае удобно использовать набор стандартных математических функций языка Си, содержащихся в заголовочном файле math.h : Sin (x) - sin x; cos (x) – cos x ; tan(x) - tg х ; log (x) - ln x; log10(x) – lg x; exp(x) - показательная функция e x ; sqrt (x)- корень квадратный от х; роw(x, y) – x в степени y; abs(x)- модуль x.; acos(x) – arccos x; asin(x) – arcsin x; atan(x)- arctg x; sinh(x)- sh x; cosh (x) – ch x; tanh(x)-th x. Для тригонометрических функций аргумент х измеряется в радианах и имеет тип double, как и значения возвращаемые функцией. Пример программы линейной структуры: Задание: Написать программу для вычисления площади и стороны прямоугольного треугольника, если известны гипотенуза c и угол x. Для вычислений воспользуемся формулами: a=c*sin x; b=c*cos x; s=a*b ; Реализация программы: //lab1_1 вычисление высот и площади треугольника #include #include main() //главная функция { float a,b,c,x, s; //описание переменных вещественного типа printf(“\n Введите гипотенузу и угол треугольника ”); scanf(“%f%f “,&c,&x); // ввод значений вещественного типа a=c*sin(x); b=c*cos(x); s=a*b; printf (“\n Результаты: a=%7.2f b=%7.2f S=%7.2f “,a, b, s); return 0; } Комментарий в программе не влияет на компиляцию программы, а служит для разъяснения действий основных блоков текста и программы в целом. Однострочный комментарий действует от двух символов // до конца строки. Многострочный комментарий заключается в пары символов /* и */. Вторая строка программы #include является директивой препроцессора для подключения заголовочного файла stdio.h , в котором содержатся средства ввода-вывода (связи с внешними устройствами), отсутствующие в самом языке Си. Третья строка - #include является директивой компилятора для включения заголовочного файла math.h, обеспечивающего выполнение математических функций. Программа на языке Си состоит из ряда функций, из которых функция main (главная) является обязательной и служит точкой входа в программу. В круглые скобки заключаются параметры функции, причем наличие круглых скобок обязательно, если даже список параметров пуст. В фигурные скобки заключаются составной оператор (несколько операторов). Для придания тексту программы наглядности открывающая и соответствующая ей закрывающая фигурные скобки печатаются на одном уровне, а заключенный между ними текст, сдвигается на 1-2 символа вправо, вложенный блок также сдвигается вправо и т.д. Образуется иерархия вложенных блоков, придающая программе на Си характерный вид. В программе описаны переменные a, b, c, х, s вещественного типа (float). В отличие от других языков в Си учитывается регистр при определении имени переменной, т.е. s и S это разные переменные. Функции printf() и scanf() содержатся в заголовочном файле Форматная строка Состоит из спецификаторов вывода для различных типов данных, которым предшествует специальный неотображаемый символ процента % и используется в функциях scanf() и printf() ![]() Символы, управляющие выводом (эскейп символы) Позволяют из форматной строки управлять выводом на экран ![]() Выполнение работы Составьте и выполните программу линейной структуры согласно вариантам заданий пункта 7. Варианты заданий. ![]() Контрольные вопросы Что такое алгоритм линейной структуры, программа линейной структуры? Для чего используются заголовочные файлы? Структура программы на языке Си Содержание отчета Отчет должен содержать: титульный лист, название и цель и описание работы, задание, код программы, алгоритм в виде блок-схемы и скриншоты с результатом работы программы. |