Кибернетика

Программирование в 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

                          Описание типов переменных

                                   Начало




смотреть на рефераты похожие на "Программирование в Turbo Pascal"