Скачать презентацию Программирование Часть 1 Ст преп Цыганова Наталия Алексеевна Скачать презентацию Программирование Часть 1 Ст преп Цыганова Наталия Алексеевна

prog_lk1.pptx

  • Количество слайдов: 53

Программирование Часть 1 Ст. преп. Цыганова Наталия Алексеевна Программирование Часть 1 Ст. преп. Цыганова Наталия Алексеевна

Литература 1. Павловская Т. А. Программирование на языке высокого уровня. СПб. : Питер 2. Литература 1. Павловская Т. А. Программирование на языке высокого уровня. СПб. : Питер 2. Павловская Т. А. , Щупак Ю. А. С/С++. Программирование на языке высокого уровня. Структурное программирование. Практикум. СПб. : Питер 3. Фридман А. Л. Язык программирования Си++. – М. : ИНТУИТ. РУ 4. Нагинаев В. Н. Основы алгоритмизации и программирования на языке Си ++. – М. : МИИТ 5. Нагинаев В. Н. Сборник задач по программированию. – М. : МИИТ 6. Страуструп Б. Язык программирования С++. – М. : Бином

Структура курса • Раздел 1. Основы алгоритмизации. • Раздел 2. Алгоритмический язык С++. Структура курса • Раздел 1. Основы алгоритмизации. • Раздел 2. Алгоритмический язык С++.

Основы алгоритмизации Основы алгоритмизации

Программа и программирование • Программа последовательность инструкций, определяющих процедуру решения конкретной задачи компьютером (вычислительной Программа и программирование • Программа последовательность инструкций, определяющих процедуру решения конкретной задачи компьютером (вычислительной машиной). • Программирование это процесс создания (разработки) программы, который может быть представлен как последовательность нескольких этапов.

Этапы разработки программы • Постановка задачи. • Математическое или информационное моделирование. • Разработка или Этапы разработки программы • Постановка задачи. • Математическое или информационное моделирование. • Разработка или выбор алгоритма. • Программирование. • Ввод программы и исходных данных в ЭВМ. • Тестирование и отладка программы. • Исполнение отлаженной программы и анализ результатов.

Алгоритм — это точное предписание, определяющее про цесс перехода от исходных данных к результату. Алгоритм — это точное предписание, определяющее про цесс перехода от исходных данных к результату. Свойства: • Однозначность; • Конечность; • Результативность; • Массовость; • Правильность.

Свойства описания алгоритма • Словесный – описание структуры алгоритма на естественном языке. • Операторный Свойства описания алгоритма • Словесный – описание структуры алгоритма на естественном языке. • Операторный – описание структуры алгоритма путем обоначения каждого оператора какой либо буквой (А – арифметический оператор, Р – логический и т. д. ) и запись операторов слева направо в последовательности их выполнения. • Графическое – описание структуры алгоритма с помощью геометрических фигур с линиями связи.

Графическое представление хода решения задачи • Используется программистами начиная с 50 х годов. • Графическое представление хода решения задачи • Используется программистами начиная с 50 х годов. • Самый наглядный способ записи алгоритма. • Наиболее распространённый способ графического изображения алгоритмов – блок-схема.

Блок-схема • Блок схема – это совокупность символов, соответствующих этапам работы алгоритма и соединяющих Блок-схема • Блок схема – это совокупность символов, соответствующих этапам работы алгоритма и соединяющих их линий. • Блочные символы стандартизированы и различаются по типу выполняемых действий. • На территории РФ действует единая система программной документации (ЕСПД), частью которой является ГОСТ 19. 701 90 «Схемы алгоритмов программ, данных и систем» (ISO 5807: 85).

Основные обозначения блок-схем Основные обозначения блок-схем

Процесс (функциональный блок) Выполнение операции или группы операций, в результате которых изменяются значение, форма Процесс (функциональный блок) Выполнение операции или группы операций, в результате которых изменяются значение, форма представления или расположение данных. y=a*x+b

Решение (логический блок или блок сравнения) • Выбор направления выполнения алгоритма или программы в Решение (логический блок или блок сравнения) • Выбор направления выполнения алгоритма или программы в зависимости от некоторых условий нет x 1>x 2 да

Предопределенный процесс (подпрограмма) • Использование ранее созданных и отдельно описанных алгоритмов или программ SORT Предопределенный процесс (подпрограмма) • Использование ранее созданных и отдельно описанных алгоритмов или программ SORT

Ввод • Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки Ввод • Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод) a, b, c

Вывод (документ) • Преобразование данных в форму, пригодную для отображения результатов обработки (вывод) x, Вывод (документ) • Преобразование данных в форму, пригодную для отображения результатов обработки (вывод) x, y, z

Пуск, останов • Начало и конец программы Начало Пуск, останов • Начало и конец программы Начало

