Слайд 1Основы программирования
Лабораторная работа №12
Работа с текстовым файлом.
Простейшее шифрования текста.
Власенко
О.Ф.
Слайд 2Задача 1
Создать программно файл с русским текстом
#include
#include
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char ss[24][80] = {
"задача 2",
"Преобразовать файл in2.txt в файл
out2.txt",
"Заменив все большие русские буквы на маленькие",
"",
"задача 3",
"Зашифровать текст записанный латиницей, и находящийся в файле in3.txt",
"применив шифр Цезаря с ключом 4",
"Результат сохранить в файл in4.txt",
"задача 4",
"Расшифровать текст записанный латиницей, и находящийся в файле in4.txt",
"применив шифр Цезаря с ключом 4",
"Результат сохранить в файл out4.txt",
"",
"задача 5",
"Преобразовать текстовый файл in5.txt",
"в файл out5.txt, в котором каждое слово выводится на отдельной строке",
"",
"Задача 6*",
"Игра в слова",
"В файле in6.txt есть строки со словами",
"в каждой строке ровно одно слово",
"С консоли вводится комплект букв",
"Нужно вывести в консоль те слова из файла in6.txt",
"Которые можно составить из введенных с консоли букв"
};
Слайд 3Задача 1 (2)
{
char fileIn1[] = "D:\\temp\\Files\\Lab11_12\\in1.txt";
FILE * fout = fopen(fileIn1,
"wt");
// в цикле для всех строк
for (int i = 0;
i < 24; i++)
{
// сохранить строку в выходной файл
fprintf(fout, "%s\n", ss[i]);
// контрольный вывод в консоль
printf(">>%s<<\n", ss[i]);
}
fclose(fout);
}
{
int x;
scanf("%d", &x);
}
}
Слайд 4Задача 2
Преобразовать файл in1.txt в файл out1.txt, заменив все маленькие
русские буквы на большие
#include
#include
#include "MyChars.h«
#define MAX_LEN 80
char fileIn1[]
= "D:\\temp\\Files\\Lab11_12\\in1.txt";
char fileOut1[] = "D:\\temp\\Files\\Lab11_12\\out1.txt";
void main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char s[MAX_LEN];
FILE * fin = fopen(fileIn1, "rt");
FILE * fout = fopen(fileOut1, "wt");
Слайд 5Задача 2 (2)
// в цикле для всех строк
while (!feof(fin)) {
//
загрузить строку
if (fgets(s, MAX_LEN - 1, fin) != NULL) {
//
обработать загруженную строку
for (int i = 0; s[i] != '\0'; i++) {
s[i] = toUpperRus(s[i]);
}
// сохранить строку в выходной файл
fprintf(fout, "%s", s);
printf(">>%s<<\n", s);
}
}
fclose(fin);
fclose(fout);
{
int x;
scanf("%d", &x);
}
}
Слайд 6Задача 2 (3)
Модуль MyChars.h/ MyChars.cpp
Слайд 7Задача 3
Преобразовать файл in1.txt в файл out2.txt, заменив все большие
русские буквы на маленькие
Слайд 8Задача 4
Зашифровать текст записанный латиницей, и находящийся в файле in4.txt
применив
шифр Цезаря с ключом 4. Результат сохранить в файл out4.txt
void
main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char filename1[] = "D:\\temp\\Files\\Lab11_12\\in4.txt";
char filename2[] = "D:\\temp\\Files\\Lab11_12\\out4.txt";
FILE * fin = fopen(filename1, "rt");
FILE * fout = fopen(filename2, "wt");
char ch;
while ((ch = getc(fin)) != EOF) {
char ch_new = CaesarEncode(ch, 4);
fprintf(fout, "%c", ch_new);
printf("%c", ch_new);
}
fclose(fin);
fclose(fout);
}
Слайд 11Задача 5
Расшифровать текст записанный латиницей, и находящийся в файле out4.txt
применив шифр Цезаря с ключом 4. Результат сохранить в файл
out5.txt
void main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char filename1[] = "D:\\temp\\Files\\Lab11_12\\out4.txt";
char filename2[] = "D:\\temp\\Files\\Lab11_12\\out5.txt";
FILE * fin = fopen(filename1, "rt");
FILE * fout = fopen(filename2, "wt");
char ch;
while ((ch = getc(fin)) != EOF) {
char ch_new = CaesarDecode(ch, 4);
fprintf(fout, "%c", ch_new);
printf("%c", ch_new);
}
fclose(fin);
fclose(fout);
}
Слайд 14Задача 6
Преобразовать текстовый файл in1.txt в файл out6.txt, в котором
каждое слово выводится на отдельной строке
Слайд 15Задача 6 (2)
Преобразовать текстовый файл in1.txt в файл out6.txt, в
котором каждое слово выводится на отдельной строке
Слайд 16Задача 6 (3)
Преобразовать текстовый файл in1.txt в файл out6.txt, в
котором каждое слово выводится на отдельной строке
Слайд 17Задача 7. Индивидуальная задача
Текст из файла in7.txt переписывается в out7.txt
с изменениями:
Все маленькие латинские буквы заменить символом ‘#’.
Все гласные
латинские буквы заменить символом ‘&’.
Все согласные латинские буквы заменить символом ‘&’.
Все гласные большие латинские буквы заменить символом ‘$’.
Все гласные маленькие латинские буквы заменить символом ‘@’.
Все цифры заменить символом ‘X’.
Все латинские буквы сделать большими.
Все латинские буквы сделать маленькими.
Все символы за исключением латинских букв, заменить символом ‘_’ (подчеркивание).
Все знаки препинания заменить символом ‘_’ (подчеркивание).
Все символы арифметических операций, заменить символом ‘_’ (подчеркивание).
Слайд 18Задача 8***.
Игра в слова
В файле in8.txt есть
строки со словами
в каждой строке ровно одно слово
С
консоли вводится комплект букв
Нужно вывести в консоль те слова из файла in8.txt
Которые можно составить из введенных с консоли букв
Слайд 19Домашнее задание
Доделать задачи до 7 включительно.
Выбрать ИЛИ задачу по варианту.
ИЛИ
реализовать свою собственную задачу, связанную с обработкой текста.
Подготовить отчет.
Отчет содержит
– титульный лист, задание, код, блок схема ключевого алгоритма (1 шт!), НЕ НУЖНА ТРАССИРОВКА!, Заключение, текст входного и выходного файла
Слайд 20Домашнее задание (2)
Вариант 1
Файл input.dat содержит несколько строк текста. Слова
в тексте могут
разделяться пробелами и знаками препинания. Переписатьтекст в файл
output.dat,
удалив, если необходимо, какое-то количество слов, так чтобы
не осталось слов, имеющих одинаковое сочетание первых двух букв.
Вариант 2
Файл input.dat содержит несколько строк текста. Слова в тексте могут
разделяться пробелами и знаками препинания. Переписать текст в файл
output.dat, удалив слова, в которых количество согласных букв меньше
количества гласных.
Вариант 3
Файл input.dat содержит несколько строк текста. Слова в тексте могут
разделяться пробелами и знаками препинания. Переписать текст в файл
output.dat, удалив слова, в которых нет ни одной пары подряд идущих
согласных букв.
Слайд 21Домашнее задание (3)
Вариант 4
Файл input.txt содержит несколько строк текста. Слова
в тексте могут
разделяться пробелами и знаками препинания. Переписать текст в
файл
output.txt, заменив в каждой нечетной строке все прописные согласные
буквы на заглавные.
Вариант 5
Файл input.dat содержит несколько строк текста. Слова в тексте могут
разделяться пробелами и знаками препинания. Переписать текст в файл
output.dat, удалив из него все слова, начинающиеся и заканчивающиеся
одной и той же буквой.
Вариант 6
Файл input.dat содержит несколько строк текста. Слова в тексте могут
разделяться пробелами и знаками препинания. Переписать текст в файл
output.dat, заменив прописные буквы заглавными в словах, содержащих
две и более подряд идущих одинаковых букв.
Слайд 22Домашнее задание (4)
Вариант 7
Файл input.dat содержит несколько строк текста. Слова
в тексте могут разделяться пробелами и знаками препинания. Переписать текст
в файл output.dat, заменив прописные буквы заглавными в словах, содержащих хотя бы две одинаковые буквы.
Вариант 8
Файл input.dat содержит несколько строк текста. Слова в тексте могут разделяться пробелами и знаками препинания. Переписать текст в файл output.dat, заменив регистр букв в каждом слове, содержащем две и более одинаковые гласные буквы.
Вариант 9
Файл input.dat содержит несколько строк текста. Слова в тексте могут
разделяться пробелами и знаками препинания. Переписать текст в файл
output.dat, удалив из текста слова, содержащие две подряд идущие
гласные или две подряд идущие согласные буквы.
Вариант 10
Файл input.dat содержит несколько строк текста. Слова в тексте могут
разделяться пробелами и знаками препинания. Переписать текст в файл
output.dat, удалив из текста слова, окруженные с обеих сторон
одинаковыми знаками препинания.
Слайд 23Домашнее задание (5)
Вариант 11
Файл input.dat содержит несколько строк текста. Слова
в тексте могут
разделяться пробелами и знаками препинания. Переписать текст в
файл
output.dat, удалив из текста слова-палиндромы (например, «шабаш»,
«казак»).
Вариант 12
Файл input.dat содержит несколько строк текста. Слова в тексте могут
разделяться пробелами и знаками препинания. Переписать текст в файл
output.dat, удалив из текста слова, содержащие более двух различных
гласных букв.
Вариант 13
Файл input.dat содержит несколько строк текста. Слова в тексте могут
разделяться пробелами и знаками препинания. Переписать текст в файл
output.dat, удалив из текста слова, начинающиеся и заканчивающиеся
одним и тем же сочетанием согласной и гласной буквы (например,
«зараза», «папа», «окорок»).