Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

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

Работа добавлена на сайт samzan.net:


PAGE  15

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

Тема: Основы профессиональных информационных технологий.

Цель: выработать навыки использования основных операций и процессов в среде электронной таблицы для автоматизации работы с данными, представленными в табличной форме.

Сведения, необходимые для выполнения работы

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

Функциональные задачи нашли реализацию с использованием профессиональных информационных технологий, например Microsoft Office.

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

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

Рабочая книга MICROSOFT ECXEL представляет собой набор рабочих листов, каждый из них имеет табличную структуру и может содержать одну или несколько таблиц. Для работы с листами удобно использовать контекстное меню, появляющееся при щелчке правой кнопкой мыши по ярлыку активного листа. Каждый лист имеет название. Чтобы его изменить нужно выбрать команду Переименовать в контекстном меню.

Лист состоит из строк и столбцов, которые озаглавлены. На их пересечении образуются ячейки, обозначение играет роль адреса. Адреса используются при записи формул и функций определяющих взаимосвязь между значениями, расположенными в ячейках. Одна из ячеек всегда активна. По умолчанию ссылки на ячейки рассматриваются как относительные – при копировании и перемещении формулы или функции адреса автоматически изменяются в соответствии с расположением ячеек относительно друг друга. При абсолютной адресации ссылки не изменяются. Для изменения способа адресации при вводе или редактировании формулы или функции надо активизировать ячейку (выделить ссылку на нее) и нажать клавишу F4. Элементы с абсолютной адресацией предваряются символом $. Может быть частично абсолютная/относительная ссылка для фиксирования только строки или столбца.

Оформить ячейки можно при помощи пункта меню Формат=> Автоформат. Установить в ячейках формат данных (пункт меню Формат => Ячейки=> Число).

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

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

Значения в столбце «Итого» вычисляется с помощью функции СУММ (кнопка на панели инструментов).

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

При помощи кнопки Мастер диаграмм происходит графическое отображение данных. Нужные столбцы, строки и ячейки выделяются и группируются при помощи кнопок <Shift> и <Ctrl>. На панели инструментов выбрать кнопку Мастер диаграмм. В зависимости от желаемого результата рекомендуется выбирать различные типы диаграмм. В открывшемся окне выбрать тип диаграммы, затем указать диапазон.  Дать  название рядам в соответствии с таблицей. Поместить диаграмму на имеющемся или отдельном листе.

Чтобы отобразить формулы и функции на рабочем листе нужно перейти в режим формул. Для этого в пункте меню Сервис => Параметры=> Вид  и установить флажок Формулы.

Выбрать в меню Данные=> Автофильтр=> Условие, в открывшемся окне Пользовательский фильтр установить критерий отбора и расположить скопировать полученную таблицу в свободное место на листе.

Для упорядочения данных используется пункт меню Данные=> Сортировка. Там же находятся команды для обработки информации из нескольких таблиц, например, Данные=> Итоги или Данные=> Консолидация.

База данных Microsoft Access — это файл специального формата, содержащий информацию, структурированную заданным образом, совокупность связанных данных, правила организации которых основаны на общих принципах описания, хранения и манипулирования данными. По технологии обработки базы данных подразделяются на централизованные, хранящиеся в памяти одной машины и распределенные, состоящие из нескольких, возможно пересекающихся и дублирующих друг друга частей, хранимых в различных ЭВМ. По способу доступа к данным разделяются на базы данных с локальным и удаленным или сетевым доступом.

Создание баз данных, их поддержка и обеспечение доступа пользователей к ней осуществляются централизованно с помощью с помощью специального программного инструментария – системы управления базами данных. СУБД - это комплекс программных и языковых средств, необходимых для создания базы данных, поддержания их в актуальном состоянии и организации поиска в них необходимой информации. СУБД используются для упорядоченного хранения и обработки информации больших объемов. В процессе упорядочения информации СУБД генерируют базы данных, а в процессе обработки сортируют информацию и осуществляют поиск. Многие являются не законченными продуктами, а специализированными языками программирования, с их помощью создаются любые структуры и вводятся в них необходимые элементы управления.

Информация в базах данных структурирована на отдельные записи - группы связанных между собой элементов данных. Характер связи между записями определяет тип организации баз данных: иерархический и реляционный. В иерархической базе данных записи упорядочиваются в определенную последовательность и поиск данных осуществляется последовательным «спуском» со ступени на ступень. Реляционная база данных, представляет собой двумерную таблицу.

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

Поля обладают свойствами. От свойств полей зависит, какие типы данных можно вносить и какие действия допустимо осуществлять над данными. Основным свойством поля является длина в символах или знаках. Уникальным свойством поля является имя, одна база данных не может иметь двух полей с одинаковым именем, но есть еще свойство подпись — это та информация, которая отображается в заголовке столбца. Разные типы полей имеют разное назначение и свойства. Современные СУБД позволяют хранить в виде файлов данные любых типов: числовые, текстовые, графические, звуковые, видео и прочие.

База данных состоит из элементов данных и связей между ними. Связи между информационными объектами могут быть следующие:

1 : 1 – один-к-одному – одному экземпляру первого объекта соответствует один экземпляр второго объекта и наоборот;

1 : М – один-к-многим - одному экземпляру первого объекта соответствует множество экземпляров другого объекта, но каждому экземпляру второго объекта соответствует только один экземпляр первого;

М : М – многие-ко-многим - каждому экземпляру первого объекта соответствует множество экземпляров второго объекта и наоборот.

Данные в базах часто хранятся в виде таблиц. Каждая таблица имеет структуру, которая должна быть такой, чтобы при работе требовалось вводить как можно меньше. Если ввод данных приходится повторять, базу делают из нескольких связанных таблиц. Структуру каждой таблицы разрабатывают отдельно.

Чтобы связи между таблицами работали надежно и по записи из одной таблицы можно было найти записи в другой таблице, надо предусмотреть в таблице уникальные поля, значения в которых не могут повторяться. Если ни одно поле таблицы не приемлемо в качестве уникального, его можно создать искусственно. При создании структуры таблиц одно поле (или одну комбинацию полей) можно назначить ключевым. С ключевыми полями компьютер работает особо: проверяет их уникальность и быстрее выполняет действия. Ключевое поле — кандидат для создания связей. Иногда ключевое поле называют первичным ключом.

Исходное окно Access содержит шесть вкладок этого окна представляют шесть видов объектов, с которыми работает программа.

Таблицы — основные объекты базы данных. В них хранятся данные, которые  можно изменять, удалять, сортировать, фильтровать, размножать и выполнять с ними другие операции.

Запросы — это структуры, предназначенные для обработки данных. С их помощью данные упорядочивают, фильтруют, отбирают, изменяют, объединяют. В MICROSOFT Access запросы создают с помощью бланка запроса по образцу. Запросы на выборку производят выбор данных из базы, их обработку, выполнение итоговых вычислений и другие операции. По результатам запроса создается временная результирующая таблица. На ее основе, можно создавать новые таблицы или изменять существующие. Для этого служат запросы на изменение.

Формы — это объекты, с помощью которых в вводят новые данные или просматривают имеющиеся. Формы — экранные объекты. Проектирование формы состоит в размещении элементов управления на бланке и в задании связей между этими элементами и полями таблиц или запросов. Размещение элементов управления на бланке формы автоматизировано. Создание форм можно выполнять автоматически (Автоформы), полуавтоматически (Мастер) или вручную (Конструктор).

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

Таблицы, запросы, формы и отчеты являются основными объектами базы данных. Их разрабатывает создатель базы данных. Пользователь базы использует эти объекты без вмешательства в их структуру. Разработчик базы данных имеет два типа дополнительных объектов: макросы и модули. Эти объекты создаются, когда стандартных средств управления оказывается недостаточно для выполнения операций, необходимых заказчику. С помощью макросов создают макрокоманды, упрощающие наиболее утомительные операции с базой, а с помощью модулей, написанных на языке программирования Visual Basic, создают программные процедуры для выполнения нестандартных операций.

Задание:

Часть 1. Составить отчет о работе предприятия за три года по показателям: валовая выручка, налог на добавленную стоимость, выручка от реализации, затраты на производство продукции, в том числе: заработная плата, арендная плата, аренда оборудования, другие расходы, а так же валовая прибыль, облагаемый доход, налог на доход предприятия и чистый доход предприятия. Валовая выручка и другие расходы меняются ежемесячно в течении года. Заработная плата, арендная плата, аренда оборудования постоянны в течении года. Статьи:

  •  затраты на производство продукции = сумме всех затрат;
  •  налог на добавленную стоимость составляет 20% от валовой выручки;
  •  выручка от реализации = валовая выручка - налог на добавленную стоимость;
  •  валовая прибыль = выручка от реализации - затраты на производство;
  •  облагаемый доход = сумма валовой прибыли и заработной платы;
  •  налог на доход предприятия составляет 22% от облагаемого дохода;
  •  чистый доход предприятия = валовая прибыль - налог на доход предприятия;

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

Часть 2.  Номер задания соответствует номеру варианта. На первом листе рабочей книги табличного процессора Microsoft Excel составить список из 10 наименований, содержащий сведения о…

Условие

  1.  

…продукции I, II и III сорта, произведенную рабочими за три смены. Подсчитать общее количество изделий каждого наименования, выпущенное в течении смены и рабочего дня.

  1.  

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

  1.  

…телефонных абонентах: ФИО абонента, год установки телефона, номер телефона, адрес абонента. Подсчитать сколько лет стоит телефон у абонента. Указать максимальную и минимальную величину.

  1.  

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

  1.  

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

  1.  

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

  1.  

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

  1.  

…доходах за три месяца членов семьи: отца (55 лет), матери (53 года), дочери (28 лет) и сына (20 лет). Подсчитать доход каждого члена семьи и суммарный доход за каждый месяц и за год.

  1.  

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

  1.  

…цветах, срезанных в оранжерее в течении дня - I, II и III сорта (по длины стеблей). Подсчитать общее количество цветов по названиям и сортам, срезанных в оранжерее в течении рабочего дня.

На втором листе рабочей книги составить таблицу, содержащую данные о …

Условие

  1.  

…цене реализации 1 изделия (I сорт - 100% цены, II и III - уценка 10% и 15%). Подсчитать, на какую сумму выпущено продукции каждого наименования в смену и за рабочий день. По данным построить диаграмму. Указать минимальную и максимальную величину.

  1.  

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

  1.  

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

  1.  

…количестве проданных игрушек за три рабочих дня. Вычислить выручку за каждый день и всего. По этим данным построить диаграмму. Определить сколько осталось игрушек каждого наименования.

  1.  

… отгрузке продуктов. Подсчитать, на какую сумму отгружено продуктов каждого наименования и суммарную выручку. По этим данным построить диаграмму. Определить остаток на складе по каждому наименованию.

  1.  

…расходах предприятий по трем статьям. Подсчитать суммарные расходы каждого предприятия. С учетом этих данных подсчитать прибыли и убытки каждого предприятия. Построить диаграмму.

  1.  

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

  1.  

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

  1.  

…расходах художника - покупка материалов: краски, холст, кисти, багет и т. п. Подсчитать суммарные расходы. С учетом этих данных подвести итоги бюджета и построить диаграмму.

  1.  

… цене реализации цветов (I сорт - 100% цены, II и III - уценка на 20% и 40% соответственно). Подсчитать, на какую сумму реализовано цветов каждого наименования. По этим данным построить диаграмму. Указать цветы, продажа которых составляет максимальную и минимальную величину.

На третьем листе рабочей книги подсчитать среднее значение …

Условие

  1.  

…брака (II и III сорт) в течении рабочего дня. В отдельные таблицы собрать наименования продукции, брак по которым превышает среднее значение, равен ему и меньше среднего значения.

  1.  

…доходов и расходов. Выбрать месяцы, когда доход или расход превышал среднее значение и сформировать отдельные таблицы.

  1.  

…времени междугородних переговоров. В отдельные таблицы вынести ФИО абонентов, время переговоров которых превышает, равно среднему значению и менее среднего.

  1.  

…количества покупаемых игрушек (за три дня). В отдельные таблицы собрать наименования игрушек, которых продано больше среднего значения, равно или меньше среднего.

  1.  

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

  1.  

…доходов и расходов. Выбрать предприятия с доходом и расходом выше, ниже среднего. Если есть предприятия с нулевым балансом - вывести их названия.

  1.  

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

  1.  

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

  1.  

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

  1.  

