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

При пошаговом прохождении программы в отладчике вы, несомненно, захотите узнать, что содержится в различных переменных. Для этого можно использовать окно просмотра переменных Watch List, которое предоставляет возможность пассивно просматривать содержимое одной или нескольких переменных, или диалоговое окно Evaluate/Modify, позволяющее работать только с одной переменной (в нем можно не только просмотреть, но и изменить ее содержимое).

Установка точек останова

Точка останова (breakpoint) — своеобразный знак STOP для отладчика (на полосе слева в окне редактора она и выглядит как маленький красный значок). Когда приложение запущено под отладчиком и доходит до строки, в которой находится точка останова, оно прекращает работу и ждет ваших дальнейших распоряжений. Такие точки могут быть условными и безусловными. Отладчик всегда останавливается на точке безусловного останова и может останавливаться в точке условного останова, когда выполнено условие. Интегрированный отладчик Delphi поддерживает два типа условий — логическое и по количеству проходов.

 

1.6.2. Трансляция и синтаксическая отладка

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

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

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

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

- сообщения об ошибках, обнаружение которых привело к прекращению синтаксического контроля и построения объектного кода.

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

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

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

- использование в программе неинициализированных переменных (то есть переменных, не получивших начального значения) ;

- наличие в программе описаний элементов, переменных, процедур, меток, файлов, в дальнейшем не используемых в ее тексте;

- наличие в тексте программы фрагментов, никогда не выполняющихся;

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

- наличие в тексте программы заведомо бесконечных циклов ;

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

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

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

1) проведение этих дополнительных форм статического контроля после завершения компиляции и только для синтаксически корректных программ ;

2) максимальное использование результатов компиляции программы и, в частности, информации, включаемой в листинг компилятора;                                                 

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

При отсутствии инструментальных средств контроля правдоподобия эта фаза статического контроля также может объединяться с визуальным контролем (см. пункт 1.5.1.).

На этом этапе разработки программы наиболее часто встречающимися ошибками являлись:

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

2. EconvertError – данная исключительная ситуация вызывается, если StrToInt или StrToFloat не в состоянии преобразовать определенную строку в корректное значение типа Integer или значение с плавающей запятой соответственно. Названная исключительная ситуация возникает также при ошибочном копировании данных из одного объекта в другой.

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

4. EDBEditError – указанная исключительная ситуация вызывается, если приложение пытается ввести данные, несовместимые с заданной маской.


1.7. Инструкция по использованию программы

1.7.1. Инструкция для программиста

Программа «Распределение затрат» состоит и 3-х файлов:

1. RaspZatr.exe – исполняемый файл программы

2. Tabl.db – файл таблицы Базы Данных, совместимый с Paradox 7

3. Tabl.px – индексный файл таблицы (создается автоматически).

Для работы программы на компьютере необходимо иметь утилиту Borland Database Engine (BDE) Admistrator.

Мощность и гибкость Delphi при работе с базами данных основана на низкоуровневом ядре - процессоре баз данных Borland Database Engine (BDE). Его интерфейс с прикладными программами называется Integrated Database Application Programming Interface (IDAPI). Сейчас не различают эти два названия (BDE и IDAPI) и считают их синонимами. BDE позволяет осуществлять доступ к данным как с использованием традиционного record-ориентированного (навигационного) подхода, так и с использованием set-ориентированного подхода, используемого в SQL-серверах баз данных. Кроме BDE, Delphi позволяет осуществлять доступ к базам данных, используя технологию (и, соответственно, драйверы) Open DataBase Connectivity (ODBC) фирмы Microsoft. Но, как показывает практика, производительность систем с использованием BDE гораздо выше, чем оных при использовании ODBC. ODBC драйвера работают через специальный “ODBC socket”, который позволяет встраивать их в BDE.

Все инструментальные средства баз данных Borland - Paradox, dBase, Database Desktop - используют BDE. Все особенности, имеющиеся в Paradox или dBase, “наследуются” BDE, и поэтому этими же особенностями обладает и Delphi.

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

1. Скопировать файлы программы в директорию на каком либо диске.