Соединитель • Связь между элементами блок схемы. 12 Соединитель • Связь между элементами блок схемы. 12

Линии на блок-схемах • Пунктирная линия используется для соединения символа с комментарием. • Сплошная Линии на блок-схемах • Пунктирная линия используется для соединения символа с комментарием. • Сплошная линия отражает зависимости по управлению между символами и может снабжаться стрелкой. • Допускается не указывать стрелку при направлении движения слева направо и сверху вниз. • По отношению к блокам линии могут быть входящими и выходящими.

Линии на блок-схемах • Линии должны подходить к символу слева либо сверху, а исходить Линии на блок-схемах • Линии должны подходить к символу слева либо сверху, а исходить снизу, либо справа. • Количество входящих линий для всех блоков не ограничено. • Количество выходящий линий – одна, исключение – блоки проверки условия. • В блок схеме все линии от блока начала до блока конца не должны иметь разрывов, не помеченных соединителями.

Языки программирования Языки программирования

Языки низкого и высокого уровней • Языки низкого уровня — это средство записи инструкций Языки низкого и высокого уровней • Языки низкого уровня — это средство записи инструкций компьютеру простыми приказами командами на аппаратном уровне (язык ассемблера). • Языки высокого уровня – допускают описание задачи в наглядном, легко воспринимаемом виде. Ориентируются на систему инструкций, характерных для записи алгоритмов определенного класса (Бейсик, Фортран, Алгол, Паскаль, Си и др. )

Трансляторы Транслятор — программа или техническое средство, выполняющее трансляцию программы. Трансляция программы — преобразование Трансляторы Транслятор — программа или техническое средство, выполняющее трансляцию программы. Трансляция программы — преобразование программы, представленной на одном из языков программирования, в объектный файл. Виды трансляторов: • Интерпретаторы; • Компиляторы; • Ассемблеры.

Трансляторы • Интерпретатор — транслятор, переводящий текст про граммы поэтапно (покомандно) и сразу же Трансляторы • Интерпретатор — транслятор, переводящий текст про граммы поэтапно (покомандно) и сразу же (то есть парал лельно) выполняющий оттранслированную команду исход ной программы. • Компилятор транслирует текст программы в модуль на машинном языке, затем программа переписывается в опера тивную память и лишь после этого исполняется процессо ром компьютера. • Ассемблер компилятор, который переводит каждую команду исходной программы в одну машинную команду.

Трансляторы Основные задачи: • Выполнение анализа и проверка синтаксиса транслируемой программы; • Генерация машинного Трансляторы Основные задачи: • Выполнение анализа и проверка синтаксиса транслируемой программы; • Генерация машинного кода программы; • Распределение памяти для выходной программы.

Алгоритмы Алгоритмы

Алгоритмы линейной структуры Линейный алгоритм – алгоритм, в котором все операции выполняются последовательно, одна Алгоритмы линейной структуры Линейный алгоритм – алгоритм, в котором все операции выполняются последовательно, одна за другой.

Пример 1 Начало • Вычислить сумму двух целых чисел. • Обозначения: • a, b Пример 1 Начало • Вычислить сумму двух целых чисел. • Обозначения: • a, b слагаемые; • s сумма. a, b s = a+b s Конец