…брака цветов (II и III сорт) в течении дня. В отдельные таблицы собрать названия цветов, брак по которым превышает среднее значение, равен среднему или меньше среднего значения.

Создать таблицы в MICROSOFT ECXEL и заполнить их более-менее реальными данными и отформатировать. Структура таблицы – произвольная. Выполнить задание частей 1 и 2. Для вычисления использовать встроенные функции  или пользовательские формулы. При обращении к ячейкам должны указываться ссылки на эти листы и ячейки. Листы переименовать в зависимости от помещенной на них информации.

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

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

Часть 3. Номер задания соответствует номеру варианта. Первая таблица содержит сведения о 15...

Условие

  1.  

… студентах первого курса: поле «Номер по порядку» типа счетчик, «Номер зачетной книжки» - текст из 5 символов, поля «Фамилия», «Имя», «Отчество» - текст из 15 символов, «Дата рождения» - дата краткого формата и «Группа» - текст из 6 символов.

  1.  

… слушателей 4 – 5 курсов: поле «Номер по порядку» типа счетчик, «Номер паспорта» - текст из 11 символов, поля «Фамилия», «Имя», «Отчество» - текст из 15 символов, «Дата рождения» - дата краткого формата и «Название курсов» - текст из 6 символов.

  1.  

…автомашинах любых 4 – 5 марок: поле «Номер по порядку» типа счетчик, «Марка машины» - текст из 10 символов, «Двигатель (емкость)» - число фиксированного формата, «Цвет кузова», «Салон», «Магнитола» - текст из 15 символов, «Цена» - денежный формат.

  1.  

… видах мебели для кухни, продаваемых в 4 – 5 магазинах: поле «Номер по порядку» типа счетчик, «Название кухни», «Фасад», «Цвет», «Нестандартные элементы», «Комплектация» - текст из 15 символов, «Цена» - денежный, «Магазин» - текст из 15 символов.

  1.  

… турах: поле «Номер по порядку» типа счетчик, поля «Направление» и «Страна» - текст по 20 символов, «Стоимость» - денежный, поля «Название тур.фирмы» и «Адрес тур.фирмы» - текст из 10 и 20 символов соответственно.

  1.  

… наименованиях мягкой мебели предлагаемой 4 - 5 фирмами: поле «Номер по порядку» типа счетчик, поля «Наименование», «Обивка», «Цвет обивки», «Отделка» - текст из 10 символов, «Цена» - денежный, «Фирма» - текст из 15 символов.

  1.  

… напитках 4 - 5 производителей: поле «Номер по порядку» типа счетчик, поля «Название», «Консерванты» и «Красители» - текст из 15 символов, «% натуральных компонентов» и «% сахара» -  число произвольного формата, «Производитель» - текст из 15 символов.

  1.  

…наименованиях бытовой техники 4 – 5 производителей: поле «Номер по порядку» типа счетчик, поле «Наименование» - текст из 15 символов, «Код» - текст из 10 символов, «Цена» - денежный,  поля «Производитель» и «Страна-производитель» - текст из 15 символов.

  1.  

… автомашинах любых 4 – 5 марок: поле «Номер по порядку» типа счетчик, поля «Марка», «Модель», «Страна производитель» - текст из 10 символов, поля «Двигатель (емкость)» и «Двигатель (мощность)» - число фиксированного формата, поле «Цена» - денежный.

  1.  

… клиентах некой фирмы: поле «Номер по порядку» типа счетчик, поле «ФИО» - текст из 50 символов, «Адрес» - текст из 10 символов, «Телефон» и «Заказ» - число фиксированного формата, «Дата заказа» - дата краткого формата.

В любом другом режиме добавить сведения еще о 5 элементах таблицы. Осуществить поиск данных о…

Условие

  1.  

… студентах с определенной фамилией. Показать данные о студентах старше 20 лет. Получить данные о студентах одной из групп. Вывести данные таблицы «Студенты» и представить результаты фильтрации и запроса. Сформировать таблицу «Успеваемость», для хранения данных по двум экзаменам тех же студентов и выбрать записи о студентах с отличной и хорошей успеваемостью.

  1.  

… слушателях курсов с определенной фамилией. Указать слушателей курсов школьного возраста. Получить данные о слушателях определенных курсов. Вывести данные таблицы «Слушатели курсов» и представить результаты фильтрации и запроса. Сформировать таблицу «Оплата», для хранения данных об оплате слушателями курсов (курсы могут быть оплачены частично) и выбрать записи о слушателей, оплативших курсы и не имеющих долга.

  1.  

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

  1.  

… кухнях с определенным названием. Указать кухни, цена которых меньше некоторого значения. Получить данные о предложениях определенных магазинов. Вывести данных таблицы «Кухни» и представить результаты фильтрации и запроса. Сформировать таблицу «Услуги», для хранения данных о дополнительных услугах, предлагаемых в магазинах при покупки кухни (доставка и сборка может быть бесплатной, оплачиваемой дополнительно или отсутствовать) и выбрать записи о кухнях, сборка и доставка которых производится бесплатно.

  1.  

… туристических поездках в определенном направлении. Указать туристические поездки дороже указанной пользователем суммы. Получить данные о туристических поездках, предлагаемых определенной тур.фирмой. Вывести данные таблицы «Туристические поездки» и представить результатов фильтрации и запроса. Сформировать таблицу «Предложения», для хранения данных о длительности поездки и дополнительных услугах (виза и страховка может входить или не входить в стоимость путевки, а может не предлагаться) и выбрать записи о направлении туристических поездок, в стоимость которых входят виза и страховка.

  1.  

… отделке определенного цвета. Указать наименование мебели дороже указанного значения. Получить данные о предложениях определенной фирмы. Вывести данные таблицы «Мебель» и представить результаты фильтрации и запроса. Сформировать таблицу «Услуги», для хранения данных о дополнительных услугах, предоставляемых фирмами при покупки мебели (доставка и сборка может быть оплачиваемой, бесплатной или отсутствовать) и выбрать записи о наименовании мебели, для которой отсутствует доставка, сборка и гарантия

  1.  

… определенном названии. Указать напитки, содержащие менее 75% натуральных компонентов. Получить данные о напитках определенного производителя. Вывести данные таблицы «Напитки» и представить результаты фильтрации и запроса. Сформировать таблицу «Реализация», для хранения данных о цене напитков и выбрать записи о напитках, с определенными ценой производителя  или ценой реализации.

  1.  

…технике определенного наименования. Указать бытовую технику, произведенную в Германии. Получать данные о бытовой технике определенного производителя. Вывести данные таблицы «Бытовая техника» и представить результаты фильтрации и запроса. Сформировать таблицу «Дополнительные услуги», для хранения данных (доставка, установка и обслуживание может быть оплачиваемой дополнительно, бесплатной или отсутствовать) и выбрать записи о бытовой технике, доставка, установка и обслуживание которой входит в стоимость.

  1.  

… определенной модели. Указать машины, у которых мощность двигателей больше некоторого значения. Получить данные об автомашинах определенной марки. Вывести данные таблицы «Машины» и представить результаты фильтрации и запроса. Сформировать таблицу «Заказы», для хранения данных и выбрать записи об автомобилях, за которые на текущую дату уже произведена оплата и отгрузка

  1.  

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

Вторая таблица содержит сведения о …

Условие

  1.  

… успеваемости: поля «Номер по порядку», «Номер зачетной книжки»,  «Фамилия», «Имя», «Отчество» - такие же, поля «Предмет1» и «Предмет2» - типа число фиксированного формата.

  1.  

… оплате: поля «Номер по порядку», «Номер паспорта»,  «Фамилия», «Имя», «Отчество» - такие же, поля «Оплачено» и «Долг» – типа денежный.

  1.  

… оплата: поля «Номер по порядку», «Марка машины» и «Цена» - такие же, поле «ФИО владельца» типа текст из 50 символов, «Номер паспорта» - текст из 11 символов, «Оплачено» и «Долг» - денежный.

  1.  

… услугах: поля «Номер по порядку», «Название кухни», «Комплектация», «Магазин» - такие же, поля «Доставка» и «Сборка» - текст из 10 символов, «Гарантия» - число фиксированного формата.

  1.  

… предложениях: поля «Номер по порядку», «Направление», «Название тур.фирмы» - такие же, поля «Виза» и «Страховка» - текст из 5 символов, «Длительность» - дата произвольного формата.

  1.  

… услугах: поля «Номер по порядку», «Наименование», «Фирма»  - такие же, поля «Доставка» и «Сборка» - текст из 10 символов, «Гарантия» - число фиксированного формата.

  1.  

… реализации: поля «Номер по порядку», «Название», «Производитель»  - такие же, поля «Цена производителя» и «Цена реализации» - денежный.

  1.  

… дополнительных услугах: поле «Номер по порядку» типа счетчик, поле «Наименование», «Код», «Цена» - такие же,  поля «Доставка», «Установка» и «Обслуживание» - текст из 5 символов.

  1.  

… заказах: поля «Номер по порядку», «Марка», «Цена» - такие же, поля «Код» - текст из 10 символов, поля «Дата заказа», «Дата оплаты» и «Дата отгрузки» - дата краткого формата.

  1.  

… заказах: поля «Номер по порядку» типа счетчик, «ФИО», «Заказ» - такие же, поля  «Дата оплаты» и «Дата отгрузки» - дата краткого формата.

Проанализировать обе таблицы и связать их. Внести сведения еще о 5 элементах, а также сообщить …

Условие

  1.  

… фамилию, имя и отчество студентов со слабой успеваемостью определенной группы.

  1.  

… фамилию, имя и отчество слушателей, имеющих долг за курсы в определенной группе.

  1.  

… фамилию, имя и отчество владельцев автомашин определенной марки, имеющих долг.

  1.  

… название и цену кухни, гарантия на которую 2 года.

  1.  

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

  1.  

… наименование и стоимость мебели, при покупке которой определенная фирма предлагает доставку.

  1.  

… название, содержание натуральных компонентов  и производителя напитков реализуемых по максимальной цене.

  1.  

… наименование и код бытовой техники, произведенной в Японии, установку которой нужно оплачивать дополнительно.

  1.  

… код и цену автомашин определенной марки.

  1.  

… даты заказа, оплаты и отгрузки заказов, номера которых лежат в некотором диапазоне.

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

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

Сформировать новую таблицу (дублирующие поля скопировать из первой таблицы). Любым способом выбрать записи по критериям. Предоставить результаты в виде отчета.

Проанализировать созданные таблицы. Определить ключевые поля. Установить связи между таблицами.

Создать составную форму для ввода новой информации в таблицы.

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

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

Сделать вывод по полученным результатам работы.

Вопросы для самоконтроля:

1. В чем особенности технологии обработки разных видов информации.

2. Что такое программные средства и программные системы?

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

4. Как вы понимаете технологизацию социального пространства.

5. Каково место компьютерной техники и технологии в современном мире.

6. Примеры универсального и специализированного ПО.

7. Требуется ли от пользователя специальных знаний в области информационных технологий при работе с современным прикладным ПО?

Литература: 1, 4, 6, 7, 9, 10.

Лабораторная работа № 2.

Тема: Основные алгоритмические конструкции.

Цель: Изучить возможности ЯП TP для реализации вычислительного процесса условной (разветвляющейся) и циклической структуры.

Сведения, необходимые для выполнения работы

Оператор условного перехода реализует разветвляющейся алгоритм и имеет вид: 

IF условие THEN оператор1 ELSE оператор2;.      

где IF - если, THEN - тогда, ELSE - иначе; оператор1, 2 - любой оператор.

При выполнении условия работает оператор1 и управление передается далее. При невыполнении условия работает оператор2, после управление передается на следующий за IF оператор. В качестве оператора1, 2 может быть составной оператор. Перед ELSE точку с запятой ставить нельзя!

Допускается краткая (неполная) форма условного оператора:

IF условие THEN оператор1;    

Оператор безусловного перехода. Иногда использование условных операторов усложняет программу. Обычно это связывается с обработкой исключительных ситуаций. Для этого существует оператор безусловного перехода GOTO. С его помощью естественный порядок выполнения программы прерывается и указывается, что дальнейшее должен выполняться оператор, помеченный меткой. Метка до использования указывается в разделе описания меток LABEL. Метка – это целое, без знака число от 0 до 9999. При помощи метки нельзя войти во внутрь цикла, минуя его заголовок и передавать управление из одной ветви условного оператора в другую.

