русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Одномерные массивы переменных величин


Дата добавления: 2015-06-12; просмотров: 531; Нарушение авторских прав


Одна из типичных задач программирования формулируется примерно так. Имеется большое количество данных, например, тех же температур или высот. С этими данными компьютер должен что-нибудь сделать, например, вычислить среднегодовую температуру, количество морозных дней, максимальную взятую высоту и т.п. Раньше мы уже вычисляли подобные вещи, и при этом данные вводили в компьютер с клавиатуры одно за другим в одну и ту же ячейку памяти (см. Глава 8). Однако, программистская практика показывает, что удобно, а часто и необходимо иметь данные в оперативной памяти сразу все, а не по очереди. Тогда для задачи про температуру нам понадобится 365 ячеек. Эти 365 ячеек мы и назовем массивом. Итак, массивомможно назвать ряд ячеек памяти, отведенных для хранения значений индексированной переменной. Вопрос о том, как большое количество значений оказывается в памяти, отложим на будущее (16.2).

Знаете, что напоминает одномерный массив? Список ListBox, который мы проходили в 15.5. Такой же аккуратный ряд пронумерованных элементов.

 

Рассмотрим на простом примере, как Visual Basic управляется с массивами. Предположим, в зоопарке живут три удава. Известна длина каждого удава в сантиметрах (500, 400 и 600). Какая длина получится у трех удавов, вытянутых в линию?

Обозначим длину первого удава - dlina(1), второго - dlina(2), третьего - dlina(3). Прикажем Visual Basic отвести под эту индексированную переменную массив ячеек в памяти:

Dim dlina (1 To 3) As Integer

Здесь 1 - нижняя граница индекса, 3 - верхняя граница индекса. Слово Toобозначает до. В целом эту строку можно перевести так: Отвести в памяти под переменную dlina ряд ячеек типа Integer, пронумерованных от 1 до 3.

Вот программа полностью:

Dim dlina(1 To 3) As Integer

Dim summa As Integer

Private Sub Command1_Click()



dlina(1) = 500

dlina(2) = 400

dlina(3) = 600

'В этот момент в трех ячейках памяти уже находятся числа

'и с ними можно выполнять арифметические действия

summa = dlina(1) + dlina(2) + dlina(3)

Debug.Print summa

End Sub

Если смысл написанного выше вам неясен, запустите отладочный пошаговый режим выполнения программы и загляните в текущие значения dlina(1), dlina(2), dlina(3), summa.

Теперь запишем ту же программу в предположении, что длины удавов заранее неизвестны и мы их вводим при помощи InputBox:

Dim dlina(1 To 3) As Integer

Private Sub Command1_Click()



dlina(1) = InputBox("Введите длину 1-го удава")

dlina(2) = InputBox("Введите длину 2-го удава")

dlina(3) = InputBox("Введите длину 3-го удава")

Debug.Print dlina(1) + dlina(2) + dlina(3)

End Sub

 

Вопрос: Что напечатает следующий фрагмент:

i = 2: a(3) = 10: a(i) = 100: a(i + 6) = a(i) + a(5 - i): i = 0: Debug.Print a(i + 3) + a(2) + a(i + 8)

Ответ: 220

Пояснение: i = 2 ; a(3) = 10 ; a(2) = 100 ; a(2 + 6) = a(2) + a(5 - 2) ; i = 0 ; Debug.Print a(0 + 3) + a(2) + a(0 + 8)

 

 

Теперь решим ту же задачу про удавов в предположении, что удавов не три, а тысяча:

Dim dlina(1 To 1000) As Integer

Dim summa As Integer

Private Sub Command1_Click()



'Вводим длины тысячи удавов, хоть это и утомительно и никто так не делает:

For i = 1 To 1000

dlina(i) = InputBox("Введите длину " & i & "-го удава")

Next

'Здесь на первом выполнении цикла i=1 и поэтому компьютер вводит число в ячейку dlina(1),

'на втором - i=2 и поэтому компьютер вводит число в ячейку dlina(2) и т.д.

'Определяем суммарную длину тысячи удавов:

summa = 0

For i = 1 To 1000

summa = summa + dlina(i)

Next

Debug.Print summa

End Sub

Отлаживая эту программу, возьмите, конечно, вместо числа 1000 число 3.

 

 

Решим еще одну задачу. Дан ряд из 10 произвольных чисел: a(1), a(2), ... , a(10). Подсчитать и напечатать суммы восьми троек стоящих рядом чисел: a(1)+a(2)+a(3), a(2)+a(3)+a(4), a(3)+a(4)+a(5), ...... , a(8)+a(9)+a(10).

Dim a(1 To 10) As Integer

Private Sub Command1_Click()



a(1) = 23: a(2) = 28: a(3) = 4: a(4) = 0: a(5) = 12

a(6) = 10: a(7) = 23: a(8) = 2: a(9) = 9: a(10) = 1

For i = 1 To 8

Debug.Print a(i) + a(i + 1) + a(i + 2)

Next

End Sub

 

Задание 116:. Напишите с использованием массива программу вычисления среднегодовой температуры (Для отладки в компьютере годом можно считать неделю).

Задание 117:. Подсчитайте количество теплых дней в году (когда температура выше 20 град.).

Задание 118:. Каким по порядку идет самый жаркий день?

Задание 119:. Вычислить и распечатать первые 70 чисел Фибоначчи.



<== предыдущая лекция | следующая лекция ==>
Переменные с индексами | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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