Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная 4 ВЫРАЖЕНИЯ И ОПЕРАТОРЫ ПРИСВАИВАН...doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
269.31 Кб
Скачать

Еще один образец

Решение задачи из примера

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

Контрольные вопросы

  1. Укажите особенности программирования формул.

  2. Зачем в выражении используются круглые скобки?

  3. Приведите примеры математических функции, поставляемых компилятором?

  4. Как программируется дробное выражение?

  5. Как программируется возведение степень и корень некоторой степени?

Задачи

Задач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, который имеет тип Inte­ger или Word.

Функция Lo

Определение

Lo(X:<целый тип>)

Тип функции: Byte

Назначение. Возвращает младший байт X, который имеет тип Inte­ger или 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 в соот­вет­ствую­щую прописную букву.