Программирование в Turbo Pascal
Московский Государственный
Индустриальный Университет
Институт Дистанционного Образования
Курсовая работа
по дисциплине: «ИНФОРМАТИКА»
по теме: «Выполнение задания по
программированию в TURBO PASCAL»
Выполнила: студентка группы 01М22
Белоусова Екатерина
Преподаватель: Суворов С.В.
Москва, 2002
Содержание:
Стр.
1. Формулировка
задания
3
2. Описание переменных
4
3. Блок-схема
5
4. Программа
6
5. Результаты проверки правильности программы
9
6. Результат подстановки данных в программу
10
7. Список используемой
литературы 10
Формулировка задания:
На телефонном узле в конце каждого квартала составляется
на каждого абонента ведомость оплаты междугородных телефонных разговоров (с 7-ю
городами) в течение квартала (3 месяца).
Написать программу, которая вводит исходные данные, выполняет
расчеты и выводит на экран:
ü Исходные данные в виде таблицы, где указаны коды
городов, с которыми велись разговоры, общее время разговора с каждым городом за
один месяц, стоимость одной минуты разговора (меняется каждый месяц);
ü Общая продолжительность разговоров с каждым городом за
квартал;
ü Плата за каждый месяц;
ü Общая плата за 3 месяца;
ü Город с наибольшей платой.
Требование к вводу информации:
Исходные данные вводятся с
клавиатуры.
Требования к выводу результатов:
Результаты выводятся на экран.
Требования
к структуре программы.
Программа должна состоять из
следующих частей:
ü Вывод заставки с информацией о студенте и задании;
ü Ввод данных (выполняется в диалоговом режиме);
ü Вывод исходных данных и результатов (на один экран).
Требования
к размещению исходных данных внутри программы.
Исходные данные располагаются в файле, компонентами
которого являются записи. Структура каждой записи и типы ее полей выбираются в
зависимости от задания.
Используемые цвета:
Черный (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
|
0
|
|
0
|
0
|
0
|
|
0
|
0
|
0
|
0
|
|
0
|
0
|
0
|
0
|
0
|
0
|
|
0
|
0
|
0
|
|
0
|
0
|
0
|
0
|
|
0
|
0
|
0
|
0
|
0
|
0
|
|
0
|
0
|
0
|
|
0
|
0
|
0
|
0
|
|
0
|
0
|
0
|
0
|
0
|
0
|
|
0
|
0
|
0
|
|
0
|
0
|
0
|
0
|
|
0
|
0
|
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
|
3
|
1
|
3
|
1
|
1
|
|
1
|
1
|
1
|
|
1
|
1
|
1
|
1
|
|
1
|
3
|
1
|
3
|
1
|
1
|
|
1
|
1
|
1
|
|
1
|
1
|
1
|
1
|
|
1
|
3
|
1
|
3
|
1
|
1
|
|
1
|
1
|
1
|
|
1
|
1
|
1
|
1
|
|
1
|
3
|
1
|
3
|
1
|
1
|
|
1
|
1
|
1
|
|
1
|
1
|
1
|
1
|
|
1
|
3
|
1
|
3
|
1
|
1
|
|
1
|
1
|
1
|
|
1
|
1
|
1
|
1
|
|
1
|
3
|
1
|
3
|
1
|
1
|
|
1
|
1
|
1
|
|
1
|
1
|
1
|
1
|
|
1
|
3
|
1
|
3
|
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 г.