Реферат по предмету "Информатика, программирование"


Создание текстового редактора в Turbo Pascal

Министерство энергетики
РФ



Уфимский Энергетический Колледж









Специальность 2202











Курсовая работа



по Основам алгоритмизации и
программирования



на тему “Создание текстового
редактора”















Выполнил:    студент группы  2 – АС –
3   ____________ Тимофеев Т.П.



Проверил:                                                      
____________ Ганиев А.Э.



















Уфа – 2001г.



Содержание





1.    Задание ……………………………………………………… стр. 3



2.    Описание программы ……………………………………….
стр. 4



3.    Листинг ……………………………………………………… стр. 5



3.1.   Исходный текст программы .………………………….
стр. 5



3.2.   Текст модуля ……………….…………………………..
стр.10



4.    Заключение …………………………………………………..
стр.18



5.    Список использованной литературы
……………………… стр.19







Задание.





Создать программу, обеспечивающую:



1.   
Cоздание файлов.



2.   
Переименование файлов.



3.   
Удаление файлов.



4.   
Копирование файла в другой файл.



5.   
Открытие файла для просмотра.



Программа должна быть
написана на Turbo Pascal в текстовом режиме с использованием любых модулей,
которые необходимы для её реализации (допускаются также модули пользователя).







Описание
программы.





Timofeev Word v.1.0 – это программа для работы с
текстом. С её помощью можно создавать, удалять, переименовывать, открывать,
копировать файлы друг в друга. Конечно, всё это можно проделать и в MS-DOS, но
преимущество этой программы в том, что все эти команды тщательно спрятаны под красивым
и дружественным интерфейсом моей программы.



Так как в программе Timofeev
Word v.1.0
много процедур, я создал собственный модуль Tim.tpu, куда
их (процедуры) и отправил.



Процедуры:



1.    Table – рисует оболочку программы.



2.    Enter_Sandman – происходит проигрывание музыки на
песню группы Metallica - “Enter
Sandman”. Я не стал делать так, чтобы при нажатии какой-либо клавиши она
прекращала играть, потому что для меня (не знаю как для других) это свято.



3.    Menu – эта процедура вызывает меню, где содержится
информация о программе и помощь (если её так можно назвать).



4.    Keys – процедура, считывающая код нажатой клавиши.



В этой программе, конечно много недоработок, но я
надеюсь, что вскоре появятся дополненные версии 1.2, 1.3, 2.0,2.1,……, n.m.



Эта программа может использоваться в о-о-о-о-о-очень
маленьких офисах, которые не имеют возможности приобрести качественный
лицензионный продукт, к примеру Microsoft Office’9x, ’2000 (если кто-то имеет
на примете такой офис, я с удовольствием продам, за символическую цену, свой
программный  продукт). Также программа может использоваться для обучения детей
в детских садах работе на персональных компьютерах. И, наконец, ей могут
воспользоваться студенты I курса для сдачи её как Курсовой работы на следующем
курсе. 







Листинг.



Исходный
текст программы.



Program Redaktor;



  Uses Crt,Tim; {использовать модули Crt и Tim}



  Label b; {метка}



  Var  {тело}



    Programname,Cmdline:string; 



    nn,i,x,y:integer;



    f1,f1_new:text;



    Name,New_name:string[12];



    txt,text:string; 



    ch:char;



begin



  i:=1;



  textbackground(red);



  clrscr;



textcolor(yellow);



gotoxy(22,10);



