Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Решение задач с одномерными массивами

Ввод-вывод элементов массива

 

Пусть необходимо сформировать массив А, содержащий 10 целых чисел, и вывести элементы массива на экран.

Для ввода и вывода элементов массива в программе используется цикл с заданным числом повторений, т.е. оператор For … next.

Блок-схема ввода и вывода одномерного массива

Блок-схема «а» – ввод элементов массива.

Блок-схема «б» – вывод элементов массива.

Блок-схема в – ввод и вывод элементов массива в одном цикле.

Для ввода и вывода значений элементов массива можно воспользоваться встроенным окном ввода, которое работает при использовании функции InputBox(). Функция InputBox() выводит диалоговое окно ввода на экран, ждет ввода данных и после ввода и нажатия кнопки «ОК» закрывает окно. Значением функции являются введенное число или строка текста, которое в программе присваивается некоторой переменной.

Синтаксис функции:

a = InputBox (StrMessage, StrTitle, Default, xPos, yPos, StrHelp, file, Context)

a – переменная, которой присваивается введенное значение;

InputBox – имя функции;

StrMessage – обязательный параметр, строка или строковая переменная, значение которой будет выводиться в окне в качестве пояснения (подсказка): [текст подсказки может быть выведен в несколько строк, для этого в конце каждой строки добавляется символ возврата каретки и перевода на новую строку: Chz(13) & Chz(10); длина текста может быть до 1024 символов;]

StrTitle – необязательный параметр, строка текста или строковая переменная, значение которой будет отображаться в заголовке окна;

Default – строковая переменная или строка текста, значение которой будет вводиться в поле ввода по умолчанию, необязательный параметр, при его отсутствии поле ввода будет пустым;

хPos – положение окна ввода по горизонтали в твинах, необязательный параметр;

yPos – положение окна ввода по вертикали в твинах, необязательный параметр;

StrHelp file– строка, задающая путь к файлу справки, необязательный параметр;

Context – номер ссылки на раздел в справочном файле, необязательный параметр.

При использовании в программе окна ввода пользователь вводит данные и нажимает кнопку «ОК» или «Cancel»: если «ОК» (или клавишу Enter), то переменной присваивается введенное значение; если «Cancel» - то функция InputBox возвратит пустую строку, независимо от того, что ввел пользователь.

Пример:

х = InputBox (“Введите элемент массива”, “Окно ввода данных”)

Для вывода значений элементов массива используем графическое окно PictureBox и метод Print.

Фрагмент программного кода:

Private Sub btnStart_Click()

Dim a (5) as Integer, i as byte

For i = 1 to 5

a(i) = InputBox (“Ввод элементов массива”, “Окно ввода”)

Picture1. Print a(i); Spc(2);

Next i

End Sub

В разделе General: Option Base 1.

 

12.2.2. Формирование элементов массива с использованием генератора случайных чисел

 

Другой способ формирования элементов массива – это использование генератора случайных чисел. В VB таким генератором является функция Rnd, которая возвращает случайное число в диапазоне от 0 до 1. Синтаксис:

Rnd [(выражение)],

выражение – любое числовое выражение или число.

Значения выражения являются базовым числом, определяющим способ генерирования случайного числа. Если аргумент функции Rnd отсутствует, то в качестве базового числа используется последнее значение аргумента.

Для одинаковых значений аргумента генерируется одно и то же случайное число. Чтобы избежать этой ситуации, используют оператор Randomize, который задает значение аргумента для функции Rnd.

Для получения случайного числа из заданного диапазона целых чисел можно воспользоваться следующим выражением:

Int ((nmax – nmin) * Rnd + nmin), где

nmax – верхняя граница диапазона;

nmin – нижняя граница диапазона.

Примеры:

1) для получения случайных целых чисел в диапазоне от 1 до 100:

Int ((100 – 1) * Rnd + 1), т.е.

Int (99 * Rnd + 1)

2) для получения случайных целых чисел в диапазоне от -10 до +10:

Int ((10 – (-10)) * Rnd + (-10)), т.е.

Int (20 * Rnd - 10)

3) фрагмент программного кода формирования элементов массива из 10 чисел в диапазоне от 0 до 20 и вывод полученного массива в графическое окно:

DIM a (1 to 10) as Byte

Randomize

For i = 1 to 10

a(i) = Int (20 * Rnd)

Picture1.Print a(i);Spc(2);

Next i

Задача 1

Ввести с клавиатуры массив А из 12 целых чисел в диапазоне от –10 до +10. Из массива А сформировать массив В по правилу:

Блок-схема алгоритма:

Для ввода элементов массива используется окно ввода (функция InputBox()). Исходный массив выводится в графическое окно Picture1, а сформированный – в окно Picture2. Очистка графического окна при повторном вводе массива – метод Cls.

Программный код процедуры:

Private Sub btnStart_Click ()

Picture1.Cls ‘очистка графических

Picture2. Cls ‘окон

Const n=12 ‘размер массива

Dim A (1 to n) as Integer ‘A содержит целые числа

Dim B (1 to n) as Single ‘B содержит вещественные числа

Dim i as Byte

‘Ввод элементов массива в окно ввода и вывод

‘в графическое окно Picture1.

For i = 1 to n

A(i) = InputBox (“Введите элемент массива”)

Picture1. Print A(i); Spc(2);

Next i

‘Формирование массива В и вывод в графическое окно Picture2

For i=1 to n

if i<=7 then B(i) = A(i) / i else B(i) = A(i) + i

Picture2. Print Format (B(i), “0#.0#); Spc(2);

Next i

End Sub

Функция Format задает формат выводимого значения B(i): “0#.0#”

 

Задача 2

Задан массив А из 11 целых чисел в диапазоне от –10 до +10. Требуется заменить элементы с четными индексами квадратами значений этих элементов, т.е. ai=ai+ ai2 для четных i.

Блок-схема алгоритма:

Четность индекса можно задавать явно, увеличивая i на 2, начиная с i = 2:

Формировать массив А будем с использованием генератора случайных чисел Rnd. Исходный массив выведем в графическое окно Picture1, вывод преобразованного массива – в графическое окно Picture2.

Фрагмент программного кода:

Dim a (1 to 11) as Integer, i as Byte

Randomize ‘инициация генератора случайных чисел

For i = 1 to 11 ‘формирование исходного

a(i) = Int (20 * Rnd –10) ‘массива и вывод его

Picture1. Print a(i); Spc(2); ‘графическое окно

Next i

i = 2 ‘начальное значение i – четное

Do While i < 11 ‘преобразование элементов

a(i) = a(i) ^ 2 ‘исходного массива

i = i + 2 ‘с четными индексами

Loop

For i = 1 to 11 ‘вывод преобразованного

Picture2. Print a(i); Spc(2); ‘массива в графическое окно

Next

 

Можно организовать цикл с просмотром всех индексов и в нем проверять каждый индекс на четность: на четность индекс i можно проверять, используя операцию mod (остаток от деления):

 

<== предыдущая лекция | следующая лекция ==>
Массивы. Добавление изображений в форму | Условиям
Поделиться с друзьями:


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


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



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




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