Оператор выбора. При написание программы не рекомендуется использовать многократно вложенные друг в друга условные операторы (максимум два – три). Но если необходимо применить много условий используется оператор выбора CASE:

CASE индекс выбора OF 

константа_выбора1: оператор1;

……………………………………………..;

константа_выбораN: операторN;

Оператор выбора состоит из выражения – индекса выбора и списка операторов, каждый из которого помечен константой выбора или несколькими. Все константы должны быть различными, их тип – идентичен типу выражения (индекса выбора) - простой тип за исключением REAL. В операторе выбора можно использовать диапазоны для констант выбора. При выполнении оператора сначала вычисляется значение индекса выбора, а затем выбирается для выполнения тот оператор из списка, который содержит данное значение константы выбора. Если подходящей константы выбора нет, то возникает ошибка и выполнение всей программы завершается. В каждом элементе выбора можно использовать только один оператор или использовать составной оператор. Все константы выбора внутри одного CASE обязательно должны быть различными. В различных операторах выбора разрешается использовать одинаковые константы выбора.

Оператор цикла со счетчиком служит для организации цикла с известным числом повторений и имеет вид:  

FOR I : = N ТО К DO оператор ;       

где FOR - для, TO - до, DOвыполнить, I - параметр цикла, N – его начальное значение и  К конечное значение, оператор, выполняющийся в цикле.

Оператором цикла может быть составной оператор. После DO нельзя ставить точку с запятой, т. к. в цикле будет выполняться пустой оператор. I, N, К - целого типа. Начальным и конечным значением могут быть константы или выражения. N<К и шаг изменения параметра 1. Вычисляются выражения N и К или берутся введенные значения. Параметр цикла I принимает начальное значение N и сравнивается с конечным значением К. Если параметр цикла не превышает К, управление передается в тело цикла и выполняются операторы. Затем параметр цикла увеличивается на 1 и работа повторяется, выход из цикла происходит когда параметр цикла превысит К.

Если N, шаг изменения параметра равен -1, тогда оператор имеет вид:

FOR I : = N DOWNТО К DO оператор;

В цикле FORDOWNTO если параметр цикла не меньше К, управление передается в тело цикла и выполняются операторы. Затем параметр цикла уменьшается на 1 и работа повторяется, выход из цикла происходит когда параметр цикла станет меньше К. После завершения цикла значение параметра не определено.

Если в цикле FOR ТО начальное значение больше конечного, а в цикле FORDOWNTO - меньше, то цикл не выполняется ни разу.

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

WHILE условие DO оператор ;          

где  WHILE - пока, DO - выполнить, условие - условие работы цикла.

В качестве оператора может применяться составной оператор.

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

Оператор цикла с постусловием.

Общий вид записи оператора цикла с постусловием:

RЕРЕAТ оператор UNTIL условие ;        

где RЕРЕAТ - повторить, UNTIL - до тех пор, условие - условие прекращения работы цикла.

Сначала выполняются операторы цикла, затем проверяется условие выхода. Если оно не выполняется, то управление передается в цикл. Если условие истинно, происходит выход из цикла. Особенность цикла - операторы тела цикла выполняются хотя бы раз. Значения переменных, входящих в условие, должны изменяться внутри цикла, иначе цикл никогда не завершится. Если в цикле необходимо выполнить несколько операторов, то служебные слова цикла сами являются как бы операторными скобками и применение BEGIN и END не обязательно.

Одну и ту же задачу можно решить при помощи любого из циклов WHILE или REPEAT. При этом условия должны быть прямо противоположными.

Задание:

Выбрать из курса Математики систему уравнений, состоящую как минимум из трех уравнений, выявить для нее граничные условия изменения аргумента и входные данные в виде констант.

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

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

Вопросы для самоконтроля:

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

2. Какие конструкции аналогичны проверке условия и осуществляют переход?

3. Опишите оператор условия и приведите примеры его использования.

4. Приведите примеры использования оператор выбора.

5. Приведите примеры использования оператора безусловного перехода.

6. Как группируются составные операторы?

7. Почему будет ошибкой ставить ; в середине операторов?

8. Привести примеры задач или реальные ситуации, для которых можно использовать цикл со счетчиком, шаг изменения параметра которого равен -1.

9. Какой цикл может не обрабатываться ни разу, если условие сразу не выполнимо, а какой выполнится хотя бы один раз?

Литература: 1, 2, 3, 4, 5, 7, 9, 14, 16, 36.

Лабораторная работа № 3.

Тема: Обработка структурированных типов данных.

Цель: Изучить способы описания и основные принципы обработки массивов на ЯП TP.

Сведения, необходимые для выполнения работы

Структурированные типы данных характеризуется:

  1.  множественностью элементов, когда переменная или константа имеет несколько компонентов;
  2.  все компоненты должны быть одного типа;
  3.  компоненты упорядочены, доступ к обеспечивается указанием его номера.

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

var  Имя_массива: ARRAY [размерность] OF тип_элементов;   

где имя_массива - идентификатор; ARRAY  - массив; OF - из;

В качестве размерности массива можно использовать любые порядковые типы, обычно тип-диапазон, в котором задаются изменения индексов. Тип элементов - любой, он может быть и другим массивом. Глубина вложенности структурированных типов - произвольная. Число элементов массива должно задаваться заранее. Если необходимо использование массивов переменной размерности, то описываются массивы с максимально возможным числом элементов, а реально используется только часть. Заполнение и вывод массива можно осуществить с клавиатуры, с помощью генератора случайных чисел RANDOM или из файла.

Оператором присваивания передать все элементы одного массива другому массиву того же типа. Hад массивами не определены операции отношения.

Способ выделения памяти для хранения элементов массива регулируется с помощью зарезервированного слова PACKED (упакованный), что должно уменьшить объем памяти, выделяемый под переменные этого типа.

TYPE Имя_массива = PACKED ARRAY [размерность] OF тип;      

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

Массивы, положение элементов в которых описывается несколькими индексами, называется многомерными. Их описание задается следующим образом:

var Имя_массива: ARRAY [размерность1, …, размерностьn] OF тип_ элементов;      

Доступ к каждому элементу массива осуществляется с помощью индекса, который не должен выходить за пределы, описанные типом-диапозоном. Turbo Pascal контролирует использование индексов на этапах компиляции и счета программы. Двумерный массив часто называется матрицей. Матрица представляет собой таблицу, состоящую из нескольких столбцов и строк. Над матрицами можно выполнять различные операции: сложение, умножение, вычитание, транспонирование и другие. Положение элемента в двумерном массиве описывается двумя индексами, например I–номер строки и J–номер столбца. Ввод, вывод и обработка многомерного массива осуществляется вложенными циклами.

Задание

Часть 1.  Номер задания соответствует номеру варианта.

Действия

Условия

  1.  

Вычислить сумму и количество элементов массива A, находящихся в указанном диапазоне. Определить максимальный элемент массива A и его порядковый номер.

A(10)

0  Ai  1

  1.  

Подсчитать количество нулевых элементов массива B. Определить минимальный элемент массива B и его порядковый номер.

B(10)

Bi = 0

  1.  

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

C(10)

Ci  0

  1.  

Вычислить сумму и количество элементов массива D, находящихся в Указанном диапазоне. Определить максимальный элемент массива D и его порядковый номер.

D(10)

-1 Di 1

  1.  

Заменить элементы массива F, имеющих четные порядковые номера на А. После определить минимальный элемент массива F и его порядковый номер.

F(10)

i MOD2 = 0

А=100

  1.  

Определить порядковый номер элементов массива G равного заданному числу X. Определить минимальный элемент массива G и его порядковый номер.

G(10)

G i =X

  1.  

Заменить элементы массива K не больше 15 их кубами. После этого определить минимальный элемент массива K и его порядковый номер.

K(10)

Ki  15

  1.  

Заменить отрицательные элементы массива L на их квадраты. После этого определить максимальный элемент массива L и его порядковый номер.

L(10)

Li  0

  1.  

Увеличить на 2 все элементы массива M, которые больше 10. После этого определить минимальный элемент массива M и его порядковый номер.

M(10)

Mi  10

  1.  

Найти минимальный и максимальны элемент массива Y(10) и поменять их местами.

Yi = МАX

Yi = MIN

Часть 2. Номер задания соответствует номеру варианта.

Действия

Условия

  1.  

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

A(3,5).

Aij 0

  1.  

Вычислить сумму и количество отрицательных элементов каждой строки двухмерного массива B. Результаты отпечатать в столбец.

B(5,3)

Bij < 0

  1.  

Вычислить сумму и количество элементов квадратной матрицы C, находящихся над главной диагональю, под и на ней.

C(3,3)

I+J=CONST

  1.  

Транспонировать квадратную матрицу D. Вывести на печать элементы главной диагонали матрицы D в строку.

D(3,3)

I+J=CONST

  1.  

Транспонировать квадратную матрицу E. Вывести на печать элементы побочной диагонали матрицы E в столбец.

E(3,3)

I+J=CONST

  1.  

Найти в каждой строке квадратной матрицы F наибольший элемент и поменять его местами с элементом главной диагонали.

F(3,3)

Fij = MAX

  1.  

Найти сумму элементов массива G, имеющих заданную разность индексов X (целое, модуль).

G (5,3)

i - j = x

  1.  

Подсчитать количество и сумму положительных и отрицательных элементов массива G.

G(5,3)

Gij 0, Gij < 0

  1.  

Найти в каждой строке массива V максимальный и минимальный элемент. Поместить их соответственно на место первого и последнего элемента этой строки массива.

V(2,6)

Vij = MAX

Vij = MIN

  1.  

Просуммировать элементы массива K, сумма индексов которых равна заданной константе X. (целое).

K(3,5)

i+j=x 

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

Вопросы для самоконтроля:

  1.  Изучить классические алгоритмы обработки массивов: ввод и вывод, вычисление суммы, произведения и среднего арифметического, нахождение количества элементов, удовлетворяющих условию.
  2.  Ознакомиться с особенностями алгоритма поиска максимального или минимального значения и их порядкового номера.
  3.  Рассмотреть алгоритм вставки и удаления элементов из массива.
  4.   Привести примеры двух и более мерных массивов в реальной жизни.
  5.   Рассмотреть особенности многомерных массивов во вложенных циклах.
  6.   Что включает в себя понятие «пользовательские типы»? Почему, по вашему мнению, они так называются?

Литература: 1, 2, 3, 4, 5, 7, 9, 14, 16, 36.

Лабораторная работа № 4.

Тема: Программирование с использованием процедур и функций с элементами структуризации программ.

Цель: Овладение навыками алгоритмизации и программирования задач с использованием подпрограмм пользователя различных видов и библиотеки подпрограмм ЯП TP.

Сведения, необходимые для выполнения работы

Подпрограмма - это повторяющаяся группа операторов, оформленная в виде самостоятельной программной единицы. Она записывается однократно, а в соответствующих местах обеспечивается обращение к ней по имени. Имеется две подпрограммы: процедуры и функции. Применение стандартных подпрограмм не требует дополнительных описаний, они представлены в модуле SYSTEM. Все прочие функции и процедуры должны быть описаны в разделе описания процедур PROCEDURE и функций FUNCTION или в отдельном модуле.

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

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

В тексте программы описание подпрограммы всегда следует за описанием переменных и до начала основной части. После того, как подпрограмма описана, её можно использовать в основной программе.

Все переменные делятся на локальные и глобальные. Глобальные - объявлены в описании основной программы. Локальные - переменные, которые объявлены в подпрограммах (процедурах и функциях). Они существуют только, когда работает подпрограмма, появляющаяся при вызове и исчезают при завершении.

Описание действий в подпрограмме осуществляется с использованием формальных параметров. Обращение к подпрограмме осуществляется с фактическими параметрами, которые должны соответствовать формальным. Число и тип формальных и фактических параметров должно совпадать с точностью до их следования. Фактические параметры - которые передаются подпрограмме при обращении к ней из основной программы. Формальные параметры - фиктивно присутствуют в подпрограмме, определяют тип и место подстановки фактических параметров, над которыми производятся действия. Формальные параметры относятся к двум видам: параметрам-значениям и параметрам-переменным. Отличаются параметры-значения от параметров-переменных тем, что в заголовке перед параметром-переменной ставится служебное слово var.

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

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

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

Процедуры и функции могут вызывать другие подпрограммы и самих себя. Для этого предусмотрено предварительное описание подпрограммы, состоящее из заголовка и зарезервированного слова FORWARD.

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

