Блок 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 - конец программы
Присвоим имена всем данным, которые будут участвовать в решении задачи.:
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)
При составлении программы были сделаны следующие предположения:
- Дата разговора и дата оплаты произведены в один и тот же месяц (сентябрь 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$, которая возвращает строку указанной длины, состоящую из повторяющегося символа (в нашем случае символ тире ).
Выполнить расчеты в EXCEL по заданной таблице, дополнив ее так, чтобы в ней повторялись города и фамилии.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.