2. Запустить программу BDE Administrator.

3. В меню Object выбрать New или нажать Ctrl+N.

4. В появившемся окне выбора типа драйвера БД необходимо указать «Standard» и нажать Enter.

5. Далее следует ввести АЛИАС БД – «RaspZatr».

6. Во вкладке Definition в поле Path необходимо указать путь местоположения программы. (Например C:\RaspZatr)

7. В меню Object выбрать Apply или нажать Ctrl+A.

8. Закрыть утилиту.


1.7.2. Инструкция для оператора

Из директории где располагается программа необходимо запустить файл RaspZart.exe для запуска программы.

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

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

Справа на главной форме находится панель с тремя кнопками: «Добавить», «Удалить» и «Расчет». Для добавления новых записей в таблицу необходимо нажать на кнопку «Добавить», при этом форма перейдет в режим добавления новых записей. В этом режиме активизируется первое поле со списком. В этом поле необходимо выбрать нужный счет или «Итого». После этого программа активизирует, исходя из счета, поле для введения значений. Программа может «перепрыгивать» некоторые счета, т.к. она выбирает какое поле вводится при текущем счете. Для удобства ввода цифр программа показывает справа от поля ввода еще два дополнительных. Фокус автоматически передается в нижнее. Здесь можно непосредственно вводить значение, если есть необходимость произвести суммирование то следует ввести значение и нажать “+” на вспомогательной цифровой клавиатуре. При этом значение перейдет в верхнее поле и станет выделено красным цветом. Таким образом можно вводить значение, нажимать “+” и значения будут суммироваться. После того как получилась сумма которую нужно запомнить необходимо нажать «Enter» и сумма перенесется в нужное поле и программа активизирует следующее поле для ввода. В конце ввода программа попросит ввести дату, нужно ввести дату в формате ДД.ММ.ГГГГ и нажать «Enter». Ввод данных можно в любое время отменить нажатием кнопки «Отменить», при этом форма перейдет в режим «Просмотра записей».

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

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


1.8. Контрольный пример

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

Для начала заполним случайным образом исходные данные в предназначенные для этого поля:

Таблица №4

A B C D E F Q H I J
1 23100 01.01.2000 2

 

4

 

 

 

X

 

2 26000 01.01.2000 3 2 X
3 29100 01.01.2000 4 3 X
4 29200 01.01.2000 2 5 X
5 29300 01.01.2000 3 1 X
6 29400 01.01.2000 6 7 X
7 29900 01.01.2000 10 X X X 13 16 14  
8 Итого 01.01.2000   25       45 X  

После этих действий необходимо исходя из формул в постановке задачи (см. пункт 1.1. «Расчет таблицы») заполнить поля предназначенные для этого.

При расчете столбца С необходимо просуммировать все цифры с первой строки до седьмой. В результате получим 30. Это значение запишем в поле С8.

При расчете столбца D необходимо рассчитать коэффициент, по формуле D8/C8, а затем на этот коэффициент умножить значение соответствующей строки С.

 

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

Таблица №4

A C D E F Q H I J
1 23100 2 1,67 4 5,67 0,42 6,09 X 6,09
2 26000 3 2,5 2 4,5 0,63 5,13 X 5,13
3 29100 4 3,33 3 6,33 0,84 7,17 X 7,17
4 29200 2 1,67 5 6,67 0,42 7,09 X 7,09
5 29300 3 2,5 1 3,5 0,63 4,13 X 4,13
6 29400 6 5 7 12 1,27 13,27 X 13,27
7 29900 10 X X X 13 16 14 30
8 Итого 30 25 22 38,67 6,33 45 X 45

Если сравнить значения рассчитанные программой (см. приложение 1) и Таблицу №4 то можно увидеть, что они, при данных начальных данных, идентично. На основе этого можно утверждать, что программа производит вычисления правильно.






Выводы о проделанной работе

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


2. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКАЯ ЧАСТЬ

2.1. Расчет стоимости часа работы ПЭВМ


Дата: 2019-05-29, просмотров: 156.