Procedure F ( q1 : t1 ; q2 : t2 ; VAR q3 : t3 ) ;

РАЗДЕЛ ОПИСАНИЙ ;

begin

ОПЕРАТОРЫ процедуры ;

end;

где F - имя процедуры; q1, q2, q3 - имена формальных параметров; t1, t2, t3 - типы параметров.

Обращение к процедуре в основной программе осуществляется так:

F ( B1 , B2 , В3 ) ;

где F - имя процедуры; В1, В2, В3 - имена фактических параметров.

Функции используются так:

Function F ( q1 : Т1 ; q2 : T2 ) : T ;

РАЗДЕЛ ОПИСАНИЙ ;

Begin

ОПЕРАТОРЫ функции ;

End;

где F - имя функции; ql, q2 - имена формальных параметров; Т1, Т2 типы параметров; Т - тип результата функции.

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

F ( BI , B2 ) ;

где F - имя функции; В1, В2 - имена фактических параметров.

Отличие функций от процедур заключается в следующем:

  1.  процедура может иметь новые значения у нескольких параметров, а функция только одно, которое будет ее результатом.
  2.  в заголовке записывается тип результата функции.
  3.  в теле функции обязательно должен быть оператор присвоения, где в левой части стоит имя функции, а в правой - её значение.

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

Задание:

Вариант

Формула

Условия

  1.  

Двухмерные массивы A(I,J) и B(I,J); X=2; N, M – переменные.

  1.  

Z = +

Двухмерные массивы A(I,J) и B(I,J); X=2.5; N, M – переменные.

  1.  

Z = -

Двухмерные массивы A(I,J) и B(I,J); X=3; N, M – переменные.

  1.  

Z = X∙+X∙

Двухмерные массивы A(I,J) и B(I,J); X=5; N, M – переменные.

  1.  

Z = +

Двухмерные массивы A(I,J) и B(I,J); X=5.5; N, M – переменные.

  1.  

Z = -

Двухмерные массивы A(I,J) и B(I,J); X=6; N, M – переменные.

  1.  

Z = +

Двухмерные массивы A(I,J) и B(I,J); X=7; N, M – переменные.

  1.  

Z =

Двухмерные массивы A(I,J) и B(I,J); X=7.5; N, M – переменные.

  1.  

Z = X∙+X∙

Двухмерные массивы A(I,J) и B(I,J); X=8; N, M – переменные.

  1.  

Z = +

Двухмерные массивы A(I,J) и B(I,J); X=8.5; N, M – переменные.

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

Вопросы для самоконтроля:

  1.  Рассмотреть предопределенные процедуры и функции Turbo Pascal.
  2.  Изучить создание пользовательских процедур и функций.
  3.  Ознакомьтесь со встроенными процедурами и функциями Turbo Pascal.

4.  Каковы преимущества использования подпрограмм? Для чего они нужны?

5. Чем отличаются глобальные и локальные переменные, фактические и формальные параметры, параметры-значения и параметры-переменные.

Литература: 1, 2, 3, 4, 5, 7, 14, 16, 36.

Лабораторная работа № 5.

Тема: Разработка диалоговых программ в Turbo Pascal.

Цель: Освоить проектирование диалоговых программ на ЯП TP.

Сведения, необходимые для выполнения работы

Диалоговый или интерактивный режим – это активный обмен сообщениями между участниками информационного процесса, когда прием, обработка и выдача сообщений производятся в реальном масштабе времени. Может быть парным и множественным. При парном диалоге субъектами могут выступать люди и технические средства. В основе машинной диалоговой технологии лежит взаимодействие человека и машины посредством передачи и приема сообщений через технические устройства. При разработке технологии обработки данных в ДР одним из важнейших вопросов является организация непосредственного диалога пользователя и машины. Для пользователей ДС должна быть прозрачной и требовать выполнения обычных действий. Пользователь должен получать разъяснения или подсказки по содержанию требуемых действий. В процессе разработки ДС рекомендуется учитывать: определяющие принципы проектирования систем и требования к эксплуатационным характеристикам ДС.

Создание ДС может быть представлено по шагам:

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

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

Задание: Составить тест по любой теме, посвященной программированию на TP и добавить в программу элементы диалога при ответах на вопросы. Придумать десять вопросов, на каждый из которых предусмотрено три-четыре варианта ответов, один или два из которых правильные. Изучить существующие алгоритмы принятия решений и реализацию обработки статистических данных. Составить алгоритм и, по нему, блок-схему. Набрать разработанную программу. Подготовить тестовый вариант программы и исходных данных.

Вопросы для самоконтроля:

  1.  Рассмотреть особенности ДР работы.
  2.  Ознакомиться с типами организации диалога.
  3.  Изучить требования психологии и эргономике, учитываемые при разработке диалоговых программ.

Литература: 1, 2, 3, 6, 7, 9, 14, 16.

Лабораторная работа № 6.

Тема: Обработка файловых структур данных.

Цель: Ознакомиться со спецификой работы с функциональным типом данных на примере текстовых файлов ЯП TP.

Сведения, необходимые для выполнения работы

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

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

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

Каждый внешний файл должен описываться как переменная в главной программе. Файлы, не используемые для ввода и вывода данных, являются внутренними, локальными переменными. Переменные файлового типа могут быть описаны в программе либо явно в разделе переменных:

VAR имя_файла: FILE OF базовый_тип_элементов;

Операции над файлами.

ASSIGN (имя_файл_переменной, ’имя_файла’) – присваивание имени файла, для установления связи между переменной и именем файла, присваиваемого ОС. Все операции с переменной будут выполняться с файлом на диске. Нельзя употреблять для используемого файла.

REWRITE (имя_файл_переменной) – открытие файла для записи. Запись в файл – это вывод результатов программы из оперативной памяти на диск. На внешнем устройстве создается новый файл с именем, присвоенным переменной, он подготавливается к обработке, указатель устанавливается на начало –. Файл сначала пустой. Существующий файл с таким же именем стирается.

RESET (имя_файл_переменной) – установка файла в исходное состояние, данные становятся доступными. Файл с именем, присвоенным переменной, подготавливается к обработке и указатель устанавливается на начало.

APPEND (имя_файл_переменной) – открытие внешнего файла. Файл, обозначенный переменной, открывается, и указатель перемещается на конец файла для добавления новых компонентов.

READ (имя_файл_переменной, элемент) – чтение из файла. Под чтением понимается ввод данных из внешнего файла в оперативную память.

WRITE (имя_файл_переменной, элемент) – запись в файл. Элемент должен быть типа элементов файла.

SEEK (имя_файл_переменной, N) – установка указателя на  N-ый элемент, обозначенного переменной. N - целочисленное выражение.

SEEK (имя_файл_переменной, FILESIZE (имя_файл_ переменной)) – перемещает указатель в конец файла чтобы расширить файл. Содержит количество компонентов в файле.

FLUSH (имя_файл_переменной) – осуществляет очистку внутреннего буфера переменной, и гарантирует, что он будет записан на диск, если во время последнего обновления диска выполнялись какие-либо операции записи. Обеспечивает, что следующая операция чтения будет брать данные из дискового файла.

CLOSE (имя_файл_переменной) – закрытие дискового файла, обозначенного переменной. При этом справочник диска обновляется.

ERASE (имя_файл_переменной) – удаление файла на внешнем носителе. Если файл открыт и над ним производились действия командами RESET и REWRITE, перед стиранием файла его необходимо закрыть.

RENAME (имя_файл_переменной, ’новое_имя_файла’) – переименование внешнего файла. Справочник диска обновляется, в него заносится новое имя файла. Новое имя файла не должно совпадать с существующем.

Обработка файлов.

EOF (имя_файл_переменной) – определение конца файла. Число элементов файла не задается заранее, но вводится признак конца файла: логическая функция, результат которой TRUE (истина) или FALSE (ложь).

FILEPOS (имя_файл_переменной) – определение номера элемента, на который «смотрит» указатель. Целочисленная функция - номер компонента.

PUT (имя_файл_переменной) – добавляет новый компонент, осуществляет запись значения переменной в файл..

GET (имя_файл_переменной) – выбор следующего компонента файла, передвижения указателя на один компонент. переменная получает значение компонента, если файл не пуст.

3. Текстовые файлы содержат символы, разделенные на строки. В конце каждой строки стоит признак ее конца. Для описания используется слово TEXT:

VAR имя_файла : TEXT ;

Текстовые файлы не являются типизированными. Их отличие от типизированных файлов заключается в следующем:

1. Элементами текстовых файлов являются символы со строковой структурой.

2. При чтении и записи числа преобразуются автоматически.

Операции над текстовыми файлами.

Для текстовых файлов применимы те же процедуры и функции, что и для обычных файлов: ASSIGN, RESET и REWRITE. Но SEEK, FLUSH, FILEPOS и FILESIZE к текстовым файлам применять нельзя.

APPEND (имя_файл_переменной) – открытие внешнего файла, с которым связана файловая переменная и помещение указателя в конец.

EOLN (имя_файл_переменной) – определение конца строки. Результат выполнения равен – TRUE (истина), если указатель стоит на символе конца.

SEEKEOLN (имя_файл_переменной) – определение конца строки. Указатель перескакивает пробелы и табуляцию, перед выполнением на конец строки.

SEEKEOF (имя_файл_переменной) – определение конца файла. Применительно к текстовому файлу результат операции равен – TRUE (истина), если указатель файла располагается на метке конца файла.

Специфика ввода и вывода текстового файла. Ввод и вывод текстовых файлов выполняется при помощи операций READ, READLN, WRITE и WRITELN, задающихся с параметрами. Если параметром процедуры ввода-вывода является идентификатор переменной текстового файла, то выполнение будет производиться с использованием файла, иначе - будут использоваться стандартные файлы INPUT  и  OUTPUT, их не нужно описывать.

READ (имя_файл_переменной, переменная1, …, переменнаяN) – ввод из текстового файла и подготавливается только для чтения. После выполнения команды READLN считывается информацию с начала следующей строки.

WRITE (имя_файл_переменной, переменная1,…, переменнаяN) – вывод из текстового файла который предварительно был назван файловой переменной. Аналогично выполняется команда WRITELN.

Задание: Выполняется на основе программы по заданию из лабораторной работы № 5. Предусмотреть сообщение результатов тестирования в виде оценки и выдачу рекомендаций пользователю или экстренный выход из программы.

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

Для работы нужно будет вспомнить особенности работы с символьными и строковыми типами данных и оператор LENGTH (СТРОКА) - длина строки (результат типа INTEGER).

Вопросы для самоконтроля:

  1.  Общий алгоритм создания и обработки файла для Turbo Pascal.
    1.  Привести примеры использования файлов последовательного доступа.
    2.  Как распознать конец файла данных средствами Turbo Pascal?

Литература: 1, 2, 3, 6, 7, 9, 14.

Лабораторная работа № 7.

Тема: Знакомство с объектно-ориентированной средой программирования.

Цель: Ознакомиться с объектами: форма, текстовое поле, рисунок, кнопка и их основными свойствами, а также другими элементами в среде программирования Borland Delphi.

Сведения, необходимые для выполнения работы

Форму (Form) используют для создания окна программы-приложения. Текстовое поле (Label) используют для создания текстов и надписей в окне программы. Кнопку (Button) используют для размещения элемента управления кнопки на форме. Картинка, изображение (Image) используют для вставки графических объектов из файлов типа *.bmp, *.emf, *.ico, *.wmf в форму.

В результате загрузки системы Delphi на экране откроются четыре окна:

  •  главное — Project1, где находятся панель инструментов, палитра компонентов и главное меню;
  •  инспектора объектов Object Inspector со значениями свойств объекта;
  •  формы Form1, где приведены результаты работы будущей программы;
  •  текста программы (Unit1.pas).

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

F10 - для активизации главного меню (после этого нажмите на Esc);

F11 - для активизации окна инспектора объекта;

F12 -  для перехода между окнами формы и кода программы.

Alt + пропуск - вызов системное меню.

Запустить программу можно выбрав команду Run => Run главного меню или кнопку Run панели инструментов, а также нажав F9.

Для сохранения программы выполняется команда File => Save All (Сохранить все) или нажимается кнопка Save All   на панели инструментов. В поле Save in: (Сохранить в:) окна Save Unit1 As выбирается название диска и папки, задается название для файла текста программы вместо Unit1.pas => Save. В следующем окне Save Project1 As вводится название файла проекта, удалив предложенное Project1.dpr => Save. Файлы проекта и текста программы должны иметь разные названия.

