Объявление одномерного массива и задание его начальных значений, при   //этом размер массива автоматически будет равен 4. 7 страница



В результате в столбце E окажется сумма выручек за три месяца, в столбце F – процент, назначенный за перевыполнение плана, в столбце G – процент, назначенный в зависимости от занятого места, в столбце H – итоговый процент, в столбце I - величина премии.

 

4.4.2 Начисление премиальных. Использование функции.

Составить таблицу начисления премии по итогам работы сети 4 магазинов за три месяца по следующему правилу:

- если продукции продано на сумму меньше чем 20 тыс. руб. то премия не начисляется.

- если продукции продано на сумму от 20 до 40 тыс. рублей, премия составляет 3% от выручки.

- если продукции продано на сумму от 40 до 80 тыс. рублей, премия составляет 4.5 % от выручки.

- если продукции продано больше чем на 80 тыс. руб. то премия составляет 6.5%.

Аналогично первому заданию составим исходную таблицу и создадим кнопку.

 

 

Создадим отдельно функцию «Премия» - начисление премии в зависимости от объема продаж. Для этого ниже процедуры Onclick напишем функцию:

 

Function Premia(Prodaja as Double) As Double

Select case Prodaja

Case 0 to 20000

Premia = 0

Case 20001 to 40000

Premia = 0.03 * Prodaja

Case 40001 to 80000

Premia = 0.045 * Prodaja

End Select

End Function

 

Пример еще одной функции:

Function Prem(Prod as Double) as Double

Prem = Prod/2

end function

 

Допустимо объявить функцию ниже по коду, после кода в котором происходит ее вызов. После того, как вы определите функцию в коде, вы сразу можете ее использовать и вызывать непосредственно на листе Calc, например, =Prem(A1).

Функция это отдельная подпрограмма, которая может вызываться из основной по отношению к ней подпрограммы или программы. При вызове функции основная программа передает ей управление, функция выполняет свои операторы и завершает выполнение, передавая основной программе вычисленные значения, при этом начинается выполняться оператор основной программы, следующий после вызова функции.

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

Например

Sheet.getCellByPosition(5,i).value = Премия(Sheet.getCellByPosition(4,i).value) или

Sheet.getCellByPosition(5,i).value = 100 +

Премия(Sheet.getCellByPosition(4,i).value*1.1+5000)

В первом случае в функцию передается значение Sheet.getCellByPosition(4,i).value, и функция возвращает расчетное значение в соответствии с алгоритмом и это значение присваивается Sheet.getCellByPosition(5,i).value.

Во втором случае в функцию передается значение выражения Sheet.getCellByPosition(4,i).value*1.1+5000. Затем функция вычисляется, происходит суммирование со значением 100 и результат помещается в Sheet.getCellByPosition(5,i).value.

Добавьте в редакторе Бэйсика код макроса обработчика onclick2 для реализации задания с использованием функции Премия, то есть реализуйте вызов функции премия, таким образом, чтобы был произведен расчет и полей продажа и полей премия. Очевидно, что поле продажа получена суммированием продаж по месяцам.

4.4.3 Вычисление формул, реализация вычислительных функций.

Вычислить значение , где  матрица размерности , причем , . .

 

.

 

Введите данные на лист Calc, матрицу в виде таблицы и вектор в виде строки. Рассчитайте значение S используя стандартные функции Calc в какой либо ячейке.

Для того, чтобы использовать встроенные функции calc можно воспользоваться следующим кодом, пример расчета среднего:

CellRange = Sheet.getCellRangeByName("A1:C3")

CellRange.computeFunction(com.sun.star.sheet.GeneralFunction.AVERAGE)

или, пример расчета суммы

CellRange = Sheet.getCellRangeByName("A1:C3")

CellRange.computeFunction(com.sun.star.sheet.GeneralFunction.SUM)

Кроме AVERAGE и SUM допустимо использовать следующие функции :

• SUM – сумма всех числовых значений;

• COUNT – общее количество всех значений (включая нечисловые значения);

• COUNTNUMS – общее количество всех числовых значений;

• AVERAGE – среднее арифметическое всех числовых значений;

• MAX – наибольшее числовое значение;

• MIN – наименьшее числовое значение;

• PRODUCT – произведение всех числовых значений;

• STDEV - стандартное отклонение;

• VAR – дисперсия;

• STDEVP - стандартное отклонение, основанное на генеральной совокупности;

• VARP - дисперсия, основанная на генеральной совокупности.

 

Реализуйте отдельно функцию расчета суммы квадратов элементов.

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

Функция считающая сумму квадратов, в качестве входного параметра служит объект cellsrange, который должен быть получен функцией GetCellRangeByName.

Function sumqw(cell as Variant) as Variant

dim d as double

d = 0

'цикл по строкам и столбцам передаваемого диапазона

for i = 0 to cell.Rows.Count-1

for j = 0 to cell.Columns.Count-1

