Краткое введение в программирование лекция № 6

Скачать презентацию Краткое введение в программирование  лекция № 6 Скачать презентацию Краткое введение в программирование лекция № 6

лк6_Краткое введение в программирование Ч1.ppt

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

>Краткое введение в программирование  лекция № 6 Краткое введение в программирование лекция № 6

> АЛГОРИТМЫ + ДАННЫЕ =  ПРОГРАММЫ      Н. Вирт АЛГОРИТМЫ + ДАННЫЕ = ПРОГРАММЫ Н. Вирт Понятие данного, классификацию данных по функциональному назначению, типу и структуре рассмотрели. Следующий шаг – алгоритмы.

>  Что такое алгоритм?  • Это выполнение задачи по шагам.  • Что такое алгоритм? • Это выполнение задачи по шагам. • Это представление решения задачи как последовательности выполнения простых действий. Ø Простые действия – это какие действия? Если алгоритм выполняется на компьютере, то это команды компьютера. В соответствии с принципом программного управления функционированием ЭВМ фон Неймана, существует 3 вида команд: 1. Арифметические и логические операции (вычислительные команды). 2. Команды ввода и вывода. 3. Команды управления.

> ОПРЕДЕЛЕНИЕ АЛГОРИТМА  Алгоритм - это совокупность правил для решения некоторого класса задач, ОПРЕДЕЛЕНИЕ АЛГОРИТМА Алгоритм - это совокупность правил для решения некоторого класса задач, последовательное применение которых за конечное число шагов приводит к определенному результату. Мухаммед Аль Хорезми (780 -850): правила (алгоритмы) десятичной арифметики.

>СВОЙСТВА АЛГОРИТМА  • Универсальность.  • Конечность.  • Определенность. СВОЙСТВА АЛГОРИТМА • Универсальность. • Конечность. • Определенность.

>Способы описания алгоритма • машинная программа • программа на алгоритмическом  языке • программа Способы описания алгоритма • машинная программа • программа на алгоритмическом языке • программа на псевдокоде • блок-схема алгоритма • описание на естественном языке

>  ТРАНСЛЯЦИЯ Трансляция - процесс перевода программы,  написанной на алгоритмическом языке, на ТРАНСЛЯЦИЯ Трансляция - процесс перевода программы, написанной на алгоритмическом языке, на машинный язык (в коды компьютера). Транслятор - программа-переводчик. ТРАНСЛЯЦИЯ КОМПИЛЯЦИЯ ИНТЕРПРЕТАЦИЯ

>КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ  Компиляция:  процесс трансляции и  выполнения программы четко разделены КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ Компиляция: процесс трансляции и выполнения программы четко разделены во времени. Интерпретация: последовательно чередуются перевод группы инструкций языка в коды и их выполнение.

>КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ  Сравнение: Компиляция выгодней по времени выполнения и памяти. Интерпретация удобней КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ Сравнение: Компиляция выгодней по времени выполнения и памяти. Интерпретация удобней для организации интерактивных программ.

> Классификация алгоритмических  языков по способу трансляции   Алгоритмические языки требующие Классификация алгоритмических языков по способу трансляции Алгоритмические языки требующие требующие компиляции: интерпретации: СИ BASIC ПАСКАЛЬ LISP ФОРТРАН Java Java. Script. . . VBScript PHP …

> Классификация алгоритмических  языков по назначению   Алгоритмические языки   Классификация алгоритмических языков по назначению Алгоритмические языки . . . Универсальные Разработка Диалоговые динамическ . . . программы, их Web- сайтов: СИ ФОРТРАН обработка Java. Script, системное вычисления списков: ЛИСП, VBScript, программирование Perl PHP, Perl ПАСКАЛЬ обучение Проектирование СИ++ программированию. Логические больших систем, задачи, проектирование режим реального времени: АДА ОБЪЕКТНЫЙ экспертных систем: ПАСКАЛЬ ПРОЛОГ ВАЖНО НЕ НА КАКОМ ЯЗЫКЕ ПРОГРАММИРОВАТЬ, А КАКИЕ ЗАДАЧИ РЕШАТЬ!