Для создания ехe-файла проекта выполнить команду главного меню Project => Build All (Сконструировать Все). Запустить ехе-файл с именем проекта по пиктограмме .

Задание: (см. приложение 1)

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

Предварительно изменить цвет формы под характер фотографий.

Вставить в форму текстовое поле с текстом, изменить значения свойства Font (шрифт) текстового поля, Font style, Size, Color. Аналогично вставить в форму еще несколько текстовых полей для своих биографических данных.

Вставить в форму объект Image (картинка) расположить портретную фотографию с помощью свойства Picture (иллюстрация) объекта Image1. Наложить художественную фотографию на портретную, вставив в форму еще один объект Image. Установить значение свойства Visible в False для обоих изображений.

Вставить в форму две кнопки Button для поочередного отображения наложенных фотографий. Поменять подписи на кнопках и выбрать шрифт. Запрограммировать кнопки с фотографиями соответственно назначению. Вставить в форму третью фотографию (дома или машины) и еще одну кнопку с соответствующей подписью.

Создать ехe-файл проекта. Поменять сценарий работы программы на другие.

Вопросы для самоконтроля:

  1.  Перечислить системы объектно-ориентированного программирования.
  2.  В чем удобство работы в средах визуального программирования?
  3.  Приведите примеры языков или сред программирования, работающих по разным принципам.
  4.  Что такое управляющие элементы? Для чего они нужны?
  5.  Зачем нужно сохранение проекта и создание исполняемого файла?

Литература: 1, 2, 3, 7, 9, 11, 39.

Лабораторная работа № 8.

Тема: Программирование ветвлений и табулирования функций в Borland Delphi.

Цель: изучить особенности программирования ветвлений и табулирования функций среды программирования Borland Delphi.

Сведения, необходимые для выполнения работы

Поле редактирования (Edit) используют для ввода строки символов с клавиатуры. Для преобразования полученной строки (свойство Text) в число и наоборот применяют стандартные функции Val и Str, или функции среды StrToFloat и FloatToStr. Переключатель (RadioButton) используют для выбора действия среди нескольких альтернатив.

Для вставки в форму поля редактирования нужно щелкнуть на пиктограмме Edit  на закладке Standard палитры компонентов, а потом - в нужном месте на форме. Чтобы вставить в форму переключатель нужно щелкнуть на пиктограмме RadioButton  на закладке Standard палитры компонентов главного окна, а после - в точке вставки на форме. Для активности переключателя задается значение свойства Checked (контроль выбора) - True.

Запрограммировать радиокнопку можно так. Активизировать поле Edit и щелкнуть дважды на переключателе RadioButton. При этом получится заготовка процедуры, в ее теле опишите действия, которые должны быть выполнены в результате щелчка на переключателе RadioButton:

procedure TForm1.RadioButton1Click (Sender: Tobject);

begin

Label1.Caption := '=>'; {Меняем символ}

Edit1.SetFocus              {Активизируем поле Edit1}

end;

Для программирования кнопки «Выход» удобно воспользоваться процедурой закрытия окна программы Close:

procedure TForm1.Button2Click (Sender: TObject);

begin

Close {Закрываем окно программы}

end;

Запрограммировать кнопку «Вычислить» можно так. Данное в поле редактирования - это значение свойства Text типа string. Для его преобразования в числовой действительный тип (real) воспользуйтесь процедурой Val, а наоборот - процедурой Str. Опишите соответствующие основные и дополнительные переменные в разделе var. Например, для вычисления валют:

procedure Tform1.Button1CHck(Sender: TObject);

var  kurs1, kurs2, summa : real;

 cod : integer; ed : string[9];

begin

Val (Edit1.Text, kurs1, cod); {Значения курса покупки}

Val (Edit2.Text, kurs2, cod); {Значения курса продажи}

Val (Edit3.Text, summa, cod); {Числовое значение суммы в USD}

if RadioButton2.Checked = True

then summa:=summa * kurs2

else summa:= summa * kurs1;

Str(summa:9:2, ed);

Edit4.Text := ed;

{Полученное число суммы в преобразуется в текстовый формат и результат присваиваем свойству Text поля вывода Edit4}

end;

Объект Memo применяют для многострочного редактора текста, CheckBox - для создания независимого двух или трёхпозиционного флажка: включен, выключен или серый. Панель группы (GroupBox) предназначена для размещения на ней группы из нескольких объектов, используемых для улучшения дизайна окна программы. С помощью объекта MainMenu создают главное меню программы, а с помощью объекта PopupMenu - контекстное меню компонента. Для связывания контекстного меню с объектом необходимо свойству этого объекта присвоить значение Name соответствующего контекстного меню.

Для смены пиктограммы нужно указать конкретный файл с рисунком в поле значения свойства Icon (пиктограмма) формы. Щелкнуть в строке Icon на  , а потом на кнопке Load окна Picture Editor, чтобы получить окно Load picture. Открыть и выбрать графический файл пиктограммы => Open => Ok.

Чтобы выровнять и отцентрировать объекты - окно Alignment. Выделить группу объектов с подписями к ним и выполнить Edit=> Align (выровнять)=> Horisontal - Left sides (горизонтально - левые границы)=> Vertical – Space equally (вертикально - равномерно)=> Ok или Edit=> Align=> Horisontal - Center in Window (горизонтально - к центру окна)=> Ok.

Для вставки в форму панели группы объектов выбираем GroupBox на закладке Standard палитры компонентов, флажков - CheckBox , многострочного поля редактирования - Memo на закладке Standard. Для вставки главного и контекстного меню - MainMenu и PopupMenu там же, на этапе выполнения программы они невидимы. Для ввода названия команд главного меню формы выбрать MainMenu и щелкнуть на свойстве Items или дважды на объекте и закрыть окно создания команд главного меню Form1.MainMenu.

Методы - это набор процедур и функций, которые применяют к объекту. Имя объекта от имени метода отделяется точкой. Программирование команды «Очистить поле вывода» главного меню с помощью метода Clear объекта Memo выполняется так. После щелчка по команде меню «Очистить поле вывода» появится заготовка процедуры реакции на событие вызова. В нее записывается команда вызова метода Clear для очистки поля вывода Memo:

procedure TForm1.N3Click (Sender: Tobject);

{N3 - имя команды «Очистить поле вывода»,  может быть другой номер}

begin

Memo1.Clear {Вызов очищающего метода объекта Memo}

end;                

Для построения графика функции в форму вставляется объект ChartFX из закладки OCX. Дважды щелкнуть на нем и на закладке Appearance из списка Gallery Type,  выбрать пиктограмму графика. На закладке 3DView убрать флажок 3D. На закладке DataValues задать ожидаемые (ориентировочно) максимальное и минимальное значения функции. Создать пункт меню или кнопку «Нарисовать график» и запрограммировать:

procedure TForm1.Button1Click (Sender: TObject);

var i, n: integer;

x: real;

s: string;

begin

x := 0; n := 10;  {n- количество точек}

ChartFX1.OpenDataEx (COD_VALUES, 1, n);

for i := 0 to n-1 do

begin

ChartFX1.Value[i] := sin (x) + 1 ; {Формируем легенду оси ОХ}

Str (x:5:2,s);

ChartFX1.Legend[i] := s;

x:=x+0.5;

end;

ChartFX1.CloseData(COD_VALUES);

end;

Задание (см. приложение 2 и 3)

Часть 1.

Создать форму с названием «Обмен валюты» для моделирования соответствующих операций обменного пункта при помощи операций ветвления. Вставить в форму два объекта типа RadioButton (переключатель). Задать начальное значение второго переключателя как активное. Вставить в форму четыре поля редактирования Edit, четыре текстовых поля Label и две кнопки Button.

Поменять название формы с Form1 на Обмен валюты и изменить подписи на RadioButton, Label и Button, поочередно выбирая объекты и меняя значения свойства Caption. Задать одинаковые размеры для всех расположенных элементов и выровнять их на форме.

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

Часть 2.

Создать форму «Табулирование функции» для вычисления функции y=sin(x)+1 с запросом левой, правой границы и шага. Добавить производную этой функции. На основе разработанной формы рассмотреть решение других задач.

Расположить  в форме три поля редактирования Edit и соответствующие им текстовые ноля «Левая граница», «Правая граница», «Шаг», а также текстовое поле для задания вида функции y=sin(x)+1. Выровнять вставленные поля редактирования к левому краю первого объекта и отцентрировать текстовое поле с указанием функции. Вставить в форму панель группы объектов CroupBox, назвать его Вывод. Размер, стиль и цвет шрифта выбирать.

Вставить на панель три флажка CheckBox. Выровнять, заблаговременно выделив, и поменять подписи. Стиль и цвет шрифтов выбрать на своё усмотрение. Вставить в форму многострочное поле редактирования Memo и удалить из него слово Memo. Задать начальные значения полей редактирования левой и правой границ аргумента и шага изменения аргумента (свойства Text).

Вставить в форму главное и контекстное меню MainMenu и PopupMenu. Расположить их в произвольном месте формы. Введите названия команд главного меню («Вычислить», «Выход») и контекстного меню формы («Очистить поле вывода»). Связать контекстное меню PopupMenu с формой. Вставить в форму объект ChartFX для построения графика функции.Создать ехе-файл.

Вопросы для самоконтроля:

  1.  Какие из технологий программирования относятся к нисходящему, а какие к восходящему программированию?
  2.  Какие языки или среды программирования объединяют несколько идеологий программирования?
  3.  Почему модули применяются в современном программировании?
  4.  Сравните модули и подпрограммы.
  5.  Должно ли имя модуля совпадать с именем файла, в котором он находится?

Литература: 1, 2, 3, 6, 7, 9, 11, 20, 39.

Лабораторная работа № 9.

Тема: Автоматизация создания документов средствами  различных языков программирования.

Цель: ознакомиться с идеями визуального программирования на примере создания приложения в Delphi с формированием текста отчета с использованием стандартных компонентов и технологии OLE.

Сведения, необходимые для выполнения работы

Программирование предоставляет широкие возможности по автоматизации различных процессов. Автоматизация может вестись на разных уровнях и должна быть адекватна конкретной ситуации. При небольших объемах информации и несложных задачах по ведению документации достаточно может оказаться системы офисных документов. Приложения Microsoft Office позволяют решать различные задачи и основных возможностей оказывается достаточно, также помогают избавится от повторения одних и тех же действий благодаря макросам (см. лабораторную работу №1). Приложения Microsoft Office допускают их применение в качестве инструментальной среды для разработки собственных приложений, решающих специфические задачи. Это достигается за счет языка VBA и создания макросов. С помощью VBA также поддерживается технология ADO для связи приложений.  

Для работы с большими объемами данных рационально использовать БД. Выделяют стандартные запросы, часто просматриваемые таблицы и необходимые для печати отчеты. Затем эти элементы разрабатываются и чаще всего создается главная форма программы, на которой и размещаются кнопки для доступа к ним. По завершении работы над проектом получаем приложение, организующее работу с БД. При этом существуют различные СУБД, например, Microsoft Access. Также можно воспользоваться средой Delphi (использование DataBase Desktop, BDE Administrator и т.д.). Данный подход является более гибким - технология ADO позволяет связывать приложение Delphi с БД в Microsoft Access. Интересно связать документ Excel и БД Access. На листах рабочей книги Excel будет зачитываться информация из базы, там же можно вносить изменения, организовать вывод информации на лист так, чтобы получить печатную форму, максимально приближенную к реальным документам.

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

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

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

К тенденциям на рынке системы электронного документооборота можно отнести внимания предприятий к вопросам интеграции со смежными информационными системами, прежде всего, с ERP.

Информационная система управления (управленческая информационная система) – это совокупность административных, экономических, математических, социологических, статистических, бихевиористических и других методов, программных и аппаратных (технических) средств, служащих для сбора, обработки и выдачи информации с целью принятия управленческих решений. Как сложный программный комплекс они включают в себя несколько модулей, отвечающих за решение различных задач:

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

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

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

