Для решения большинства задач существует множество готовых программ. Но для того чтобы лучше понимать все происходящее с компьютером и уверенно принимать правильные решения, рядовому пользователю необходимо обладать определенной компьютерной грамотностью.
Следует отметить, что большинство редакторов (например, Microsoft Office Word, Excel) имеют встроенные средства программирования, освоив которые можно значительно расширить свои возможности.
Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла (или Абу Джафар) Мухаммед бен Муса аль-Хорезми создал книгу по математике, в которой описал способы выполнения арифметических действий над многозначными числами. Само слово алгоритм возникло в Европе после перевода на латынь книги этого математика.
Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.
Вы постоянно сталкиваетесь с этим понятием в различных сферах деятельности человека (кулинарные книги, инструкции по использованию различных приборов, правила решения математических задач. ). Обычно мы выполняем привычные действия не задумываясь, механически. Например, вы хорошо знаете, как открывать ключом дверь. Однако, чтобы научить этому малыша, придется четко разъяснить и сами эти действия и порядок их выполнения:
3 класс Урок 2 Понятие алгоритма Среда программирования
1. Достать ключ из кармана.
2. Вставить ключ в замочную скважину.
3. Повернуть ключ два раза против часовой стрелки.
Если вы внимательно оглянитесь вокруг, то обнаружите множество алгоритмов которые мы с вами постоянно выполняем. Мир алгоритмов очень разнообразен. Несмотря на это, удается выделить общие свойства, которыми обладает любой алгоритм.
Свойства алгоритмов:
1. Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке);
2. Детерминированность (любое действие должно быть строго и недвусмысленно определено в каждом случае);
3. Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения);
4. Массовость (один и тот же алгоритм можно использовать с разными исходными данными);
5. Результативность (отсутствие ошибок, алгоритм должен приводить к правильному результату для всех допустимых входных значениях).
Виды алгоритмов:
1. Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке);
2. Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание);
3. Разветвляющий алгоритм (алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий)
Для более наглядного представления алгоритма широко используется графическая форма — блок-схема, которая составляется из стандартных графических объектов.
Источник: sites.google.com
Исполнитель робот. Разветвляющийся алгоритм.
Билет 1. Базовые понятия программирования. Действие, процесс, алгоритм, программа.
Программирование — это способ решения задач с помощью ПК.
Задача — это вопрос, на который нужно ответить, или требование, которое нужно выполнить, опираясь на те условия и учитывая те ограничения, которые указаны в задаче.
Самое важное понятие — ДЕЙСТВИЕ. Действие совершается над объектом и приводит к определенному результату. Если действие можно разложить на составные части, то оно называется ПРОЦЕССОМ. Если нет — это элементарное действие.
Каждое действие можно описать с помощью языка или системы формул. АЛГОРИТМ — это описание процесса, т.е. описание последовательности элементарных действий, приводящих к определенному результату. Каждое элементарное действие наз. инструкцией.
ПРОЦЕССОРОМ наз. исполнитель, который выполняет элементарные действия согласно инструкциям (человек, автомат, ЭВМ).
ПРОГРАММОЙ называется алгоритм, который написан на языке, понятном вычислительной машине. Различие между общим алгоритмом и программой машины состоит в том, что в последней правила поведения должны быть уточнены до мельчайших подробностей и она должна быть составлена в точном соответствии с правилами записи, определенными для используемой машины.
Существует несколько уровней ЯП. Нижний уровень — внутренний язык машины (машинный код: 0 и 1). Программа на ЯП высокого уровня может быть введена в машину, но не может быть выполнена. Программа, которая переводит (транслирует) программу с языка высокого уровня на внутренний язык машины, называется транслятор: компилятор или интерпретатор.
Компилятор — программа, которая транслирует код с языка высокого уровня на язык машины: сначала перевод, потом выполнение программы (Паскаль).
Интерпретатор переводит каждое действие и тут же выполняет, пооператорно (Basic).
Билет 2. Функциональная структура эвм. Основные устройства эвм, их функциональные характеристики.
Входные данные (устройство ввода) -> Память (программа)(внутренние данные) -> Выходные данные (устройство вывода). К памяти две стрелки Процессор.
Две главные компоненты ЭВМ:
1) ПАМЯТЬ (запоминающее устройство). В памяти в закодированном виде содержатся объекты, над которыми производятся действия. Эти закодированные объекты наз. данными. Основные характеристики памяти:
— скорость, с которой данные заносятся в память и извлекаются из нее.
2) ПРОЦЕССОР — это устройство, которое выполняет 2 основные функции:
— производит действия над данными;
— управляет последовательностью действий в программах.
Во время работы процессора инструкции программы и данные извлекаются (читаются) из памяти, а результаты заносятся (записываются) в память.
Т.о. память играет роль «камеры хранения» для процессора, причем она используется как для хранения программы, так и для хранения данных.
Внутренние данные, обрабатываемые программой, состоят из входных, выходных и промежуточных данных.
Входные данные, значения которых известны из условия задачи, поступают в память машины из устройства ввода по запросу программы.
Выходные данные, являющиеся результатом решения задачи, выводятся программой в удобочитаемой форме на устройство вывода.
Промежуточные данные, которые являются результатом промежуточных вычислений программы, образуют внутреннюю среду программы.
Билет 3. Представление данных в памяти ЭВМ . Понятие переменной, константы, типа, диапазона значений.
В алгоритмах и программах данные встречаются в виде констант и переменных.
КОНСТАНТА — это постоянная величина, которая определяется своим значением.
ПЕРЕМЕННАЯ — величина, значение которой может меняться в процессе вычислений.
Программная переменная — это поименованная, а программная константа — неименованная область памяти, где хранится значение определенного типа. Особенность программных переменных в том, что они всегда имеют конкретные значения и эти значения могут быть многократно изменены в ходе вычислений.
Тип константы определяется формой ее записи. Тип переменной определяется множеством значений, которые она может принимать.
Основными типами, применяемыми в машинных алгоритмах, являются цел, вещ, лог и лит.
Значениями целых переменных являются числа: 0, 1, -1, 2, -2. которые в памяти машины представляются точно.
Значениями вещественных переменных являются действительные числа, записываемые в виде десятичных дробей: 0.5, 1.2*10^6. Вещественные числа в памяти представлены с округлением.
Значениями логических переменных являются логические значения: истина (1) и ложь (0).
Значениями литерных переменных являются литеры или цепочки литер из определенных алфавитов — русского, латинского и тп: ‘упчк. 11’, ‘х=’.
При размещении в памяти машины каждой константе и переменной выделяется отдельный участок памяти. Имя переменной является адресом этого участка.
Каждая инструкция программы также занимает участок памяти, длина которого зависит от вида инструкции.
В силу ограниченности участка, где размещаются переменные и константы, невозможно размещение и формирование чисел и литерных цепочек сколь угодно большой величины. Поэтому для каждой вычислительной машины и ЯП сущ. величины максцел — макс целое число, минвещ, максвещ и макслит. Вычисления, результаты которых выходят за пределы этих диапазонов, приводят к возникновению исключительных ситуаций в машине.
Основным свойством этих типов данных является неделимость их значений. Каждое значение есть объект, не распадающийся на компоненты. Такие объекты в памяти машины представлены простыми переменными.
Переменные, состоящие из нескольких компонент, называются структурными переменными. Переменная, имеющая структуру массива, является совокупностью компонент — переменных одного и того же типа. Для обозначения компонент используется имя переменной-массива с индексом, который однозначно указывает желаемый объект.
Билет 4. Требования к качеству программного продукта. Основные критерии качества.
Необходимым условием массового производства и внедрения программных систем является организация промышленного производства этих систем. Следовательно, должна существовать технология программирования, т.е. способ проведения процесса производства программ, обеспечивающий планирование, разработку и сдачу программных систем в срок. К программам должны предъявляться требования как к промышленному продукту, который могут использовать вне организации-разработчика и которому должно быть обеспечено тиражирование, внедрение, обслуживание в эксплуатации и развитие.
К программному продукту предъявляются слудующие требования:
1. Работоспособность — возможность выполнения программы на имеющейся машине.
2. Правильность (корректность) — строгое соответствие результатов, полученных при выполнении программы, требованиям постановки задачи для любых допустимых исходных данных.
3. Надежность — отсутствие отказов при выполнении программы даже для неправильно закодированных или недопустимых данных.
4. Эффективность — минимальность времени получения решения задачи в целом, включая как время выполнения программы, так и время разработки программы и данных, тестирования и отладки.
5. Документированность — наличие инструкции по пользованию и описаний внутренней логики программы.
6. Мобильность — независимость программы от конкретной реализации.
7. Эргономичность — программа позволяет минимизировать усилия пользователя по подготовке исходных данных, обработке данных и оценке полученных результатов.
8. Читабельность — программа должна быть понятной.
Билет 5. Этапы разработки программ. Роль каждого этапа в получении качественного программного продукта. Технология программирования.
Полный процесс разработки программ состоит из следующих этапов (технологический процесс):
1. Постановка задачи.
2. Анализ задачи и составление спецификации программы — на этом этапе проводится анализ задачи, уточняется ее постановка и разрабатываются требования, предъявляемые к программе. Создается полное и точное описание программы, называемое ее спецификацией. Уточняются обычно четыре основных момента: вход/выход данные, метод и аномалии. Спецификация задачи — это важный документ, сопровождающий программу на всем ее цикле жизни. Играет следующую роль: во-первых, служит заданием на разработку программы (из нее разработчик программы должен извлечь все, что ему нужно знать о стоящей перед ним задаче); во-вторых, является частью соглашения между заказчиком программы и ее разработчиком, описанием задачи, которое приемлемо для заказчика, не обязательно сведущего в программировании; в-третьих, она должна использоваться для проверки готовой программы (решает ли разработанная программа поставленную задачу).
3. Проектирование алгоритма и структур данных и проектирование тестов — на этом этапе формируется общая структура программы. Фундаментальным подходом к разработке программ и программных систем является нисходящее проектирование (проектирование «сверху вниз» или пошаговое уточнение). В основе нисходящего проектирования лежит идея постепенного раскрытия деталей проектируемой программы по мере движения от общей цели, сформулированной на самом верхнем уровне в условии задачи, к уровню объектов, выраженных в терминах, «понятных ЭВМ». Алгоритм записывается метаязыком, предназначенным для описания внутренней логики программы, а также для фиксации проектных решений по организации вычислений.
4. Кодирование алгоритма на языке программирования — на этом этапе алгоритм переводится с метаязыка на язык программирования.
5. Отладка (включая тестирование), предупреждение ошибок — цель этого этапа — получение корректной программы, т.е. программы, в которой отсутствуют ошибки проекта (ошибки, которые могут возникнуть, которые могут возникнуть на всех этапах разработки программы, в т.ч. и ошибки, появляющиеся из-за несоответствия требованийзаказчика и действий исполнителя). Методика отладки: визуальный контроль, синтаксический контроль, контроль структурированности программы, тестирование.
6. Документирование — правильно построенный процесс разработки программ позволяет получать документацию параллельно, так что к окончанию отладки получается почти вся необходимая документация.
7. Исполнение программы.
Первые 4 этапа выполняются последовательно. Пятый этап распределяется по всем этапам — каждый завершается составлением документации.
Чем меньше задача, тем сложнее выделить отдельные этапы. Но не следует стремиться к объединению отдельных этапов, даже если задача простая.
Особенностью современной методики разработки программ является то, что 2 и 3 этапам уделяется основное внимание. Чем тщательнее они выполняются, тем легче кодировать и отлаживать программу.
Технология — это совокупность методов, а также правил и порядка их применения, которые обеспечивают производство в срок качественного продукта.
Современная технология программирования инвариантна конкретному языку, классу задач и компьютеру.
Технология структурного программирования:
1. Нисходящее проектирование алгоритмов и данных.
2. Строгая последовательность этапов программирования.
3. Выполнение требований к качеству продукта.
Билет 6. Главная метафора процедурно-ориентированных языков. Стиль программирования.
Главная метафора процедурно-ориентированных языков — это соответствие понятий привычным человеку компонентам языка программирования.
— логические (логическое выражение);
Процедурно-ориентированные языки ближе всего к машинному образу мышления, к таким ЯП относится Pascal
В 70-е годы программирование стало массовым. Брукс «Мифический человекомесяц». Была создана технология разработки структурных программ.
Источник: studfile.net
Алгоритмы
Выделяют три наиболее распространенные на практике способа записи алгоритмов:
- словесный (запись на естественном языке);
- графический (запись с использованием графических символов);
- программный (тексты на языках программирования).
Словесный способ записи алгоритмов
Словесный способ – способ записи алгоритма на естественном языке. Данный способ очень удобен, если нужно приближенно описать суть алгоритма. Однако при словесном описании не всегда удается ясно и точно выразить логику действий.
В качестве примера словесного способа записи алгоритма рассмотрим алгоритм нахождения площади прямоугольника
где S – площадь прямоугольника; а, b – длины его сторон.
Очевидно, что a, b должны быть заданы заранее, иначе задачу решить невозможно.
Словестный способ записи алгоритма выглядит так:
- Начало алгоритма.
- Задать численное значение стороны a.
- Задать численное значение стороны b.
- Вычислить площадь S прямоугольника по формуле S=a*b.
- Вывести результат вычислений.
- Конец алгоритма.
Графический способ описания алгоритмов
Для более наглядного представления алгоритма используется графический способ. Существует несколько способов графического описания алгоритмов. Наиболее широко используемым на практике графическим описанием алгоритмов является использование блок-схем. Несомненное достоинство блок схем – наглядность и простота записи алгоритма.
Каждому действию алгоритма соответствует геометрическая фигура (блочный символ). Перечень наиболее часто употребляемых символов приведен в таблице:
Название символа | Обозначение и пример заполнения |
Пояснения |
Пуск-останов | Начало, завершение алгоритма или подпрограммы | |
Ввод-вывод данных | ![]() |
Ввод исходных данных или вывод результатов |
Процесс | Внутри прямоугольника записывается действие, например, расчетная формула | |
Решение | ![]() |
Проверка условия, в зависимости от которого меняется направление выполнения алгоритма |
Модификация | ![]() |
Организация цикла |
Предопределенный процесс | Использование ранее созданных подпрограмм | |
Комментарий | Пояснения |
- блок Процесс обозначает вычислительный процесс и применяется для обозначения действия или последовательности действий, изменяющих значения переменных или данных
- блок Решение обозначает проверку условия
Если условие выполняется, то есть a>b, то следующим выполняется действие по стрелке «Да». Если условие не выполняется, то осуществляется переход по стрелке «Нет».
- блок Модификация используется для организации циклических (повторяющихся) действий.
- блок Предопределенный процесс используется для указания обращений к ранее созданным алгоритмам и программам, в том числе и библиотечным подпрограммам.
- блок Ввод-Вывод. При решении задачи на компьютере ввод исходных данных может осуществляться различными способами, например, с клавиатуры, с жесткого диска, с флэш-карты т. д. Задание численных значений исходных данных называется вводом, а отображение результатов расчета на экране монитора или с помощью принтера на бумаге – выводом. Если ввод-вывод не привязан к конкретному устройству, то обозначается параллелограммом. Если необходимо указать конкретное устройство ввода или вывода, то используются специальные геометрические фигуры.
устройство ввода или вывода | дисплей | магнитный диск |
В качестве примера графического способа описания алгоритмов с помощью блок-схем запишем алгоритм нахождения площади прямоугольника:
Внутри каждого блока записывается соответствующее действие. Последовательность выполнения задается соединительной линией со стрелочкой.
Последовательность выполнения сверху вниз и слева направо принята за основную.
Если в алгоритме не нарушается основная последовательность, то стрелочки можно не указывать. В остальных случаях последовательность выполнения блоков обозначается стрелочкой обязательно. В нашем примере основная последовательность выполнения – сверху вниз.
Программный способ записи алгоритмов
Способ записи алгоритмов с помощью блок-схем нагляден и точен для понимания сути алгоритма, тем не менее, алгоритм предназначен для исполнения на компьютере, а язык блок-схем компьютер не воспринимает. Поэтому алгоритм должен быть записан на языке, понятном компьютеру с абсолютно точной и однозначной записью команд.
Таким образом, алгоритм должен быть записан на каком-то промежуточном языке, с точными и однозначными правилами и отличном от естественного языка и языка блок-схем, но понятном компьютеру. Такой язык принято называть языком программирования.
Запись алгоритма на языке программирования называется компьютерной программой.
Источник: www.turbopro.ru