АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Линейные структуры

Читайте также:
  1. A) линейные
  2. I. Разработка структуры базы данных.
  3. I. Саморазрушение Структуры
  4. II. Типичные структуры и границы
  5. III. Анализ результатов психологического анализа 1 и 2 периодов деятельности привел к следующему пониманию обобщенной структуры состояния психологической готовности.
  6. III. Органы и структуры эмбриона
  7. V2: ДЕ 11 - Векторные пространства. Линейные операции над векторами
  8. V2: ДЕ 4 – Линейные отображения. Линейные операции над матрицами
  9. V2: ДЕ 5 - Линейные отображения. Умножение матриц
  10. V2: ДЕ 6 - Линейные отображения. Определители второго порядка
  11. Абсолютные и относительные показатели изменения структуры
  12. Абсолютные и относительные показатели изменения структуры

Лабораторная работа № 1

1. Запуск проекта VBA (порядок действий), проект VBA: лист и модуль для ввода текста программ

2. Представление чисел в формате с фиксированной и плавающей точкой.

3. Чтение программ с передачей параметров

4. Программирование задач с неявно заданным алгоритмом

 

Запуск проекта VBA производится следующим образом:

1. Открыть приложение (в нашем случае Excel)

2. На вкладке Разработчик нажать кнопку Visual Basic – откроется окно редактора VB

а) Если вкладка отсутствует, то перейти к пункту Параметры – Настройка ленты. В столбце Основные вкладки поставить галочку в поле Разработчик.

б) Более простой способ вызова редактора VB – нажать сочетание клавиш Alt + F11.

3. В горизонтальном меню окна редактора VB выбрать пункт Insert (Вставка). В ниспадающем меню выбрать Module. Появляется окно для ввода текста программы.

 

1.1. Примеры чтения программ с линейным алгоритмом

 

Пример 1.1. Прочесть программу, написанную в модуле, сопровождающем лист Excel, записать результат, который появится после выполнения программы в ячейке листа С1.

 

  A B C
  10000,0E–01 0,81E+02 =z(A1;B1)

 

Function z(x, y)
z = x ^ (1 / 3) Mod Sqr(y)
End Function

 

Решение:

1. Сопоставляем формальные параметры x, y при вызове программы с фактическими значениями, записанными в ячейках Excel в формате с плавающей точкой:

x = [число в ячейке А1 ] = 10000,0E–01 = 10000×10-1 = 1000 (формат с фиксированной точкой).

y = [число в ячейке B1 ] = 0,81E+02 = 0,81×102 = 81

 

2. Переходим к вычислению z, записывая операторы VBA математическими формулами:

 

3. Для деления по модулю (функция Mod) производим деление «столбиком»:

 

4. В ячейке С1 будет число 1.

  A B C
  10000,0E–01 0,81E+02  

Пример 1.2. Прочесть программу, написанную в модуле, сопровож-дающем лист Excel, записать результат, который появится после выполнения программы в ячейке листа B3.

 
 
Function test2(a%, b%) Pi = Range("A1").Value c = Sin(Pi / a%) +Cos(Pi / b%) test2 = c EndFunction


Решение:

1. Сопоставляем формальные параметры a%, b% при вызове программы с фактическими значениями, записанными в ячейках Excel B1 и C1:

a% = [число в ячейке B1 ] = 2,1 Þ 2 – число присваивается целочисленной переменной, поэтому происходит округление до ближайшего целого.

b% = [число в ячейке С1 ] = 3,3 Þ 3

2. Переменная Pi получает значение из ячейки А1, где записана стандартная функция Excel ПИ() = p, в результате, Pi = p = 3,1415….

3. с =

4. В результате на листе Excel в ячейке B3 будет 1,5:

 

 

Пример 1.3. Прочесть программу, написанную в модуле, сопровождающем лист Excel, записать результат, который появится после выполнения программы в ячейке листа B2.

 
 
Function examp(x) b = 37 \ x c% = Sqr(b) examp = c% EndFunction


 

Решение:

1. Сопоставляем формальный параметр x при вызове программы с фактическим значением 4.8, указанным при вызове функции: x = 4.8

2. Выполняем целочисленное деление в два этапа

a) Округляем x до целого значения 5

б) Выполняем деление до тех пор, пока остаток не станет меньше делителя:

 

3. с% = Þ3 (округляем до целого числа)

4. examp = 3

 

1.2. Задания для самостоятельного чтения линейных программ

На рисунке представлен фрагмент листа Excel и текст сопровождаю-щей его программы. Показать, в каких ячейках листа и какой результат будет после выполнения этой программы.

 

Function z(x, y) z = Sqr(x) \ Sqr(y) End Function
Задание 1.

  A B C
  1000,0E–01 0,81E+02 =z(A1;B1)

 

Function z(x, y) z = x Mod y End Function
Задание 3.

  A B C
  145,0E–01 0,035E+02 =z(A1;B1)

 

 

1.3. Примеры разработки линейных программ

для задач с неявным алгоритмом

 

Пример 1.3. Составить программу для вычисления пути равно­уско­ренного движения, определяемого по формуле , для заданного набора параметров, например, и любого времени t.

 

Решение:

Заносим параметры в ячейки листа Excel: в первом столбце делаем подписи к ячейкам, во втором – вносим числовые значения для переменных, в третьем – их размерности. Первый и третий столбцы являются необязательными, они служат лишь для оформления задачи.

В третьей строке вызываем программу-функцию, реализующую расчет по заданной формуле. Текст программы:

Function S(t) Имя функции S с формальным параметром t
v = Cells(1, 2) Перенос данных с ячеек листа в переменные v и а
a = Cells(2, 2)
s = v * t + a * t ^ 2 / 2 Запись заданной формулы и присвоение результата возвращаемому значению S
EndFunction Конец функции

Рассмотрим еще один вариант решения задачи. Недостатком написанной выше программы является тот факт, что пользователь должен знать, КУДА помещать данные на листе, т.е. видеть и понимать текст программы. Для того, чтобы сделать программу более универсальной, параметры v и a вносим в формальные параметры заголовка программы:

Function s(t, v, a)

s = v * t + a * t ^ 2 / 2

End Function

При вызове такой программы вместо формальных параметров v и a в полях палитры пользовательской функцииуказываются адреса ячеек, где находятся значения переменных: (Рис. 1).

 

 

Рис. 1.1 Палитра пользовательской функции S(t,v,a)

 

Пример 1.4. Составить программу, определяющую количество секторов, занятых файлом на дискете, если известен его размер в байтах?

Решение:

Известно, что один сектор имеет размер 512 байт. Программа, рассчитывающая целое число занятых секторов, может быть записана или через операцию целочисленного деления, или через функцию Fix.

 

Function N_sector1(V) Function N_sector2(V)
N_sector = V \ 512 + 1 N_sector = Fix(V \ 512) + 1
EndFunction EndFunction

 

Здесь формальный параметр V – передаваемый объем файла в байтах. Недостатком обеих программ является их непригодность в случае кратности числа V числу 512: единицу в формуле для этого случая не следует прибавлять. Обойти этот недостаток можно, используя условные операторы, которые будут рассмотрены в следующем параграфе.

 

1.4. Задания для программирования задач с неявно заданным

линейным алгоритмом

 

1. Вычислить общее сопротивление трех резисторов, соединенных последовательно и параллельно.

2. Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности.

3. Даны два действительных положительных числа. Найти среднее арифметическое и среднее геометрическое этих чисел.

 


Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)