Обработка таблиц с помощью Qbasic и Excel. Разработка алгоритма решения задачи на языке QBASIC, страница 3

Блок 18 – вывод на экран заголовка и «шапки» таблицы.

Блок 19 – начало цикла для вывода результирующей таблицы. После окончания переход на Блок 21.

Блок 20 – Вывод G$(i); T$(i); F$(i); DR(i); DPL(i); VS(i); VO(i); TAR(i); RD(i); KM(i),PL(i),P(i),OS(i) (вывод на экран заполненных строк таблицы). Переход на Блок 19.

Блок 21 -  конец программы

                                                      2.3. Программа на языке QBASIC

2.3.1. Обозначение переменных

Присвоим имена всем данным, которые будут участвовать в решении задачи.:

m – количество строк в таблице (количество записей - городов);

i - текущий номер строки таблицы, переменная цикла (изменяется от 1 до m);

I1,I2,D1,D2 – вспомогательные переменные для определения целой и дробной части вещественного числа;

f1$ - переменная для задания формата вывода значений таблицы;

G$(m) – символьный одномерный массив – города;

T$(m) – символьный одномерный массив – номер телефона;

F$(m) – символьный одномерный массив – фамилии;

DR(m) – числовой одномерный массив –  дата разговора;

DPL(m) – числовой одномерный массив –  дата оплаты;

VS(m) – числовой одномерный массив –  время соединения;

VO(m) – числовой одномерный массив – время окончания ;

TAR(m) – числовой одномерный массив  - тариф для оплаты;

RD(m) – числовой одномерный массив  - количество дней, в течение которых будет произведена оплата;

KM(m)  – числовой одномерный массив  - количество минут, в течение которых был произведен разговор;

PL(m)  – числовой одномерный массив  - сумма, которую абонент заплатит, если оплата произведена в срок;

P(m)  – числовой одномерный массив  - пени за просроченную оплату переговоров;

OS(m) – числовой одномерный массив  - общая сумма оплаты

Исходные данные

G$(i), T$(i), F$(i), DR(i), DPL(i), VS(i), VO(i), TAR(i)  - по i-ой строке таблицы.

Расчетные данные по i -ой строке таблицы

RD(i) = DPL(i) - DR(i)

Расчет KM(i), P(i)  – зависит от выбора условия

PL(i) = TAR(i) * KM(i)

OS(i) = PL(i) + P(i)

                                        2.3.2. Описание программы

При составлении программы были сделаны следующие  предположения:

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

-  Переговоры продолжаются не более  2-х часов.

-  Время соединения и время окончания переговоров задаются как вещественные числа, где целая часть числа – это часы, а дробная часть числа – это минуты

-  Количество исходных записей в расчетной таблице равно 20 (m=20). Все исходные записи  сформированы в блоке данных с помощью оператора DATA.

-  В программе использован оператор REM – оператор комментария Оператор CLS – очищает экран.

Оператор DIM объявляет  все используемые в программе массивы, как числовые, так и текстовые (символьные).

Далее для вsвода расчетных данных в файл открывается файл res.txt на диске А: оператором OPEN “A:\TELEF\res.txt” FOR OUTPUT AS FILE #2. В последующем используются операторы PRINT #2, и PRINT #2, USING , где    #2 – номер канала. В конце программы канал следует закрыть оператором CLOSE #2.

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

Расчет пени тоже осуществляется с помощью  условного оператора .

В операторах вывода используется функция ТАВ, которая перемещает курсор текста в указанную в скобках позицию печати, и функция STRING$, которая возвращает строку указанной длины, состоящую из повторяющегося символа (в нашем случае символ  тире ).

3. Выполнение расчетов в EXCEL

3.1. Задание

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