- •Объектно-ориентированное программирование
- •/ И. М. Виноградова. — Барановичи: рио БарГу, 2011 — с. Экз.
- •Структура программы. Операторы и выражения
- •Краткие теоретические сведения
- •Классификация данных
- •Декларирование объектов
- •Стандартные математические функции
- •Структура программы
- •Ввод с помощью потока cin
- •Вывод с помощью потока cout
- •Пример программы работы
- •Задания:
- •Контрольные вопросы
- •Операторы ветвления. Битовые операции
- •Краткие теоретические сведения
- •If (условие) оператор1; [else оператор2;]
- •Замечания
- •Цикл с предусловием (while)
- •Битовые операции
- •Примеры
- •Задания
- •Варианты задания
- •Контрольные вопросы
- •Циклические и вычислительные процессы
- •Краткие теоретические сведения Цикл с постусловием (do while)
- •Оператор break
- •Оператор break
- •Задания
- •Контрольные вопросы
- •Обработка статических массивов
- •Краткие теоретические сведения Объявление массива
- •Пример решения задачи по массивам
- •Полный текст программы
- •Варианты задания
- •Контрольные вопросы
- •Массивы и указатели
- •Краткие теоретические сведения
- •Указатели
- •Указатели и массивы
- •Формирование динамических массивов с использованием операций new и delete
- •Постановка задачи
- •Порядок выполнения работы
- •Варианты задания
- •Контрольные вопросы
- •Обработка символов, строк, текста
- •Краткие теоретические сведения
- •"Строковый ввод-вывод"
- •Примеры решения задач
- •Код программы
- •Код программы 2
- •Варианты задания:
- •Контрольные вопросы
- •Модульное программирование
- •Цель работы:
- •Краткие теоретические сведения.
- •Параметры функции
- •Локальные и глобальные переменные
- •Передача одномерных массивов как параметров функции
- •Передача строк в качестве параметров функций
- •Передача многомерных массивов в функцию
- •Постановка задачи
- •Порядок выполнения работы
- •Варианты заданий
- •Контрольные вопросы
- •Цель работы:
- •Краткие теоретические сведения
- •Id_класса id_объекта;
- •Id_объекта. Id_метода;
- •Задание к лабораторной работе № 8
- •Постановка задачи
- •Контрольные вопросы
- •Объектно-ориентированное программирование Методические указания
- •225404 Г. Барановичи, ул. Войкова, 21
"Строковый ввод-вывод"
Для построчного ввода - вывода используются следующие функции;
char *fgets(char *s, int n, FILE *F), где
char *s - адрес, по которому размещаются считанные байты;
int n - количество считываемых байтов;
FILE *fp - указатель на файл, из которого производится считывание.
Прием символов заканчивается после передачи n байтов или при получении "\n". Управляющий символ "\n" тоже передается в принимающую строку. В любом случае строка заканчивается "\0". При успешном завершении считывания, функция возвращает указатель на прочитанную строку, иначе возвращает NULL.
2) char *fputs(char *s, FILE *F), где
char *s - адрес, из которого берутся записываемые в файл байты;
FILE *fp - указатель на файл, в который производится запись.
Пример:
int MAXLINE=255; //максимальная длина строки
FILE *in, //исходный файл
*out; //принимающий файл
char buf[MAXLINE]; //строка, с помощью которой выполняется копирование
//копирование строк одного файла в другой
while (fgets (buf, MAXLINE, in)!=NULL)
fputs(buf,out);
Таблица 5. Библиотека обработки символов
Прототип |
Описание функции |
|||
int |
isdigit |
(int |
c) |
Возвращает true, если элемент с является цифрой, в противном случае — false (0) |
int |
isalpha |
(int |
c). |
Возвращает true, если элемент с является буквой, в противном случае — false (0) |
Таблица 6. Функции преобразования строк
Прототип |
Описание функции |
double atof (const char *nPtr) int atoi (const char *nPtr) long atoi (const char *nPtr) |
Преобразует строку nPtr в число типа double Преобразует строку nPtr в число типа int Преобразует строку nPtr в число типа long int |
Использование функции atoi для преобразования строки в число типа int. */
#include <iostream.h>
#include <stdlib.h>
void main() {
int i = atoi("2593");
cout << "The string \"2593\" changes" « " into int = " « i « "\nThis value - 593 = " « i - 593 « endl;
/* это значение — 593 = */
}
/*
Результаты выполнения программы:
The string "2593" changes into int = 2593
This value - 593 = 2000
Press any key to continue
*/
Примеры решения задач
1. Необходимо написать программу, которая определяет, встречается ли в текстовом файле заданная последовательность символов. Длина строки текста не превышает 80 символов, текст не содержит переносов, а заданная последовательность не содержит пробельных символов.
Код программы
#include <fstream.h>
#include <string.h>
int main()
{
// дополнительный символ требуется для завершающего нуля
const int len = 81;
// line - для размещения очередной строки файла
// word - для размещения искомой последовательности символов
char word[len], line[len];
/* введите слово для поиска */
cout << "Input a word for the search: ";
cin » word;
/* Учитывая то, что объекты, классы и методы мы будем рассматривать позже, пока просто будем пользоваться этими понятиями.
При вводе-выводе данные рассматриваются как поток байтов. Физически поток представляет собой файл или устройство (например, клавиатуру или дисплей, рассматривающиеся как частный случай файла).
Итак, здесь определяется объект fin класса входных потоков ifstream. С этим объектом можно работать так же, как со стандартными объектами cin и cout, т.е. использовать операции помещения в поток < и извлечения из потока >, а также рассмотренные функции get, getline и др. В данном случае текстовый файл text.txt находится в папке primer на диске D. Не забывайте указывать в своих программах реальный путь к файлу. */
ifstream f in ("d: \\primer\\text. txt", ios::in | ios::nocreate);
/* Здесь проверяется успешность создания объекта fin. Файлы, открываемые для чтения, должны быть проверены. */
if (!fin) ( cout << "The error of the file opening" << endl;
return 1; }
/* Организуется цикл чтения из файла в переменную line. Метод getline при достижении конца файла вернет значение, завершающее цикл. */
while (fin.getline(line,len)) {
/* поиск подстроки в строке */
if (strstr(line,word)) {
cout << "There is this word in this text" << endl;
return 0;}
}
cout « "There is not this word in this text" << endl;
return 0; }
/*
Результаты выполнения программы:
Input a word for the search: nmm
There is this word in this text
Press any key to continue */
Результаты выполнения программы с другими исходными данными:
Input a word for the search: 000
There is not this word in this text
Press any key to continue
Содержимое файла text.txt:
1234;567 890
asdf,ghj 456:567
sdf bnnmm 1111
567 12345678 fghdfghf
2. Нужно написать программу, которая определяет, сколько раз встретилось заданное слово в текстовом файле, длина строки в котором не превышает 80 символов. Текст не содержит переносов слов.
Слово — это последовательность алфавитно-цифровых символов, после которых следует знак пунктуации, разделитель или признак конца строки.