> Алгоритмический язык Basic Простой язык  MS Visual Basic (в  MS VBScript Алгоритмический язык Basic Простой язык MS Visual Basic (в MS VBScript - MS Visual Basic для первых настоящее время язык сценариев for Application ПК в входит в MS Visual для разработки консольном динамических (VBA) – язык Studio (. NET)) режиме Web-сайтов написания новых сценариев Для приложений: Для Excel, Word, … разработки оконных Интернет- ASP- приложений техно (динамическ логия ASP. NET их сайтов)

>   ВАЖНО НЕ НА КАКОМ ЯЗЫКЕ  ПРОГРАММИРОВАТЬ, А КАКИЕ ЗАДАЧИ РЕШАТЬ! ВАЖНО НЕ НА КАКОМ ЯЗЫКЕ ПРОГРАММИРОВАТЬ, А КАКИЕ ЗАДАЧИ РЕШАТЬ! Сведения, необходимые для написания программы: ·Структура программы. Принципиальные различия между VB и VBA. ·Типы и структуры данных, имеющиеся в алгоритмическом языке, их описание, допустимые операции. Почти одинаково в VB и VBA. ·Операторы преобразования данных: присваивания (одинаково в VB и VBA), операторы ввода и вывода (есть сходство и различие). ·Правила записи алгоритма - программирование основных алгоритмических структур. Почти одинаково в VB и VBA. Сначала рассмотрим общие сведения.

> Объявление переменной Dim имя 1 as тип 1, имя 2 as тип 2, Объявление переменной Dim имя 1 as тип 1, имя 2 as тип 2, , …имя. N as тип N Dim a as integer, s as string • Имя - произвольный набор из латинских (необязательно) букв, цифр и символов подчеркивания (_), первый символ может быть только буквой или символом подчеркивания. • Имя переменной (и любое другое) не зависит от регистра. • Если в переменную не записано значение, то она считается пустой (empty). • Если переменная объявляется, то обязательно до использования. Чтобы сделать описание обязательным, необходимо использовать инструкцию Option Explicit в начале файла с программным кодом.

> Объявление переменной - инструкция, по которой отводится (распределяется) память под переменную. Указание типа Объявление переменной - инструкция, по которой отводится (распределяется) память под переменную. Указание типа необходимо, чтобы: • транслятор мог определить, сколько памяти отвести; • транслятор мог определить, какие действия можно выполнять с переменной.

> Объявление переменной При объявлении переменной тип можно не указывать: Dim имя 1 [as Объявление переменной При объявлении переменной тип можно не указывать: Dim имя 1 [as тип 1], …имя. N [as тип N ] Dim a, s as string Тогда переменной назначается тип variant. Это значит: • тип переменной определится, когда она получит значение; • под переменную отводится память в 16 служебных байтов + длина текущего значения. В квадратные скобки заключен необязательный элемент.

>    Тип variant (-) типа variant: 1) замедляется работа программы из-за Тип variant (-) типа variant: 1) замедляется работа программы из-за необходимости преобразования типов; 2) тратится больше памяти на хранение данного; 3) возможны ошибки вычисления из-за отсутствия контроля типов. 4) (+) нет необходимости задавать тип при объявлении переменной

>  Объявление константы Const Имя [As Тип] = Значение Const Age As Integer Объявление константы Const Имя [As Тип] = Значение Const Age As Integer = 54, s=“text”