'накапливаем сумму

d = d + Cell.getCellByPosition(j,i).Value^2

next j

next i

'присваиваем накопленную сумму

sumqw = d

end function

'функция вычисляющая формулу, в качестве параметров в нее должны передваться:

'list — строка указывающая имя листа в документе

'a1 — строка с диапазоном ячеек массива a

'c1 — строка с диапазоном ячеек матрицы c1

Function Formula1(list as string, a1 as string, c1 as string) as Double

dim suma,sumc,sumaqw as double

dim doc,cellsc,cellsa as Object

'получаем текущий открытый документ

doc = StarDesktop.CurrentComponent

'получаем диапазон ячеек по строке c1

cellsc = doc.sheets.getbyname(list).GetCellRangeByName(c1)

'получаем диапазон ячеек по строке a1

cellsa = doc.sheets.getbyname(list).GetCellRangeByName(a1)

' с помощью нашей функции считаем сумму квадратов

sumaqw = sumqw(cellsa)

' считаем сумму диапазона ячеек с помощью стандартной функции

suma = cellsa.computeFunction(com.sun.star.sheet.GeneralFunction.SUM)

sumc = cellsc.computeFunction(com.sun.star.sheet.GeneralFunction.SUM)

'вычисляем формулу

Formula1 = (2*suma+sumc)/((1+suma)*(1+sumaqw))

end function

 

Пример вызова формулы из Calc:

=FORMULA1("Лист5";"A1:C1";"A1:C3")

 

Другой способ определения функции, когда диапазон ячеек передается не как строка, а обычным способом, как и в других функциях Calc. Ниже приведен пример расчета функции суммы квадратов:

'в функцию передается массив range

Function sumqw1(range) as Variant

dim d as double

d = 0

'цикл с нижней до верхней границы массива по строкам

for i = LBound(Range,1) to UBound(Range,1)

'цикл с нижней до верхней границы массива по столбцам

for j = LBound(Range,2) to UBound(Range,2)

d = d + range(i,j)^2

next j

next i

sumqw1 = d

end function

 

Вызов функции из calc осуществляется обычным способом:

=SUMQW1(A1:C3)

 

Написать функцию расчета формулы используя обычный способ задания диапазона.

5 Лабораторная работа №4 Изучение операционной системы MS-DOS и работы в командной строке

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

5.1. Начальная загрузка компьютера

В информатике начальной загрузкой называется сложный и многошаговый процесс запуска компьютера. Загрузочная последовательность — это последовательность действий, которые должен выполнить компьютер для запуска операционной системы.

Большинство компьютерных систем могут исполнять только команды, находящиеся в оперативной памяти компьютера, в то время как современные операционные системы в большинстве случаев хранятся на жёстких дисках, загрузочных CDROM-ах, USB дисках или в локальной сети.

После включения компьютера в его оперативной памяти нет операционной системы. Само по себе, без операционной системы, аппаратное обеспечение компьютера не может выполнять сложные действия, такие как, например, загрузку программы в память. Таким образом, мы сталкиваемся с парадоксом, который кажется неразрешимым: для того, чтобы загрузить операционную систему в память, мы уже должны иметь операционную систему в памяти.

Решением данного парадокса является использование специальной маленькой компьютерной программы, называемой начальным загрузчиком, или BIOS (Basic Input/Output System). Эта программа не обладает всей функциональностью операционной системы, но её достаточно для того, чтобы загрузить другую программу, которая будет загружать операционную систему. Часто используется многоуровневая загрузка, в которой несколько небольших программ вызывают друг друга до тех пор, пока одна из них не загрузит операционную систему. В современных компьютерах процесс начальной загрузки начинается с выполнения процессором команд, расположенных в постоянной памяти (например на IBM PC — команд BIOS), начиная с предопределённого адреса (процессор делает это после перезагрузки без какой бы то ни было помощи). Данное программное обеспечение может обнаруживать устройства, подходящие для загрузки, и загружать со специального раздела выбранного устройства (чаще всего загрузочного сектора данного устройства) загрузчик ОС.

Начальные загрузчики должны соответствовать специфическим ограничениям, особенно это касается объёма. Например, на IBM PC загрузчик первого уровня должен помещаться в первых 446 байт главной загрузочной записи, оставив место для 64 байт таблицы разделов и 2 байта для сигнатуры AA55, необходимой для того, чтобы BIOS выявил сам начальный загрузчик.

Устройства, инициализируемые BIOS

Загрузочное устройство — устройство, которое должно быть проинициализировано до загрузки операционной системы. К ним относятся устройства ввода (клавиатура, мышь), базовое устройство вывода (дисплей), и устройство, с которого будет произведена загрузка ОС — дисковод, жесткий диск, CD-ROM, флэш-диск, SCSI-устройство, сетевая карта (при загрузке по сети; например, при помощи PXE).

Загрузочная последовательность стандартного IBM-совместимого персонального компьютера

