Міністерство освіти РФ p>
Уральський державний технічний університет-УПІ p>
Кафедра "Технологія та засоби зв` язку " p>
ЗВІТ з навчальної практиці p>
Викладач: Петров Р.А. p>
Студент: Черепанов К.А. p>
Група: Р-207 p>
Єкатеринбург p>
2000 p>
ЗМІСТ p>
1.Заданіе ................................ ............................... p>
............ .............................. ... ... ... ... 3 p>
2.Опісаніе застосування .. ...... ... ........................................... .......... p>
................. ... ... ... .3 p>
2.1. Призначення програми ................................................ ............... p>
.......... ... ... ... .3 p>
2.2. Умови застосування ......... ... ...................................... .............. p>
.............. ... ... ... 3 p>
2.3. Опис завдання .................. ... ............................. .................. p>
................ ... ... ... .3 p>
3.Опісаніе програми .................. ... ........................ .................... p>
................. ... ... ... .. 4 p>
3.1. Загальні відомості ................................................ ................ p>
................ .... ... ... ... .4 p>
3.2. Функціональне призначення .. ... ............................................. .............. p>
... ... ... 4 p>
3.3. Опис логічної структури ............................................... .... ... ... ... ... .. 4 p>
3.4. Використані технічні засоби ............................................... ...... ... ....... 5 p>
3.5. Виклик і завантаження ............................................... ................. p>
.................... ... ... ... .. 5 p>
3.6. Вхідні та вихідні дані ............ ... ................................. ................ ... ... ... 5 p>
4. Текст програми ...................................... ... ......... ............... p>
....................... ... ... ... .. 6 p>
1.Заданіе p>
Визнач число до і послідовність чисел від 1 до до 1 ...... к.
Необхідно зашифрувати літерні послідовність, що знаходиться у файлі ввідповідно до введеної послідовністю. Вихідні дані записати вфайл. Наприклад, якщо до одно 4 і послідовність S3, S2, S4, S1 то символи
S1, S1, S3, S4 перетворюються на S3, S2, S4, S1. Якщо кількість символів не кратнок, то в кінці послідовності необхідно додати пробіли. p>
2. Опис застосування p>
2.1. Призначення програми p>
Програма coDec призначена для шифрування і дешифрування символьногомасиву, що знаходиться у файлі. p>
2.2. Умови застосування p>
Програма висуває дуже скромні вимоги до ресурсівобчислювальної установки. Тим не менш, у разі необхідності використовуватидля компіляції і збірки програми С на машинах типу PC необхідно мати
8Мбайт оперативної пам'яті. Програма в змозі брати з будь-якого каталогуфайли і також записувати файли в довільну директорію, вказану вами.
Проте не слід нехтувати загальними принципами шифрування і дешифруванняінформаційних даних, тобто сприймати цю працю як панацею захисту відсторонніх осіб. Будь-яка закодована порція даних може бути з легкістюперетворена у вихідний текст підбором ключа, шляхом перестановки літер длязнаходження логічного варіанту. p>
3. Опис завдання p>
Завдання, поставлене на практиці, полягала в необхідності набору якогосьдо числа і послідовності 1 ..... до, і перегрупування символьного масивуз одного файлу в символьний масив іншого файлу, відповідно до раннєвведеної послідовністю.
Кодування досягається наступним чином: з символьного масиву файлуджерела послідовно беруться символи і записуються в новий символьниймасив В [] (B [i +1] = c), далі з цього масиву відбувається такожпослідовно запис у файл, за винятком того, що індексизаписуваних символів рівні послідовності (B [pointer], де pointerдорівнює масиву послідовності).
Декодування: принцип роботи декодування протилежний кодування іполягає в тому, що новому масиву В [] з індексами послідовностіприсвоюються Прочитувані символи (B [pointer] = c), а потім здійснюєтьсязапис цього масиву, але вже з індексами від 1 до к (B [i +1 ]). p>
3. Опис програми p>
3.1.Общіе відомості p>
Програма coDec призначена для шифрування і дешифрування символьногомасиву, що знаходиться у файлі. p>
Для виконання програми достатньо обчислювальної установки типу PCз процесором i386 і вище і 8 Мбайт оперативної пам'яті, оснащеної будь-який знаступних операційних систем: MS DOS (починаючи з версії 5.0), Windows 95,
Windows NT версій 4.0. P>
Програма coDec написана на мові Visual C + +, реалізований, наприклад,в компіляторі MS Developer Studio v.4.2 для операційних систем Windows NTі Windows 95. p>
3.2. Функціональне призначення p>
Програма застосовується для шифрування або дешифрування даних з одногофайлу в інший. Однак не будь-яке поєднання вихідних даних дозволяєотримати бажаний результат, наприклад, не рекомендується завантажувати *. exe іінші файли, що мають у своїй структурі крім текстових даних,спецсимволи, в деяких випадках сприймаються програмою як кінець файлу. p>
3.3. Опис логічної структури p>
Примітки виду "см. Текст", що зустрічаються в цьому розділі, означаютьпосилання на документ «Текст програми». p>
Опис головний програми p>
У Розділі 1 (див. Текст) проводиться подлключеніе стандартнихбібліотек компілятора для забезпечення функціонування окремих операторіві всієї програми в цілому. p>
У Розділі 2 (див. Текст) здійснюється опис змінних. p>
У Розділі 3 (див. Текст) проводиться вибір подальшої діїпрограми: кодування (0) або декодування (1) літернийпослідовності, що міститься у вихідному файлі, у вихідний файл. p>
Конструкція while (1) забезпечує постійне виконання циклу до тихпір, поки не виконається умова if, яке перериває його діюоператором break. p>
У Розділі 4 знаходиться цикл введення довжини кодовоїпослідовності, який автоматично перевіряє умова правильностівведеного значення.
Повідомлення "Error! K must be integer from 1 to 10" означає, що введенийвами символ не задовольняє вимогам і необхідно повторити введеннязаново. p>
У Розділі 5 організовано цикл послідовності з перевіркою обчисленняконтрольної суми, шляхом підрахунку введеної суми і суми з масиву W [] сподальшим порівнянням обох результатів. Якщо суми не збігаються, циклповторюється знову, в іншому випадку виконується наступний оператор.
Повідомлення "Error! Repeat input" говорить про те, що послідовністьнеправильна і необхідно повторити введення заново. p>
Розділ 6 утворений для введення та відкриття для читання файлу з вихідними текстамивідкриття і запису вихідного файлу. Літера «r» означає, що файлвідкривається для читання, відповідно «w»-для запису. При відкриттівідбувається автоматична перевірка існування у вказаній директоріїфайлу. Якщо програма не в змозі знайти або відкрити його виводитисяповідомлення про помилку «Error! Can't open file »і знову запитується ім'я,якщо ж помилок не знайдено виконується наступна дія-запит імені файлудля результатів. p>
Розділ 7 призначений для шифрування даних. Його організація влаштована запринципом, описаного в розділі 2.3. При цьому, якщо в останнійпослідовності не вистачає n символів до к, програма автоматичноприписує додаткові пробіли. Конструкція if (feof (fp) & & i == 0) return
0 - утворена для виключення додаткового циклу, що можевиникнути, якщо кількість символів у файлі кратно к, в цьому випадкувиконується зайвий цикл, що призводить до додавання додаткових пропусків і,отже, збільшенню файлів. При досягненні кінця файлу EOF шифраціїприпиняється. p>
Розділ 8 дешифрування і запис у файл-приймач-влаштований практично потим же принципом як і у роздiлi 7.Разлічія між операціями кодування ідекодування наводяться в підрозділі «Опис завдання». Дешифрування такожприпиняється при досягненні кінця файлу. p>
Розділ 9 закриває раннє відкриті файли. p>
3.4. Використані технічні засоби p>
Для виконання програми досить комп'ютера типу IBM PC зпроцесором i386 і вище і 8 Мбайт оперативної пам'яті, оснащеної будь-який знаступних операційних систем: MS DOS (починаючи з версії 5.0), Windows 95,
Windows NT версій 4.0. P>
3.5. Виклик і завантаження p>
Запуск програми відбувається шляхом запуску файлу coDec. exe p>
3.6 Вхідні та вихідні дані p>
Файли-джерела при кодуванні по можливості повинні бути з розширенням txt, у той час як файл-приймач може мати будь-яке. Викликано цепричинами, описаними раніше в пункті 3.2. При декодування обмежень немає. P>
4. Текст програми p>
// шифратори-дешифратор p>
Розділ № 1
# Include
# Include
# Include
# Include
# Include
# Include p>
int main ()
(Розділ
№ 2 p>
FILE * fp, * fp2;/* покажчики на потік */int i, k, Sum, Sum_contr, pointer, select; int W [] = (1,2,3,4, 5,6,7,8,9,10);/* масив перевірки */int Y [10];/* масив для кодової перестановки */char B [11];/* масив для перестановленнихсимволів */char c;/* мінлива для зберігання символу */char fname [20], fname2 [20];/* масиви для імен файлів */ p>
/* О с н о в н о е т е л о п р о г р а м м и */ p>
Розділ № 3 p>
/* Вибір кодування-декодування */while (1) p>
(printf ( "nChoose coder (0) or decoder (1)"); scanf ( "% d", & select); if ((select == 0) | | (select == 1)) break; while (getchar ()!=' n'); p>
) p>
Розділ № 4 p>
/* Введення довжини кодової послідовності */while (1) p>
(printf ( "nInput length of code k (1 to 10)"); scanf ( "% d", & k);/* введення десяткового цілого */if (k> = 1 & & k p>