>   Типы данных Visual Basic Тип данных  Размер   Типы данных Visual Basic Тип данных Размер Диапазон значений ячейки в байтах Boolean 2 True или False (логический) Byte (байт) 1 От 0 до 255 Integer(целый) 4 От -32 768 до 32 767 Long (длинный 4 От -2 147 483 648 до 2 147 483 647 целый) Single 4 Абсолютное значение находится в диапазоне от (с плавающей 1, 401298 E-45 до 3, 402823 E 38* точкой обычной точности) Double 8 Абсолютное значение находится в диапазоне от (с плавающей 4, 94065645841247 E-324 до точкой двойной 1, 79769313486232 E 308* точности)

>  Типы данных Visual Basic  Тип данных   Размер  Типы данных Visual Basic Тип данных Размер Диапазон значений ячейки в байтах Currency 8 От -922 337 203 685 477, 5808 до (денежный) 922 337 203 685 477, 5807 Date (дата/время) 8 От 1 января 100 г. до 31 декабря 9999 г. Object(объект) 4 Любой указатель объекта String (строка 10 байт + Длина строки от 0 до приблизительно 2 переменной длины) длина миллиардов символов строки Variant 16 байт+ Дата/время; числовые значения с тем же (универсальный длина диапазоном, что и для Double; строки с тем же тип) строки диапазоном, что и для String Type Опреде- Диапазон каждого элемента определяется его (определяемый ляется типом данных пользователем компо- тип) нентами

> Преобразование и совместимость    типов В отношении типов Visual Basic проявляет Преобразование и совместимость типов В отношении типов Visual Basic проявляет максимальную терпимость – когда это возможно, преобразование одного типа в другой будет выполнено автоматически.

>  Правила неявного преобразования    типов üПри преобразовании числа с плавающей Правила неявного преобразования типов üПри преобразовании числа с плавающей точкой в целое происходит округление до ближайшего целого. üПри преобразовании целого числа в число с плавающей точкой дробная часть принимается равной нулю. üВ случае преобразования целого типа в другой целый тип возможна ситуация, когда целый тип с большим диапазоном значений преобразуется в целый тип с меньшим диапазоном значений. Если значение, присваиваемое «короткому» типу, выйдет за пределы диапазона его допустимых значений, произойдет ошибка периода выполнения. üСтроковые и числовые типы совместимы. Можно присвоить числовое значение строковой переменной и наоборот (если это возможно). Для уменьшения количества ошибок в программе лучше типы преобразовывать явно.

>  Арифметические операции и их   приоритеты Приоритет Операция 1 Вызов Арифметические операции и их приоритеты Приоритет Операция 1 Вызов 5 функци и, скобки. 2 ^ 6 MOD 3 - 7 +, - 4 *, /

>Некоторые функции преобразования типов   Y=f(X) Функция f  Назначение CBool  преобразование Некоторые функции преобразования типов Y=f(X) Функция f Назначение CBool преобразование в подтип Boolean CByte преобразование в подтип Byte CCur преобразование в подтип Currency CDate преобразование в подтип Date CDouble преобразование в подтип Double CInt преобразование в подтип Integer (с округлением до ближайшего четного целого числа) CLng преобразование в подтип Long CSng преобразование в подтип Single CStr преобразование в подтип String

>   Логические операции Применяются к данным и выражениям логического типа (Boolean). Логические операции Применяются к данным и выражениям логического типа (Boolean). В Visual Basic определены 6 логических операций: § AND (логическое «И» ); § OR (логическое «ИЛИ» ); § NOT (логическое отрицание); § IMP (логическая импликация); § XOR (логическое исключительное «ИЛИ» ); § EQU (логическая эквивалентность). Логические константы: TRUE, FALSE. См. самостоятельно лекции по математической логике.

>  Приоритеты операций Приоритет    Операция 1 -7   Арифметические Приоритеты операций Приоритет Операция 1 -7 Арифметические операции 8 <, >, <=, =>, =, <> (соотношения) 9 NOT 10 AND 11 OR 12 XOR 13 EQU 14 IMP