Пример 2 Вычислить высоты треугольника со сторанами a, b, c по формулам: ha=(2/a)*sqrt(p*(p a)*(p Пример 2 Вычислить высоты треугольника со сторанами a, b, c по формулам: ha=(2/a)*sqrt(p*(p a)*(p b)*(p c)); hb=(2/b)*sqrt(p*(p a)*(p b)*(p c)); hc=(2/c)*sqrt(p*(p a)*(p b)*(p c)); где p=(a+b+c)/2

Пример 2 Таблица имен: • a, b, c – длины сторон треугольника; • ha, Пример 2 Таблица имен: • a, b, c – длины сторон треугольника; • ha, hb, hc – высоты треугольника; • p – полупериметр; Обозначим: s=sqrt(p*(p a)*(p b)*(p c)); тогда ha=2*s/a; hb=2*s/b; hc=2*s/c;

Начало a, b, c p=(a+b+c)/2 s=sqrt(p*(p-a)*(p-b)*(p-c)) ha=2*s/a hb=2*s/b hc=2*s/c ha, hb, hc Конец Начало a, b, c p=(a+b+c)/2 s=sqrt(p*(p-a)*(p-b)*(p-c)) ha=2*s/a hb=2*s/b hc=2*s/c ha, hb, hc Конец

Алгоритмы разветвленной структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, Алгоритмы разветвленной структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие.

Пример 3 Вычислить значение функции z=x 3/y, где y = sin(x) + 0, 5. Пример 3 Вычислить значение функции z=x 3/y, где y = sin(x) + 0, 5. • Обозначения: • x – вводимые данные; • y – вычисляемая переменная; • z – результат.

Пример 4 Вычислить значение функции y=max (x 1, x 2), где x 1, x Пример 4 Вычислить значение функции y=max (x 1, x 2), где x 1, x 2 – заданные целые числа. • Обозначения: • x 1, x 2 – заданные целые числа; • y – результат.

Пример 5 Вычислить значение функции y=max (x 1, x 2), где x 1, x Пример 5 Вычислить значение функции y=max (x 1, x 2), где x 1, x 2 – заданные целые числа. Рассмотрим общий случай: x 1 и x 2 – любые целые числа, если x 1=x 2, напечатать сообщение “Числа равны”. • Обозначения: • x 1, x 2 – заданные целые числа; • y – результат.

Алгоритмы циклической структуры Циклический алгоритм – описание действий, которые должны повторяться указанное число раз Алгоритмы циклической структуры Циклический алгоритм – описание действий, которые должны повторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называют телом цикла. Параметр цикла – переменная, управляющая выполнением цикла. Параметр цикла изменяет свое значение при каждом проходе тела цикла.

Виды циклов • Цикл с неизвестным числом повторений (итерационный цикл) тело цикла выполняется в Виды циклов • Цикл с неизвестным числом повторений (итерационный цикл) тело цикла выполняется в зависимости от какого либо условия. Различают циклы с предусловием и постусловием. • Циклы в которых сначала проверяется условие, а затем, возможно, выполняется тело цикла называют циклы с предусловием. • Если условие проверяется после первого выполнения тела цикла, то циклы называются циклы с постусловием.

Виды циклов • Цикл с заданным числом повторений циклы со счетчиком, в которых какие Виды циклов • Цикл с заданным числом повторений циклы со счетчиком, в которых какие то действия выполняются определенное число раз. • Циклы со счетчиком используют когда заранее известно какое число повторений тела цикла необходимо выполнить.

Виды циклов • Простой цикл. • Сложный цикл (цикл в цикле) – организация цикла Виды циклов • Простой цикл. • Сложный цикл (цикл в цикле) – организация цикла внутри тела другого цикла.

Вложенный цикл • Вложенный цикл по отношению к циклу в тело которого он вложен Вложенный цикл • Вложенный цикл по отношению к циклу в тело которого он вложен будет именоваться внутренним циклом, и наоборот цикл в теле которого существует вложенный цикл будет именоваться внешним по отношению к вложенному. Внутри вложенного цикла в свою очередь может быть вложен еще один цикл, образуя следующий уровень вложенности и так далее. Количество уровней вложенности как правило не ограничивается.

Пример 6 Вычислить и вывести на печать значения функции y=a 3/(a 2 + x Пример 6 Вычислить и вывести на печать значения функции y=a 3/(a 2 + x 2) при x 1<=x<=x 2 с шагом h

Таблица имен Имя Обозначение x 1 Начальное значение аргумента x 2 Конечное значение аргумента Таблица имен Имя Обозначение x 1 Начальное значение аргумента x 2 Конечное значение аргумента x Текущее значение аргумента h Шаг изменения аргумента a Коэффициент y Значение функции (результат)

Результат Значения аргумента Значения функции x 1 … x 1+h … x 1+2 h Результат Значения аргумента Значения функции x 1 … x 1+h … x 1+2 h … … …

Цикл с предусловием Цикл с предусловием

Начало a, x 1, x 2, h x = x 1 x<=x 2 Нет Начало a, x 1, x 2, h x = x 1 x<=x 2 Нет Да y=a 3/(a 2+x 2) x, y x=x+h Конец

Цикл с постусловием Цикл с постусловием

Начало a, x 1, x 2, h x = x 1 y=a 3/(a 2+x Начало a, x 1, x 2, h x = x 1 y=a 3/(a 2+x 2) x, y x=x+h Да x<=x 2 Нет Конец

Пример 7 Вычислить и вывести на печать значения функции: 1 x, если x<0 y= Пример 7 Вычислить и вывести на печать значения функции: 1 x, если x<0 y= 1+x, если x>=0 при a<=x<=b с шагом h.

Таблица имен Имя Обозначение a Начальное значение аргумента b Конечное значение аргумента x Текущее Таблица имен Имя Обозначение a Начальное значение аргумента b Конечное значение аргумента x Текущее значение аргумента h Шаг изменения аргумента y Значение функции (результат)

Начало a, b x=a Да x<0 y=1 -x Нет y=1+x x, y x=x+h Да Начало a, b x=a Да x<0 y=1 -x Нет y=1+x x, y x=x+h Да x<=b Нет конец