Файл: Особенности и примеры использования массивов при разработке программ (Языки программирования).pdf
Добавлен: 17.05.2023
Просмотров: 81
Скачиваний: 3
Введение
Актуальность курсовой работы. В современной жизни, на работе, в научно-исследовательской среде или любой другой деятельности мы постоянно сталкиваемся с решением задач, очень похожими друг на друга.
Современные технологии, применяющие языки программирования, дают новые возможности.
В данной курсовой работе мной будут рассмотрены все основные понятия и правила использования массивов и приемы работы с ними.
Для изучения темы были изучены материалы учебников и пособий различных авторов таких как: Костерин В.В., Камаев В.А., Культин Н.Б. , Мещеряков П.С., Мочалин В.П., Жульнев В.В. , Моргун А. Н., Тивиков А.С. и другие.
В мире появилось больше сотни различных языков программирования от самых простых до сложных, появилось много вариантов программирования, на каждом временном этапе появляется новый наиболее необходимый подход.
Цель курсовой работы: изучить основы программирования по теме «Массивы».
Объект исследования: языки высокого уровня.
Предмет исследования: Особенности и примеры использования массивов при разработке.
Задачи курсовой работы:
- провести обзор и анализ подобранной по теме исследования научной литературы,
- описать основные понятия, термины, категории по исследуемой тематике,
- выделить достоинства и недостатки типов массивов,
- составить и решить примеры по рассматриваемым темам,
- сформировать выводы по всем разделам.
Содержание курсовой работы включает в себя введение, 3 главы , 12 примеров, заключение и список используемой литературы, 5 приложений с текстами программ и структурными схемами алгоритмов.
В первой главе описаны основные понятия алгоритма, его свойств и способы его реализации. Отмечен ряд важных особенностей алгоритма. Перечислены основные языки программирования высокого уровня, проведена их классификация по различным признакам, выделены их достоинства и недостатки, отмечены три составляющие (любого) языка (Алфавит, Синтаксис и Семантика).
Во второй главе даны определение массива, описаны их типы и виды: одномерные, двумерные, многомерные, статические, динамические и гетерогенные массивы. Также в этой главе рассмотрены и указаны достоинства и недостатки видов массивов.
Отдельно выделен подраздел, посвящённый случаям выхода за границы диапазона.
В третьей главе отдельно рассмотрена технология создания программ с массивами.
В конце каждой главы делаются выводы.
В приложениях размещены тексты программ и структурные схемы решенных задач.
Глава 1. Алгоритмы и программы
1. Алгоритм и способ его описания
Понятие алгоритм является основным для всех компьютерных наук. Если Вы хотите, чтобы кто-либо выполнил работу и достиг некоторого результата, необходимо представить процесс его получения в виде последовательности элементарных операций. Такое представление называется алгоритмом решения задачи.
Алгоритм - это последовательность действий (шагов) приводящих к требуемому результату.
Алгоритм - это точное предписание, задающее процесс, направленный на получение результатов соответствующих определенным входным данным.
Алгоритмами являются способы решения, описанные с помощью предписаний по обработке, которые удовлетворяют определенным требованиям.
Все правильные алгоритмы обладают следующими обязательными свойствами: дискретность, однозначность, детерминированность, результативность, массовость[1].
Таким образом, разрабатывая алгоритм решения задачи ее формулировка превращается в процесс решения, где представлена последовательность действий (шагов) и логическая связь между ними. Алгоритм имеет ряд важных особенностей:
- Целесообразность – алгоритм должен давать некоторый результат;
- Конечность – алгоритм должен давать результат после выполнения конечного числа шагов (имейте в виду, что количество шагов может быть сколь угодно большим);
- Определенность – каждый шаг алгоритма должен быть точно определен, однозначен и понятен исполнителю;
- Дискретность – на каждом шаге алгоритма выполняется очередная одна и только одна операция;
Ввод – алгоритм имеет некоторое число входных данных, т.е. величин, которые задаются до начала его работы или динамически во время его работы извне. Эти входные данные берутся из определенного набора объектов.
- Вывод – у алгоритма есть одно или несколько выходных данных, т. е. величин, имеющих вполне определенную связь с входными данными.
- Массовость – алгоритм должен давать решения для целой группы задач из некоторого класса, отличающихся исходными данными;
- Эффективность – алгоритм обычно считается эффективным, если все его операции достаточно просты, чтобы их можно было точно выполнить в течении конечного промежутка времени с помощью карандаша и бумаги;
Алгоритмический процесс — это процесс последовательного преобразования конструктивных объектов (слов, чисел, пар слов, пар чисел, предложений и т.п.), происходящий элементарными «шагами». Каждый шаг состоит в смене одного конструктивного объекта другим [2].
Исторически первым языком для описания алгоритмов был язык так называемых блок-схем. Элементарное действие алгоритма изображается текстом в одном блоке схемы, а линии, соединяющие блоки, указывают последовательность работы блоков. Описание на языке блок-схем в общем случае применимо к любому целенаправленному действию. Общая схема может содержать небольшое число крупных блоков, а затем крупные блоки разбивают на более мелкие, и получается более подробная блок-схема.
В алгоритмических структурах каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий и т.п.) соответствует геометрическая фигура, представленная в виде блока[3].
Таблица основных блоков представлена в Приложении А [1].
Рассмотрим пример использования блоков для создания общей алгоритмической структуры решения задачи (рис.1): пройдёт ли кирпич с рёбрами a, b, c в прямоугольное отверстие со сторонами x, y.
Решая эту задачу необходимо учесть следующее:
чтобы кирпич прошёл в заданное отверстие, необходимо чтобы стороны как минимум одной грани были меньше или равны сторонам отверстия.
Программировать в широком смысле – это значит сделать так, чтобы компьютер совершил действие, которое вы для него предполагали. Причем обязателен один важный аспект этого процесса – повторяемость. Вы один раз совершаете некую работу – составляете программу – после чего компьютер получает возможность выполнять новую функцию.
Программа – это полная инструкция, позволяющая исполнителю в каждой ситуации однозначно и правильно выполнить следующее действие.
Рисунок 1 – Алгоритм решения задачи
В отличие от алгоритма, который может излагать только основную идею, программа должна предусматривать все возможные ситуации:
- некорректность входных данных;
- отсутствие возможности выполнять действия над промежуточными результатами (деление на 0, переполнение, нехватка места на диске и т.п.);
- аварийные сигналы и другое.
Структура программы соответствует структуре простейшего математического рассуждения, не использующего сложных лемм и абстрактных понятий[4].
Структурная программа это программа, составленная из базового множества первичных программ:
- последовательность,
- ветвление,
- цикл с предусловием,
- цикл с постусловием.
- процесс (подпрограмма),
Сегодня существует огромное количество различных языков программирования.
Их можно классифицировать по различным признакам, но существенным является деление их по степени ориентации на возможности ЭВМ, на две большие группы: машинно-зависимые и машинно-независимые языки.
Машинно-зависимые языки – это языки, средства которых существенно зависят от особенностей конкретной ЭВМ. К таким языкам относится Ассемблер.
Их характерные особенности заключаются в том, что:
- они компактны и у них большая скорость выполнения;
- они могут напрямую использовать конкретные аппаратные ресурсы;
- необходимо учитывать особенности функционирования данной ЭВМ;
- очень трудоемкий процесс составления программ;
- низкая скорость программирования;
- отсутствие возможности использования составленных программ, на компьютерах других типов.
Машинно-независимые языки – используются для того чтобы описать алгоритм решения задачи и информации, которая подлежит обработке, Они не требуют от пользователя знаний об особенностях функционирования ПК. Такие языки называют языками высокого уровня ( ЯВУ). К ним можно отнести почти все используемые в данное время языки.
Машинно-независимые языки можно условно разделить на три группы по типу решаемых задач[5].
- Процедурные языки – это языки, которые определяют, как вычислить результат для определённой проблемы в соответствии с заданным алгоритмом. К ним относят: Алгол, Фортран, Бейсик, Паскаль, Си.
- Декларативные языки – это языки, которые оперируют с помощью задания данных и отношений между ними. Вместо алгоритмов в таких языках используются правила логического вывода, которые позволяют системе находить нестандартные, заранее не определенные решения. Поэтому декларативные языки называют также еще языками искусственного интеллекта. К ним относится язык Пролог.
- Объектно-ориентированные языки предназначены для отображения объектов реального мира, их свойств (атрибутов) и связей между ними при помощи специальных структур данных. К ним относятся такие языки как: C++, Java, Visual Basic.
Классификация языков по степени детализации алгоритма выглядит следующим образом (рис.2):
Рисунок 2- Классификация языков по степени детализации алгоритма
Три составляющие (любого) языка (рис.3):
Рисунок 3- Составляющие (любого) языка
Алфавит — набор основных символов, букв алфавита, никакие другие символы в предложениях языка не допускаются[6].
Синтаксис — система правил, определяющая допустимые конструкции из букв алфавита. Синтаксис отвечает на вопрос: является ли последовательность символов текстом (программой) на данном языке или нет?
Семантика — система правил, истолковывающая отдельные конструкции языка с точки зрения процесса обработки (смысл программы).
Для того, чтобы представить алгоритм в виде, понятном компьютеру, используют языки программирования. На первом этапе разрабатывают алгоритм действий, на втором этапе его записывают на одном из таких языков.
Например, для программирования сложных задач выбирают язык Ассемблер или С++, а для решения инженерных задач предпочтение отдают Fortran (Visual Fortran), Basic (Visual Basic) или Pascal (Delphi или Lazarus).
В итоге мы получаем текст программы - полное, законченное и детальное описание алгоритма на языке программирования[7].
Языки программирования являются искусственными языками. От естественных языков их отличает ограниченное число "слов", значение которых понятно только программисту и транслятору, и очень строгие правила записи команд (операторов).
Глава 2. Массивы
Работая с большим количеством значений, вводимых пользователем, приходится объявлять одну или несколько переменных. Но как быть, если все вводимые пользователем значения необходимо запоминать для дальней обработки?
Для хранения таких объемов данных предусмотрены особые структуры в языках программирования – массивы.
Массив – это упорядоченное множество однотипных элементов.
Массив – это структурированный набор данных, который состоит из однородной, фиксированной по размеру и конфигурации совокупности элементов простой или составной структуры, упорядоченных по номерам[8].