1. Бьярн Страуструп. Язык программирования С++.в двух частях. Пер. с англ. Киев: "ДиаСофт" , 1993.-296 с.,ил.
2 . Корриган Джон : С++ основы программирования: Пер с англ. -М.:Энтроп, 1995. - 352 с., ил.
ПРИЛОЖЕНИЕ А
(обязательное)
Текст программы ptrov.cpp приведён в таблице А1
Таблица А1
Команда | Пояснение |
#include <stdio.h> #include <conio.h> #include <string.h> struct win_info { int x1, y1, x2, y2 int tc, tb
int px, py
char fname[50] }win[2] FILE *in, *out char c, ch int i void SetWin(win_info * w) { textcolor(w->tc) textbackground(w->tb) window(w->x1,w->y1,w->x2,w->y2) gotoxy(w->px,w->py) } void GetWin(win_info * w) { w->px=wherex() w->py=wherey() } char perest(char x) { if ((x>=0x40)&(x<=0x5f)) { char mask, buf[4] if (x>=0x50) mask=0x50 else mask=0x40 x^=mask
buf[0]=(x&1)
buf[1]=(x&2)/2 buf[2]=(x&4)/4 buf[3]=(x&8)/8 x=buf[1]+buf[0]*2+buf[3]*4+buf[2]*8 x^=mask } return x
} void main() { textbackground(WHITE) textcolor(BLACK) clrscr() for(i=1 i<2000 i++) putchar(176) window(1,25,80,25) textcolor(BLACK) textbackground(WHITE) clrscr() cprintf(" ALT-F1 Исходн.файл ALT-F2 Конечн.файл ALT-F3 Кодир. ALT-F4 Декодир. ESC-Выход") win[0].x1=2 win[1].x1=2 win[0].x2=79 win[1].x2=79 win[0].y1=3 win[1].y1=14 win[0].y2=12 win[1].y2=23 win[0].py=1 win[1].px=1 win[0].px=1 win[1].py=1 win[0].tc=LIGHTBLUE win[1].tc=LIGHTBLUE win[0].tb=BLUE win[1].tb=BLUE window(1,1,80,1) textcolor(BLACK) textbackground(WHITE) clrscr() _setcursortype(_NOCURSOR) do { ch=getch() if (ch==0) switch(getch()) { | координаты окна цвета окна позиция курсора имя файла активизировать рабочее окно и установить курсор в текущую позицию считать поз. курсора проверка на принадлежность к обрабатываемым символам обнулить половину кода разложить по битам собрать биты в обратном порядке восстановить половину кода вернуть новый символ создать рабочий экран задать параметры рабочих окон |
Команда | Пояснение |
case 104 : fclose(in) // Нажата ALT-F1 win[0].px=1 win[0].py=1 window(1,1,80,1) textcolor(BLACK) textbackground(WHITE) clrscr() printf(" Введите имя исходного файла : ") _setcursortype(_NORMALCURSOR) gets(win[0].fname) _setcursortype(_NOCURSOR) window(1,2,80,12) clrscr() for(i=1 i<=880 i++) putchar(176) if((in=fopen(win[0].fname,"rt"))==NULL) { window(1,1,80,1) textcolor(RED) clrscr() printf(" %cНемогу открыть файл - %s - !!!",7,&win[0].fname) } else { textcolor(RED) textbackground(WHITE) window(39-strlen(win[0].fname)/2,2,41+strlen(win[0].fname)/2,2) clrscr() printf(" %s",&win[0].fname) SetWin(&win[0]) clrscr() while(!feof(in)) { c=fgetc(in) if(c!='n') putch(c) else { if (wherey()==10) break cprintf("nr") } } } break case 105 : fclose(out) win[1].px=1 win[1].py=1 window(1,1,80,1) textcolor(BLACK) textbackground(WHITE) clrscr() printf(" Введите имя конечного файла : ") _setcursortype(_NORMALCURSOR) gets(win[1].fname) _setcursortype(_NOCURSOR) window(1,13,80,23) clrscr() for(i=1 i<=880 i++) putchar(176) if((out=fopen(win[1].fname,"wt"))==NULL) { window(1,1,80,1) textcolor(RED) clrscr() printf("%c Немогу создать файл - %s - !!!",7,&win[1].fname) } else { textcolor(RED) textbackground(WHITE) window(39-strlen(win[1].fname)/2,13,41+strlen(win[1].fname)/2,13) clrscr() printf(" %s",&win[1].fname) SetWin(&win[1]) clrscr() } break case 106 : if((in!=NULL)&(out!=NULL)) { c=0 i=0 SetWin(&win[0]) clrscr() GetWin(&win[0]) SetWin(&win[1]) clrscr() GetWin(&win[1]) fseek(in,0,0) fseek(out,0,0) while(!feof(in)) | Нажата ALT-F2 ALT-F3 |
Команда | Пояснение |
{ ch=fgetc(in) SetWin(&win[0]) if (ch!='n') putch(ch) else cprintf("nr") GetWin(&win[0]) ch=perest(ch) SetWin(&win[1]) if (ch!='n') putch(ch) else cprintf("nr") GetWin(&win[1]) c^=ch i++ fputc(ch,out) if (i==3) { SetWin(&win[1]) if (c!='n') putch(c) else cprintf("nr") GetWin(&win[1]) fputc(c,out) c=0 i=0 } } } break case 107 : if((in!=NULL)&(out!=NULL)) { ch=0 i=0 SetWin(&win[0]) clrscr() GetWin(&win[0]) SetWin(&win[1]) clrscr() GetWin(&win[1]) fseek(in,0,0) fseek(out,0,0) while(!feof(in)) if (i!=3) { c=fgetc(in) SetWin(&win[0]) if (c!='n') putch(c) else cprintf("nr") GetWin(&win[0]) ch^=c i++ c=perest(c) SetWin(&win[1]) if (c!='n') putch(c) else cprintf("nr") GetWin(&win[1]) fputc(c,out) } else { c=fgetc(in) SetWin(&win[0]) if (c!='n') putch(c) else cprintf("nr") GetWin(&win[0]) if (c==ch) { ch=0 i=0 } else { textcolor(RED) textbackground(WHITE) window(1,1,80,1) clrscr() printf(" %cОшибка в файле %s",7,&win[0].fname) break } } } break } } while(ch!=27)
fcloseall()
textcolor(WHITE) textbackground(BLACK) window(1,1,80,25) clrscr() } | ALT-F4 выход, если нажат ESC закрыть все файлы очистить экран |
ПРИЛОЖЕНИЕ В
РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ
Введите имя конечного файла : zzz
____________________________________ file _____________________________________
_Проверка программы преобразования информации_ _
_ _
_ _
_ _
_ _
_ _
_ _
_ _
_ _
_ _
_____________________________________ zzz ______________________________________
_Про-верчка *просграуммыы прoеобкразчовамнияъ ин%форкмацъии__ _
_ _
_ _
_ _
_ _
_ _
_ _
_ _
_ _
_ _
________________________________________________________________________________
ALT-F1 Исходн.файл ALT-F2 Конечн.файл ALT-F3 Кодир. ALT-F4 Декодир. ESC-В
... выходят из строя. Более детальное рассмотрение вопросов защиты от НСВ по коммуникационным каналам приведено в следующем подразделе. Защита по виброакустическому каналу утечки информации Метод съема информации по виброакустическому каналу относится к так называемым беззаходовым методам, и это является важным его преимуществом. Обнаружить аппаратуру такого съема информации крайне трудно, так как ...
... ППИ. В случае обнаружения сбоев процессор выдает в определенный порт единицу, тем самым зажигая индикатор неисправности, и прекращает работу. При отсутствии неисправностей аппаратура готова к приему данных. Процесс передачи данных по каналу начинается после автоматического установления соединения с передающей станцией. УПС после принятия сигнала вызова включает цепь 125 «Индикатор вызова». В ...
... быть получен неудовлетворительный результат, а в другом - чрезмерное усложнение конструкции может привести к неоправданному увеличению стоимости оборудования, а приемная система будет выглядеть неэстетично. Результатом расчета линии связи является вычисленное значение отношения S/N, величина которого сравнивается с соответствующими значениями по пятибалльной шкале градаций качества принимаемого ...
... центр коммутации сообщений малой емкости ) изготавливается на базе микро ЭВМ типа " Электроника - НУ - 80 - 32 " и подключается к региональным центрам коммутации сообщений телеграфа . Сеть абонентского телеграфирования является сетью коммутируемых телеграфных связей и предназначена для обмена сообщения между абонентами , предприятиями и организациями путем установления непосредственного ...
0 комментариев