Программирование в Turbo Pascal
СОДЕРЖАНИЕ: Московский Государственный Индустриальный Университет Институт Дистанционного Образования Курсовая работа по дисциплине: «ИНФОРМАТИКА» по теме: «Выполнение задания по программированию в TURBO PASCAL»Московский Государственный Индустриальный Университет
Институт Дистанционного Образования
Курсовая работа
по дисциплине: «ИНФОРМАТИКА»
по теме: «Выполнение задания по программированию в TURBOPASCAL»
Выполнила: студентка группы 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-ий месяц соответственно, целые числа.
price 1, price 2, price 3 - стоимость 1-ой минуты разговора за 1-ый, 2-ой и 3-ий месяц соответственно, также целые числа.
Тип:telef1=record
kod,tpm,ob:integer;
pr1,pr2,pr3:integer;
end ;
Тип записи telef1 также является представлением информации о городе.
к od - код города, tpm - общее время разговора с городом за квартал (3 месяца).
pr 1, pr 2, pr 3 - стоимость разговора с городом за 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].obmax 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 | 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. Фигурнов В.Э. IBMPC для пользователя. Изд. 6-е, М., 1995 г.
2. Фаронов В. В., Турбо Паскаль 7.0., Учебное пособие. – М.: «Нолидж», 1999 г.
3. Острейковский В.А. Информатика. –М.: «Высшая школа», 2000 г.