Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Данные строкового типа




Ввод и вывод двумерных массивов

Оператор Erase

Оператор Erase позволяет очищать все элементы массива в случае массивов с фиксированным размером.

В случае динамических массивов оператор Erase позволяет полностью очистить массив и его содержимое из оперативной памяти.

Синтаксис оператора:

Erase a1[, a2, …],

т.е. за один раз можно очистить (удалить) несколько массивов.

Для обработки двумерных массивов чаще всего используют два вложенных друг в друга цикла For…Next, каждый из них позволяет перебирать элементы в массиве по соответствующему индексу строки или столбца. Формат описания двумерного массива в разделе объявления переменных:

Dim Имя_массива ([Тип_индекса, Тип_индекса])
[ As Тип_данных]

Например,

Dim A[1 To 10, 1 To 10] Of Single

Здесь описывается двумерный массив вещественных чисел A, который максимально может состоять из 10 строк и 10 столбцов. Нижняя граница индексов по обоим измерениям равна 1, верхняя равна 10.

Формирование двумерного массива с помощью диалогового окна InputBox и функции Split. Использование функции Split для формирования двумерного массива аналогично одномерному. В приведенном ниже примере каждая строка двумерного массива заполняется с помощью диалогового окна InputBox. Элементы строки массива разделяются пробелом, далее с помощью функции Split строка разделяется по пробелу на массив подстрок. Подстрок будет столько, сколько было введено элементов. Массив полученных подстрок индексируется с нуля!

Значения массива выводятся на PictureBox.

Option Base 1 Dima(30,30) As Single Dim av As String Private Sub Command1_Click() n = Val(Text1.Text) 'Ввод количества строк m = Val(Text2.Text) 'Ввод количества столбцов 'Формирование строки подсказки для пользователя в окне InputBox txt = "Введите", + Text2.Text +"элементов строки" For i = 1 To n 'Цикл по количеству строк x=InputBox(txt, "Ввод данных") 'Вывод окна InputBox av = Split(x, " ") 'Ввод строки, состоящей из n значений 'элементов массива в переменную av For j = 1 To n 'Цикл по количеству элементов в строке a(i,j) = Val(av(j - 1)) 'Заполнение i-ой строки массива Picture1.Print a(i,j) Next j Next i End Sub

В реальных задачах часто встречаются объекты символьного типа – строки. Строка трактуется как последовательность символов. В состав строки могут входить буквы латинского алфавита, кириллица, цифры, всевозможные знаки, скобки, пробел и др. Каждый символ строки занимает 1 байт памяти (десятичный код от 0 до 255, зафиксированный в кодовой таблице ASCII).

Количество символов в строке называется ее длиной. Пустая строка имеет нулевую длину.

Строковая константа – последовательность символов, заключенных в двойные кавычки. Например:

”Это строковая константа”, ”123”.

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

Два следующих друг за другом апострофа (””), обозначают пустую строку, т.е. строку с нулевой длиной.

Различают строки переменной и фиксированной длины. Строки переменной длины могут иметь длину до 2 Гбайт. Когда такой переменной присваивается значение, то размер переменной изменяется так, чтобы он соответствовал длине присвоенного строкового значения. Строка фиксированной длины – это строка постоянного размера, указанного при объявлении переменной. Если такой строке присваивается более длинное значение, то лишние символы отбрасываются, а если более короткое значение, то оставшееся справа место заполняется пробелами. Строковые переменные фиксированной длины должны объявляться явно.

Формат описания строковой переменой переменной длины:

Dim Имя_строки As String

Формат описания строковой переменой фиксированной длины:

Dim Имя_строки As String*Длина строки

Например:
Dim Name As String*20

Dim St As string

 

Операции над строками. Выражения, в которых операндами служат строковые данные, называются строковыми. Над строковыми данными допустимы операции сцепления и операции отношения.

Операция сцепления (конкатенации) «+» применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и строковые переменные.

Например:

”Бейсик, ” + ”Паскаль, ” + ”Си ” + ”–” + ”языки программирования”.

В результате операции сцепления «+» получится строка:

”Бейсик, Паскаль, Си – языки программирования”

Операции отношения =, <, >, <=, >=, <> позволяют выполнить сравнение двух строк, в результате чего получается логическое значение True или False. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в таблице символьной кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что более короткая строка меньше, чем более длинная. Строки равны, если они полностью совпадают по длине и содержат одни и те же символы.

Например:

Выражение Результат
”True1” > ”True2” False
”Student” > ”STUDENT” True
”Студент” <> ” Студент” True
”Группа” = ”Группа” True

Все остальные действия над строками и символами реализуются с помощью встроенных процедур и функций (табл.1.2).

Таблица 1.2

Функция (S- строка, X- число) Назначение
Len(S) Возвращает количество символов в строке S Fio=”Иванов”: l=Len(Fio) Результат: l=6
Left(S,k) Возвращает k символов с начала строки Fio=”Иванов”: t=Left(Fio,4) Результат: t=”Иван”
Right(S,k) Возвращает k символов с конца строки Fio=”Иванов”: T=Right(Fio,2) Результат: T=”ов”
Mid(S,Pos,k) Возвращает k символов из переменной S, начиная с позиции Pos, включительно Fio=”Иванов”: T=Mid(Fio,2,4) Результат: T=”вано” Эта функция часто используется для выдаления одного символа из строки: Mid(S,i,1)
Val(S) Преобразует строку S в десятичное число p=”-243.65”: S=Val(p)+100 Результат: S=-143.65
CInt(S) Преобразует строку S в целое число p=”-243”: S=Val(p)+100 Результат: S=-143
Str(X) Преобразует число X в строку символов с учетом знака. Если число положительное, вместо знака ставится пробел. a=123.45: b=-678: S=Str(b)+Str(a) Результат: S=”-678 123.45”
СStr(X) Преобразует числовое выражение X в строку символов. S=СStr(4-7/3) Результат: S=”4-7/3”
Chr(N) Возвращает символ, соответствующий числовому коду в таблице символов For i=65 to 90 Print Chr(i) Результат: Вывод заглавных букв латинского алфавита
Asc(S) Определяет числовой код первого символа в строке S: Print Asc(”123”): Print Asc(” 1a2m”) Print Asc(”ABC”) Результат: 49 32 65
InStr(n,S,S1) Начиная с позиции n, определяет позицию первого появления подстроки S1 в строке S. Если такой подстроки нет, то возвращаемым значением функции будет ноль. x=”кукуруза”: y=”ку” Print Instr(1,x,y); Print Instr(2,x,y); Результат: 1 3
InStrRev(n,S,S1) Определяет позицию первого появления подстроки S1 в строке S справа налево (начиная с конца строки)
LTrim(S) Удаляет пробелы, расположенные в начале строки
RTrim(S) Удаляет пробелы, расположенные в конце строки
TRim(S) Удаляет пробелы, расположенные в начале и в конце строки
LCase(S) Изменяет регистр букв исходной строки S на нижний
UCase(x) Изменяет регистр букв исходной строки S на верхний
StrConv(S,p) Изменяет регистр букв строки S, в зависимости от значения параметра p p =1, верхний регистр; p =2, нижний регистр; p =3, только первая заглавная
StrReverce(x) Изменяет порядок следования в строке на обратный
Spase(n) Возвращает строку, состоящую из n пробелов
Replase (S,S1,S2,n,k) Заменяет в строке S подстроку S1 на подстроку S2, начиная с позиции n. k - количество замен, если значение k не указано, то заменяются все вхождения S1 в S. Эта функция используется также для удаления подстрок: s=”121113” Print Replace(s,”1”,””) ’Удаляется ’подстрока ”1” Результат: 23

Строку символов всегда можно преобразовать в одномерный массив отдельных символов, расщепив ее при помощи функции Mid или Split. После этого со строкой можно работать точно так же как и с одномерным массивом. После обработки массива, его элементы следует обратно слить в строку при помощи операции сцепления.




Поделиться с друзьями:


Дата добавления: 2014-12-24; Просмотров: 408; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.