Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика (часть 2).doc
Скачиваний:
39
Добавлен:
03.05.2015
Размер:
1.22 Mб
Скачать

Многомерные массивы

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

Dim Tabl(10,25) as single

В массиве Tabl11 строк и 26 столбцов.

Для обработки многомерных массивов используют сложные циклы.

Пример 4Элементы двумерного массива из 5 строк и 5 столбцов задаются генератором случайных чисел и принимают значения от 0 до 10. Вывести заданный массив. Найти суммы строк и суммы столбцов, сохранив их в одномерных массивах.

Dim x(4, 4) As Byte, SumStr(4) As Byte, SumStolb(4) As Byte

Dim i As Byte, j As Byte

For i = 0 To 4

For j = 0 To 4

x(i, j) = 1 + Rnd * 10

Print x(i, j);

Next j

Print

Next i

For i = 0 To 4

SumStr(i) = 0

For j = 0 To 4

SumStr(i) = SumStr(i) + x(i, j)

Next j

Next i

For j = 0 To 4

SumStolb(j) = 0

For i = 0 To 4

SumStolb(j) = SumStolb(j) + x(i, j)

Next i

Next j

Print "Суммы строк"

For i = 0 To 4

Print SumStr(i);

Next i

Print

Print "Суммы столбцов"

For i = 0 To 4

Print SumStolb(i);

Next i

End Sub

Задание

Составить программу обработки двумерного массива размером 5x5. Массив сформировать с помощью генератора случайных чисел. Диапазон значений для элементов массива – от -10 до +10. Сформированный массив вывести построчно. Для массива выполнить задание в соответствии со своим вариантом

  1. Определить номера строк, все элементы которых ненулевые. Вычислить сумму положительных элементов каждого столбца

  2. Определить число элементов, попадающих в интервал от 2 до 9. Вычислить произведение отрицательных элементов.

  3. Вычислить сумму положительных элементов каждого столбца. Определить количество строк, сумма элементов которых отрицательна.

  4. Определить номера строк, все элементы которых ненулевые. Определить количество отрицательных элементов в массиве.

  5. Определить индексы и количество отрицательных элементов в массиве.

  6. Вычислить сумму значений элементов, больших 5. Определить число строк, содержащих отрицательные элементы.

  7. Вычислить среднее арифметическое значение положительных элементов массива. Определить количество нулевых элементов в каждой строке.

  8. Определить количество нулевых, отрицательных и положительных значений в массиве. Вычислить сумму элементов, больших 2, в массиве.

  9. Определить количество элементов, попадающих в интервал от 2 до 9. Вычислить сумму отрицательных элементов в каждом столбце.

  10. Вычислить сумму положительных элементов в каждой строке. Найти сумму элементов, расположенных на главной диагонали матрицы.

Лабораторная работа № 6 Обработка строковых данных

Для хранения строковых данных используются переменные типа String. Каждый символ, сохранённый в переменной типа String, занимает один байт памяти. Различные операционные системы поддерживают различную максимальную длину строки. Для того, чтобы VB отличал строковую константу от имени переменной, строковая константа заключается в кавычки.

Dim Fam as string

Fam="Сазонов"

Длина переменной ограничивается лишь операционной системой, но при необходимости её можно указать явно, например:

Dim S as string*30 – в этом случае строка может содержать максимум 30 символов.

Для строковых данных определена операция объединения строк (конкатенация). В качестве оператора объединения строк в VB можно использовать как знак +, так и &.

Для работы с данными типа String в VB используются стандартные функции.

Left(S,n) - выделение начала строки S (подстроки длиной n символов);

Right(S,n) - выделение конца строки S (подстроки длиной n символов);

Mid(S,n1,n2) - выделение из строки S подстроки длиной n2 символов, начиная с символа с номером n1;

Instr(n,S1,S2) – поиск в строке S1 первого вхождения подстроки S2, начиная с символа с номером n. Если подстрока S2 найдена, то функция возвращает номер символа, в котором начинается искомая подстрока. Если подстрока не найдена, то функция возвращает 0.

Len(S) – определение длины строки в символах. Если при описании переменной S указана максимальная длина строки, то функция выдаёт это значение, если нет – то функция выдаёт фактическое количество символов в строке.

Val(S) преобразование строки в число. Чтобы это преобразование прошло успешно, строка должна содержать только допустимые для чисел символы: цифры, знаки + или -, десятичную точку.

Str(X) – преобразование числа в строку.

Asc(S) – выдаёт ASCII код первого символа строки.

Chr(X) – возвращает символ, соответствующий указанному коду ASCII .

Пример 1 Введена фраза из нескольких слов, разделённых одним пробелом. Вывести слова этой фразы в столбец.

Dim s As String, n1 As Byte, n2 As Byte

s = "Калининградский государственный технический университет"

s=s+" "

n1 = 1: n2 = 1

Do Until n2 = Len(s)

n2 = InStr(n1, s, " ")

Print Mid(s, n1, n2 - n1)

n1 = n2 + 1

Loop

Пример 2Дано слово. Вывести его, расположив буквы в обратном порядке

Dim s As String, n1 As Byte, n2 As Byte

s = InputBox("Слово: ")

n = Len(s)

Do While n > 0

Print Mid(s, n, 1)

n = n - 1

Loop

Пример 3. Удалить из введённой строки все пробелы.

Dim s As String, b As String

Dim n1 As Byte, n2 As Byte

s = InputBox("строка: ")

n1 = 1: n2 = 1

b = ""

Do While n2 <> 0

n2 = InStr(n1, s, " ")

Print n1, n2

If n2 <> 0 Then

b = b + Mid(s, n1, n2 - n1)

Else

b = b + Mid(s, n1, Len(s) - n1 + 1)

End If

n1 = n2 + 1

Loop

Print b

Пример4. Заменить в существующей строке одно слово на другое. Искомое слово встречается в строке 1 раз.

Dim s As String, OldWord As String, NewWord As String, b As String

Dim n1 As Byte, n2 As Byte, dps As Byte

s = "Заканчиваем первый семестр"

OldWord = "первый"

NewWord = "второй"

n1 = 1: n2 = 1

n2 = InStr(n1, s, OldWord)

b = ""

If n2 = 0 Then

Print "искомого слова нет"

Else

dps = Len(s) - n2 - Len(OldWord): Print dps

b = b + Mid(s, n1, n2 - 1) + NewWord + Mid(s, n2 + Len(OldWord), dps)

End If

Print b

Пример 5. Разработать проект "Шифровка и дешифровка текстовых сообщений". В процессе шифровки необходимо заменить каждый символ сообщения его ASCII кодом.

Для решения задачи создадим форму следующего вида:

Рис 6.1. Проектируемая форма

В данной форме присутствуют три надписи, три текстовых поля, три командных кнопки.

Для каждой надписи задано свойство Caption.

Для текстовых полей заданы следующие свойства:

  • Имя (name) – соответственно: SecretTxt, ShifrTxt, Deshifrtxt,

  • Text – пустая строка, то есть необходимо удалить текст, предлагаемый для свойства Text по умолчанию.

Для командных кнопок заданы свойства:

  • Caption,

  • Имя (name) – соответственно Cmd1, Cmd2, Cmd3.

Далее приведён программный код процедуры обработки события – щелчка на командной кнопке "Шифровать". Для удобства пояснений в качестве комментариев указаны номера строк.

Private Sub Cmd1_Click() '1

Dim i As Byte, CodeSymbol As Byte '2