>Оператор присваивания Имя = Выражение Dim a as double,  b as string a=2. Оператор присваивания Имя = Выражение Dim a as double, b as string a=2. 5 b=“text” … a=5*a

>  ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ (УПРАВЛЯЮЩИЕ СТРУКТУРЫ,   FLOW CONTROL)   ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ (УПРАВЛЯЮЩИЕ СТРУКТУРЫ, FLOW CONTROL) Следование Кодирование на VB: Оператор 1 Оператор 2 … Оператор 2 … Вычислительный блок (арифметические и логические операции) – см. принципы фон Неймана. Один вход, один выход!

>  ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ    СТРУКТУРЫ    Разветвление (развилка) Смысл: ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Разветвление (развилка) Смысл: разделение алгоритма на два Кодирование на VBScript : альтернативных пути If условие then оператор 1 Условие? Нет Да else оператор 2 Оператор 2 Оператор 1 End If Ветвь «Нет» пустая else и оператор 2 отсутствуют.

>    Условие?   Нет      Да Условие? Нет Да Условный блок – условный переход (см. принципы фон Неймана). Один вход, два выхода.

>    Пример   с – максимальное значение из а и Пример с – максимальное значение из а и b. Dim a as single, b as single, c as single … Нет a>b Да If a>b then c=a c=b c=a else c=b End If …

>ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ  СТРУКТУРЫ Разветвление (развилка)    Операторы ветви «да»  ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Разветвление (развилка) Операторы ветви «да» ограничиваются ключевыми словами Операторы ветви «нет» ограничиваются ключевыми словами

>Решение    Dim a as single, b as single   Решение Dim a as single, b as single начало квадратного Dim c as single, d as single уравнения: Ввод a, b, c Абстракция Dim x 1 as single, x 2 as single ax 2+bx+c=0 <Ввод a, b, c> d=b 2 -4 ac d=b^2 -4*a*c нет да if d>=0 then d 0 x 1=(-b+sqrt(d))/(2*a) x 2=(-b-sqrt(d))/(2*a) <Вывод …. > else x 1=-b/(2*a) Вывод: “действ. Вывод: x 2=sqrt(-d)/(2*a) и мнимая части “действ. корней: “ x 1, x 2 <Вывод …. > корни: ”, x 1, x 2 end if Блоки ввода и вывода (см. конец принципы фон Неймана)

>   ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ     СТРУКТУРЫ   Цикл ПОКА ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Цикл ПОКА (с предусловием) Смысл: Кодирование на VB: повторение Do while условие тело цикла Можно Условие? Нет Loop использовать Until, тогда надо Петля инвертировать (loop) условие Да Тело цикла Тело цикла может не выполниться ни разу.

>  ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ    СТРУКТУРЫ  ЦИКЛ ДО (с постусловием) ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ ЦИКЛ ДО (с постусловием) Кодирование на VBScript : Do Тело цикла тело цикла Loop while условие Можно Не использовать Until, тогда надо Условие? инвертировать Да условие Тело цикла выполняется хотя бы один раз.

>  ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ  СТРУКТУРЫ  Принцип Дейкстры Для построения любого алгоритма достаточно ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ Принцип Дейкстры Для построения любого алгоритма достаточно иметь три базовых структуры: следование, ветвление, цикл (безразлично -ПОКА или ДО).

>  ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ    СТРУКТУРЫ нач_знач≤ кон_знач  ПАРАМЕТРИЧЕСКИЙ ЦИКЛ шаг>0 ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ нач_знач≤ кон_знач ПАРАМЕТРИЧЕСКИЙ ЦИКЛ шаг>0 Кодирование на VBScript : i = нач_знач for i=нач_знач to кон_знач [step шаг] тело цикла По умолчанию next шаг=1 Нет i<=кон_знач for i=нач_знач to кон_знач [step шаг] оператор1 Да оператор2 … Тело цикла оператор. N next i =i+шаг

