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

¨Рассчитывает значения:

· количества дней, в течение которых была произведена оплата

· количества минут, в течение которых был произведен разговор

· сумму, которую абонент заплатит, если оплата была произведена в срок

· пени  за просроченные переговоры исходя из расчета:

а) 0 руб., если оплата в течение суток;

б) 5% от суммы переговоров, если оплата в срок >1 суток, но <3;

в) 10% от суммы переговоров, если оплата в срок от 3 до 5 суток;

г) 10% за каждый день со времени разговора, если оплата задержана на срок выше 5 суток.

¨Выводит заполненную таблицу с расчетами

II.  Выполняет расчеты в EXCEL

  ¨ Рассчитывает значения:

· количества дней, в течение которых была произведена оплата

· количества минут, в течение которых был произведен разговор

· сумму, которую абонент заплатит, если оплата была произведена в срок

· пени  за просроченные переговоры исходя из расчета:

а) 0 руб., если оплата в течение суток;

б) 5% от суммы переговоров, если оплата в срок >1 суток, но <3;

в) 10% от суммы переговоров, если оплата в срок от 3 до 5 суток;

г) 10% за каждый день со времени разговора, если оплата задержана на срок выше 5 суток.

д) общую сумму оплаты.

2. Разработка алгоритма решения задачи на языке QBASIC

2.1. Блок – схема алгоритма

Блок-схема: решение: RD(i) >5Блок-схема: решение: RD(i)>=3

PL(i) = T(i) * KM(i)

 

KM(i) = 60 – D1*100+D2*100

 
Блок-схема: решение: I1=I2

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

I1 = INT(VS(i)): I2 = INT(VO(i))

D1 = VS(i) - I1: D2 = VO(i) - I2

 
Блок-схема: подготовка: i=1,m,1Блок-схема: знак завершения: Начало

P(i) = PL(i)*0.1

 

P(i) = PL(i)*0.1* RD(i)

 

KM(i) = (D2 – D1)*100

 
                         1

2

Блок-схема: данные: Ввод
m
 


Блок-схема: данные: Ввод массивов  G$(m), T$(m), F$(m), DR(m), DPL(m), VS(m), VO(m), TAR(m)                         3

4

           

5

ДА          7

 6

                       8       

НЕТ

                       9

11

10                                      ДА

нет                         да     13

12

нет                                   15

P(i) = PL(i)*0.05

 
Блок-схема: решение: RD(i) >1                        14                                                          ДА

 


НЕТ

P(i) = 0

 
                        16

                       

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

 
                        17

 


18

Блок-схема: данные: Ввод  заголовка и шапки таблицы                               

                                         19

Блок-схема: подготовка: i=1,m,1                               

                                       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)

                               

                               

                                21

2.2. Описание блок-схемы

Блок 1  – начало программы;

Блок 2  – ввод количества записей в таблице (m=20)

Блок  3 – ввод значений массивов  G$(i), T$(i), f$(i), DR(i), DPL(i), VS(i), VO(i), TAR(i)

Блок  4 – начало цикла. Начальное значение i устанавливается равным 1, конечное – m, шаг по умолчанию равен 1. После окончания цикла переход на Блок 18

Блок  5 –  расчет RD(i) и выделение целой и дробной части значений VS(i),VO(i).

Блок  6 – проверка условия продолжительности разговора в течение одного и того же часа. Если целые части равны, то переход на Блок 7, иначе переход на Блок 8

Блок 7 – рассчитывает количество минут как разность дробных частей значений начала и окончания разговора, умноженная на 100.

Блок  8  – по расчетной формуле вычисляется продолжительность разговора;

Блок 9 –  рассчитывается сумма оплаты в срок

Блоки  с 10 по 16 – расчет пени в зависимости от условия

Блок 17 – расчет общей суммы оплаты. Процесс возвращается на Блок 4