- •Лабораторная работа № 1
- •Далее создадим файл:
- •Задания1
- •Лабораторная работа № 2
- •Консольный ввод-вывод
- •Чтение и запись символов
- •Чтение и запись строк
- •Форматированный консольный ввод-вывод
- •Форматированный вывод
- •Форматированный ввод
- •7. Варианты задания
- •Лабораторная работа № 3
- •5.2 Оператор if
- •Лабораторная работа № 4
- •Содержание отчета
- •Постановка задачи.
- •Общие сведения
- •Лабораторная работа № 5
- •Оператор for
- •Вариации цикла for
- •Бесконечный цикл
- •Циклы for без тела
- •Задание 2. Циклический вычислительный процесс конечные суммы и произведения
- •Лабораторная работа № 6
- •Оператор цикла while
- •Оператор do … while
- •Оператор break
- •Оператор continue
- •Лабораторная работа № 7
- •5.1 Одномерный массив
- •Создание указателя на массив
- •5.3 Индексация с помощью указателей
- •Сортировка
- •Методические указания.
- •Лабораторная работа № 8
- •Двухмерные массивы
- •Лабораторная работа № 9
- •Лабораторная работа № 11
- •Задача 2. Параметры функции
- •Лабораторная работа № 12
- •Варианты заданий
- •Лабораторная работа № 13
- •Некоторые операции над матрицами
- •Методические указания
- •Варианты заданий
- •Лабораторная работа № 14
- •Решение уравнения методом деления отрезка пополам (бисекций)
- •Методические указания
- •Лабораторная работа № 15
- •Вычисление определенного интеграла
- •6.2.1 Метод средних прямоугольников
- •6.2.1 Метод трапеций
- •Методические указания
- •Варианты заданий
- •Лабораторная работа № 10
- •Структуры (struct)
- •Лабораторная работа № 16
- •Директива #include
- •7. Методические указания
- •8. Варианты заданий.
- •Лабораторная работа № 17
- •Указатель на файл
- •Открытие файла
- •Перенаправление потока
- •Чтение из потока и запись в поток
- •Закрытие потока
- •Использование функций feof() и ferror()
- •Варианты заданий
- •Лабораторная работа № 18
- •Функции обработки символов
- •Функции обработки строк
- •Варианты заданий
- •Лабораторная работа № 19
- •Структуры
- •6.1.1 Доступ к элементам структуры
- •6.1.2 Присваивание структур
- •Массивы структур
- •Передача структур в функции
- •Передача членов структур в функции
- •Передача всей структуры в функцию
- •Указатели на структуры
- •Объявление указателя на структуру
- •Использование указателей на структуру
- •Массивы и структуры в структурах
- •Функции fread () и fwrite ()
- •Варианты заданий
- •Лабораторная работа № 20
- •Например, формула
- •Задание на программирование
Лабораторная работа № 18
Тема: «Работа с текстовыми файлами»
Цель работы
1.1 Получение навыков в программировании ввода и вывода с использованием файлов.
1.2 Получение навыков обработки символьных данных, содержащихся в файлах.
Техническое обеспечение
Персональная ЭВМ IBM PC/286 и более поздних моделей.
Клавиатура.
Дисплей.
Печатающее устройство.
Программное обеспечение
Операционная система Windows
Система программирования Visual C++ версия 6.0 или Borland C++ версия 3.1 и более поздние версии.
Постановка задачи
Создать текстовый файл и выполнить их обработку текста в файле согласно заданного варианта.
Содержание отчета
5.1. Тема и цель работы.
5.2. Схема алгоритма решения задачи.
5.3. Текст программы.
5.4. Результаты выполнения программы.
Общие сведения
Фундаментом понимания системы ввода-вывода языка С являются концепции потоков и файлов. Система ввода-вывода языка С поддерживает постоянный интерфейс независимо от устройства, к которому обращается программист. То есть система ввода-вывода языка С предоставляет уровень абстракции между программистом и аппаратурой. Данная абстракция называется потоком, а собственно устройство называется файлом. Важно знать, как они взаимодействуют между собой.
Потоки
Хотя каждое устройство ввода-вывода ЭВМ отличается от другого, система ввода-вывода преобразует их в единое логическое устройство поток. Все потоки похожи своим поведением. Поскольку потоки не зависят от устройств, одни и те же функции могут записывать информацию в файл на диске и использоваться для записи на другое устройство, например, на консоль. Существуют два типа потоков – текстовые и двоичные.
Текстовые потоки – это последовательность символов. В текстовых потоках некоторые символы могут преобразовываться согласно требованиям среды. Например, символ новой строки (‘\n’) может преобразовываться в пару «возврат каретки – перевод строки». Следовательно, может не быть однозначного соответствия между записываемыми и считываемыми символами и символами во внешнем устройстве.
Двоичный поток – это последовательность байт, имеющих однозначное соответствие с байтами во внешнем устройстве. То не возникает преобразование символов. Также число байт, записанных или прочитанных из внешнего устройства совпадает с числом байт во внешнем носителе. Тем не менее, может добавляться некоторое количество нулевых байт к двоичному потоку. Эти нулевые байты могут использоваться, например, для заполнения сектора диска
Функции обработки символов
Функция
int isalnum(int ch);
возвращает ненулевое значение, если аргумент ch является либо буквой алфавита (верхнего или нижнего регистра), либо цифрой. Иначе возвращается 0. Прототип находится в файле cctype.h.
Функция
int isalpha(int ch);
возвращает ненулевое значение, если аргумент ch является буквой алфавита (верхнего или нижнего регистров). В противном случае возвращается 0. Прототип находится в файле cctype.h.
Функция
int isdigit(int ch);
возвращает ненулевое значение, если аргумент ch является цифрой от 0 до 9, в противном случае возвращается 0. Прототип находится в файле cctype.h.
Функция
int islower(int ch);
возвращает ненулевое значение, если аргумент ch является в противном случае возвращается 0. Прототип находится в файле cctype.h.
Функция
int ispunct(int ch);
возвращает ненулевое значение, если аргумент ch является знаком препинания или пробелом, в противном случае возвращается 0. Прототип находится в файле cctype.h.
Функция
int isspace(int ch);
возвращает ненулевое значение, если аргумент ch является символом пробела, возврата каретки (‘\r’), горизонтальной табуляции (‘\t’), вертикальной табуляции (‘\v’), перевода формата (‘\f’) или новой строки (‘\n’), в противном случае возвращается 0. Прототип находится в файле cctype.h.
Функция
int isupper(int ch);
возвращает ненулевое значение, если аргумент ch является буквой верхнего регистра (от «A» до «Z»), в противном случае возвращается 0. Прототип находится в файле cctype.h.
Функция
int tolower(int ch);
возвращает соответствующий нижнему регистру эквивалент символа ch, если ch – это буква верхнего регистра. В противном случае ch остается неизменным. Прототип находится в файле cctype.h.
Функция
int toupper(int ch);
возвращает соответствующий верхнему регистру эквивалент символа ch, если ch – это буква нижнего регистра. В противном случае ch остается неизменным. Прототип находится в файле cctype.h.