лекция 1.pptx
- Количество слайдов: 30
Лекция № 1 Компьютеры, люди и программирование « К черты мины! Полный вперед!» Адмирал Фаррагут
Цель дисциплины: формирование фундаментальных знаний логических и арифметических основ программирования, принципов построения алгоритмов и программ на языке высокого уровня, привитие умений и навыков использования средств программирования для разработки математического обеспечения в системах управления общего и специального назначения
Программирование – это искусство выражать решения задач так, чтобы компьютер мог их осуществить Основные усилия программиста направлены на то, чтобы найти и уточнить решение, причем довольно часто полное понимание задачи приходит лишь в ходе программирования ее решения
Почему С++ поддерживает основные концепции и методы, используемые в реальных компьютерных программах С++ наиболее широко использованный язык в прикладных областях C++ точно и исчерпывающе определен стандартом С++ можно использовать почти во всех типах компьютеров Программные принципы, которые Вы узнаете при изучении C++ может использоваться довольно непосредственно на других языках включая C, Java, C#, Fortran
ОСОБЕННОСТИ И ПОРЯДОК ПРОХОЖДЕНИЯ ДИСЦИПЛИНЫ Дисциплина состоит из 2 разделов: Раздел № 1. Структурное программирование. Изучение раздела завершается зачетом. Раздел № 2 Объектно-ориентированное и визуальное программирование Раздел завершается курсовым проектом и экзаменом.
Объем изучаемого материала: Детально: мы попытаемся объяснять каждый создаваемый программный код достаточно детально для реального понимания Полезность: мы попытаемся изучить только полезные понятия, конструкции и методы Мы не сможем изучить досконально все детали Полнота: понятия, конструкции и методы могут быть использованы в комбинации, чтобы создавать полезные программы Много полезных понятия, конструкций и методов останутся за рамками нашего курса и вам придется их изучать самостоятельно
Литература: Т. А. Павловская. С/С++. Программирование на языке высокого уровня –СПб. : Питер, 2010. – 461 с. С/С++. Структурное программирование: Практикум /Т. А. Павловская, Ю. А. Щупак. –СПб. : Питер, 2005. – 239 с. С/С++. Объектно-ориентированное программирование: Практикум /Т. А. Павловская, Ю. А. Щупак. –СПб. : Питер, 2008. – 265 с. Пахомов Б. И. С/С++ и MS Visual C++2010 для начинающих. – СПб. : БХВ-Петербург, 2011. – 736 с.
Дополнительная литература Стивен Прата. Язык программирования С++. Лекции и упражнения, 5 -е изд. : Пер. с англ. – М. : ООО «И. Д. Вильямс» , 2007. – 1184 с. Страутструп Б. Язык программирования С++. 2 -е издание. –М. : Бином, 2000. – 358 с.
Обращение к студентам Изучение программирования сводится к разработке программ Программирование нельзя сводить к изучению нескольких правил и чтению справочника Большинство людей лучше работают и быстрее обучаются в коллективе, имеющем общую цель. Совместное обучение и обсуждение задач с друзьями нельзя сводить к обмену программами для обмана преподавателей! Необходимо выполнять: Задания Упражнения Термины Ответы на контрольные вопросы
Программное обеспечение Жизнедеятельность нашей цивилизации зависит от программного обеспечения Улучшение программного обеспечения и поиск новых областей для его применения позволит улучшить жизнь многих людей. Программное обеспечение— это совокупность программ, выполняемых на определенном компьютере. Сколько компьютеров существует в мире? Сколько компьютеров вы используете каждый день? От скольких компьютеров вы зависите на протяжении дня?
Компьютеры повсюду • Проектирование. • Управление • Строительство • Мониторинг • Двигатель
Телефония Голосовая связь Фотографии Интерфейс пользователя Музыка Оплата Игры Интернет
Идеалы программистов Программы должны работать правильно и надежно Программа должна быть хорошо спроектирована, т. е. удовлетворяла наши реальные потребности Программа должна быть экономичной Программный код должен быть удобным в сопровождении Придерживаться хорошего стиля программирования
ОСНОВНЫЕ ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА ЭВМ 1. Содержательная постановка задачи. 2. Математическая постановка задачи. 3. Формализация задачи (выбор метода решения). 4. Составление алгоритма решения задачи. 5. Составление программы на языке программирования. 6. Отладка программы на ЭВМ — выявление и исправление в ней ошибок. 7. Рабочий счет (решение задачи с рабочими данными на ЭВМ) и анализ результатов. 8. Составление инструкции к программе.
СПОСОБЫ ЗАПИСИ АЛГОРИТМА Основные составляющие структурного подхода к программированию: нисходящее пошаговое проектирование; структурное программирование; модульное программирование; структурный контроль. Структурное программирование предполагает составление алгоритма задачи из конструкций строго определенного вида
Понятие алгоритма Алгоритм — это точное предписание, которое определяет процесс, ведущий от исходных данных к требуемому конечному результату. Пример: правила сложения, умножения, решения алгебраических уравнений, умножения матриц и т. п. К сведению: Слово алгоритм происходит от algoritmi, являющегося латинской транслитерацией арабского имени хорезмийского математика IX века аль-Хорезми. Благодаря латинскому переводу трактата аль-Хорезми европейцы в XII веке познакомились с позиционной системой счисления, и в средневековой Европе алгоритмом называлась десятичная позиционная система счисления и правила счета в ней.
Основные свойства алгоритмов 1. Результативность означает возможность получения результата после выполнения конечного количества операций. 2. Определенность состоит в совпадении получаемых результатов независимо от пользователя и применяемых технических средств. 3. Массовость заключается в возможности применения алгоритма к целому классу однотипных задач, различающихся конкретными значениями исходных данных. 4. Дискретность — возможность расчленения процесса вычислений, предписанных алгоритмом, на отдельные этапы, возможность выделения участков программы с определенной структурой.
Задание алгоритма Для задания алгоритма необходимо описать следующие его элементы: набор объектов, составляющих совокупность возможных исходных данных, промежуточных и конечных результатов; правило начала; правило непосредственной переработки информации (описание последовательности действий); правило окончания; правило извлечения результатов.
Способы описания алгоритмов Словесно - формульный; структурный или блок - схемный; с помощью графов - схем; с помощью сетей Петри.
Словесно – формульный алгоритм При словесно-формульном способе алгоритм записывается в виде текста с формулами по пунктам, определяющим последовательность действий. Пример: необходимо найти значение следующего выражения: у = 2 а – (х+6). Словесно-формульным способом алгоритм решения этой задачи может быть записан в следующем виде: 1. Ввести значения а и х. 2. Сложить х и 6. 3. Умножить a на 2. 4. Вычесть из 2 а сумму (х+6). 5. Вывести у как результат вычисления выражения.
Описание алгоритма на алгоритмическом языке.
Блок - схемы При блок - схемном описании алгоритм изображается геометрическими фигурами (блоками), связанными по управлению линиями (направлениями потока) со стрелками. В блоках записывается последовательность действий. Преимущества: 1. наглядность: каждая операция вычислительного процесса изображается отдельной геометрической фигурой. 2. графическое изображение алгоритма наглядно показывает разветвления путей решения задачи в зависимости от различных условий, повторение отдельных этапов вычислительного процесса и Другие детали. К сведению: Оформление программ должно соответствовать определенным требованиям. В настоящее время действует единая система программной документации (ЕСПД), которая устанавливает правила разработки, оформления программ и программной документации. В ЕСПД определены и правила оформления блок-схем алгоритмов (ГОСТ 10. 002 -80 ЕСПД, ГОСТ 10. 003 -80 ЕСПД ГОСТ 19. 701 -90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения).
Графическое описание алгоритма Блок-схема – это ориентированный граф, указывающий порядок исполнения команд алгоритма; вершины такого графа могут быть одного из трех типов: F функциональная предикатная вершина, имеющая один вход и два выхода F P объединяющая вершина, обеспечивающая передачу управления от одного из двух входов к выходу T
Основное положение структурного программирования любой алгоритм может быть представлен комбинацией базовых алгоритмических структур трех видов: линейной, разветвляющейся, циклической. Выделяют блок-схемы алгоритма: Элементарная Подробная Укрупненная
Блоки на блок - схемах Операции обработки данных и носители информации изображаются на схеме соответствующими блоками. Большая часть блоков по построению условно вписана в прямоугольник со сторонами а и b. Минимальное значение а = 10 мм, увеличение а производится на число, кратное 5 мм. Размер b=1, 5 a. Для от дельных блоков допускается соотношение между а и b, равное 1: 2. В пределах одной схемы рекомендуется изображать блоки одинаковых размеров. Все блоки нумеруются.
Пример блок - схемы Алгоритм нахождения суммы 10 -ти чисел
Виды блоков Наименование Обозначение Функции Процесс Выполнение операции или группы операций, в результате которых изменяется значение, форма представления или расположение данных. Вводвывод Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). Решение Выбор направления выполнения алгоритма в зависимости от некоторых переменных условий. Предопредел енный процесс Использование ранее созданных и отдельно написанных программ (подпрограмм). Документ Вывод данных на бумажный носитель.
Виды блоков Наименование Магнитный диск Пуск-останов Соединитель Межстраничны й соединитель Комментарий Обозначение Функции Ввод-вывод данных, носителем которых служит магнитный диск. Начало, конец, прерывание процесса обработки данных. Указание связи между прерванными линиями, соединяющими блоки, расположенные на разных листах. Связь между элементом схемы и пояснением.
Правила создания блок - схем 1. 2. 3. 4. 5. 6. 7. Линии, соединяющие блоки и указывающие последовательность связей между ними, должны проводится параллельно линиям рамки. Стрелка в конце линии может не ставиться, если линия направлена слева направо или сверху вниз. В блок может входить несколько линий, то есть блок может являться преемником любого числа блоков. Из блока (кроме логического) может выходить только одна линия. Логический блок может иметь в качестве продолжения один из двух блоков, и из него выходят две линии. Если на схеме имеет место слияние линий, то место пересечения выделяется точкой. В случае, когда одна линия подходит к другой и слияние их явно выражено, точку можно не ставить. Схему алгоритма следует выполнять как единое целое, однако в случае необходимости допускается обрывать линии, соединяющие блоки.
Общие правила построения схемы алгоритма задачи: Выявить исходные данные, результаты, назначить им имена. Выбрать метод (порядок) решения задачи. Разбить метод решения задачи на этапы (с учетом возможностей ЭВМ). Изобразить каждый этап в виде соответствующего блока схемы алгоритма и указать стрелками порядок их выполнения. В полученной схеме при любом варианте вычислений: 1. 2. 3. 4. 5. 1. 2. предусмотреть выдачу результатов или сообщений об их отсутствии; обеспечить возможность после выполнения любой операции, так или иначе, перейти к блоку Останов (к выходу схемы).