Лекция 2 Кафедра Прикладной математики М-703, тел. 362-79-62 К.т.н., профессор Глаголев Виктор Борисович, комн. Ж-405б, тел. 362-73-28

Презентация:



Advertisements
Похожие презентации
Объектно-ориентированный язык программирования. Переменная - эта поименованная ячейка памяти, хранящая какое-либо одно значение (одно число, один фрагмент.
Advertisements

Переменные задаются именами, которые определяют области памяти, в которых хранятся их значения. Значениями переменных могут быть данные различных типов.
УСЛОВНЫЙ ОПЕРАТОР IF... THEN... ELSE (Если … То … Иначе)
Тема урока Переменная. Тип данных. Ввод и вывод данных.
Программирование в среде Visual Basic: переменные Яковлева Татьяна Геннадьевна МАОУ гимназия 23 г. Челябинска.
Тема: Управление потоком в PHP Изучить возможности языка PHP при решении задач, требующих использования условного оператора. Рассмотреть примеры управления.
Глава 6. УПРАВЛЯЮЩИЕ СТРУКТУРЫ Оператор присваивания Простой и составной операторы Условный оператор Оператор множественного выбора Оператор цикла с предусловием.
Богданов Марат Робертович Современные веб-технологии. Подробный курс Синтаксические основы JavaScript.
План-конспект урока (информатика и икт, 9 класс) по теме: Переменные:тип, имя, значение
Строки в Pascal
ЦИКЛИЧЕСКИЙ АЛГОРИТМ Цели: -Познакомиться с понятием циклического алгоритма. -Освоить языковые средства для реализации циклических алгоритмов.
Работу выполнили ученицы 9 «Б» класса Гордеева Татьяна и Шебаршова Рита.
Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.
Тип, имя и значение переменной.. Переменные. В объектно-ориентированных языках программирования, и в частности в языке Visual Basic, переменные играют.
Оператор ветвления (условный оператор) позволяет изменить порядок выполнения операторов в зависимости от выполнения некоторого условия (истинности логического.
1 Программирование на языке Паскаль Ветвления. 2 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения:
далее цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием)цикл с неизвестным числом шагов (цикл с условием) что такое цикл?
Разветвляющаяся алгоритмы. Условные операторы Ветвление - выбор пути решения задачи в соответствии с выполнением или невыполнением некоторого условия выбора.
Презентация на тему: «Программирование Разветвляющихся структур». Составила: учитель информатики Чура Н.А. 1.
Алгоритмическая конструкция «ветвление» Презентацию разработал Мащенко П.С., учитель МБОУ СОШ 2 муниципального образования Щербиновский район станицы Старощербиновской.
Транксрипт:

Лекция 2 Кафедра Прикладной математики М-703, тел К.т.н., профессор Глаголев Виктор Борисович, комн. Ж-405б, тел Преобразование и совместимость типов 2.Базовые структуры алгоритмов 3.Пример «Алгоритм Эвклида» 4.Ввод и вывод данных 5.Программирование разветвлений 1.Инструкция IF 2.Инструкция Select Case

Преобразование и совместимость типов данных В этом разделе речь будет идти о тех ситуациях, когда при выполнении операции или инструкции участвуют данные разных типов. Например, что произойдет, если переменной целого типа присваивается числовое значение с дробной частью? По умолчанию автоматические преобразования типов разрешены ( Option Strict Off ). Здесь сочетание слов Strict (соответствие) Off означает отмену требования строгого соответствия типов.

Чтобы запретить автоматическое преобразование типа, в начале кода проекта следует добавить инструкцию Option Strict On. В этом случае все необходимые преобразования типов программист должен сам предусматривать в программном коде, применяя функции преобразования типов данных.

Функции преобразования типов данных: Имя функцииК какому типу преобразуется аргумент Cbool(x)Boolean CByte(x)Byte CChar(x)Char CDate(x)Date CDbl(x)Double CDec(x)Decimal CInt(x)Integer CLng(x)Long Cobj(x)Object CShort(x)Short CSng(x)Single CStr(x)String

Пример Dim a, b As Single = 5 Dim c As Integer = 1 a = b + CSng(с) Преобразование данного типа Integer к типу Single здесь потребовалось потому, что арифметическая операция всегда выполняется только с однотипными операндами.

Если же в проект включена инструкция Option Strict Off (такая опция подразумевается по умолчанию), то в отношении типов VB.NET проявляет максимальную терпимость. Когда это возможно, преобразование одного типа в другой будет выполнено автоматически и программисту нет нужды об этом заботиться.

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

В случае преобразования целого типа в другой целый тип возможна ситуация, когда целый тип с большим диапазоном значений преобразуется в целый тип с меньшим диапазоном значений. Если значение, которое присваивается «короткому» типу, выйдет за пределы диапазона его допустимых значений, произойдет ошибка периода выполнения.

Строковые и числовые типы совместимы, если строку можно трактовать как число. Не возникнет ошибки при присвоении свойству Text некоторой надписи, которое имеет тип String, значения некоторой переменной типа Integer, равное 125: Label1.Text = 125 Произойдет преобразование целого числового значения 125 в строку символов 125.

И наоборот. При присвоении переменной целого типа значения свойства Text некоторого текстового поля, которое имеет тип String (пусть, например, в этом текстовом поле набрано три символа 125 ) произойдет преобразование строки символов 125 в целое число и целочисленная переменная получит значение 125. Однако строка символов должна быть такой, чтобы она могла трактоваться как число.

Возможно также выполнение арифметической операции, например умножения (*), когда один или оба операнды являются строкой символов, но при условии, что их значения, можно интерпретировать как числа: Dim i, r As Integer, _ str As String i = 5 str = 25 r = i * str String -> Integer

Особую осторожность следует соблюдать с символом (+), который в зависимости от контекста может означать либо операцию сложения, либо операцию сцепления.

В операции операнд1 + операнд2 символ (+) VB будет воспринимать как: операцию сложения, если оба операнда имеют кокой либо из числовых типов; операцию сложения, если один операнд имеет числовой тип, а второй является строкой символов, значение которой может быть интерпретировано как число;

операцию сцепления, если один операнд имеет числовой тип, а второй является строкой символов, значение которой не может быть интерпретировано как число; операцию сцепления, если оба операнда имеют строковый тип независимо от их значений.

Пример Dim i, j, k, r As Integer i = 18 j = 24 Label1.Text = i Label2.Text = j k = Label1.Text _ + Label2.Text + 10Рез-т: 1834 r = 10 + Label1.Text _ + Label2.Text Рез-т: 52

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

Известны различные способы записи алгоритма. Любая программа на языке VB – это тоже запись соответствующего алгоритма. Наибольшей наглядностью обладает изображение алгоритма в виде блок- схемы.

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

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

Следование Эта структура предполагает последовательное выполнение входящих в нее инструкций Инструкция 1 Инструкция 2. Существенно, что структура следование, рассматриваемая как единое целое (на рисунке она заключена в пунктирный прямоугольник), имеет один вход и один выход.

Разветвление Условие выполнено? НетДа Инструкция 2 Инструкция 1

Разветвление предполагает проверку некоторого условия. В зависимости от того выполняется это условие или нет, выполняется либо одна инструкция, либо другая.

Если на момент проверки условие оказалось выполнено, то будет выполнена инструкция 1, а инструкция 2 игнорируется. Если же оказывается, что условие не выполнено, то будет выполнена инструкция 2, а инструкция 1 игнорируется. Разветвление также имеет один вход и один выход.

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

Различают два вида базовых циклов в зависимости от порядка выполнения этих действий: сначала проверка условия выполнения инструкции, а затем ее выполнение (цикл – пока), или сначала выполнение инструкции, а затем проверка условия выхода из цикла (цикл – до). На следующем слайде изображена блок-схема цикла – пока, а также блок-схема цикла – до. Базовая структура – цикл имеет один вход и один выход.

Цикл Цикл-пока Инструкция Условие? Да Нет Цикл-до Инструкция Условие? Нет Да

Итак, каждая из трех рассмотренных базовых структур имеет один вход и один выход. Это обстоятельство позволяет считать, что любой прямоугольник с надписью «Инструкция», изображенный на рисунках предыдущих слайдов, может быть базовой структурой. Значит, цикл может включать в свой состав базовые структуры: следование, разветвление, цикл. Это же утверждение также относится и к двум другим базовым структурам – следованию и разветвлению.

Условие выполнено? НетДа Инструкция 2 Инструкция 1 Условие выполнено? НетДа Инструкция 4 Инструкция 3

Пример цикла, не являющегося базовой структурой Инструкция 1 Условие? Нет Да Инструкция 2

Пример 1 (алгоритм Эвклида) Эвклид - древнегреческий математик, автор первого из дошедших до нас теоретических трактатов по математике. Его научная деятельность протекала в Александрии в 3 в. до н. э. Требуется найти наибольший общий делитель двух целых положительных чисел n1 и n2 (алгоритм Эвклида).

Если общий делитель n чисел n1 и n2 существует, то он же обязательно является и общим делителем разности большего (n2) и меньшего (n1) из этих двух чисел. Действительно, пусть n1 = n * k, а n2 = n * m Тогда разность r = n2 – n1 = n * (m – k) Возьмем в качестве n2 большее из значений r и n1, а в качестве n2 – меньшее из этих значений. Мы пришли к той же задаче, но теперь n2 стало меньше. Повторение этих действий неизбежно приведет к ситуации, когда n1 = n2 = n

Обозна- чение в условии ИмяВид объектаТипСмысл n1 ПеременнаяЦелыйЗаданное число n2 ПеременнаяЦелыйЗаданное второе число Сначала необходимо выбрать данные, изменение значений которых в соответствие с разрабатываемым алгоритмом приведет к искомому решению, т. е. выбрать имена и тип этих данных. Для этого применим таблицу данных:

n1n n1 = n1 - n2 n2 = n2 – n1 Ввод n1, n2 Вывод n1 Конец n1 n2 Нет Да n1 < n2 Нет Да Начало

Ввод данных Функция InputBox Для ввода значения переменной можно воспользоваться функцией с именем InputBox. Она выводит на экран диалоговое окно, содержащее сообщение, а также поле ввода, и возвращает значение типа String, содержащее строку, введенную в поле ввода. Упрощенный синтаксис обращения к этой функции: InputBox(Сообщение[, Заголовок]) У этой функции обязательный только первый слева аргумент. Назначение аргументов: Сообщение – выражение типа String, отображаемое в диалоговом окне; Заголовок – выражение типа String, отображаемое в строке заголовка диалогового окна.

Пример 1 Dim k As Integer k = InputBox( _ "Введите количество слушателей", _ "Ввод исходных данных") 'String -> Integer

Для вывода значений данных удобно применять текстовое поле TextBox. Чтобы текстовое окно могло содержать не одну, а несколько строк, его свойство Multiline должно иметь значение True. Для управления размещением результатов вывода в текстовом поле применяются: свойство Text ; метод AppendText; метод Clear; константы vbTab и vbCrLf. Вывод данных

Метод текстового поля AppendText(ДобавляемаяСтрока) записывает в конец текущей строки текстового поля строку являющуюся его аргументом. Очистка текстового поля выполняется с помощью метода Clear. TextBox1.Clear() Константа vbTab, начиная с текущей позиции вставляет в строку промежуток из пробелов. Константа vbCrLf делает текущей первую позицию следующей строки.

Пример 2 Dim i As Integer, s As Single i = InputBox("i=?") 'String -> Integer s = InputBox("s=?") 'String -> Single При вводе данных в качестве разделителя целой и дробной частей числа следует использовать символ, установленный при настройке параметров операционной системы (чаще всего – запятую).

Ниже приведен код событийной подпрограммы Form1_Click, которая выполняется при щелчке на форме Form1: Private Sub Form1_Click(ByVal sender _ As Object, ByVal e As _ System.EventArgs) Handles MyBase.Click Dim a As String = "Строка символов" Dim b As Integer = 10, c As Single Dim d As Double, f, g, h As Decimal g = 1 h = 3 f = g / h c = f d = f

TextBox1.Text = "a = " & a & vbTab _ & "b = " & b & vbCrLf TextBox1.AppendText("c = " & c & vbCrLf) TextBox1.AppendText("d = " & d & vbCrLf) TextBox1.AppendText("f = " & f & vbCrLf) End Sub Константа vbTab создает некоторый интервал при выводе между значением переменной a и значением переменной b. Константа vbCrLf обеспечивает перевод строки и возврат каретки (иначе говоря, делает текущей следующую строку текстового окна). Константы vbTab и vbCrLf позволяют управлять расположением выводимых результатов.

В результате выполнения кода этой процедуры в помещенном на форме текстовом окне TextBox1, будут выведены значения результатов:

Пример

Форматирование вывода Для форматирования чисел, дат и времени может быть применена функция Format. Эта функция преобразует число, дату или время в строку символов. Мы можем указать, сколько десятичных разрядов отведено на запись числа, нужны или нет лидирующие нули, замыкающие нули, обозначения валюты, разделители тысяч. Вот упрощенный синтаксис функции Format : Format(Выражение, Формат)

Параметр Выражение определяет значение, которое требуется преобразовать. Параметр Формат – это текстовая строка, сформированная из символов: (0) – в этой позиции должен быть напечатан замыкающий или лидирующий ноль; (#) – в этой позиции не следует печатать замыкающий или лидирующий ноль; (. ), (, ), ( - ), ( + ), ( $ ), ( ( ), ( ) ), ( пробел ) – эти символы печатаются в той позиции, где они указаны.

Ниже приводятся примеры преобразования чисел и дат функцией Format : Обращение к функцииРезультат Format (315.4, )00315,40 Format (315.4,#####.##)315,4 Format (6315.4,##,##0.00)6 315,40 Format (315.4,$##0.00)$315,40 Format ( ,dd.mm.yy) Format ( ,dddd, dd mmmm, yyyy года) вторник, 09 октября, 2001 года

Функция MsgBox Для вывода значения некоторого выражения может быть применена функция MsgBox. Для этого следует обратиться к функции MsgBox, пользуясь, например, упрощенным синтаксисом: MsgBox (Сообщение[,, Заголовок]) Здесь Сообщение – это выражение, которое будет преобразовано в строку символов и выведено в окне MsgBox, а Заголовок – строка символов, отображаемая в заголовке этого окна.

Пример 1 Dim i As Integer = 5 MsgBox("i= " & i,, "Вывод переменной i") Окно функции MsgBox будет выглядеть так, как показано ниже на рисунке.

Управление порядком выполнения инструкций Естественный порядок выполнения инструкций Инструкции программного кода процедуры выполняются в порядке их положения в составе кода сверху вниз и слева направо. Такой порядок их выполнения называется естественным. На естественном порядке основывается программирование базовой структуры – следование.

x = a * b Вывод x Например, изображенная на рисунке структура алгоритмов – следование на VB может быть записана двумя последовательно расположенными инструкциями: x = a * b TextBox1. Text ( x = & x )

Инструкции разветвления Условная инструкция If Условие НетДа Инструкция 2 Инструкция 1 Имеется два варианта синтаксиса этой инструкции – блочный синтаксис и однострочный синтаксис.

Блочный синтаксис Если в зависимости от условия необходимо выполнить не одну простую инструкцию, а несколько инструкций, следует использовать блочный синтаксис. Кроме того, блочная структура позволяет анализировать несколько условий. If ЛВ1 Then [Инструкции1] [ElseIf ЛВi Then Инструкцииi] [Else [Инструкции2]] End If

Выполнение этой инструкции If состоит в следующем. Сначала проверяется значение ЛВ1. Если оно истинно, то выполняется группа Инструкции1 и на этом выполнение инструкции If завершается. Если же значение ЛВ1 ложно, то проверяется значение следующего условия ЛВi. Если оно истинно, то выполняется группа Инструкцииi и на этом выполнение инструкции If завершается. Если же значение ЛВi ложно, то проверяется следующее ЛВi. Если же все ЛВi оказываются ложными, то выполняется группа инструкций Инструкции2.

Пример 1 If A = 7 Then Beep End If В этом примере звуковой сигнал прозвучит только в том случае, если значение переменной А равно 7.

Пример 2 If Name = "Иванов" Then MsgBox ("Ваша карточка удерживается!") Else MsgBox ( "Получите деньги, пожалуйста!") End If В этом примере, если значение переменной Name равно "Иванов", то будет выведено Ваша карточка удерживается!. При любом другом значении переменной Name будет выведено Получите деньги, пожалуйста!.

Пример 3 If x > 0 Then kp = kp + 1 ElseIf x < 0 Then km = km + 1 Else k0 = k0 + 1 End If

Пример 4 If Обращение = 1 Then MsgBox ("Здравствуйте, господин") ElseIf Обращение = 2 Then MsgBox (" Здравствуйте, госпожа") ElseIf Обращение = 3 Then MsgBox _ (" Здравствуйте, дамы и господа") Else MsgBox ("Здравствуйте, люди") End If

Для этого примера результат вывода показан в таблице: Значение переменной Обращение Результат вывода 1Здравствуйте, господин 2Здравствуйте, госпожа 3Здравствуйте, дамы и господа Любое другое, кроме 1, 2, 3 Здравствуйте, люди

Однострочный синтаксис Применяется для программирования простых разветвлений (см. рисунок), когда Инструкция1 и Инструкция2 являются простыми инструкциями (не являются следованием, разветвлением или циклом). Условие НетДа Инструкция 2 Инструкция 1

If ЛВ Then Инструкция1 [Else Инструкция2] Здесь If (если), Then (то) и Else (иначе) - зарезервированные слова, ЛВ – логическое выражение, которое может принять одно из двух возможных значений True и False. Существенно, что здесь после слова Then, а также после слова Else может находиться только одна простая инструкция.

Выполнение такой инструкции состоит в следующем. Если ЛВ, имеет значение True, выполняется Инструкция1, указанная за Then, Инструкция2 не выполняется (пропускается). Если же значение ЛВ равно False, то выполняется Инструкция2, следующая за ключевым словом Else, если такая имеется, а Инструкция1 пропускается. Пример 5 If a = 7 Then MsgBox(b= & b) В этом примере выводится значение переменной b, если значение переменной a равно 7.

Пример 6 If x < 9 Then MsgBox (x меньше 9) _ Else MsgBox (x больше или равно 9) В этом примере выводится текст x меньше 9, если значение переменной x меньше 9. В противном случае выводится текст x больше или равно 9.

Инструкция Select Case Еще одной инструкцией VB, предназначенной для программирования разветвлений, является Select Case (инструкция выбора), которая позволяет выполнить одну из нескольких групп операторов в зависимости от значения некоторого выражения. Инструкция Select Case имеет следующий синтаксис:

Select Case Проверочное_Выражение [Case Значение1 [Инструкции1]] [Case Значение2 [Инструкции2]]. [Case Else [Инструкции Else]] End Select

Select Case V Case 1 MsgBox("Равно 1) Case 2, 3 MsgBox("Равно 2 или 3) Case 4 То 6 MsgBox("Больше или равно 4 и меньше или равно 6) Case Is >= 9 MsgBox("Больше или равно 9) Case Else MsgBox("Ни одно из предшествующих") End Select Пример 6

В качестве значения для блока Case можно указывать не только одно значение, но и несколько, разделенных запятой). Можно определять также области сравнения) или воспользоваться относительным сравнением (Is >= 9). Вместо непосредственного значения проверочного выражения можно использовать ключевое слово Is. Блок Case Else выполняется, если ни одно из предыдущих условий не является истинным. Если условию Select Case соответствует несколько блоков Case, то выполняется первый из них.