Первый этап — постановка задачи. На этом этапе участвует человек, хорошо представляющий предметную область задачи. Он должен четко определить цель задачи, дать словесное описание содержания задачи и предложить общий подход к ее решению. для задачи вычисления суммы двух целых чисел человек знающий, как складываются числа, может описать задачу следующим образом:
ввести два целых числа, сложить их и вывести сумму в качестве результата решения задачи.
Второй этап — математическое или информационное моделирование. Цель этого этапа — создать такую математическую модель решаемой задачи, которая может быть реализована в компьютере. Существует целый ряд задач, где математическая постановка сводится к простому перечислению формул и логических условий. Этот этап тесно связан с первым этапом, и его можно отдельно не рассматривать, однако возможно, что для полученной модели известны несколько методов решения, и тогда предстоит выбрать лучший.
Третий этап — алгоритмизация задачи. На основе математического описания необходимо разработать алгоритм решения задачи.
Урок 1. Понятие алгоритма. Свойства и виды
Четвертый этап — программирование. Программой называется план действий, подлежащих выполнению некоторым исполнителем, в качестве которого может выступать компьютер. Составление программы обеспечивает возможность выполнения алгоритма и соответственно поставленной задачи исполнителем-компьютером. Во многих задачах при программировании на алгоритмическом языке часто пользуются заменой блока алгоритма на один или несколько операторов, введением новых блоков, заменой одних блоков другими
Пятый этап — ввод программы и исходных данных в ЭВМ. Программа и исходные данные вводятся в ЭВМ с клавиатуры с помощью редактора текстов, и для постоянного хранения осуществляется их запись на гибкий или жесткий магнитный диск.
Шестой этап — тестирование и отладка программы. На этом этапе происходят исполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок.
При этом программисту приходится выполнять рутинную работу по проверке работы программы, поиску и исключению ошибок, и поэтому для сложных программ этот этап часто требует гораздо больше времени и сил, чем написание первоначального текста программы. Отладка программы — сложный и нестандартный процесс. Исходный план отладки заключается в том, чтобы оттестировать программу на контрольных примерах. Контрольные примеры стремятся выбрать так, чтобы при работе с ними программа прошла все основные пути блок-схемы алгоритма, поскольку на каждом из путей могут быть свои ошибки, а детализация плана зависит от того, как поведет себя программа на этих примерах: на одном она может зациклиться (т. е. бесконечно повторять одно и то же действие); на другом — дать явно неверный или бессмысленный результат и т. д. Сложные программы отлаживают отдельными фрагментами. Для повышения качества выполнения этого этапа используются специальные программы — отладчики, которые позволяют исполнить программу “по шагам” с наблюдением за изменением значений переменных, выражений и других объектов программы, с отслеживанием выполняемых операторов.
Понятие алгоритма и его свойства. Алгоритмы и структуры данных.
Седьмой этап — исполнение отлаженной программы и анализ результатов. На этом этапе программист запускает программу и задает исходные данные, требуемые по условию задачи.
Полученные в результате решения выходные данные анализируются постановщиком задачи, и на основании этого анализа вырабатываются соответствующие решения, рекомендации, выводы. Например, если при решении задачи на компьютере результат сложения двух чисел 2 и З будет 4, то следует сделать вывод о том, что надо изменить алгоритм и программу.
Возможно, что по итогам анализа результатов потребуются пересмотр самого подхода к решению задачи и возврат к первому этапу для повторного выполнения всех этапов с учетом приобретенного опыта. Таким образом, в процессе создания программы некоторые этапы будут повторяться до тех пор, пока мы получим алгоритм и программу, удовлетворяющие показанным выше свойствам.
Алгоритм — это понятное и точное указание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.
Термин имеет интересное историческое происхождение. В IX веке великий узбекский математик аль-Хорезми разработал правила арифметических действий над десятичными числами. Совокупность этих правил в Европе стали называть «алгоритм». Впоследствии слово трансформировалось до известного нам сейчас вида и, кроме того, расширило свое значение: алгоритмом стали называть любую последовательность действий (не только арифметических), которая приводит к решению той или иной задачи. Можно сказать, что понятие вышло за рамки математики и стало применяться в самых различных областях.
Для того чтобы произвольное описание последовательности действий было алгоритмом, оно должно обладать следующими свойствами.
Дискретность
Процесс решения задачи должен быть разбит на последовательность отдельных шагов, каждый из которых называется командой. Примером команд могут служить пункты инструкции, нажатие на одну из кнопок пульта управления, рисование графического примитива (линии, дуги и т.п.), оператор языка программирования. Наиболее существенным здесь является тот факт, что алгоритм есть последовательность четко выделенных пунктов, — такие «прерывные» объекты в науке принято называть дискретными.
Понятность
Каждая команда алгоритма должна быть понятна тому, кто исполняет алгоритм; в противном случае эта команда и, следовательно, весь алгоритм в целом не могут быть выполнены. Данное требование можно сформулировать более просто и конкретно. Составим полный список команд, которые умеет делать исполнитель алгоритма, и назовем его системой команд исполнителя (СКИ). Тогда понятными будут являться только те команды, которые попадают в этот список. Именно из такой формулировки становится ясно, почему компьютер такой «привередливый» при приеме введенных в него команд: даже если неверно написана всего одна буква, команда уже не может быть обнаружена в СКИ.
Источник: cyberpedia.su
4 Понятие алгоритма, программы, команды. Способы записи алгоритма. Этапы разработки программ.
5. Язык программирования Java. Байт-код. Виртуальная машина Java.
- вывод сигнальных сообщений
- отключение части кода (в комментарии)
- трассировка – пошаговое выполнения программы (выполнить одну строчку программы и остановиться)
- точки останова – выполнение программы останавливается при достижении отмеченных строк (переход в пошаговый режим)
- просмотр и изменение значений переменных в пошаговом режиме
6. Понятие переменной. Имена переменных. Ключевые и зарезервированные слова. Простые типы данных. Оператор присваивания.
Порядок выполнения операций.
- Символы алфавита (латиница A-Z кириллица А-Я)
- цифры
- знак подчеркивания _, знак $
- пробелы
- скобки, знаки +, =, !, ? и др.
- вычисление выражений в скобках
- умножение, деление, % слева направо
- сложение и вычитание слева направо
- десятичное;
- восьмеричное;
- шестнадцатеричное;
Источник: studfile.net
Понятие алгоритма и программы
Алгоритм — это некоторое правило преобразования информации, применение которого к заданной (исходной) информации приводит к результату — новой информации. Так, например, применение правила сложения дробей к 1/2 и 2/3 приводит к результату 5/6. Основное внимание в теории алгоритмов уделяется методам задания (описания, конструирования) алгоритмов.
Алгоритм — это конечный набор инструкций по преобразованию информации (команд), выполнение которых приводит к результату. Каждая инструкция алгоритма содержит точное описание некоторого элементарного действия по преобразованию информации, а также (в явном или неявном виде) указание на инструкцию, которую необходимо выполнить следующей.
Так, алгоритм сложения дробей можно задать следующей последовательностью команд: Пример 1. Алгоритм сложения дробей. Вход: A/B, C/D; 1. Вычислить Y = B*D; 2. Вычислить X1 = A*D; 3. Вычислить X2 = B*C; 4. Вычислить X = X1+X2; 5. Вычислить Z = НОД(X,Y); 6. Вычислить Е = X div Z; 7. Вычислить F = Y div Z; . Выход: E/F Наш алгоритм состоит из 7-ми инструкций, каждая из которых содержит описание одного из арифметических действий над целыми числами: сложение, умножение, вычисление НОД и целочисленное деление div.
Кроме того, каждая инструкция (в неявном виде) содержит указание на следующую выполняемую инструкцию. Таким образом, алгоритм описывает детализированный по шагам процесс преобразования информации. Уровень детализации описания определяется набором допустимых команд. Этот набор называют набором команд Исполнителя или Интерпретатора.
При этом подразумевается, что алгоритмы выполняет Исполнитель (Интерпретатор) — некоторое устройство, однозначно распознающее и точно выполняющее (интерпретирующее) каждую команду алгоритма. Для выполнения нашего алгоритма Исполнитель должен, очевидно, уметь оперировать с целыми числами, выделять числители и знаменатели дробей, а также составлять из пары целых чисел дробь.
Кроме того, Исполнитель должен уметь запоминать результаты выполнения операций и переходить к выполнению следующей команды. Представим себе, что в нашем распоряжении находится Исполнитель, интерпретирующий команды — операции целочисленной арифметики — сложение, вычитание, умножение, вычисление неполного частного (div) и остатка (mod), вычисление НОД и НОК с запоминанием результатов и умением переходить к следующей команде.
Тогда для этого Исполнителя можно составлять самые разнообразнные алгоритмы арифметических вычислений — т.е. вычислений, заданных формулами типа X = НОД((A + B) div 100, (A * B — 7) mod 10) используя команды, аналогичные командам алгоритма из примера 1. Пример 2. Алгоритм деления отрезка пополам с помощью циркуля и линейки. Вход: Отрезок AB; Построить окружность O1 с центром A и радиусом AB; Построить окружность O2 с центром B и радиусом AB; Найти точки С и D пересечения окружностей O1 и O2; Построить отрезок CD; Найти точку Е пересечения AB и CD.
Выход: Точка Е — середина отрезка AB. В примере 2 Исполнитель обладает набором команд, с помощью которых можно решать геометрические задачи на построения с помощью циркуля и линейки. Исполнение алгоритма заключается в последовательном выполнении каждого построения и переходе к исполнению следующей команды.
Отметим. что нумеровать команды алгоритма не нужно, если Исполнитель всегда переходит к следующей команде. Пример 3. Алгоритм решения приведенного квадратного уравнения x2 + px + q = 0; Вход: Коэффициенты p и q уравнения x2 + px + q = 0; Вычислить D = p2 — 4q; Если D < 0 то (ответить “Решений нет”; Перейти к 1); Если D = 0 то (вычислить x = -p/2; Перейти к 1); Вычислить x1 = (-p+Ö(D))/2; Вычислить x2 = (-p-Ö(D))/2); 1:Закончить работу.
Выход “Решений нет” или корень x или корни x1, x2. В этом примере используется команда вида Если то () Выполняя эту команду, Исполнитель проверяет истинность условия. Если условие выполнено, Исполнитель переходит к выполнению первой команды из последовательности команд, стоящей после слова то и команды, и исполнение алгоритма следует по тому или иному пути в заключенной в скобки.
Если же условие не выполнено, Исполнитель переходит к выполнению следующей команды. Такие команды называют выбирающими, условными или ветвлениями. Выбирающие команды содержат в себе другие команды, выполняющиеся в зависимости от результатов проверки условий. Второй характерной командой, используемой в примере, является команда перехода.
Она имеет вид Перейти к < N >, причем число N используется в записи алгоритма как специальная отметка некоторой команды. В примере используются команды перехода Перейти к 1, а числом 1 отмечена команда 1:Закончить работу. Выполнение команды перехода заключается в том, что Исполнитель переходит к выполнению команды, отмеченной отметкой N (нарушая при этом естественную последовательность выполнениия команд).
18. Классификация программных продуктов.
Классификация программных продуктов Программное обеспечение – неотъемлемая часть компьютера, являющаяся логическим продолжением технических средств. Программы, в зависимости от функционального применения, можно условно разделить по категориям или классам. Выделяют три основных класса программных продуктов (см. схему рис.
3.1): системные программы, выполняющие различные вспомогательные функции, такие как: управление ресурсами компьютера, создание копий используемой информации, проверка работоспособности устройств компьютера, вывод справочной информации о компьютере и др.; прикладные программы, непосредственно обеспечивающие работы, выполнение которых необходимо пользователю; средства программирования, облегчающие процесс создания новых программ для компьютера. Рис.
3.1. Классы программных продуктов Системное программное обеспечение (System Software) — совокупность программ и программных комплексов, определяющих работоспособность компьютера и сетей ЭВМ.
Системные программы обеспечивают: создание операционной среды функционирования других программ; обеспечение надежной и эффективной работы самого компьютера и вычислительной сети; проведение диагностики и профилактики аппаратуры компьютера и вычислительных сетей; выполнение вспомогательных технологических процессов (копирование, архивирование и восстановление файлов программ и баз данных и т.д.) Данный класс программных продуктов тесно связан с типом компьютера и является его неотъемлемой частью. Программные продукты в основном ориентированы на квалифицированных пользователей — профессионалов в компьютерной области: системного программиста, администратора сети, прикладного программиста, оператора.
Однако знание базовой технологии работы с этим классом программных продуктов требуется и конечным пользователям персонального компьютера, которые самостоятельно не только работают со своими программами, но и выполняют обслуживание компьютера, программ и данных. Программные продукты системного класса имеют общие предметные области применения, независимо от специфики.
К ним предъявляются высокие требования по надежности и технологичности работы, удобству и эффективности использования. Пакеты прикладных программ (application program package) — комплекс взаимосвязанных программ для решения задач определенного класса конкретной предметной области.
Они служат программным инструментарием решения функциональных задач и являются самым многочисленным классом программных продуктов. В данный класс входят программные продукты, выполняющие обработку информации различных предметных областей.
Установка программных продуктов на компьютер выполняется квалифицированными пользователями, а непосредственную их эксплуатацию осуществляют, как правило, конечные пользователи — потребители информации. Деятельность конечных пользователей, во многих случаях, весьма далека от компьютерной области (бухгалтерия, контроль участков на производстве, дизайн, поиск по базам данных и пр.), поэтому программные продукты прикладного класса могут быть весьма специфичными для отдельных предметных областей.
Инструментарий технологии программирования — совокупность программ и программных комплексов, обеспечивающих технологию разработки, отладки и внедрения создаваемых программных продуктов. Инструментарий включает специализированные программные продукты, которые являются профессиональными средствами разработчика.
Программные продукты данного класса поддерживают все технологические этапы процесса проектирования, программирования (кодирования), отладки и тестирования создаваемых программ. Пользователями этого класса программных продуктов являются системные и прикладные программисты.
Системное программное обеспечение На рис.3.2 представлена структура системного программного обеспечения — базового программного обеспечения, которое, как правило, поставляется вместе с компьютером, и сервисного программного обеспечения, которое может быть приобретено дополнительно. Базовое программное обеспечение (base software) — минимальный набор программных средств, обеспечивающих работу компьютера.
Сервисное программное обеспечение — программы и программные комплексы, которые расширяют возможности базового программного обеспечения и организуют более удобную среду работы пользователя. В базовое программное обеспечение входят: операционная система (ОС); операционные оболочки (текстовые и графические). Рис. 3.2.
Классификация системного программного обеспечения компьютера Основную часть системного программного обеспечения составляют операционные системы. Операционная система – совокупность программных средств, обеспечивающих управление аппаратной частью компьютера и прикладными программами, а также их взаимодействие между собой и пользователем.
Иными словами, операционные системы обеспечивают работоспособность ПК, взаимодействие всех его частей и интерфейс с пользователем. Пользовательский интерфейс (interface – средства взаимодействия, связи, согласования) – методы и средства взаимодействия человека с аппаратными и программными средствами. Операционная система обычно хранится во внешней памяти компьютера — на диске.
При включении компьютера она считывается с дисковой памяти и размещается в оперативной памяти. Этот процесс называется загрузкой операционной системы.
Операционные системы классифицируются: по количеству одновременно работающих пользователей — на однопользовательские и многопользовательские; по числу задач, одновременно выполняемых под управлением ОС — на однозадачные и многозадачные; по количеству используемых процессоров — на однопроцессорные и многопроцессорные; по разрядности процессора — на 8-, 16-, 32- и 64-разрядные; по типу пользовательского интерфейса — на командные (текстовые) и объектно-ориентированные (графические); по типу использования общих аппаратных и программных ресурсов — на сетевые и локальные. Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей.
В многозадачном режиме каждой задаче (программе, приложению) поочередно выделяется какая-то доля процессорного времени. Поскольку процесс переключения идет очень быстро, а выделяемые задачам доли процессорного времени достаточно малы, то для пользователя создается впечатление одновременного выполнения нескольких задач.
Например, можно одновременно запустить на счет математическую систему, включить принтер для печати текста, вести поиск вирусов и раскладывать пасьянс – заметить замедление работы компьютера будет практически невозможно. Традиционно, сравнение ОС осуществляется по следующим характеристикам процесса обработки информации: управление памятью (максимальный объем адресуемого пространства, типы памяти, технические показатели использования памяти); функциональные возможности вспомогательных программ (утилит) в составе ОС; наличие компрессии (сжатия) диска; возможность архивирования файлов; поддержка многозадачного режима работы; поддержка сетевого программного обеспечения; наличие сетевого программного обеспечения; наличие качественной документации; условия и сложность процесса инсталляции.
В настоящее время большинство компьютеров в мире работают под управлением какой-либо версии операционной системы Windows фирмы Microsoft. Рассмотрим наиболее распространенные версии. Первая операционная система для персональных компьютеров, MS-DOS, появилась в 1981 г. Все программы MS-DOS хранятся на магнитных дисках, поэтому она называется дисковой операционной системой (Disk Operation System).
Буквы MS являются сокращением названия фирмы-разработчика Microsoft. Начиная с 1996 г. MS-DOS распространяется в виде Windows 95 – 32-разрядной многозадачной и многопоточной операционной системы с графическим интерфейсом и расширенными сетевыми возможностями.
Операционная система Windows 98, преемница Windows 95, объединена с браузером Internet Explorer посредством интерфейса, выполненного в виде Web-браузера и оснащенного кнопками «Назад» и «Вперед» для перехода на предыдущую и последующую Web-страницы. Кроме этого, в ней улучшена совместимость с новыми аппаратными средствами компьютера, она одинаково удобна как для использования на настольных, так и на портативных компьютерах.
Windows NT — 32-разрядная ОС со встроенной сетевой поддержкой и развитыми многопользовательскими средствами. Она предоставляет пользователям истинную многозадачность, многопроцессорную поддержку, секретность, защиту данных и многое другое.
Эта операционная система очень удобна для пользователей, работающих в рамках локальной сети, для коллективных пользователей, особенно для групп, работающих над большими проектами и обменивающихся данными. Windows 2000 Professional — операционная система нового поколения для делового использования на самых разнообразных компьютерах — от портативных до серверов.
Эта ОС является наилучшей для ведения коммерческой деятельности в Интернете. Она объединяет присущую Windows 98 простоту использования в Интернете с надежностью, экономичностью и безопасностью Windows NT. На сегодняшний день широкое распространение уже получила следующая версия — Windows XP. Об операционной системе Windows XP будет рассказано несколько позже.
Перспективной является многопользовательская и многозадачная операционная система Unix, созданная корпорацией Bell Laboratory. Данная ОС реализует принцип открытых систем и широкие возможности по комплексированию в составе одной вычислительной системы разнородных технических и программных средств. Unix получила распространение для суперкомпьютеров, рабочих станций и профессиональных компьютеров, имеет большое количество версий, разработанных различными фирмами. Согласно прогнозу, объем мирового рынка вычислительных систем, базирующихся на ОС Unix, будет существенно возрастать, особенно с переходом к сетевым технологиям.
Источник: studopedia.ru