Если требуется сделать более простым и удобным создание документа, проведение нестандартных расчетов, то можно прибегнуть к помощи среды программирования Borland Delphi и разработать приложение, которое максимально будет соответствовать требованиям.

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

  •  каждый документ нумеруется, проставляется дата;
  •  присутствует заголовок: «Заседание»;
  •  в разделе «присутствовали» указываются фамилии и должности сотрудников-участников заседания;
  •  в разделе «повестка» указываются цели заседания;
  •  в основной части протокола по каждому из сотрудников указывается информация (для примера): фамилия, должность, количество отработанных часов, ставка, очередной отпуск, больничный лист, ставка и количество дней вакансии с указанием должности, ставка и количество дней замещения с указанием замещаемого сотрудника, другая информация в более свободной форме – пункты, кроме первых четырех, могут присутствовать или нет.

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

  •  фамилию и должность сотрудника, воспользовавшись, компонентом Combobox, тогда они будут у пользователя в распоряжении;
  •  количество отработанных часов и ставку, при этом стандартные слова «отработал(а)», «ставка», «часов» (во всех возможных склонениях) будут добавляться автоматически (свойство caption объекта label, radiobutton, checkbox);
  •  факт замещения или работу в вакантной должности – пользователь указывает только ставку, количество дней, вакантную должность, либо фамилию замещаемого сотрудника, а программа сохраняет в текст формулировку;
  •  прочие данные в отдельном поле, где например можно дописать о еще одном замещении, либо иной текст.

Приведем форму программы, опишем механизм генерации текста, а затем рассмотрим листинг программы.

На форме разместим элементы (см. Unit1).

  •  Метки - label1, label2 и так далее – предназначены для подписи к другим элементам формы, в генерации текста не принимают участия;
  •  Поля ввода – edit для ввода количества отработанных часов, для ввода периода отпуска, для ввода периода больничного листа и так далее;
  •  Комбинированные списки – combobox выбора фамилии и должности, выбора должности, выбора фамилии – в свойстве Items этих элементов укажем должности и фамилии, и агрузим информацию из текстового файла;
  •  Многострочное поле – Memo1 (в это поле добавляется полученная строка по каждому из сотрудников);
  •  Кнопки Button1 («Принять данные»), Button2 («Сохранить!»).

Комбинированные списки Сombobox - выбор фамилии с должностью, выбор вакантной должности, выбор фамилии замещаемого лица – в свойстве Items этих элементов укажем все должности и фамилии (загрузить информацию из текстового файла).

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

Для создания списка для Сombobox1 создадим текстовый файл:

Иванова И.И. заведующая, -

Сидорова С.С.- старшая медсестра, -

Создав файл (необходимо указать всех сотрудников), можно будет загрузить его содержимое в список элемента Сombox1 (свойство Items, нажмите на кнопку с многоточием и в открывшемся окне щелкните правой кнопкой мыши, выберете пункт «Load...» и укажите файл). Аналогично поступим с остальными Сombox. Для Сombobox2 (вакантные должности), необходимо приводить фразу с учетом склонения («вакансии кого?»), создадим файл:

заведующей

старшей медсестры

секретаря и т. п.

Для Сombobox3 укажим в файле-заготовке фамилии с учетом склонения (фамилии замещаемого лица – «за кого»):

Иванову И.И.

Петрова П.П. и. т. д.

В свойстве «text» комбинированных списков укажем такие подсказки, как «Выберете фамилию…», «Выберете должность…».

Текст отчета будет генерироваться построчно – необходимо указывать информацию по каждому сотруднику, добавлять ее в общий список. Реализуется это так: пользователь при запуске приложения выбирает из списка фамилию сотрудника (сразу указана должность), ставит «галочку» напротив слова «отработала», в следующее тестовое поле вводит количество часов, далее, определяет склонение следующего слова предложения («час», «часов», «часа»); если сотрудник был в очередном отпуске, на больничном листе, в отпуске без содержания, то этот факт указывается пометкой напротив нужной формулировки с указанием периода в текстовых полях. Аналогично поступают и с работой в вакантной должности или замещением – указывается вакантная должность или фамилия замещаемого сотрудника, ставка, количество дней (сами слова «ставка» и «день» также указываются в нужном склонении). Текстовое поле с пометкой «прочее» используется пользователем в случае, если необходимо указать дополнительную информацию по сотруднику. Далее необходимо принять данные с помощью одноименной кнопки. Работа процедуры обработки события Onclick основана на том, что:

  •  необходимо сгенерировать (собрать) строку текста о сотруднике, то есть из указанных пользователем данных составить логичное предложение;
  •  эту строку добавить в многострочное поле Memo1.

Рассмотрим создание строки текста. Используем переменную st строкового типа для добавления в нее формулировок. Сначала очистим ее, затем с помощью оператора добавления в строку («+») будем заполнять ее.

  •  добавим выбранную пользователем фамилию из первого комбинированного списка: st:=st+ComboBox1.Text;
  •  добавим значение свойств текст или caption соответствующих элементов, при условии, что они заполнены или «включены». Будем использовать знаки препинания для формирования полноценного предложения.

Итак, процедура генерации текста procedure TForm1.BitBtn2Click в программе.

Кнопка «Сохранить!» отвечает за сохранение текста в файл (в формате Word). На выходе необходим документ с элементами форматирования, поэтому необходимо сохранять данные в документ Word. Для отправки данных из Delphi будем использовать технологию OLE - возможность из разрабатываемого приложения (клиента) взаимодействовать с другими приложениями (серверами).

Алгоритм  импорта данных в Word следующий:

  1.  создаем подключение к серверу-приложению Word;
  2.  создаем или открываем существующий документ;
  3.  вносим в документ изменения;
  4.  манипулируем документом (сохраняем его, не показывая при этом на экране или же наоборот);
  5.  отсоединяемся от сервера.

Таким образом, процедура кнопки «Сохранить» будет выглядеть так:

procedure TForm1.BitBtn1Click(Sender: TObject);

var

Application: variant;

Range1: variant;

begin

Application:= CreateOleObject('Word.Application'); //создаем соединение с Word

Application.Documents.Add; //создаем новый документ

Application.Documents.Item(1); //обращаемся к новому документу

Application.Documents.Item(1).Activate; //делаем новый документ активным

Application.ActiveDocument.Paragraphs.Add; //создаем абзац в документе

Range1:=Application.ActiveDocument.Paragraphs.Item(1).Range;

//создаем область Range1

Range1.InsertBefore(Memo1.Text);

//вставляем текст из многострочного поля Memo1

Application.ActiveDocument.Close;

//закрываем документ (программа просит сохранить его)

end;

Рассмотрим теперь общий текст программы:

program Project1;

uses

 Forms,

 Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin

 Application.Initialize;

 Application.CreateForm(TForm1, Form1);

 Application.Run;

end.

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, XPMan, StdCtrls, Buttons;

type

 TForm1 = class(TForm)

   XPManifest1: TXPManifest;

   ComboBox1: TComboBox;

   CheckBox1: TCheckBox;

   Edit1: TEdit;

   Label1: TLabel;

   Memo1: TMemo;

   CheckBox4: TCheckBox;

   Edit2: TEdit;

   Label2: TLabel;

   GroupBox1: TGroupBox;

   ComboBox2: TComboBox;

   GroupBox2: TGroupBox;

   ComboBox3: TComboBox;

   Label7: TLabel;

   Edit5: TEdit;

   CheckBox7: TCheckBox;

   Edit6: TEdit;

   Label9: TLabel;

   CheckBox8: TCheckBox;

   Edit7: TEdit;

   Label10: TLabel;

   Edit3: TEdit;

   Label3: TLabel;

   Edit4: TEdit;

   Edit8: TEdit;

   Edit9: TEdit;

   Label13: TLabel;

   BitBtn1: TBitBtn;

   BitBtn2: TBitBtn;

   GroupBox3: TGroupBox;

   RadioButton1: TRadioButton;

   RadioButton2: TRadioButton;

   RadioButton3: TRadioButton;

   GroupBox4: TGroupBox;

   RadioButton4: TRadioButton;

   RadioButton5: TRadioButton;

   GroupBox5: TGroupBox;

   RadioButton6: TRadioButton;

   RadioButton7: TRadioButton;

   RadioButton8: TRadioButton;

   GroupBox6: TGroupBox;

   RadioButton9: TRadioButton;

   RadioButton10: TRadioButton;

   GroupBox7: TGroupBox;

   RadioButton11: TRadioButton;

   RadioButton12: TRadioButton;

   RadioButton13: TRadioButton;

   procedure BitBtn1Click(Sender: TObject);

   procedure BitBtn2Click(Sender: TObject);

private

   { Private declarations }

 public

   { Public declarations }

    OLE: Variant;

    FileName:string;

 end;

var

 Form1: TForm1;

implementation

{$R *.dfm}

uses ComObj;

var st:string;

procedure TForm1.BitBtn1Click(Sender: TObject);

var

Application: variant;

Range1: variant;

begin

Application:= CreateOleObject('Word.Application'); //создаем соединение с Word

Application.Documents.Add; //создаем новый документ

Application.Documents.Item(1); //обращаемся к новому документу

Application.Documents.Item(1).Activate; //делаем новый документ активным

Application.ActiveDocument.Paragraphs.Add; //создаем абзац в документе

Range1:=Application.ActiveDocument.Paragraphs.Item(1).Range;

//создаем область Range1

Range1.InsertBefore(Memo1.Text); 

//вставляем текст из многострочного поля Memo1

Application.ActiveDocument.Close;

//закрываем документ (программа просит сохранить его)

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

st:=''; //очищаем строку st

st:=st+ComboBox1.Text; // добавляем информацию в строку st

if Checkbox1.Checked=true then  st:=st+' '+Checkbox1.Caption;

if Edit1.Text<>'' then st:=st+' '+ Edit1.Text;

if RadioButton1.Checked=true then  st:=st+' '+RadioButton1.Caption;

if RadioButton2.Checked=true then  st:=st+' '+RadioButton2.Caption;

if RadioButton3.Checked=true then  st:=st+' '+RadioButton3.Caption;

if Checkbox4.Checked=true then  st:=st+' '+'(' +Checkbox4.Caption +' '+ Edit2.Text +')';

if Checkbox7.Checked=true then  st:=st+' '+'(' +Checkbox7.Caption +' '+ Edit6.Text +')';

if Checkbox8.Checked=true then  st:=st+' '+'(' +Checkbox8.Caption +' '+ Edit7.Text +')';

if Edit3.Text<>''  then st:=st+' '+ '+' +' '+ Edit3.Text;

if (RadioButton4.Checked=true) and (Edit3.Text<>'') then st:=st+' '+ RadioButton4.Caption;

if (RadioButton5.Checked=true)and (Edit3.Text<>'')then st:=st+' '+ RadioButton5.Caption;

if Edit4.Text<>''  then st:=st+','+' '+Edit4.Text;

