Программирование в Turbo Pascal
Программирование в Turbo Pascal
Московский Государственный Индустриальный Университет
Институт Дистанционного Образования
Курсовая работа
по дисциплине: «ИНФОРМАТИКА»
по теме: «Выполнение задания по программированию в TURBO PASCAL»
Выполнила: студентка
группы 01М22
Белоусова Екатерина
Преподаватель:
Суворов С.В.
Москва, 2002
Содержание:
Стр.
1. Формулировка задания
3
2. Описание переменных 4
3. Блок-схема 5
4. Программа 6
5. Результаты проверки правильности программы 9
6. Результат подстановки данных в программу 10
7. Список используемой литературы
10
Формулировка задания:
На телефонном узле в конце каждого квартала составляется на каждого
абонента ведомость оплаты междугородных телефонных разговоров (с 7-ю
городами) в течение квартала (3 месяца).
Написать программу, которая вводит исходные данные, выполняет расчеты и
выводит на экран:
V Исходные данные в виде таблицы, где указаны коды городов, с которыми
велись разговоры, общее время разговора с каждым городом за один
месяц, стоимость одной минуты разговора (меняется каждый месяц);
V Общая продолжительность разговоров с каждым городом за квартал;
V Плата за каждый месяц;
V Общая плата за 3 месяца;
V Город с наибольшей платой.
Требование к вводу информации:
Исходные данные вводятся с клавиатуры.
Требования к выводу результатов:
Результаты выводятся на экран.
Требования к структуре программы.
Программа должна состоять из следующих частей:
V Вывод заставки с информацией о студенте и задании;
V Ввод данных (выполняется в диалоговом режиме);
V Вывод исходных данных и результатов (на один экран).
Требования к размещению исходных данных внутри программы.
Исходные данные располагаются в файле, компонентами которого являются
записи. Структура каждой записи и типы ее полей выбираются в зависимости от
задания.
Используемые цвета:
Черный (0) Светло-зеленый (10)
Красный (4) Желтый (14)
Описание переменных:
Описание типов:
Тип: telef=record
kod:integer;
tpm1,tpm2,tpm3,price1,price2,price3:integer;
end;
Тип записи telef является представлением информации о городе, а именно:
kod - код города, который является целым числом.
tpm1,tpm2,tpm3 - время разговора абонента с городом за 1-ый, 2-ой и 3-ий
месяц соответственно, целые числа.
price1,price2,price3 - стоимость 1-ой минуты разговора за 1-ый, 2-ой и 3-
ий месяц соответственно, также целые числа.
Тип: telef1=record
kod,tpm,ob:integer;
pr1,pr2,pr3:integer;
end;
Тип записи telef1 также является представлением информации о городе.
кod - код города, tpm - общее время разговора с городом за квартал (3
месяца).
pr1,pr2,pr3 - стоимость разговора с городом за 1-ий, 2-ой и 3-ий месяцы
соответственно.
оb- общая стоимость разговора с городом за квартал.
Все поля типа записи telef1- целые числа.
Описание переменных:
а:file of telef;
Типизированный файл «а» содержит записи типа telef, т.е. содержит
исходную информацию о каждом городе, времени разговора с каждым городом
помесячно и стоимость минуты разговора за каждый месяц квартала.
tel:telef;
tel-запись типа telef, содержащая информацию о городе.
tel-запись, которой по мере выполнения программы, присваиваются значения
записей, находящихся в типизированном файле «а».
res: array[1..7] of telef1;
res - одномерный массив, содержащий 7 элементов типа telef1, т.е. этот
массив содержит информацию о 7-ми городах, полученную в результате
расчетов, произведенных в программе.
i,j,aa,max: integer;
i - целое число, которое используется в цикле ввода исходных данных,
переменная «i» в этом случае принимает значения кода городов, также эта
переменная используется в цикле вывода результатов на экран, где
выступает в роли значения номера города, т.е. в роли номера элемента
массива res.
max,j- целые числа, переменные, используемые для определения кода города
с наибольшей оплатой за квартал. Переменной max присваиваются значения
общей стоимости разговоров с городом за квартал, по мере выполнения
программы переменной max присваивается наибольшее значение.
Переменной j присваивается значение номера элемента массива res и при
определении города с наибольшей оплатой j присваивается номер этого
города в массиве res.
s - целое число, используемое в цикле расчета результатов. Переменной s
присваиваются значения от 1 до 7, т.е. значения номеров элементов массива
res.
Нет
Да
Нет Да
Да
Нет
Нет
Нет Да
Да
Да
program kursovik;
uses crt;
type
telef=record
kod:integer;
tpm1,tpm2,tpm3,price1,price2,price3:integer;
end;
telef1=record
kod,tpm,ob:integer;
pr1,pr2,pr3:integer;
end;
var
a:file of telef;
tel:telef;
res:array[1..7] of telef1;
i,j,s,aa,max:integer;
begin;
textbackground(10);
clrscr;
textcolor(0);
gotoxy(15,2);
writeln('Курсовая работа студента группы 01М22 Белоусовой Е.В.');
gotoxy(27,3);
writeln('Задание на курсовую работу:');
textcolor(4);
writeln;
writeln(' На телефонном узле в конце каждого квартала составляется на
каждого абонента');
writeln('ведомость оплаты междугородных телефонных разговоров (с 7-ю
городами) в течение');
writeln('квартала (3 месяца).');
writeln(' Написать программу, которая вводит исходные данные, выполняет
расчеты и ');
writeln('выводит на экран:');
writeln(' - исходные данные в виде таблицы, где указаны коды городов, с
которыми велись');
writeln(' разговоры, общее время разговора с каждым городом за один
месяц, стоимость');
writeln(' одной минуты разговора (меняется каждый месяц);');
writeln(' - общая продолжительность разговоров с каждым городом за
квартал;');
writeln('плата за каждый месяц;');
writeln('общая плата за 3 месяца;');
writeln('город с наибльшей платой.');
gotoxy(27,18);
textcolor(0);
writeln('Требование к вводу информации');
textcolor(4);
writeln(' - исходные данные вводятся с клавиатуры.');
textcolor(0);
writeln;
writeln(' Требование к выводу результатов');
textcolor(4);
writeln(' - результат выводятся на экран.');
textcolor(14);
writeln;
writeln(' Для продолжения работы программы нажмите
ENTER');
readln;
clrscr;
textcolor(0);
writeln(' Требования к структуре программы ');
textcolor(4);
writeln(' Программа должна состоять из следующих частей:');
writeln(' - вывод заставки с информацией о студенте и задании;');
writeln(' - ввод данных (выполняется в диалоговом режиме);');
writeln(' - вывод исходных данных и результатов (на один экран).');
textcolor(0);
writeln(' Требования к размещению исходных данных внутри
программы ');
textcolor(4);
writeln(' Исходные данные располагаются в файле, компонентами которого
являются записи.');
writeln('Структура каждой записи и типы ее полей выбираются в зависимости
от задания.');
textcolor(0);
writeln(' Используемые цвета ');
textcolor(4);
writeln(' - черный(0),красный(4), светло-зеленый(10), желтый(14)');
textcolor(14);
gotoxy(18,24);
writeln('Для продолжения работы программы нажмите ENTER');
readln;
clrscr;
assign(a,'kurs.dat');
rewrite(a);
textcolor(0);
for i:=1 to 7 do
begin
write('Введите код ',i,'-го города: ');
readln(tel.kod);
write('Введите общее время разговора с городом ',tel.kod,' за 1-й месяц:
');
readln(tel.tpm1);
write('Введите стоимость одной минуты разговора с городом ',tel.kod,' в
1-м месяце: ');
readln(tel.price1);
write('Введите общее время разговора с городом ',tel.kod,' за 2-й месяц:
');
readln(tel.tpm2);
write('Введите стоимость одной минуты разговора с городом ',tel.kod,' в
2-м месяце: ');
readln(tel.price2);
write('Введите общее время разговора с городом ',tel.kod,' за 3-й месяц:
');
readln(tel.tpm3);
write('Введите стоимость одной минуты разговора с городом ',tel.kod,' в
3-м месяце: ');
readln(tel.price3);
write(a,tel);
end;
close(a);reset(a);
s:=1;
while not eof(a) do begin
read(a,tel);
res[s].kod:=tel.kod;
res[s].tpm:=tel.tpm1+tel.tpm2+tel.tpm3;
res[s].pr1:=tel.tpm1*tel.price1;
res[s].pr2:=tel.tpm2*tel.price2;
res[s].pr3:=tel.tpm3*tel.price3;
res[s].ob:=res[s].pr1+res[s].pr2+res[s].pr3;
s:=s+1;
end;close(a);
clrscr;
writeln('Код города Общее время разговора за каждый месяц Стоимость
минуты разговора');
reset(a);
while not eof(a) do
begin
read(a,tel);
writeln(' ',tel.tpm1,'
',tel.price1);
writeln(' ',tel.kod,' ',tel.tpm2,'
',tel.price2);
writeln(' ',tel.tpm3,'
',tel.price3);
end;
textcolor(14);
gotoxy(18,24);
writeln('Для продолжения работы программы нажмите ENTER');
readln;
clrscr;
textcolor(0);
writeln('Код города Общее время разговора за квартал Плата за месяц
Общая плата');
for i:=1 to 7 do
begin
aa:=res[i].kod;
writeln('
',res[i].pr1);
writeln(' ',aa,' ',res[i].tpm,'
',res[i].pr2,' ',res[i].ob);
writeln('
',res[i].pr3);
end;
max:=res[1].ob;
for i:=1 to 6 do begin
if res[i+1].ob>max then
begin
max:=res[i+1].ob;
j:=i+1;
end;
end;
writeln('Город с наибольшей платой: ',res[j].kod);
textcolor(14);
gotoxy(18,24);
writeln('Для завершения работы программы нажмите ENTER');
readln;
end.
|Таблица исходных данных | |Таблица результатов |
| |0 |0 | | | |0 | |
| |0 |0 | | | |0 | |
| |0 |0 | | | |0 | |
| |0 |0 | | | |0 | |
| |0 |0 | | | |0 | |
| |0 |0 | | | |0 | |
| |0 |0 | | | |0 | |
| | | | |Город с наибольшей платой - 1 |
| | |Таблица результатов |
|Таблица исходных данных | | |
| |1 |1 | | | |1 | |
| |1 |1 | | | |1 | |
| |1 |1 | | | |1 | |
| |1 |1 | | | |1 | |
| |1 |1 | | | |1 | |
| |1 |1 | | | |1 | |
| |1 |1 | | | |1 | |
| | | | |Город с наибольшей платой - 1 |
Результат.
Результатом выполнения программы является вывод на экран
информации о студенте и о задании, ввод исходных данных с клавиатуры в
диалоговом режиме, вывод исходных и расчетных данных в виде таблицы.
Программа выполнена с учетом всех требований, указанных в задании.
|Таблица исходных данных |
|Код |Общее |Стоимость|
|города |время |минуты |
| |разговора |разговора|
| |за каждый | |
| |месяц | |
|1 |7 |10 |
| |8 |10 |
| |9 |15 |
|2 |1 |5 |
| |2 |5 |
| |3 |5 |
|3 |4 |6 |
| |5 |6 |
| |6 |7 |
|4 |2 |10 |
| |4 |20 |
| |8 |10 |
|5 |3 |7 |
| |2 |7 |
| |1 |7 |
|6 |4 |9 |
| |6 |10 |
| |7 |11 |
|7 |8 |13 |
| |9 |10 |
| |10 |14 |
|Таблица результатов |
|Код |Общая |Плата |Общая |
|города|продолжительно|за |плата |
| |сть разговоров|каждый| |
| |за квартал |месяц | |
|1 |24 |70 |285 |
| | |80 | |
| | |135 | |
|2 |6 |5 |30 |
| | |10 | |
| | |15 | |
|3 |15 |24 |96 |
| | |30 | |
| | |42 | |
|4 |14 |20 |180 |
| | |80 | |
| | |80 | |
|5 |6 |21 |42 |
| | |14 | |
| | |7 | |
|6 |17 |36 |173 |
| | |60 | |
| | |77 | |
|7 |27 |104 |334 |
| | |90 | |
| | |140 | |
| | | | |
|Город с наибольшей платой - 7 |
Список использованной литературы:
1. Фигурнов В.Э. IBM PC для пользователя. Изд. 6-е, М., 1995 г.
2. Фаронов В. В., Турбо Паскаль 7.0., Учебное пособие. – М.: «Нолидж», 1999
г.
3. Острейковский В.А. Информатика. –М.: «Высшая школа», 2000 г.
-----------------------
Конец
i = 7
Вывод города с наибольшей платой
max:= res[1+1].ob
max:= res[1].ob
i := 0
i := i+1
res[1+1].ob>max
i = 7
Вывод на экран таблицы результата расчетов
Конец файла записи
Вывод на экран таблицы исходных данных
Расчет общей продолжительности разговоров с каждым городом за квартал,
платы за каждый месяц, общей платы за 3 месяца.
i = 7
Ввод кода города, общего времени разговора за каждый месяц, стоимости одной
минуты разговора с городом за каждый месяц. Запись записи в файл.
i := 0
i := i+1
Описание переменных
Вывод заставки на экран
Вызов модуля CRT
Описание типов переменных
Начало
|