После включения персонального компьютера его процессор начинает работу. Первая выполняемая команда расположена по адресу FFFF0h и принадлежит пространству адресов BIOS. Как правило, данная команда просто передает управление программе инициализации BIOS.

Программа инициализации BIOS с помощью программы POST проверяет, что устройства компьютера работают корректно и инициализирует их.

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

В случае жесткого диска, начальный загрузчик называется главной загрузочной записью (MBR) и часто не зависит от операционной системы. Обычно он ищет активный разделы жесткого диска, загружает загрузочный сектор данного раздела и передает ему управление. Этот загрузочный сектор, как правило, зависит от операционной системы. Он должен загрузить в память ядро операционной системы и передать ему управление. Если активного раздела не существует, или загрузочный сектор активного раздела некорректен, MBR может загрузить резервный начальный загрузчик и передать управление ему. Резервный начальный загрузчик должен выбрать раздел (зачастую с помощью пользователя), загрузить его загрузочный сектор и передать ему управление.

 

5.2. Что же такое операционная система?

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

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

Основные функции (простейшие ОС):

Загрузка приложений в оперативную память и их выполнение;

Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода);

Управление оперативной памятью (распределение между процессами, виртуальная память);

Управление доступом к данным на энергонезависимых носителях (таких как Жёсткий диск, Компакт-диск и т. д.), как правило с помощью файловой системы;

Пользовательский интерфейс;

Сетевые операции, поддержка стека протоколов

Дополнительные функции:

Параллельное или псевдопараллельное выполнение задач (многозадачность);

Взаимодействие между процессами: обмен данными, взаимная синхронизация;

Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений;

Разграничение прав доступа и многопользовательский режим работы (аутентификация, авторизация).

Существуют две группы определений ОС: «совокупность программ, управляющих оборудованием» и «совокупность программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который, однако, становится ясен только при более детальном рассмотрении вопроса о том, зачем вообще нужны операционные системы.

Есть приложения вычислительной техники, для которых ОС излишни. Напр., встроенные микрокомпьютеры содержатся сегодня во многих бытовых приборах, автомобилях (иногда по десятку в каждом), сотовых телефонах и т. п. Зачастую такой компьютер постоянно исполняет лишь одну программу, запускающуюся по включении. И простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без ОС, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске (часто версии ОС для таких систем называются Embedded). Тем не менее, некоторые микрокомпьютеры и игровые приставки всё же работают под управлением особых собственных ОС. В большинстве случаев, это UNIX-подобные системы (последнее особенно верно в отношении программируемого коммутационного оборудования: фаерволов, маршрутизаторов).

Операционные системы, в свою очередь, нужны, если:

вычислительная система используется для различных задач, причём программы, исполняющие эти задачи, нуждаются в сохранении данных и обмене ими. Из этого следует необходимость универсального механизма сохранения данных; в подавляющем большинстве случаев ОС отвечает на неё реализацией файловой системы. Современные ОС, кроме того, предоставляют возможность непосредственно «связать» вывод одной программы с вводом другой, минуя относительно медленные дисковые операции;

различные программы нуждаются в выполнении одних и тех же рутинных действий. Напр., простой ввод символа с клавиатуры и отображение его на экране может потребовать исполнения сотен машинных команд, а дисковая операция — тысяч. Чтобы не программировать их каждый раз заново, ОС предоставляют системные библиотеки часто используемых подпрограмм (функций);

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

необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере (даже содержащем лишь один процессор), осуществляемой с помощью приёма, известного как «разделение времени». При этом специальный компонент, называемый планировщиком, «нарезает» процессорное время на короткие отрезки и предоставляет их поочередно различным исполняющимся программам (процессам);

наконец, оператор должен иметь возможность, так или иначе, управлять процессами выполнения отдельных программ. Для этого служат операционные среды, одна из которых — оболочка и набор стандартных утилит — является частью ОС (прочие, такие, как графическая операционная среда, образуют независимые от ОС прикладные платформы). Таким образом, современные универсальные ОС можно охарактеризовать, прежде всего, как

1. использующие файловые системы (с универсальным механизмом доступа к данным),

2. многопользовательские (с разделением полномочий),

3. многозадачные (с разделением времени).

Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов самой ОС. В составе ОС различают три группы компонентов:

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

системные библиотеки и

оболочка с утилитами.

Большинство программ, как системных (входящих в ОС), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ядерным ресурсам, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что ОС (точнее, её ядро) управляет оборудованием.

 

В определении состава ОС значение имеет критерий операциональной целостности (замкнутости): система должна позволять полноценно использовать (включая модификацию) свои компоненты. Поэтому в полный состав ОС включают и набор инструментальных средств (от текстовых редакторов до компиляторов, отладчиков и компоновщиков).

В 1950-60-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы.

Пакетный режим

Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём ОС может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора.


Дата добавления: 2019-01-14; просмотров: 271; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!