
- •Лабораторная работа № 4
- •Арифметические выражения
- •Символьные (текстовые) выражения
- •Выражения отношения
- •Логические выражения
- •Оператор присваивания
- •Часть 1 Программирование математических выражений
- •Запись формул
- •Изучение программирования математических формул на Visual Basic - е в среде разработки Visual Studio
- •Еще один образец
- •Часть 2 Текстовые переменные, константы, выражения и символьные операторы присваивания
- •Изучение программирования символьных выражении на Visual Basic - е в среде разработки Visual Studio
- •Часть 3 Логические переменные и логический оператор присваивания
- •Изучение программирования логических выражении на Visual Basic - е в среде разработки Visual Studio
Еще один образец
Решение задачи из примера
Module Primer
Sub Main()
Dim A As Single = 1
Dim B As Single = 4
Dim C As Single = 14.0
Dim X As Single = 15.55
Dim Y As Single
Y = A * X ^ 2 + B * X + C
Console.WriteLine("Y= {0}", Y)
Console.ReadLine()
End Sub
End Module
Контрольные вопросы
Укажите особенности программирования формул.
Зачем в выражении используются круглые скобки?
Приведите примеры математических функции, поставляемых компилятором?
Как программируется дробное выражение?
Как программируется возведение степень и корень некоторой степени?
Задачи
Задачa 1 (Fortran). Вычислить значение Z, где
при y = 2.3 . Ответ: 0.805
Задача 2 (QuickBasic, Visual Basic). Вычислить значение Y, где
при x = 3 . Ответ: 0.017
Задача 3 (Turbo Pascal). Вычислить значение Q, где
при x = 4 и v = 2 . Ответ: -4.073
Задачa 4 (Fortran). Вычислить значение Y, где
при x = 1 . Ответ: 0.085
Задачa 5 (QuickBasic, Visual Basic). Вычислить значение F, где
при x = 5 . Ответ: 1.904
Задачa 6 (Turbo Pascal). Вычислить значение S, где
при x = 2 . Ответ: -0.015
Задачa 7 (Fortran). Вычислить значение Z, где
при x = 3 и a = 2 . Ответ: 0.421 .
Часть 2 Текстовые переменные, константы, выражения и символьные операторы присваивания
Данные текстового типа используются в основном для оформления результатов счета. Например, пусть в программе переменная PR получила значение 6.3. В постановке задачи этой переменной пусть соответствует переменная с именем Произ. Тогда при выводе пользователю значения PR желательно использовать словесное оформление, например, так Произ = 6.3
Каждую строковую переменную можно представить как строку с заданным количеством позиции.
Fortran
Например, задан оператор
CHARACTER ST*10, VUZ*10, RAB*16
Тогда указанные переменные имеют следующий вид:
переменная ST _ _ _ _ _ _ _ _ _ _ ;
переменная VUZ _ _ _ _ _ _ _ _ _ _ ;
переменная RAB _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .
Здесь каждая позиция (символ '_') соответствует одному байту памяти. Пусть заданы операторы
DATA ST/'студент'/
DATA VUZ/'МарГТУ'/
Тогда позиции в этих строках заполнятся следующим образом:
переменная ST с т у д е н т _ _ _ ;
переменная VUZ М а р Г Т У _ _ _ _ .
Пустые позиции означают пробелы.
Теперь пусть задан оператор
RAB=ST(3:9)//VUZ(1:5)
После этого переменная RAB будет иметь значение
у д е н т _ _ М а р Г Т _ _ _ _
Пусть задан оператор
RAB=ST(1:8)//VUZ(1:7)//'!'
Тогда переменная RAB будет содержать значение
с т у д е н т _ М а р Г Т У _ ! .
Некоторые символьные функции.
Функция INDEX
Обращение
INDEX(<символьное выражение 1>,<символьное выражение 2>,log)
Возвращает номер позиции второй строки в первой. Третий параметр может быть не задан. Если он задан и имеет значение .TRUE., то поиск идет с конца строки.
Функция LEN_TRIM
Обращение
LEN_TRIM(<символьное выражение>)
Возвращает значение длины символьного выражения без хвостовых пробелов.
QuickBasic
Например, заданы операторы
DIM ST AS STRING*10
DIM VUZ AS STRING*10
DIM RAB AS STRING*16
Тогда указанные переменные имеют следующий вид:
переменная ST _ _ _ _ _ _ _ _ _ _ ;
переменная VUZ _ _ _ _ _ _ _ _ _ _ ;
переменная RAB _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .
Здесь каждая позиция (символ '_') соответствует одному байту памяти. Пусть заданы операторы
ST="студент"
VUZ="МарГТУ"
Тогда позиции в этих строках заполнятся следующим образом:
переменная ST с т у д е н т _ _ _ ;
переменная VUZ М а р Г Т У _ _ _ _ .
Пусть задан оператор
RAB = ST + VUZ + "!"
Тогда переменная RAB будет содержать значение
с т у д е н т _ _ _ М а р Г Т У _ _ _ _ ! .
Пусть заданы операторы
DIM ST AS STRING
DIM VUZ AS STRING
DIM RAB AS STRING
Тогда указанные переменные имеют следующий вид:
переменная ST N ;
переменная VUZ N ;
переменная RAB N .
Первые четыре байта переменной содержит число занятых байтов в переменной. Оно обозначено буквой N. Для переменных в исходном состоянии N равно нулю. После присвоения переменной текстового значения оно указывает количество присвоенных символов.
Пусть заданы операторы
ST="студент"
VUZ="МарГТУ"
Тогда позиции в этих строках заполнятся следующим образом:
переменная ST N с т у д е н т ;
переменная VUZ N М а р Г Т У .
Пусть задан оператор
RAB = ST + VUZ + "!"
Тогда переменная RAB будет содержать значение
N с т у д е н т М а р Г Т У ! .
Процедуры и функции для работы с символьными данными
Функция LCASE$
Обращение
LCASE$(<символьное выражение>)
Возвращает символьное значение, в котором все латинские буквы преобразованы в строчные.
Функция UCASE$
Обращение
UCASE$(<символьное выражение>)
Возвращает символьное значение, в котором все латинские буквы преобразованы в заглавные.
Функция LTRIM$
Обращение
LTRIM$(<символьное выражение>)
Возвращает копию символьного выражения с удаленными начальными пробелами.
Функция RTRIM$
Обращение
RTRIM$(<символьное выражение>)
Возвращает копию символьного выражения с удаленными конечными пробелами.
Функция LEFT$
Обращение
LEFT$(<символьное выражение>,n)
Возвращает n первых символов исходного символьного выражения.
Функция RIGHT$
Обращение
RIGHT$(<символьное выражение>,n)
Возвращает n последних символов исходного символьного выражения.
Функция LEN
Обращение
LEN(<символьное выражение>)
Возвращает количество байт, занимаемых исходным символьным выражением.
Функция CHR$
Обращение
CHR$ (n)
Возвращает строку из одного символа, кодом которого является число n. Значение n может быть от 0 до 255.
Функция ASC
Обращение
ASC(<символьное выражение>)
Возвращает числовое значение кода первого символа в символьном выражении.
Функция INSTR
Обращение
INSTR(n,<исход. симв. выражение>,<иском. симв. выражение>)
Возвращает позицию первого вхождения искомого символьного выражения в исходном символьном выражений, начиная с n–ой позиции.
Visual Basic
Текстовые строки имеют тип String, который является классом (псевдоним для класса System.String). Каждая строка имеет длину, длина созданной строки изменяться не может. Кроме того, не могут меняться символы, составляющие строку. При изменений строки создается новая строка. Множество методов класса String создает новую строку на основе существующей. Для работы с текстовыми данными можно использовать те же процедуры и функции, приведенные для QuickBasic, но с учетом, что они являются методами класса String
Turbo Pasal
Например, задан оператор
VAR
ST: STRING[10];
VUZ: STRING[10];
RAB: STRING[16];
Тогда указанные переменные имеют следующий вид:
переменная ST n _ _ _ _ _ _ _ _ _ _ ;
переменная VUZ n _ _ _ _ _ _ _ _ _ _ ;
переменная RAB n _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .
Здесь каждая позиция (символ '_') соответствует одному байту памяти. Нулевой байт переменной содержит количество занятых байтов в переменной. Оно обозначено буквой n. Для переменных в исходном состоянии n равно нулю. После присвоения переменной текстового значения оно указывает количество присвоенных символов.
Если переменные определены как типизированные константы строкового типа, например,
const
ST: STRING[10]='студент';
VUZ: STRING[10]='МарГТУ';
тогда позиции в этих строках заполнятся следующим образом:
переменная ST n с т у д е н т _ _ _ , где n = 7;
переменная VUZ n М а р Г Т У _ _ _ _ , где n = 6.
Пустые позиции означают пробелы. Теперь пусть задан оператор
RAB:= ST + VUZ .
После этого переменная RAB будет иметь значение
n с т у д е н т М а р Г Т У _ _ _ , где n = 13.
Процедуры и функции используются для работы со строками.
Функция Cоncat
Определение
Concat(s1,...,sN:string)
Тип функции: string
Назначение. Выполняет последовательное соединение друг к другу строк, указанных параметрами .
Функция Cору
Определение
Copy(S:string; N: integer; K: integer)
Тип функции: string
Назначение. Возвращает часть строки S, которая начинается с символа с номером N и содержит K символов. Если всех необходимых символов в строке нет, возвращается имеющийся остаток строки.
Процедура Delete
Определение
Delete(var S:string; N: integer; K: integer)
Назначение. Удаляет из строки S ее часть, которая начинается с символа с номером N и содержит K символов.
Процедура Insert
Определение
Insert(S1:string; var S:string; N: integer)
Назначение. Вставляет в строку S подстроку S1, начиная с позиции с номером N.
Функция Length
Определение
Length(S:string)
Тип функции: integer
Назначение. Возвращает длину строки S.
Функция Pos
Определение
Pos(Sub,S:string)
Тип функции: Byte
Назначение. Ищет в строки S подстроку Sub и возвращает номер ее первого символа. Если подстрока Sub отсутствует в строке S, то возвращает 0.
Процедура Str
Определение
Str(X[:M[:N]]; var S:string)
Назначение. Преобразует число целого или вещественного типа X в последовательность символов и помещает в строку S; M и N - форматы вывода целого типа, аналогично процедуре Write.
Процедура Val
Определение
Val(S:string; var X; N:integer)
Назначение. Преобразует символьное представление числа в строке S в двоичную форму и помещается в переменную X целого или вещественного типа; N - номер неправильного символа, если преобразование невозможно (0 - если успешно преобразовано.) форматы вывода целого типа, аналогично процедуре Write.
Функция Hi
Определение
Hi(X:<целый тип>)
Тип функци: Byte
Назначение. Возвращает старший байт X, который имеет тип Integer или Word.
Функция Lo
Определение
Lo(X:<целый тип>)
Тип функции: Byte
Назначение. Возвращает младший байт X, который имеет тип Integer или Word.
Процедура Move
Определение
Move(var Source, Dest; N:Word)
Назначение. Копирует N смежных байтов из области Source в область Dest. Аргументы Source и Dest могут быть переменными любого типа.
Функция SizeOf
Определение
SizeOf(X)
Тип функци: Word
Назначение. Возвращает число байт, занимаемых аргументом X, который имеет любой тип.
Функция Swap
Определение
Swap(X:<целый тип>)
Тип функции:<целый тип>
Назначение. Меняет местами старший и младший байты аргумента X, который имеет тип Integer или Word.
Функция UpCase
Определение
UpCase(Ch: Char)
Тип функции: Char
Назначение. Преобразует латинскую букву в аргументе Ch в соответствующую прописную букву.