>  ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ    СТРУКТУРЫ   ПАРАМЕТРИЧЕСКИЙ ЦИКЛ – СПЕЦИАЛЬНЫЙ ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ СТРУКТУРЫ ПАРАМЕТРИЧЕСКИЙ ЦИКЛ – СПЕЦИАЛЬНЫЙ БЛОК Кодирование на VBScript : for i=нач_знач to кон_знач [step шаг] тело цикла for i=нач_знач to кон_знач [step шаг] next for i=нач_знач to кон_знач [step шаг] оператор1 Тело цикла оператор2 … оператор. N next На практических занятиях этот блок использовать пока не будем!

>   Примеры Dim i As Integer, Сумма As Integer Сумма=0 For i Примеры Dim i As Integer, Сумма As Integer Сумма=0 For i = 1 To 100 Step 2 Сумма = Сумма +i ‘тело цикла Next Dim x As Integer For x = 1 To 50 Beep ‘ тело цикла Next x ‘ подается звуковой сигнал 50 раз

>     Комментарии ‘ это комментарий, ‘ т. е. текст, который Комментарии ‘ это комментарий, ‘ т. е. текст, который не обрабатывается интерпретатором, ‘ служит для пояснения программы

>     Пример А - начальная стоимость оборудования (в рублях). В Пример А - начальная стоимость оборудования (в рублях). В первый год эксплуатации стоимость оборудования снижается на В руб. , а в каждый следующий год снижение стоимости уменьшается на р % (относительно предыдущего года). Определить стоимость оборудования через N лет. Предполагается, что A>>BN. начало Ввод исх. данных Обработка Каждый год вычисления повторяются => есть цикл! Вывод результата конец

>      Состав данных Имя    Смысл Состав данных Имя Смысл Тип Структура Исходные данные A начальная стоимость оборудовани вещественный простая переменная B начальное снижение стоимости вещественный простая переменная р процентное уменьшение снижения стоимости вещественный простая переменная N максимальное число лет целый простая переменная Выходные данные вещественный S Конечная стоимость оборудования Промежуточные переменные i номер года целый простая переменная Bt текущее ежегодное снижение стоимости вещественный простая переменная

>Блок-схема алгоритма    Программа     Dim A as single, Блок-схема алгоритма Программа Dim A as single, B as single, p as single начало Dim N as integer, S as single, Bt as single Ввод A, B, p, N Dim i as integer S=A; Bt=B <Ввод A, B, p, N> i=1 S=A Bt=B i N For i=1 to N да S=S-Bt S=S - Bt Bt=Bt-Bt*p/100 Next i=i+1 <Вывод S> обработка Вывод S конец

>   Ввод и вывод в Visual Basic Режим консольного   Ввод и вывод в Visual Basic Режим консольного Программирование приложения оконного приложения (моделирует работу MSDOS) Считывание Ввод и вывод данных (запись) данных из с помощью (в) элементов простейших управления диалоговых окон разрабатываемого окна приложения

>Считывание (запись) данных из (в) элементов (ы) управления разрабатываемого окна приложения   Считывание (запись) данных из (в) элементов (ы) управления разрабатываемого окна приложения Text. Box 1 Text. Box 2 Text. Box 3 Text. Box 4 Text. Box 5 Button 1

