- •Лабораторные работы. Сборник задач.
- •Оглавление
- •Часть 1. Лаборатоные работы
- •Работа со структурами и объединениями …………………………………….91
- •3 Задача
- •4 Задача
- •5 Задача
- •6 Задача
- •Дополнительное условие:использование цикла с предусловием.
- •1 Задача
- •2 Задача
- •Дополнительное условие: программа написана без использования функции.
- •Дополнительное условие: программа написана с использованием функций.
- •3 Задача
- •Дополнительное условие: программа написана без использования функции.
- •Дополнительное условие: программа написана с использованием функции.
- •4 Задача
- •Дополнительное условие: программа написана без использования функции
- •Дополнительное условие: программа написана с использованием функции.
- •Самостоятельная работа
- •Лабораторная работа №3
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •Лабораторная работа №6
- •1 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •4 Задача
- •Синтаксический анализатор
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •3 Задача
- •Работа с каталогами
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •2 Задача
- •1 Задача Реализовать очередь, состоящую из целых чисел
- •Комментарий:
- •2 Задача
- •1 Задача
- •Идеально-сбалансированные деревья
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •1 Задача
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности.
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •Работа с несколькими массивами
- •Преобразование массива
- •Изменение элементов массива
- •2 Уровень сложности Формирование массива и вывод его элементов
- •Анализ элементов массива
- •Преобразование массива
- •Изменение элементов массива
- •Удаление и вставка элементов
- •Серии целых чисел
- •3 Уровень сложности Множества точек на плоскости
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •Not простое_логическое
- •(Простое_логическое знак_операции простое_логическое)
- •Построить синтаксический анализатор для понятия предложение.
- •1 Уровень сложности
- •2 Уровень сложности
- •1 Уровень сложности
- •Примеры:
- •Двусвязные списки
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
Самостоятельная работа
В разобранной задаче добавить функцию поиска файла и, если файл найден, вывести полный путь к этому файлу.
Лабораторная работа №14
Побитовая арифметика
Цель: закрепление на практике знаний работы с побитовой арифметикой.
Методические рекомендации: лабораторная работа рассчитана на 2 часа и состоит из анализа двух решенных заданий и самостоятельной работы.
Обязательное зачетное задание.
Необходимый уровень знаний:
работа с функциями;
работа с текстовыми файлами;
работа с побитовой арифметикой.
1 Задача
Из текстового файла считывается текст, затем вызывается функция кодировки. Кодировка (все 0 в двоичной записи слов заменить на 1)
Требуется реализовать кодирование и декодирование текста с использованием побитовой арифметики.
#include <stdio.h>
// функция кодирования: побитовое дополнение
char encode(char c)
{
return ~int(c);
}
// функция декодирования
chardecode(charc)
{
return ~int(c);
}
// кодирование/декодирование, в зависимости от значения параметра enc
char code(char c, int enc)
{
if (enc)
return encode(c);
else
return decode(c);
}
int main()
{
char c;
// пользователь выбирает тип действия: кодирование или декодирование
printf("Encode/decode? (E/D) ");
scanf("%c",&c);
int enc = (c == 'e');
char s1[255],s2[255];
// ввод имён файлов
printf("Name of source file: ");
scanf("%s",s1);
printf("Name of result file: ");
scanf("%s",s2);
FILE*f1,*f2;
// открытие текстового файла для чтения
// f1 = fopen(s1,"r");
if (fopen(s1, "r"==NULL)
{
printf("Cannot open file \n"); exit(0);
}
// открытие текстового файла для записи
// f2 = fopen(s2,"w");
if (fopen(s2, "r"==NULL)
{
printf("Cannot open file \n"); exit(0);
}
// пока не достигнут конец файла1, из него считываются символы
while (fscanf(f1,"%c",&c) != -1)
// запись в файл2 символов после обработки
fprintf(f2,"%c",code(c,enc));
// закрытие файлов
if(fclose(f1)!=0)
fprintf("Cannot close file \n");
if (fclose(f2)!=0)
fprintf("Cannot close file \n");
return0;
}
2 Задача
Из текстового файла считывается текст, затем вызывается функция кодировки.
Дополнительное условие: кодирование с помощью операции xor.
xor:
1,1 -> 0
1,0 -> 1
0,1 -> 1
0,0 -> 0
#include <stdio.h>
intkey= 111111111;
// кодирование: операция xorс ключомkey
char encode(char c)
{
return key^int(c);
}
// декодирование
char decode(char c)
{
return key^int(c);
}
// кодирование/декодирование, в зависимости от значения параметра enc
char code(char c,int enc)
{
if (enc)
return encode(c);
else
return decode(c);
}
int main()
{
char c;
// кодировать или декодировать собирается пользователь
printf("Encode/decode? (E/D) ");
scanf("%c",&c);
int enc = (c == 'e');
char s1[255],s2[255];
// ввод имён файлов
printf("Name of source file: ");
scanf("%s",s1);
printf("Name of result file: ");
scanf("%s",s2);
FILE*f1,*f2;
// открытие текстового файла на чтение
// f1 = fopen(s1,"r");
if (fopen(s1, "r"==NULL)
{
printf("Cannot open file \n"); exit(0);
}
// открытие текстового файла на запись
// f2 = fopen(s2,"w");
if (fopen(s2, "r"==NULL)
{
printf("Cannot open file \n"); exit(0);
}
// пока не достигнут конец файла1, из него считываются символы
while (fscanf(f1,"%c",&c) != -1)
// запись в файл2 символов после обработки
fprintf(f2,"%c",code(c,enc));
// закрытие файлов
// fclose(f1);
if (fclose(f1)!=0)
fprintf(" Cannot close file \n");
// fclose(f2);
if (fclose(f2)!=0)
fprintf(" Cannot close file \n");
return0;
}
Самостоятельная работа
Написать функции шифровки-дешифровки текста. Исходный текст должен храниться в текстовом файле, зашифрованный текст должен записываться в другой текстовый файл.
Лабораторная работа №15
Работа со структурами и объединениями
Цель: закрепление на практике знаний работы со структурой. Массив структур. Запись и чтение структуры из файла.
Методические рекомендации: лабораторная работа рассчитана на 4 часа и состоит из анализа трех заданий и выполнения самостоятельной работы.
Обязательное зачетное задание.
Необходимый уровень знаний:
работа с указателями;
работа с массивами;
работа со строками.