if (RadioButton6.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton6.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if (RadioButton7.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton7.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if (RadioButton8.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton8.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if Edit8.Text<>''  then st:=st+' '+ '+' +' '+ Edit8.Text;

if (RadioButton9.Checked=true) and (Edit8.Text<>'') then st:=st+' '+ RadioButton9.Caption;

if (RadioButton10.Checked=true) and (Edit8.Text<>'') then st:=st+' '+ RadioButton10.Caption;

if Edit9.Text<>''  then st:=st+','+' '+Edit9.Text;

if (RadioButton11.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton11.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if (RadioButton12.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton12.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if (RadioButton13.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton13.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if Edit5.Text<>''then st:=st+' '+ '+' +' '+ Edit5.Text;

Memo1.Lines.add(st); //добавляем полученную строку в поле Memo1

end; end.

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

Расположенная вверху кнопка «Заголовок» (см. рис. 3, на котором изображена главная форма программы с кнопкой для создания заголовка) предназначена для ввода дополнительной информации к созданию конечного документа: кроме основной части протокола, где по каждому из сотрудников делается запись, мы также внесем информацию о номере протокола, присутствующих, повестке и так далее. По щелчку на кнопке появится следующая форма (см. рис.2.  с формой для создания заголовка).

Как уже отмечалось, реализуется ввод таких данных и их сохранение при помощи нового модуля. На форме разместим элементы (см. Unit2):

  •  Метки - label1 (в свойство caption «Протокол №») – при сохранении информации эта стандартная для всех протоколов строчка добавится без изменений, аналогично поступим с элементом label2 («от»), label3 («Заседание»), label4 («присутствовали»), label5 («повестка»);
  •  Поля ввода – edit для ввода номера протокола, даты и  формулировки повестки заседания;
  •  Комбинированные списки – combobox выбора должности и выбора фамилии – в свойстве Items этих элементов укажем все должности и фамилии АТПК, удобнее это сделать, загрузив информацию из текстового файла;
  •  Многострочные поля – Memo1 (добавляется фамилия присутствующего сотрудника при каждом щелчке на кнопке «Добавить фамилию», затем из этого поля информация будет перенесена в Memo0). Memo0 не является невидимым, на самом деле видимость (свойство Visible) в значении истина, и элемент отображается на форме при запуске приложения, однако, это поле размещено под Memo1, и пользователь не может наблюдать его. В это поле добавляются сведения, вводимые пользователем с помощью описываемой формы, хранит информацию для создания заголовка будущего документа, но скрыто по причине неформатированности. Это поле служит хранилищем введенных данных и используется для их быстрого сохранения в файл.

Применим также средства форматирования в конечном документе MS Word, изменив процедуру обработки события Onclick кнопки «Сохранить».

В целом листинг первоначальной программы изменится:

program Project1;

uses

 Forms,

 Unit1 in 'Unit1.pas' {Form1},

 Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin

 Application.Initialize;

 Application.CreateForm(TForm1, Form1);

 Application.CreateForm(TForm2, Form2);

 Application.Run;

end.

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, XPMan, StdCtrls, Buttons;

type

 TForm1 = class(TForm)

   XPManifest1: TXPManifest;

   ComboBox1: TComboBox;

   CheckBox1: TCheckBox;

   Edit1: TEdit;

   Label1: TLabel;

   Memo1: TMemo;

   CheckBox4: TCheckBox;

   Edit2: TEdit;

   Label2: TLabel;

   GroupBox1: TGroupBox;

   ComboBox2: TComboBox;

   GroupBox2: TGroupBox;

   ComboBox3: TComboBox;

   Label7: TLabel;

   Edit5: TEdit;

   CheckBox7: TCheckBox;

   Edit6: TEdit;

   Label9: TLabel;

   CheckBox8: TCheckBox;

   Edit7: TEdit;

   Label10: TLabel;

   Edit3: TEdit;

   Label3: TLabel;

   Edit4: TEdit;

   Edit8: TEdit;

   Edit9: TEdit;

   Label13: TLabel;

   BitBtn1: TBitBtn;

   BitBtn2: TBitBtn;

   GroupBox3: TGroupBox;

   RadioButton1: TRadioButton;

   RadioButton2: TRadioButton;

   RadioButton3: TRadioButton;

   GroupBox4: TGroupBox;

   RadioButton4: TRadioButton;

   RadioButton5: TRadioButton;

   GroupBox5: TGroupBox;

   RadioButton6: TRadioButton;

   RadioButton7: TRadioButton;

   RadioButton8: TRadioButton;

   GroupBox6: TGroupBox;

   RadioButton9: TRadioButton;

   RadioButton10: TRadioButton;

   GroupBox7: TGroupBox;

   RadioButton11: TRadioButton;

   RadioButton12: TRadioButton;

   RadioButton13: TRadioButton;

   BitBtn3: TBitBtn;

   procedure BitBtn1Click(Sender: TObject);

   procedure BitBtn2Click(Sender: TObject);

   procedure BitBtn3Click(Sender: TObject);

  private

   { Private declarations }

 public

   { Public declarations }

    OLE: Variant;

    FileName:string;

 end;

var Form1: TForm1;

implementation

{$R *.dfm}

uses ComObj, Unit2;

var st:string;

procedure TForm1.BitBtn1Click(Sender: TObject);

var Application: variant;

Range1: variant;

begin

Application:= CreateOleObject('Word.Application'); //создаем соединение с Word

Application.Documents.Add; //создаем новый документ

Application.Documents.Item(1); //обращаемся к новому документу

Application.Documents.Item(1).Activate; //делаем новый документ активным

Application.ActiveDocument.Paragraphs.Add; //создаем абзац в документе

Range1:=Application.ActiveDocument.Paragraphs.Item(1).Range;

//создаем область Range1

Range1.Font.Bold:= True; // шрифт в заголовке – полужирный

Range1.ParagraphFormat.Alignment:= 1; //выравнивание – по центру

Range1.InsertBefore(Form2.Memo0.Text); //вставляем текст заголовка

Range1.InsertAfter(Memo1.Text); //вставляем сам текст протокола

Application.ActiveDocument.Close;

//закрываем документ (программа просит сохранить его)

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

st:=''; //очищаем строку st

st:=st+ComboBox1.Text; // добавляем введенную информацию в строку st

if Checkbox1.Checked=true then  st:=st+' '+Checkbox1.Caption;

if Edit1.Text<>'' then st:=st+' '+ Edit1.Text;

if RadioButton1.Checked=true then  st:=st+' '+RadioButton1.Caption;

if RadioButton2.Checked=true then  st:=st+' '+RadioButton2.Caption;

if RadioButton3.Checked=true then  st:=st+' '+RadioButton3.Caption;

if Checkbox4.Checked=true then  st:=st+' '+'(' +Checkbox4.Caption +' '+ Edit2.Text +')';

if Checkbox7.Checked=true then  st:=st+' '+'(' +Checkbox7.Caption +' '+ Edit6.Text +')';

if Checkbox8.Checked=true then  st:=st+' '+'(' +Checkbox8.Caption +' '+ Edit7.Text +')';

if Edit3.Text<>''  then st:=st+' '+ '+' +' '+ Edit3.Text;

if (RadioButton4.Checked=true) and (Edit3.Text<>'') then st:=st+' '+ RadioButton4.Caption;

if (RadioButton5.Checked=true)and (Edit3.Text<>'')then st:=st+' '+ RadioButton5.Caption;

if Edit4.Text<>''  then st:=st+','+' '+Edit4.Text;

if (RadioButton6.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton6.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if (RadioButton7.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton7.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if (RadioButton8.Checked=true) and (Edit4.Text<>'') then st:=st+' '+ RadioButton8.Caption + ' '+ 'вакансии'+ ' '+ ComboBox2.Text;

if Edit8.Text<>''  then st:=st+' '+ '+' +' '+ Edit8.Text;

if (RadioButton9.Checked=true) and (Edit8.Text<>'') then st:=st+' '+ RadioButton9.Caption;

if (RadioButton10.Checked=true) and (Edit8.Text<>'') then st:=st+' '+ RadioButton10.Caption;

if Edit9.Text<>''  then st:=st+','+' '+Edit9.Text;

if (RadioButton11.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton11.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if (RadioButton12.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton12.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if (RadioButton13.Checked=true) and (Edit9.Text<>'') then st:=st+' '+ RadioButton13.Caption + ' '+ 'за'+ ' '+ ComboBox3.Text;

if Edit5.Text<>''then st:=st+' '+ '+' +' '+ Edit5.Text;

Memo1.Lines.add(st); //добавляем полученную строку в поле Memo1

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

form2.visible:=true; //показываем вторую форму для ввода данных к заголовку

end; end.

unit Unit2;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, XPMan, Buttons;

type

 TForm2 = class(TForm)

   Label1: TLabel;

   Edit1: TEdit;

   Label2: TLabel;

   Edit2: TEdit;

   Label4: TLabel;

   BitBtn1: TBitBtn;

   XPManifest1: TXPManifest;

   ComboBox1: TComboBox;

   ComboBox2: TComboBox;

   Label3: TLabel;

   Memo0: TMemo;

   Button1: TButton;

   Label5: TLabel;

   Edit3: TEdit;

   Memo1: TMemo;

   procedure Button1Click(Sender: TObject);

   procedure BitBtn1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var Form2: TForm2;

implementation

uses Unit1; //используем первый модуль

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

var st:string;

begin

st:='';//очищаем строку st

st:=st+ComboBox1.Text+' - '+ComboBox2.Text;

//добавляем в строку фамилию и должность

Memo1.Lines.add(st); // строку добавляем в многострочное поле

end;

procedure TForm2.BitBtn1Click(Sender: TObject);

var s:string;

begin

s:='';//очищаем строку st

s:=s+label1.Caption+' '+edit1.text+' '+label2.Caption+' '+edit2.text;

//добавляем в строку

Memo0.Lines.add(s); // строку добавляем в скрытое многострочное поле

s:=''; Memo0.Lines.add(s);

s:=''; s:=s+label3.Caption;

Memo0.Lines.add(s);

s:=''; Memo0.Lines.add(s);

s:=''; s:=s+label4.Caption;

Memo0.Lines.add(s);

Memo0.Lines.add(Memo1.text);

//добавляем в поле данные не скрытого поля (фамилии)

s:=''; Memo0.Lines.add(s);

s:=''; s:=s+label5.Caption+' '+edit3.text;

Memo0.Lines.add(s);

s:=''; Memo0.Lines.add(s); //пустая строка для отступа перед текстом

close

end; end.

Результаты работы программы имеют примерно такой вид.

По завершении работы с программой, пользователь получает готовый документ вида (без пропуска строк):

Протокол № 1 от 20.11.2006

Заседание присутствовали:

заведующая – Иванова И.И.

старшая медсестра – Сидорова С.С.

Повестка: итоги за ноябрь

Сидорова С.С.- старшая медсестра, -  отработала 160 часов + 1 ставка, 20 дней вакансии медсестры общей практики

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

Задание: Разработать создание приложения в Delphi: формирование текста отчета с использованием стандартных компонентов и технологии OLE.

Вопросы для самоконтроля:

  1.  Почему в документе важно выделить структуру на первом шаге разработки?
    1.  Как предусмотреть ситуацию, когда необходимо учитывать склонения и знаки препинания в документе?
    2.  Опишите алгоритм  импорта данных в Word.

Литература: 1, 7, 9, 10, 11, 20, 21.

Лабораторная работа № 10.

Тема: Профессиональное применение информационных технологий.

Цель: овладение навыками применения информационных технологий с использованием средств, представляемых приложениями Windows

Сведения, необходимые для выполнения работы

Макрокоманда или макрос - это записанная последовательность обычных команд, которая может быть воспроизведена для автоматизации часто повторяемых действий. В Microsoft Excel встроен язык программирования макрокоманд Visual Basic. Он насчитывает более чем две тысячи операторов. Однако обычному пользователю для создания макроса знать эти команды необязательно. Каждое нажатие клавиши, перемещения, щелчки мышью автоматически регистрируются как пользовательские события и им в соответствие ставятся определенные операторы языка Visual Basic. Макрос создается автоматически, а пользователю необходимо знать процедуры записи и выполнения макроса.

Для записи макроса следует поместить курсор в ячейку А1 и использовать команды пункта меню Сервис→Макрос→Начать запись. После этого открывается диалоговое окно Запись макроса. В нем необходимо в поле Имя макроса дать имя макроса. По умолчанию имя присваивается автоматически Макрос1, Макрос2 и т. Д. Можно воспользоваться индикатором Сочетание клавиш, задав в сочетании с «Ctrl» любую клавишу, их использование позволит запускать макрос на выполнение. В этом же окне можно установить личную, новую или текущую книгу Excel, для сохранения макроса.

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

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

Чтобы вывести исходный текст записанного макроса и подкорректировать его в выбрать пункте меню Сервис→Макрос, в поле Имя макроса указать название макроса и нажать кнопку Изменить. Исходный текст макроса находится в отдельном модуле книги. Для объединения текста макросов, нужно стереть конец первого макроса (End sub) и начало второго макроса (Sub) ненужным теперь комментарием.

Чтобы запустить макрос выбрать в пункте меню Сервис→Макрос, в поле Имя макроса указать название макроса и нажать кнопку Выполнить.

Задание: Ввести 10 записей в таблицу с полями Номер по порядку, Наименование, Цена, количество и Выручка (не заполнять). В первом макросе заполнить столбец Выручка. Во втором макросе отформатировать таблицу и данные, а так же отсортировать данные в таблице по наименованию. В третьем макросе построить диаграмму по столбцу Выручка.

Открыть Microsoft Excel. Заполнить рабочие листы данными и отформатировать. Выполнить задания. При обращении к ячейкам должны указываться ссылки на эти листы и ячейки. Листы переименовать в зависимости от помещенной на них информации. Если необходимо, для вычисления использовать встроенные функции  или пользовательские формулы.

Создать макросы, выполняющие задания. Запись макроса не должна содержать ввода данных. Создать новый макрос, объединив отдельные, полученные в предыдущем задании, модули на языке Visual Basic. Убедиться, что новый, единый модуль выполняет те же действия, что и отдельные модуль. В отчете кратко описать выполненные действия, распечатать полученные таблицы в обычном режиме и в режиме формул.

Вопросы для самоконтроля:

1. Языковая поддержка методологий программирования.

2.  Перспективы технологий программирования.

Литература: 4, 7, 9, 10, 13, 21, 37.


используемые сокращения

АВП – антивирусные программы.

АЛУ - арифметико-логическое устройство.

БЗ – база знаний.

БД – база данных.

ВС - вычислительные системы.

ГР - графический редактор.

ГТИ - генератора тактовых импульсов.

ДР – диалоговый режим.

ДС – диалоговая система.

ЗИ – защита информации.

ИР - информационные ресурсы.

ИС – информационные системы.

ИТ - информационные технологии.

КВ – компьютерные вирусы.

КП - коммуникационная программа.

КС – компьютерная сеть.

МП – микропроцессор.

НМ - нейросетевых моделей.

НТ - нейросетевые технологии.

ОЗУ - оперативное запоминающее устройство.

ОП – оперативная память.

ОС - операционные системы.

ПЗУ - постоянное запоминающее устройство.

ПК – персональный компьютер.

ПО - программное обеспечение.

ПП - программные  продукты.

САПР - системы автоматизированного проектирования.

СП – система программирования.

СС – система счисления.

СУ – система управления.

СУБД - системы управления базами данных.

ТК - телеконференция.

ТП - текстовый процессор.

ТР - Turbo Pascal.

УУ - устройство  управления.

ЭС – экспертная система.

ЭТ - электронные таблицы.

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


Приложение 1.

Подробный порядок выполнения:

  1.  Загрузить систему программирования Delphi. 
  2.  Запустить программу Project1 на выполнение. Максимизировать и восстановить размер окна формы, минимизировать и развернуть и т. п. Выполнить эти действия с помощью команд Move, Size и других и клавиатуры.
  3.  Закрыть окно Form1, минимизировать главное окно Delphi и создайте на рабочем диске свою папку. Снова активизируйте окно Delphi. Сохраните созданную программу в своей папке.
  4.  Ознакомиться со свойствами формы Left, Top, Width и Height. Исследовать, как изменение свойств Left, Top, Width или Height формы в Object Inspector ведет к изменению расположения или размера формы.
  5.  Изменить цвет фона формы. Задать начальное значение цвета - clBtnFace.
  6.  Вставить в форму текстовое поле с текстом «Анкета студента». Изменить значения свойства Font (шрифт) текстового поля на Times New Roman Cyr, Font style – на Bold, Size - на 16, Color – на Purple. Аналогично вставить в форму еще несколько текстовых полей для своих биографических данных.
  7.  Вставить в форму объект Image (картинка) расположить свою портретную фотографию с помощью свойства Picture (иллюстрация) объекта Image1. 
  8.  Наложить художественную фотографию на портретную, вставив в форму еще один объект Image. Проэкспериментировать со свойством Visible (видимость) изображений, каждый раз выполняя программу. После этого установить значение свойства Visible в False для обоих изображений.
  9.  Вставить в форму две кнопки Button для поочередного отображения наложенных фотографий. Поменять подписи на кнопках (свойство Caption) на «Портретная фотография» и «Художественная фотография» и выбрать шрифт.
  10.  Запрограммировать кнопки «Портретная фотография» и «Художественная  фотография» соответственно назначению. Запустить программу и убедится, что они выполняют свои функции. Закрыть окно программы «Анкета студента».
  11.  Сохранить программу. Создать ехe-файл проекта. Закрыть Delphi, выполнить программу.
  12.  Вставить в форму третью фотографию (вашего дома или машины) и еще одну кнопку с соответствующей подписью.
  13.  Поменять подписи на кнопках на «Сменить фотографию» и «Забрать фотографию», перепрограммировав кнопки. Выполнить программу.
  14.  Поменять сценарий работы программы на следующий:
  •  после запуска фотографий на форме не видно, есть две кнопки «Портретная фотография» и «Спрятать фотографию». Доступна первая кнопка;
  •  после щелчка на кнопке «Портретная фотография» появится портретное фото, текст на первой кнопке поменять на «Художественная фотография», кнопка «Спрятать фотографию» должна стать доступной;
  •  после щелчка на кнопке «Художественная фотография» фотография должна поменяться на художественную, а подпись - на «Третья фотография»;
  •  после щелчка на кнопке «Третья фотография» фотография должна поменяться, а подпись на этой кнопке - на «Портретная фотография»;
  •  после щелчка на кнопке «Спрятать фотографию» фотография должна исчезнуть, а кнопка стать недоступной. Запрограммировать кнопку «Спрятать фотографию», чтобы, она становилась не только недоступной, но и невидимой
    1.  Изменить программный код задачи, чтобы, отключая фотографии, надпись на первой кнопке соответствовала фотографии, которая появится после ее нажатия. Сделать, чтобы последовательность переключения фотографий не нарушалась вследствие их отключения и добавить текстовую надпись с названием фотографии, видимой в текущий момент.
    2.  Оформить отчет с программным кодом и формами с результатами работы.


Приложение 2.

Подробный порядок выполнения:

  1.  Загрузить среду программирования Delphi.
  2.  Отказаться от возможности изменять размеры окна программы. Выполнить программу и убедится, что отсутствуют кнопки для минимизации, максимизации окна и системного меню. Завершить работу программы.
  3.  Вставить в форму два объекта типа RadioButton (переключатель). Задать начальное значение второго переключателя как активное.

  1.  Вставить в форму четыре поля редактирования Edit, четыре текстовых поля Label и две кнопки Button.Сохранить созданную форму в своей папке.
  2.  Поменять название формы с Form1 на Обмен валюты и изменить подписи на RadioButton, Label и Button, поочередно выбирая объекты и меняя значения свойства Caption. Задать одинаковые размеры для всех расположенных элементов и выровнять их на форме. Сохранить работу.
  3.  Задать значения курсов купли-продажи валюты, указать сколько валюты покупается или продается: значение свойства Text объекта Edit1 - 5.25, Edit2 - 5.45 и Edit3 - 20. Очистить Edit4 и заблокировать возможность ввода данных, поскольку в него будет выводиться результат. Выполнить программу и убедится, что нельзя ввести или редактировать данные в Edit4.
  4.  Запрограммировать RadioButton, чтобы направление стрелки указывало операцию: купля или продажа. Запустить программу и убедится, что переключатели выполняют свои функции. Запрограммировать кнопки «Выход» и «Вычислить». Сохранить работу, выполнить программу с разными денежными суммами и операциями. Закрыть окно программы «Обмен валюты».
  5.  Обеспечить появление подсказки «Введите сумму в долларах» после перемещении указателя мыши к Edit3. Поменять вид стрелки с  => на , а <= на с помощью шрифта Wingdings. Сохранить работу, запустить программу и убедится, что подсказка появляется и стрелка меняется.
  6.  Создайть ехе-файл программы. Закрыть среду  Delphi, запустить созданную программу и выполните вычисления для разных входных данных. Запустите ехе-файл с именем проекта из своей папки.
  7.  Вставить в созданную форму кнопку для очистки полей денежных сумм. Выполнить программу и убедится в правильности ее работы.
  8.  Обеспечить появление подсказок «Введите курс купли» и «Введите курс продажи» после перемещения указателя мыши к полям Edit1 и Edit2.
  9.  В процедуре для кнопки «Вычислить» предусмотреть 1% сбора в пенсионный фонд от операции продажи.
  10.  Модифицировать программу, введя дополнительную возможность: после щелчка мышью на стрелке изменить тип операции (купля, продажа).
  11.  Удалить лишние объекты из формы и изменить код кнопки «Вычислить», чтобы ее можно было переводить мили в километры и наоборот в зависимости от положения переключателя (1 миля = 1,609344 км). В форму вставить группу переключателей для выбора типа мили из двух возможных: морской или обычной (1 морская миля = 1,852 км).
  12.  Оформить отчет с программным кодом и формами с результатами работы.


Приложение 3.

Подробный порядок выполнения:

  1.  Загрузить среду программирования Delphi.
  2.  Поменять заголовок формы с Form1 на «Табулирование функции» и увеличить вертикальные размеры формы. Сменить пиктограмму в левом верхнем углу формы, указав конкретный файл с рисунком в поле значения свойства Icon (пиктограмма) формы. Сохраните форму в своей папке.
  3.  Расположить  в форме три поля редактирования Edit и соответствующие им текстовые ноля «Левая граница», «Правая граница», «Шаг», а также текстовое поле для задания вида функции y=sin(x)+1. Выровнять вставленные поля редактирования к левому краю первого объекта и отцентрировать текстовое поле с указанием функции. Сохранить.
  4.  Вставить в форму панель группы объектов CroupBox, назвать его Вывод. Размер, стиль и цвет шрифта выбирать. Увеличить панель группы.
  5.  Вставить на панель три флажка CheckBox. Выровнять, заблаговременно выделив, и поменять подписи. Стиль и цвет шрифтов выбрать на своё усмотрение. Установить флажки «На экран» и «В массив» в режим «включен».

  1.  Вставить в форму многострочное поле редактирования Memo и удалить из него слово Memo. Задать начальные значения полей редактирования левой и правой границ аргумента и шага изменения аргумента (свойства Text).
  2.  Вставить в форму главное и контекстное меню MainMenu и PopupMenu. Расположить их в произвольном месте формы. Введите названия команд главного меню («Вычислить», «Выход») и контекстного меню формы («Очистить поле вывода»). Связать контекстное меню PopupMenu с формой.
  3.  Запрограммировать команду «Очистить поле вывода» главного меню с методом Clear в Memo и команду «Выход» главного меню, воспользовавшись стандартной процедурой Close (см. лабораторную работу №11). Запрограммировать команду «Очистить поле вывода» контекстного меню.
  4.  Запустить созданную программу и исследовать ее работу. В многострочном поле редактирования Memo можно выполнять действия, как в текстовом редакторе: выделять фрагмент текста, копировать, переносить или удалять этот фрагмент. Закончите работу программы, щелкнув на кнопке «Выход».
  5.  Запрограммировать команду «Табулировать». Выполнить программу и поупражняться с разными значениями левой, правой границы и шага аргумента. Закрыть окно программы «Табулирование функции».
  6.  Сохранить программу в своей папке. Создать ехе-файл. Закрыть Delphi, запустить программу и выполните вычисления для различных входных данных.
  7.  Добавить к контекстному меню команду «Выход» и запрограммировать ее.
  8.  Создать и запрограммировать контекстное меню с командами «Убрать все флажки», «Включить все флажки», «Включить инверсивно». Оно должно появляться после щелчка правой клавишей мыши в любой точке панели с флажками. Привязать это меню к панели с флажками.
  9.  Модифицировать программу, предусмотрев возможность табулирования функции и ее производной. Выбор варианта (с производной или без неё) осуществить с помощью дополнительного флажка.
  10.  Определить количество элементов массива больших 0.5 и меньших 1. Предусмотреть дополнительную возможность для определения максимального и минимального значений функции.
  11.  Поменять процедуру команды «Табулировать», чтобы для включенного флажка «В массив» вывод результатов выполнялся в одномерный массив.
  12.  Вставить в форму объект ChartFX для построения графика функции.
  13.  Оформить отчет с программным кодом и формами с результатами работы.




1. ЕВ без ударения- сиреневый ключевой Исключения- милостивый юродивый ИВ под ударением- ле
2. Педагогическое образование Дисциплина- ПедагогикаГруппа- 2 курс филфакДата тестирования- 14.html
3. Шабо сформировала достаточно полный продуктовый портфель в котором важное место занимают игристые вина
4. Політичне співробітництво України та Болгарії у 1991-2006 роках
5. Проблемы и перспективы развития украинской экономик
6. Валютно-экспортные операции на территории РФ
7. Атомы одного и того же химического элемента могут иметь разное число нейтронов массовое число заря
8. Докладніше у статті Київська Русь значення
9. сервер Все мы время от времени сталкиваемся с необходимостью пересылки файлов
10. ТЕМАТИЧЕСКИЙ АНАЛИЗ Юрьев М
11. чем бы заняться только вот голова выдает не такое уж большое количество решений
12. Лабораторная работа 2 Изучение конструкции и порядка работы установки кондиционирования воздуха МАБ
13. Пигменты мяса и их превращение при технологической обработке
14. Контрольная работа- Договор строительного подряда
15. тема внутреннего контроля Контрольная среда- Отсутствуют филиалы представительства подразделения
16. Словакия1
17. НАУКА МОСКВА 1985
18. Ермий Апологеты Мильтиад и Аполлинарий Иерапольский
19. Такие цепиназывают четырёхполюсниками.html
20. История физики- электромагнетизм