> Обработчик события: нажатие кнопки Button 1 Private Sub Button 1_Click(By. Val sender As Обработчик события: нажатие кнопки Button 1 Private Sub Button 1_Click(By. Val sender As System. Object, By. Val e As _ System. Event. Args) Handles Button 1. Click Dim A As Single, B As Single, p As Single Dim N As Integer, S As Single, Bt As Single Dim i As Integer A = CSng(Text. Box 1. Text) 'ввод А B = CSng(Text. Box 2. Text) 'ввод В p = CSng(Text. Box 3. Text) 'ввод С N = CLng(Text. Box 4. Text) 'ввод N S = A Bt = B For i = 1 To N S = S - Bt = Bt - Bt * p / 100 Next Text. Box 5. Text = CStr(S) ' Вывод S End Sub

>  Ввод данных с помощью простейшего   диалогового окна функции Input. Box Ввод данных с помощью простейшего диалогового окна функции Input. Box Введенное значение = Input. Box(Подсказка, что ввести) строка строка A = CSng(Input. Box("Введите начальную стоимость оборудования"))

> Вывод данных с помощью диалогового окна   функции Msg. Box (Сообщение [, Вывод данных с помощью диалогового окна функции Msg. Box (Сообщение [, , Заголовок] ) строка, выводимая в окне диалогового окна пропущен параметр, определяющий вид окна Msg. Box(CStr(S), , "Конечная стоимость")

> Ввод и вывод в Visual Basic for Application Оконное приложение на HTML Ввод и вывод в Visual Basic for Application Оконное приложение на HTML Работа с ячейками Excel Считывание Ввод и вывод данных (запись) данных из с помощью (в) элементов простейших управления диалоговых окон разрабатываемого окна приложения Как в VB

>  Один из приемов обращения к ячейкам рабочего листа    Один из приемов обращения к ячейкам рабочего листа Excel Work. Sheets (“Имя листа”). Cells(Номер строки, Номер столбца). Value Work. Sheets (“Лист1”). Cells(6, 1). Value – значение из ячейки А 6 листа Лист1 Ячейка А 6

>Обработчик кнопки настраиваемой панели инструментов Sub MY() ′ MY – имя макроса Dim A Обработчик кнопки настраиваемой панели инструментов Sub MY() ′ MY – имя макроса Dim A As Single, B As Single, p As Single Dim N As Integer, S As Single, Bt As Single Dim i As Integer A = Worksheets("Лист1"). Cells(1, 2). Value 'ввод А B = Worksheets("Лист1"). Cells(2, 2). Value 'ввод В p = Worksheets("Лист1"). Cells(3, 2). Value 'ввод С N = Worksheets("Лист1"). Cells(4, 2). Value 'ввод N S = A Bt = B For i = 1 To N S = S - Bt = Bt - Bt * p / 100 Next Worksheets("Лист1"). Cells(5, 2). Value = S ' Вывод S End Sub

>  Как создать макрос? 1. Сервис/Макросы Как создать макрос? 1. Сервис/Макросы

> 2. Вводим имя макроса, нажимаем  «Создать» => входим в редактор  макросов 2. Вводим имя макроса, нажимаем «Создать» => входим в редактор макросов Вводим текст макроса и сохраняем его МАКРОС СОЗДАН!

>Как привязать макрос к кнопке настраиваемой панели инструментов?  1.  Создаем настраиваемую панель Как привязать макрос к кнопке настраиваемой панели инструментов? 1. Создаем настраиваемую панель инструментов: Вид/Панели инструментов/Настройка/Вкладка «Панели инструментов» , на ней – кнопка «Создать» . 2. Переходим на вкладку «Команды» (окна «Настройка» ), выбираем категорию команд «Макросы» , в ней настраиваемую кнопку. 3. Перетаскиваем кнопку за «рожицу» на вновь созданную панель. 4. Правая кнопка мыши – на «рожице» , в контекстном меню указываем пункт «назначить макрос» , выбираем наш макрос, нажимаем ОК. ВСЕ!!!

> Структура оконного приложения на MS    Visual Basic • Программа (оконное Структура оконного приложения на MS Visual Basic • Программа (оконное приложение) – совокупность файлов проекта (организующих файлов), файлов форм и файлов модулей. • Файлы формы (заготовки окна) – файл, хранящий интерфейс формы (Form 2. Designer. vb), и файл, хранящий программный код формы (Form 2. vb). • Файлы модулей хранят только программный код, для них нет соответствующей формы. • Файлы программных кодов состоят из описаний данных и подпрограмм.