Автор работы: Пользователь скрыл имя, 12 Марта 2014 в 21:38, курсовая работа
Первоначально составление программы для ЭВМ выполнялось вручную и требовало много труда и времени. Затем для облегчения задачи программирования были разработаны специальные алгоритмические системы, получившие название алгоритмические языки программирования.
Одной из основных задач программирования как научно-технической дисциплины является разработка «языков программирования» - способов выражения программ, удобных для человека, и методов трансляции, перевода с языков программирования на язык машины.
Введение
Язык программирования – знаковая система любой физической природы, выполняющая познавательную и коммуникативную функции в процессе человеческой деятельности.
В связи с возникновением ЭВМ и их использованием для решения различных задач возникла необходимость перевода алгоритмов, представленных аппаратом или иной алгоритмической системы, в команды конкретной машины.
Для решения сколько-нибудь сложной задачи ЭВМ должна выполнить длинную последовательность команд (программу), составленную программистом и введённую в память машины до начала решения задачи. Каждая команда, как правило, состоит из двух частей: кода операции, который указывает, какое действие вызывает команда, и адресной части, указывающей адреса ячеек, используемых в качестве аргументов и результатов команды. Кроме списка команд, при составлении программы программист использует так же список величин программы. При этом одни величины даются уже в условии задачи – обычно это её исходные данные и искомые результаты. Другие возникают в ходе решения задачи и называются промежуточными переменными величинами. Их значения вычисляют как результаты выполнения одних команд программы и используются позднее в других командах как их аргументы.
Сам процесс программирования (составления программы для ЭВМ) можно сравнить со школьным способом решения арифметических задач по вопросам. При решении задач данным способом составляется план решения в виде серии вопросов, в каждом из которых спрашивается, какая величина задачи должна быть вычислена. При этом вычисление должно быть выполнено за одно действие над уже известными величинами. Если сложные арифметические задачи содержат, как правило, до 10 действий, то программирование для ЭВМ реальных задач требует предусматривать в плане решения десятки тысяч действий, для каждого из которых должна быть безошибочна записана вызывающая его команда.
Первоначально составление программы для ЭВМ выполнялось вручную и требовало много труда и времени. Затем для облегчения задачи программирования были разработаны специальные алгоритмические системы, получившие название алгоритмические языки программирования.
Одной из основных задач программирования как научно-технической дисциплины является разработка «языков программирования» - способов выражения программ, удобных для человека, и методов трансляции, перевода с языков программирования на язык машины. [1]
Для написания курсовой работы я использовал один из известнейших языков программирования, Турбо Паскаль.
1 Постановка задачи
Постановка задачи – точная формулировка задачи для решения на компьютере с описанием входной и выходной информации. Входной информацией могут служить данные документов ручного заполнения; нормативно-справочная информация или результаты решения других задач, хранимых в базе данных; электрические сигналы, поступающие с датчиков, и другие данные. Выходная информация может быть представлена в виде документа (типа листинга), видеограммы на экране монитора, электрического сигнала для управления конкретным устройством. При постановке функциональной задачи формулируется её цель, место и связи с другими задачами; уточняются условия решения задачи с использованием средств вычислительной техники; Определяются функции обработки входной информации и др.[4]
Дан двухмерный массив размером M x N. Преобразовать его по правилу – разделить все элементы матрицы на элемент, наименьший по абсолютной величине. Из первых четырёх строк массива сформировать четыре новых вектора (одномерные массивы). Для каждого вектора найти элемент, ближайший к среднему арифметическому.
Разработанная программа должна иметь понятный и удобный интерфейс, так же она должна иметь графическую оболочку и справочную систему. Ввод данных должен осуществляться вручную, случайным образом и из существующего файла. Вывод результатов должен быть возможен как на экран, так и сохраняться во внешнем файле. [3]
На экран должны быть выведены исходный массив, искомые векторы, среднее значение каждого вектора и ближайший элемент к среднему арифметическому.
Вводимая матрица должна иметь ограничения, так как нет смысла вводить значения больше 10 х 10. Так же целесообразно ограничить диапазон значений массива, будет достаточно от -100 до 100. Вводимые числа должны быть как целыми, так и дробными.
2 Анализ и исследование задачи, модели.
Разработанная мной программа практического значения не имеет. Но она имеет большое теоретическое значение, так как при её написании я использовал весь мой опыт, накопленный на лабораторных работах и лекциях по информатике. Вследствие того, что на базе моей школы курс программирования не преподавался, мне было достаточно сложно писать программу. И именно по этому написание курсовой так затянулось.
Моделирование – процесс создания модели, служащий для облегчения изучения конкретного объекта. Модель – это и есть конкретный объект, но только идеализированный, т.е. упрощенный. Не удобно изучать слишком большой предмет или слишком маленький. Хотя модель и упрощенный объект, она обладает максимально приближенными свойствами к реальному предмету, что необходимо для изучения.
В информатике процесс составления программы это и есть моделирование, а сама программа – модель. Именно поэтому при написании программы нужно учитывать её актуальность, востребованность; предусматривать всевозможные ошибки и при необходимости решать их.
На первом этапе разработки курсовой работы я представил программу в более простой для себя форме, в виде алгоритмических процессов. Определил как будет выглядеть моя программа в завершенном виде.
На втором этапе написания я реализовал первый этап с помощью операторов языка Турбо Паскаль. Программу я разбил на процедуры и функции и связал их с основной программой.
3 Разработка алгоритма
Алгоритм – конечный набор правил или команд (указаний), позволяющий исполнителю решать любую конкретную задачу из некоторого класса однотипных задач.
Исполнителем может быть человек, группа людей, станок, компьютер и др. С учётом особенностей исполнителя составленный алгоритм может быть представлен различными способами: с помощью графического или словесного описания, в виде таблицы, последовательностью формул, записанных на алгоритмическом языке (языке программирования), и др. [1]
По форме представления алгоритмы классифицируются на:
- Словесные (запись на естественном языке);
- Графические (изображение из графических символов);
- Псевдокоды (описание на
условном алгоритмическом
- Программные (тексты на языках программирования);
Алгоритм обладает несколькими свойствами:
- Понятность для исполнителя
– для выполнения алгоритма
он должен быть понятен, т.е
учитывать возможности и
- Конечность (дискретность)
– алгоритм должен
- Определённость – каждый
шаг алгоритма должен быть
чётк и однозначно определён
и не допускать двоякой
- Результативность –
цель выполнения алгоритма это
получение результата на
- Массовость – возможность применять один и тот же алгоритм для решения целого класса однотипных задач, различающихся исходными данными;
- Эффективность – каждый шаг алгоритма должен быть выполнен точно и за должное время.
Долее будут описаны используемые мной процедуры и краткое пояснение по их работе.
Процедура punkt – это процедура, которая рисует пункты меню от 1 до 5 и пояснительную информацию для пользователя. Данная подпрограмма выполнена в графическом режиме.
Процедура menu отвечает за главное меню программы, в ней осуществляется движение курсора между пунктами
Рисунок 1 – Блок-схема процедуры menu
В блоке 1 включается процедура punkt, отвечающая за выделение цветом первого пункта меню.
В блоке 2 задаётся то, что при входе в программу автоматически курсор стоит на первом пункте.
В блоке 3 происходит считывание нажатой клавиши.
В блоке 4 анализируется условие: если нажатая клавиша не равна 13 ( клавиша Enter), то выполняется блок 5. Он отвечает за нажатие клавиш вверх (6) и вниз (7), необходимых для перемещения курсора, а также выбор конкретного пункта, посредством нажатия клавиши Enter.
В блоке 13 происходит выбор соответствующего пункта меню и его активация. В пунктах с 14 по 19 включена процедура punkt, для выделения цветом соответствующей строки.
В блоке 22 происходит зацикливание программы, до тех пор пока не будет нажата клавиша Enter.
Долее будет описана процедура заполнения массива случайными числами:
Рисунок 2 – Заполнение случайными числами
В блоках с 1 по 3 задаётся цикл, в котором массив заполняется случайными числами.
В блоках с 4 по 7 задаётся цикл, для того что бы в массиве присутствовали отрицательные числа.
В блоках с 8 по 10 осуществляется вывод массива на экран.
В следующей блок-схеме прописана процедура нахождения минимального элемента массива.
Рисунок 3 – Нахождение минимального элемента
В блоке 1 минимальный элемент приравнивается первому элементу массива.
В блоках со 2 по 5 задаётся цикл, и каждый элемент массива сравнивается с минимальным элементом. Если элемент меньше минимального, то этот элемент становится минимальным и так и далее.
В блоке 6 выводится найденный минимальный элемент.
В блоках 7 и 8 задаётся условие, для того что бы минимальное значение не равнялось 0, так как в последующих действиях нужно будет производить деление на 0.
Рисунок 4 – Преобразование массива
В вышепредставленной блок-схеме представлена процедура преобразования исходного массива.
В блоках с 1 по 3 происходит преобразование массива: исходный массив делится на минимальное значение. В блоках 4-6 происходит вывод преобразованного массива.
В следующей блок схеме представлена процедура нахождения среднего арифметического значения для каждой строки:
Рисунок 5 – Нахождение среднего арифметического
В 1 блоке задаётся то, что в массиве будут обрабатываться только первые 4 строчки. В следующем блоке переменная sum приравнивается 0.
В блоках 3-5 находится сумма каждой строки.
С 6 по 8 блоки выполняется операция нахождения среднего арифметического
В следующей процедуре будет обрабатываться операция нахождения ближайшего элемента строки к среднему арифметическому этой же строки:
Рисунок 6 – Нахождение ближайшего элемента к ср. арифметическому
В блоках 1-5 выполняется операция нахождения минимального значения (по модулю) массива raz. Массив raz является служебным массивом. Каждое число этого массива есть разность преобразованного массива b и среднего арифметического каждой строки.
В блоках 5-7 находится ближайший элемент к среднему арифметическому каждой строки.
Блоки 8 и 9 отвечают за вывод массива ближайших элементов.
4 Программирование
Система программирования Турбо Паскаль, разработанная американской корпорацией Borland, остаётся одной из самых популярных систем программирования в мире. Этому способствует, с одной стороны, простота лежащего в его основе языка программирования Паскаль, а с другой – труд и талант сотрудников Borland во главе с идеологом и создателем Турбо Паскаля Андерсом Хейлсбергом. Придуманный швейцарским учёным Никласом Виртом как средство для обучения студентов программированию, язык Паскаль стараниями А. Хейлсберга превратился в мощную современную профессиональную систему программирования, которой по плечу любые задачи - от создания простых программ для решения несложных вычислительных задач, до разработки сложнейших реляционных систем для управления базами данных.
Информация о работе Программирование на на языке Турбо Паскаль