Реферат: Синтаксический распознаватель арифметического оператора условного перехода языка FORTRAN
Министерство науки,высшей школы и технической политики Российской Федерации.
Новосибирский Государственный ТехническийУниверситет.
<img src="/cache/referats/1182/image002.jpg" v:shapes="_x0000_i1025"><span BrushScriptUkrain Light",«serif»">
Курсовая работа по системному программированию.
Синтаксическийраспознаватель арифметического оператора условного перехода языка FORTRAN.
<span BrushScriptUkrain Light",«serif»; mso-ansi-language:EN-US">
Факультет:АВТ.
Кафедра:АСУ.
Группа:А–513.
Студент:Бойко Константин Анатольевич.
Преподаватель:Шорников Юрий Владимирович.
Ассистент: ПановаВера Борисовна.
Дата:30 апреля 1997 г.
Отметка о защите:
<img src="/cache/referats/1182/image003.gif" v:shapes="_x0000_s2050"> <span BrushScriptUkrain Light",«serif»">
<span BrushScriptUkrain Light",«serif»">
<span BrushScriptUkrain Light",«serif»">Новосибирск.
<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">Язык оператора.
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»">Языкарифметического оператора условного перехода языка
<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US">FORTRAN.<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:EN-US">
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">IF(<АВ>)LABEL1,LABEL2,LABEL3
<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">
<span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:EN-US"> АВ
<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US"> — <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">АрифметическоеВыражение.<span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">LABEL1,LABEL2,LABEL3
<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US"> — <span Arial",«sans-serif»; mso-bidi-font-family:«Times New Roman»">первая,<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US"> <span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»">вторая и третья метки<span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»;mso-ansi-language:EN-US"> <span Arial",«sans-serif»;mso-bidi-font-family: «Times New Roman»"><span Arial",«sans-serif»;mso-bidi-font-family:«Times New Roman»"> соответственно.
<span Times New Roman",«serif»;mso-fareast-font-family: «Times New Roman»;mso-ansi-language:RU;mso-fareast-language:RU;mso-bidi-language: AR-SA">Грамматика языка.
G[<Оператор>]:
1.<span Times New Roman"">
<Оператор><span Times New Roman";mso-hansi-font-family:«Times New Roman»; text-transform:uppercase;mso-char-type:symbol;mso-symbol-font-family:Symbol">®IF(<АВ>),,2.<span Times New Roman"">
<span Times New Roman";mso-hansi-font-family:«Times New Roman»; text-transform:uppercase;mso-char-type:symbol;mso-symbol-font-family:Symbol">®<ЦБЗ>3.<span Times New Roman"">
<АВ><span Times New Roman";mso-hansi-font-family:«Times New Roman»; text-transform:uppercase;mso-char-type:symbol;mso-symbol-font-family:Symbol">®T| <АВ><span Times New Roman""><span Times New Roman"">+T| <АВ>-T4.<span Times New Roman"">
T <span Times New Roman";mso-hansi-font-family:«Times New Roman»; text-transform:uppercase;mso-char-type:symbol;mso-symbol-font-family:Symbol">®O| T*O | T/O | T<span Times New Roman";mso-hansi-font-family: «Times New Roman»;text-transform:uppercase;mso-char-type:symbol;mso-symbol-font-family: Symbol">**O5.<span Times New Roman"">
O <span Times New Roman";mso-hansi-font-family:«Times New Roman»; text-transform:uppercase;mso-char-type:symbol;mso-symbol-font-family:Symbol">®(<АВ>) | <Идентификатор> | <ЧПЗ>6.<span Times New Roman"">
<Идентификатор><span Times New Roman";mso-hansi-font-family:«Times New Roman»; text-transform:uppercase;mso-char-type:symbol;mso-symbol-font-family:Symbol">®Б{Б|Ц}7.<span Times New Roman"">
<ЦБЗ><span Times New Roman";mso-hansi-font-family:«Times New Roman»; text-transform:uppercase;mso-char-type:symbol;mso-symbol-font-family:Symbol">®Ц{Ц}[<span Times New Roman";mso-hansi-font-family:«Times New Roman»; text-transform:uppercase;mso-ansi-language:EN-US;mso-char-type:symbol; mso-symbol-font-family:Symbol">L]8.<span Times New Roman"">
<ЧПЗ><span Times New Roman";mso-hansi-font-family:«Times New Roman»; text-transform:uppercase;mso-char-type:symbol;mso-symbol-font-family:Symbol">®Ц{Ц}[.Ц{Ц}]Условные обозначения:
Т
–
ТЕРМ.
О
–
ОПЕРАНД.
Б
–
БУКВА.
Ц
–
ЦИФРА.
ЦБЗ
–
ЦЕЛОЕ БЕЗ ЗНАКА.
<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol">**
–
ВОЗВЕДЕНИЕ В СТЕПЕНЬ.
LABEL
–
МЕТКА.
ЧПЗ
–
ЧИСЛО С ПЛАВАЮЩЕЙ ЗАПЯТОЙ.
<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol">L
–
КОНЕЦ СТРОКИ (пусто).
АВ
–
АРИФМЕТИЧЕСКОЕ ВЫРАЖЕНИЕ.
<span Times New Roman",«serif»;mso-fareast-font-family:«Times New Roman»;mso-ansi-language: EN-US;mso-fareast-language:RU;mso-bidi-language:AR-SA">Классификация грамматики.
Данная грамматика G[<ОПЕРАТОР>],согласно классификации Хомского, является контекстно-свободной, так как праваячасть каждой редукции начинается либо с терминального символа, либо снетерминального, принадлежащего объединённому словарю.
A <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">®
a, A<span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-char-type: symbol;mso-symbol-font-family:Symbol">ÎVn, a<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family: Symbol">ÎV<span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-char-type: symbol;mso-symbol-font-family:Symbol">*.Грамматика G[<ОПЕРАТОР>]неявляется автоматной, так как не все её редукции начинаются с терминальногосимвола. По этой же причине данная грамматика не является S-грамматикой.
<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">Метод анализа.
Для данной грамматикиреализован разбор методом рекурсивного спуска, поскольку она относится к классуконтекстно-свободных.
Идеяметода состоит в том, что каждому нетерминальному символу ставится всоответствие определённая программная единица (функция), которая распознаётцепочку, порождаемую этим нетерминалом.
Этипроцедуры и функции вызываются в соответствии с правилами грамматики и иногдавызывают сами себя.
Данныйметод реализован на языке C++, поскольку он обладаетрекурсивными возможностями.
<span Times New Roman"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-fareast-language: RU;mso-bidi-language:AR-SA">Диагностика и нейтрализация ошибок.
Для данной грамматикипроизводится только диагностика и нейтрализация ошибок. Исправление ошибок непроизводится.
Нейтрализация ошибокосуществляется по методу Айронса, то есть, спускаясь по синтаксическому деревубез возврата по контексту, при обнаружении тупиковой ситуации отбрасываются телитеры (символы), которые привели в тупиковую ситуацию и разбор продолжается.
<span Times New Roman"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-fareast-language: RU;mso-bidi-language:AR-SA">Тестирование.
<span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-ansi-language: EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
IF(((6/t+g*456)/(9.347*y-555))**6)64,44,548
<span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-ansi-language: EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
Текущий символ ( — 40.
AB — Проверка на АрифметическоеВыражение.
Текущий символ ( — 40.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
AB — Проверка наАрифметическое Выражение.
Текущий символ ( — 40.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
AB — Проверка наАрифметическое Выражение.
Текущий символ 6 — 54.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
IDENT — Проверка наИдентификатор с символа 6.
FLOAT — проверка на число сплавающей запятой с цифры 6.
Текущий символ / — 47.
Текущий символ t — 116.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
IDENT — Проверка наИдентификатор с символа t.
Текущий символ + — 43.
AB — Проверка наАрифметическое Выражение.
Текущий символ g — 103.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
IDENT — Проверка наИдентификатор с символа g.
Текущий символ * — 42.
Текущий символ 4 — 52.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
IDENT — Проверка наИдентификатор с символа 4.
FLOAT — проверка на число сплавающей запятой с цифры 4.
Текущий символ 5 — 53.
Текущий символ 6 — 54.
Текущий символ ) — 41.
Текущий символ / — 47.
Текущий символ ( — 40.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
AB — Проверка наАрифметическое Выражение.
Текущий символ 9 — 57.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
IDENT — Проверка наИдентификатор с символа 9.
FLOAT — проверка на число сплавающей запятой с цифры 9.
Текущий символ. — 46.
Текущий символ 3 — 51.
Текущий символ 4 — 52.
Текущий символ 7 — 55.
Текущий символ * — 42.
Текущий символ y — 121.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
IDENT — Проверка наИдентификатор с символа y.
Текущий символ — - 45.
AB — Проверка наАрифметическое Выражение.
Текущий символ 5 — 53.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
IDENT — Проверка наИдентификатор с символа 5.
FLOAT — проверка на число сплавающей запятой с цифры 5.
Текущий символ 5 — 53.
Текущий символ 5 — 53.
Текущий символ ) — 41.
Текущий символ ) — 41.
Текущий символ * — 42.
Текущий символ * — 42.
Текущий символ 6 — 54.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
IDENT — Проверка наИдентификатор с символа 6.
FLOAT — проверка на число сплавающей запятой с цифры 6.
Текущий символ ) — 41.
Текущий символ — 32.
Текущий символ 6 — 54.
ABS — проверка на Целое БезЗнака с цифры 6.
Текущий символ 4 — 52.
Текущий символ, — 44.
Текущий символ 4 — 52.
ABS — проверка на Целое БезЗнака с цифры 4.
Текущий символ 4 — 52.
Текущий символ, — 44.
Текущий символ 5 — 53.
ABS — проверка на Целое БезЗнака с цифры 5.
Текущий символ 4 — 52.
Текущий символ 8 — 56.
Текущий символ NULL — 0.
<span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-ansi-language: EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
<span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-ansi-language: EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
IF(r**34/50.22) 3,56,1
<span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-ansi-language: EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
Текущий символ ( — 40.
AB — Проверка наАрифметическое Выражение.
Текущий символ r — 114.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
IDENT — Проверка наИдентификатор с символа r.
Текущий символ * — 42.
Текущий символ * — 42.
Текущий символ 3 — 51.
Term — Проверка на Терм.
Operand — Проверка на Операнд.
IDENT — Проверка наИдентификатор с символа 3.
FLOAT — проверка на число сплавающей запятой с цифры 3.
Текущий символ 4 — 52.
Текущий символ / — 47.
Текущий символ 5 — 53.
Term — Проверка на Терм.
Operand — Проверка наОперанд.
IDENT — Проверка наИдентификатор с символа 5.
FLOAT — проверка на число сплавающей запятой с цифры 5.
Текущий символ 0 — 48.
Текущий символ. — 46.
Текущий символ 2 — 50.
Текущий символ 2 — 50.
Текущий символ ) — 41.
Текущий символ — 32.
Текущий символ 3 — 51.
ABS — проверка на Целое БезЗнака с цифры 3.
Текущий символ, — 44.
Текущий символ 5 — 53.
ABS — проверка на Целое БезЗнака с цифры 5.
Текущий символ 6 — 54.
Текущий символ, — 44.
Текущий символ 1 — 49.
ABS — проверка на Целое БезЗнака с цифры 1.
Текущий символ NULL — 0.
<span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-ansi-language: EN-US;mso-char-type:symbol;mso-symbol-font-family:Symbol">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
<span Times New Roman"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US;mso-fareast-language: RU;mso-bidi-language:AR-SA">Листинг программы.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// FILE «KURSOVIC.CPP».
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// ВАРИАHТ # 2.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// Арифметический оператор условного перехода языка FORTRAN.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// Кафедpа : АСУ.
// Гpуппа : А-513.
// Студент : Бойко Константин Анатольевич.
// Пpеподаватели : кандидат технических наук, доцентШоpников Юpий Владимиpович,
// ассистент Панова Веpа Боpисовна.
// Дата : 30 апреля 1997г.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// Заголовочные файлы.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
# include<stdio.h>
# include<conio.h>
# include<string.h>
# include<stdlib.h>
# include «keyboard.h»
# include<dos.h>
# include <ctype.h>
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// Константы.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
# define FILE_NAME «TEXT.TXT»
# define YES 1
# define NO 2
# define OK 3
//# define TEST
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// Глобальные переменные.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
char file1[22][60]; // Массив строк.
char mes[22][30][50]; // Массив сообщений об ошибках.
char bufer[4096]; // Снимок с экрана.
int com=0; //Показатель: откомпилирован файл или нет.
int pos=2; //Текущая позиция в строке.
char string[80]; // Текущаястрока файла.
char nx; // Текущийсимвол в строке.
int e1=0; //Счетчик страниц массива собщений об ошибках.
int e2=0; //Счетчик строк в странице.
int l=0; //Счетчик меток.
FILE*fl=fopen(«MESSAGE.TXT»,«wt»); // Файл с сообщениями об ошибках.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// Прототипы функций.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
voidWindows(int,int,int,int,char*); //Построение окон.
void Beep(int,int); // Звуковойсигнал.
void Open_File(void); // Открытие файла.
void Second_Window(void); // Построение нижней панели.
void MyPuts(char*,int); // Аналогputs(char*).
void Print_File(void); // Печать файла.
void Menu(void); // Меню.
int i_readkey(void); // Опрос клавиатуры.
void Help(void); //Помощь.
void Grammar(void); // Грамматика языка.
void Language(void); // Язык оператора.
void Compile(void); // Компиляция.
void Operator(char*); // Сканированиеоператора.
void Scan(void); //Сканирование следующего символа.
void Label(void); // РеализацияLabel.
int ABS(void); //Реализация ABS.
int IDENT(void); //Реализация IDENT.
int AB(void); //Реализация AB.
void Error(int); //Обработка ошибки.
int Term(void); //Реализация Term.
int Operand(void); // Реализация Operand.
int Float(void); //Реализация Float.
void Message(int); // Выводсообщений об ошибках.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// Функция MAIN.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
void main()
{
_setcursortype(_SOLIDCURSOR);
window(1,1,80,25);
textattr(113);
clrscr();
for(int i=0;i<24;i++)
cputs("<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">
");textcolor(BLACK);
cputs(" Enter filename");
window(20,7,60,17);
textattr(127);
clrscr();
Windows(20,7,60,17,«Open a File»);
gotoxy(4,3);
puts(«Name „);
gotoxy(6,7);
puts(“По умолчанию будет введен файл»);
gotoxy(17,8);
puts(FILE_NAME);
window(23,10,57,10);
textattr(31);
clrscr();
Open_File();
Second_Window();
Print_File();
_setcursortype(_NOCURSOR);
Menu();
}
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// Звуковой сигнал.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
void Beep(int tone,int pause)
{
sound(tone);
delay(pause);
nosound();
}
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// Построение рамок.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
void Windows(int x,int y,intx1,int y1,char* string)
{
y1++;
for(int i=2;i<x1-x;i++)
{
gotoxy(i,1);
putch('=');
gotoxy(i,y1-y);
putch('=');
}
for(i=1;i<y1-y;i++)
{
gotoxy(2,i);
putch('¦');
gotoxy(x1-x,i);
putch('¦');
}
gotoxy(2,1);
putch('г');
gotoxy(x1-x,1);
putch('¬');
gotoxy(x1-x,y1-y);
putch('-');
gotoxy(2,y1-y);
putch('L');
gotoxy((x1-x-strlen(string)+2)/2,1);
puts(string);
}
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
// Функция открытия файла.
//<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol; mso-no-proof:yes">¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾
void Open_File(void)
{
charfilename[38];
filename[0]=35;
char*p=cgets(filename);
strcpy(filename,p);
if(filename[0]==NULL)
strcpy(filename,FILE_NAME);
FILE*file;
if((file = fopen(filename, «rt»))== NULL)
{
window(1,1,80,25);
textattr(7);
_setcursortype(_NORMALCURSOR);
clrscr();
perror(«ERROR»);
fcloseall();
getch();
exit(1);
}
for(int i=0;i<22;i++)
{
char temp[255];
if((fgets(temp,80,file))==NULL)