writeln('Текстовый процессор Timofeev
Word');



gotoxy(22,11);



writeln('      Версия 1.0 (2001
год)');



gotoxy(40,15);



writeln('Составил Тимофеев Тимур
(2-АС-3)');



textcolor(green);



gotoxy(40,16);



writeln('Все права защищены.');



gotoxy(40,17);



writeln('Незаконное копирование');



gotoxy(40,18);



writeln('или подделка без согласия
автора');



gotoxy(40,19);



writeln('преследуется по понятиям
!!!');



delay(5000);



textcolor(yellow);



table;



gotoxy(2,21);



write('Введите имя:');



readln(name);



assign(f1,name);



rewrite(f1);



gotoxy(2,21);



write('Вводите текст !!!          ');



gotoxy(1,2);



      repeat



      write(chr(179),':>');



      readln(txt);



      writeln(f1,txt);



    until txt='';



  close(f1);



  gotoxy(2,21);



  writeln('Ввод окончен, нажмите чего-нибудь ...');



    repeat



      readkey;



      keys(nn);



      case nn of {определяет нажатие функциональных клавиш}



        59:menu; {F1}



        60:begin {F2}



table;



gotoxy(2,21);



write('                                     
');



gotoxy(2,21);



write('Введите имя:');



readln(name);



assign(f1,name);



rewrite(f1);



gotoxy(2,21);



write('Вводите текст !!!          ');



gotoxy(1,2);



          repeat



write(chr(179),':>');



readln(txt);



writeln(f1,txt);



until txt='';



        close(f1);



        gotoxy(2,21);



        writeln('Ввод окончен, нажмите чего-нибудь ...');



        end;



61:begin  {F3}



gotoxy(2,21);



write('Введите имя файла, в который
копир-я файл ',name,'->');



readln(new_name);



reset(f1);



assign(f1_new,new_name);



append(f1_new);



  while not eof(f1) do



    begin



      readln(f1,txt);



      writeln(f1_new,txt);



    end;



close(f1);



close(f1_new);



gotoxy(2,21);



writeln('Файл ',name,' скопирован в
',new_name,' нажмите



чего-нибудь ...');



end;



62:begin {F4}



gotoxy(2,21);



write('                                      
');



gotoxy(2,21);



write('Введите новое имя файла:');



readln(new_name);



assign(f1,name);



rename(f1,new_name);



gotoxy(2,21);



writeln('Файл ',name,' перименован в
',new_name,' нажмите



чего-нибудь ... ');



end;



63:begin  {F5}



erase(f1);



gotoxy(2,21);



writeln('Файл ',name,' удалён с
диска, нажмите чего-нибудь ...');



end;



64:begin     {F6}



{$I-}



          repeat



gotoxy(2,21);



write('Введите имя файла для считывания
текста ->');



readln(name);



assign(f1,name);



reset(f1);



              if ioresult<>0 then



begin



gotoxy(2,21);



writeln('Файл не найден
...                       ');



close(f1);



end;



          until ioresult=0;



{$I+}



table;



gotoxy(1,2);



while not eof(f1) do



begin



readln(f1,txt);



writeln(chr(179),txt);



end;



close(f1);



gotoxy(2,21);



write('Файл считан, нажмите
чего-нибудь ...             ');



end;



68:goto b;   {F10} {Происходит выход
на метку}



end;



until i<0;   {считывай
функциональные клавиши пока i<0,



                    а т.к. i=1 и не
изменяется, то этот процесс бесконечен}



b:end.









Текст модуля.



Unit Tim;





Interface





Uses Crt,Dos;



Procedure keys(var n:integer);



Procedure table;



Procedure Enter_sandman;



Procedure menu;





Implementation





Procedure keys(var
n:integer);{процедура нажатия клавиши}



var c:char;



begin



  if keypressed then



    begin



    c:=readkey;



       if c=#0 then c:=readkey;



    n:=ord(c);



    end;



end;





Procedure Enter_sandman; {музыка}



Const



  m:array [1..6] of
integer=(165,330,392,233,220,330);



  t:array [1..6] of
integer=(1100,600,600,600,1100,600);



  e:array [1..7] of
integer=(165,165,165,165,165,165,170);



  r:array [1..7] of
integer=(600,600,600,600,600,600,1100);



  w:array [1..5] of
integer=(167,167,167,294,233);



  q:array [1..5] of
integer=(1100,600,600,600,1100);



  o:array [1..9] of
integer=(165,182,165,182,165,196,165,182,165);



  b:array [1..9] of
integer=(600,1100,600,600,600,600,600,600,3000);



  var a,u,z,x:integer; i:byte;



begin



  for a:=1 to 4 do



    begin



       for i:=1 to 6 do



          begin



  sound(m[i]);



  delay(t[i]);



  nosound;



end;



 end;



     for u:=1 to 3 do



        begin



           for i:=1 to 7 do



              begin



  sound(e[i]);



  delay(r[i]);



  nosound;



  end;



        end;



     for z:=1 to 3 do



        begin



           for i:=1 to 5 do



              begin



  sound(w[i]);



  delay(q[i]);



  nosound;



  end;



       end;



     for i:=1 to 9 do



        begin



  sound(o[i]);



  delay(b[i]);



  nosound;



  end;



end;





Procedure table; {рисует таблицу}



  var



  w,h:integer;



 
c1,c2,c3,c4,c7,c5,c6,c8,c9,c10:char;



begin



  textbackground(blue);



  clrscr;



  textcolor(yellow);



w:=1;



h:=1;



c1:=chr(218);



c2:=chr(196);



c3:=chr(191);



c4:=chr(179);



c5:=chr(192);



c6:=chr(217);



c7:=chr(195);



c8:=chr(180);



c9:=chr(193);



c10:=chr(194);



      for h:=2 to 25 do



         begin



gotoxy(w,h);



write(c4);



end;



gotoxy(w,h);



write(c5);



for w:=2 to 79 do



begin



gotoxy(w,h);



write(c2);



end;



gotoxy(w,h);



write(c6);



for h:=24 downto 1 do



begin



gotoxy(w,h);



write(c4);



end;



gotoxy(w,h);



write(c3);



for w:=78 downto 1 do



begin



gotoxy(w,h);



write(c2);



end;



gotoxy(w,h);



write(c1);



gotoxy(1,20);



write(c7);



for w:=2 to 59 do



begin



gotoxy(w,20);



write(c2);



end;



gotoxy(w,1);



write(c10);



for h:=2 to 24 do



begin



gotoxy(w,h);



write(chr(179));



end;



gotoxy(w,20);



write(c8);



gotoxy(59,25);



write(c9);



gotoxy(62,4);



writeln('F1-Помошь');



gotoxy(62,5);



writeln('F2-Новый');



gotoxy(62,6);



writeln('F3-Копировать');



gotoxy(62,7);



writeln('F4-Переименовать');



gotoxy(62,8);



writeln('F5-Удалить');



gotoxy(62,9);



writeln('F6-Просмотреть');



gotoxy(62,10);



writeln('F10-Выход');



end;





Procedure menu;



Const



     NORM=$17;{ цвет невыделеного
пункта }



     SEL=$70;{ цвет выделенного
пункта }



     N=3;



var



     menu:array[1..N] of string[12];{
названия пунктов меню }



     punkt:integer;{ номер
выделенного пункта }



     ch:char;{ введенный символ }



     x,y,i:integer;{ координаты
первой строки меню }





Procedure punkt1;



begin



     ClrScr;



     writeln('Выполнил студент гр.
2-АС-3 Тимофеев Т.П. (2001 г.)');



     writeln('Курсовая
работа-а-а-а-а-а-а-а !!!!!!!!!!!!!!!!!');



     readln;



end;





Procedure punkt2;



begin



     ClrScr;



     writeln('Тута всё понятно даже
ребёнку.');



     readln;



end;







Procedure MenuToScr;{ вывод меню на
экран }



var i:integer;



begin



     ClrScr;



     for i:=1 to N do begin



          GoToXY(x,y+i-1);



          write(menu[i]);



     end;



     TextAttr:=SEL;



     GoToXY(x,y+punkt-1);



     write(menu[punkt]);{ выделим
строку меню }



     TextAttr:=NORM;



end;



begin



     menu[1]:=' О программе ';



     menu[2]:=' Помощь      ';



     menu[3]:=' Выход       ';



     punkt:=1;



     x:=5;



     y:=5; TextAttr:=NORM;



     MenuToScr;



     repeat



          ch:=ReadKey;



          if ch=char(0) then begin



               ch:=ReadKey;



               case ch of



                    chr(80):{ стрелка
вниз }



                         if
punkt<N then begin



                             
GoToXY(x,y+punkt-1);



                             
write(menu[punkt]);



                             
punkt:=punkt+1;



                              TextAttr:=SEl;



                             
GoToXY(x,y+punkt-1);



                             
write(menu[punkt]);



                             
TextAttr:=NORM;



                         end;



                    chr(72):{ стрелка
вверх }



                         if
punkt>1 then begin



                             
GoToXY(x,y+punkt-1);



                             
write(menu[punkt]);



                             
punkt:=punkt-1;



                             
TextAttr:=SEl;



                              GoToXY(x,y+punkt-1);



                             
write(menu[punkt]);



                             
TextAttr:=NORM;



                         end;



                 end;



              end



          else



               if ch=chr(13) then begin
{ нажата клавиша <Enter> }



                    case punkt of



                         1:punkt1;



                         2:punkt2;



                         3:i:=2;{
выход }



                    end;



                    MenuToScr;



               end;



     until i=2;



end;



end.







Заключение.





В результате проделанной работы я написал прекрасную
программу за 4 часа свободного от учёбы времени практически без помощи
литературы и других источников.



Программа основана на
стандартных процедурах и функциях модуля Crt: Rename, Erase, Append, Rewrite, Reset,
Assign и др.







Список использованной литературы.





1.    Попов В.Б. “Turbo Pascal для школьников”:



Учеб.пособие. – 3-е доп.
изд. – М.: Финансы и статистика, 2001г.



2.    Вирт Н. “Алгоритмы и структуры данных”:



Пер. с англ. – М.: Мир,
1989г.



3.    Прайс Д. “Программирование на языке Паскаль:
Практическое руководство”.



Пер. с англ. – М.: Мир,
1987г.



Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.