Написать программу которая считывает текст из файла и выводит его на экран
Написать программу, которая считывает текст из файла и определяет, сколько в нем слов, состоящих из не более чем четырех букв. UML-диаграмма этого алгоритма приведена на рисунке 8.5.
Рисунок 8.5 - UML-диаграмма деятельности для примера 8.6
Листинг 8.7
// Лабораторная работа №_8
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
setlocale( LC_ALL, "Russian" );
int n, s, ss, i, ii;
const int len = 100;
char word[len], line[len];
cout<< " Написать программу, которая считывает текст из файла и определяет, сколько в нем слов, состоящих из не более чем четырех букв. \n" ;
cout<<"\nНажмте клавишу для продолжения. \n\n" ;
int lword = static_cast<int>(strlen(word));
for (i = 0; i < ii; i++)
cout << "\nВ файле содержатся слова, содержащие не более 4-х букв в количестве " << ss << " шт.";
Аппаратура и материалы. Для выполнения лабораторной работы необходим персональный компьютер со следующими характеристиками: процессор Intel Pentium-совместимый с тактовой частотой 800 МГц и выше, оперативная память - не менее 64 Мбайт, свободное дисковое пространство - не менее 500 Мбайт, устройство для чтения компакт-дисков, монитор типа Super VGA (число цветов от 256) с диагональю не менее 15². Программное обеспечение - операционная система Windows2000/XP и выше, среда разработки приложений Microsoft Visual Studio.
Указания по технике безопасности. Техника безопасности при выполнении лабораторной работы совпадает с общепринятой для пользователей персональных компьютеров, самостоятельно не производить ремонт персонального компьютера, установку и удаление программного обеспечения; в случае неисправности персонального компьютера сообщить об этом обслуживающему персоналу лаборатории (оператору, администратору); соблюдать правила техники безопасности при работе с электрооборудованием; не касаться электрических розеток металлическими предметами; рабочее место пользователя персонального компьютера должно содержаться в чистоте; не разрешается возле персонального компьютера принимать пищу, напитки.
Методика и порядок выполнения работы.Перед выполнением лабораторной работы каждый студент получает индивидуальное задание. Защита лабораторной работы происходит только после его выполнения (индивидуального задания). При защите лабораторной работы студент отвечает на контрольные вопросы, приведенные в конце, и поясняет выполненное индивидуальное задание. Ход защиты лабораторной работы контролируется преподавателем.Порядок выполнения работы:
1.Проработать примеры, приведенные в лабораторной работе.
2. Составить программу с использованием двумерных локальных массивов для решения задачи. Размерности локальных массивов задавать именованными константами, значения элементов массива - в списке инициализации. Номер варианта определяется по формуле , где - номер студента по списку преподавателя.
Индивидуальное задание №1. Вариант:
1. Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке.
2. Написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введенное с клавиатуры слово.
3. Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие двузначные числа.
4. Написать программу, которая считывает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв.
5. Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова.
Введите маску для выбора всех файлов, имя которых состоит из двух символов, а расширение - из четерёх:
Средства взаимодействия человека и компьютера называют … аппаратно-программным интерфейсом программным интерфейсом аппаратным интерфейсом пользователь … ским интерфейсом
Классификация это А)подмножество объектов,имеющих общие признаки б)признаки,по которым один класс отличается от другого в)деление множество объектов … на классы
Урожай Дядя Саша с сыном Колей копают картошку. Урожай выдался, как всегда, отменным, и они накопали nn мешков. Дядя Саша пригнал грузовичок в который … может поместиться не более aa мешков картошки, а в Колин грузовичок поместится не более bb мешков. Урожай они хотят поделить поровну. Если количество мешков не будет делится на 2, то лишний мешок на правах старшего заберет дядя Саша. Вместе с тем, никто не сможет забрать мешков больше, чем поместится в его грузовик. И конечно же они не оставят ни одного мешка на поле. Напишите программу, которая определит, сколько мешков увезет дядя Саша, а сколько Коля. Формат входных данных На вход подаются натуральные числа nn, aa и bb по одному числу в строке. Чиcла не превосходят 1000. Гарантируется, что n\leq a+bn≤a+b. Формат выходных данных Программа должна вывести в одной строке через пробел два числа — количество мешков, которое увезут дядя Саша и Коля на своих грузовичках. Методика проверки и пояснение к тестам Программа проверяется на 10 тестах. Прохождение каждого теста оценивается в 2 балла. Тесты из условия задачи при проверке не используются. В первом тесте 59 мешков будут разделены почти поровну — 30 мешков дяде Саше и 29 — Коле. Во втором тесте Коля не сможет увезти причитающиеся ему 29 мешков и отдаст лишнее дяде Саше. Sample Input 1: 59 35 40 Sample Output 1: 30 29 Sample Input 2: 59 41 25 Sample Output 2: 34 25 Ответ(Python): n = int(input()) a = int(input()) b = int(input()) k = b if n // 2 > b else n // 2 s = a if n - k > a else n - k k = k if s + k == n else n - s print(s, k)
ДАЮ 85 БАЛОВ Построение таблиц истинности для логических выражений
Задано полное имя файла C:\Users\Desktop\Инструкция.docx Запишите имя каталога, в котором находится этот файл:
Цель : Изучение принципов работы с файлами через механизм потокового ввода-вывода на языке С++, приобретение практических навыков работы с файлами в С++.
Задания для самостоятельного выполнения.
Пример выполнения задания.
Задания для самостоятельного выполнения
Написать программу, которая считывает текст из файла и выводит на экран предложения, содержащие максимальное количество знаков пунктуации.
Написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке.
Написать программу, которая считывает текст из файла и выводит на экран сначала вопросительные, затем повествовательные предложения.
Написать программу, которая считывает текст из файла и выводит его на экран, заменив каждую первую букву слов, начинающихся с гласной буквы на введённый с клавиатуры символ.
Написать программу, которая считывает текст из файла и выводит на экран только те строки в которых встречаются цифры.
Написать программу, которая считывает текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы.
Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов.
Написать программу, которая считывает текст из файла и определяет, сколько в нём слов, состоящих не более чем из четырёх слов.
Написать программу, которая считывает текст из файла и выводит на экран только предложения в которых нет запятых.
Написать программу, которая считывает текст из файла и выводит на экран только строки содержащие заданное число.
Написать программу, которая считывает текст из файла и выводит на экран слова, начинающиеся с гласной буквы.
Написать программу, которая считывает текст из файла и выводит на экран меняя местами два соседних слова.
Для выполнения данной лабораторной работы необходимо изучить теоретический материал по теме «Файлы»
Для взаимодействия с устройством ввода/вывода программист должен создать новый поток и связать его с целевым устройством и осуществлять операции ввода/вывода работая с потоком.
Поток–некая совокупность байт пересылаемая между некоторым устройством ввода/вывода и оперативной памятью.
Для создания потока:
Режим открытия потока
Состоит из 2-х частей:
Используются английские буквы r, w, a.
r–открыть для чтения(файл должен существовать)
w–режим открытия на запись(если файл не существует то создается, если существует, то обнуляется)
a–открытие потока на дозапись(файл должен существовать)
r+–открытие существующего файла на чтение и запись
w+–открытие файла на чтение и запись(если файл не существует то создается, если существует, то обнуляется)
fcloseall(); –закрывает все потоки.
feof–возвращает 0 если достигнут конец строки
fseek–позволяет перемещать курсор
fseek(FILE*stream, int offset, int base);
смещение на offset байт относительно base
ferror(FILE*stream)–возвращает ненулевое значение если возникла ошибка при работе с потоком
fputc(char*str, FILE*stream)-вставляет(записывает) в поток строку str.
Данная лабораторная работа предусматривает в качестве контроля отчет в печатном виде и его защита
Под понятием произвольного доступа к файлу подразумевается ряд различных моментов:
-можно произвольно обращаться к любой записи или любому байту в файле, в противоположность последовательному доступу, когда данные извлекаются или передаются в поток строго по очереди;
-в открытом файле можно произвольно чередовать операции чтения и записи;
-ввод-вывод с произвольным доступом является по преимуществу бесформатным.
Для позиционирования потока используются функции seekg() и seekp().
Разница между ними в том, что первая перемещает позицию чтения в потоке, а вторая устанавливает новую позицию в выходном потоке. Если используется поток типа fstream, и он открыт в режиме чтения-записи, то все равно, какую функцию применять для позиционирования.
Для определения текущей позиции tellg() и tellp(). Первая возвращает позицию чтения во входном потоке, а вторая – позицию в выходном потоке.
Рассмотрим примеры использования функции работы с файлами и строками.
Пример 11.3 Поиск вхождения слова в файле
using namespace std;
const int len = 81;
char word[len], line[len], end_word[] = done;
//пересоздадим файл и откроем для чтения/записи
fstream f(lab11.txt, ios::in | ios::out | ios::trunc);
//введем несколько строк для дальнейшего поиска в них
//с файловым потоком можно работать как со стандартными cin и cout
//продолжаем пока не введем done
while (strcmp(line, end_word));
//сбросим файловый поток на начало
//содержимое файла на экран
//выполняем пока не достигнем конца файла
//сбрасываем бит-признак конца файла eofbit
//сбросим файловый поток на начало
//определим длину искомого слова
size_t l_word = strlen(word);
//счетчик вхождения слова
//читаем построчно и ищем слово word в строке
while (f.getline(line, len))
//поместим указатель p на начало строки
//strstr возвращает указатель
// на элемент из строки p с которого начинается word
while (p = strstr(p, word))
//используем указатель не текущую позицию в строке
//переместим p на символ сразу за концом слова
//проверим стоит ли наше слово отдельно
//или это просто подстрока в другом (большем) слове
//проверим совпадает ли начало слова с началом строки
//проверим символ перед началом слова
//на принадлежность к разделителям
//начинается не с начала строки и
//не с разделителя = ищем дальше
//символы перед началом слова подходят
//проверяем символы за окончанием слова
//если это пробелы, символы пунктуации
//или конец строки = увеличиваем счетчик слов
Рассмотрим другой подход к решению предложенной выше задачи. В библиотеке C++ есть функция strtok, которая разбивает предложенную строку на лексемы в соответствии с заданным набором разделителей. При ее использовании нет необходимости выделять и проверять начало и конец слова. Потребуется лишь сравнит с искомым словом, слово, выделенное strtok. Для этого просто необходимо задать разделители.
Пример 11.4 Поиск вхождения слова в файле с помощью strtok
using namespace std;
const int len = 81;
char word[len], line[len], end_word[] = done;
//пересоздадим файл и откроем для чтения/записи
fstream f(lab11.txt, ios::in | ios::out | ios::trunc);
//введем несколько строк для дальнейшего поиска в них
//продолжаем пока не введем done
while (strcmp(line, end_word));
//сбрасываем бит-признак конца файла eofbit
//сбросим файловый поток на начало
//Указатель на начало слова
//счетчик вхождения слова
//читаем построчно и ищем слово word в строке
while (f.getline(line, len))
//находим первый символ не из разделителей
//находим первый символ не из разделителей
token = strtok(line, delims);
//проверяем, остались ли еще слова
while ( token != NULL )
//strtok заменяет символ после разделителя
//на NULL поэтому можно сравнивать искомое и
if (!strcmp(token, word))
//Для поиска следующей лексемы в той же строке
//strtok необходимо передать NULL
token = strtok(NULL, delims);
Пример 11.5 Произвольный доступ к файлу
// Открыть файл как двоичный сразу для ввода и вывода
// (создать новый, если отсутствует или перезаписать старый)
// Ввести элементы с клавиатуры
// Поменять знак четных элементов
using namespace std;
const int NP = 10;
const int IS = sizeof(int); //размер элемента int
// Открытие файла для чтения/записи.
ios::binary | ios::in | ios::out | ios::trunc);
// Первоначальная запись файла.
//Приводим pt к типу char* для нормальной работы write
// Чтение файла от конца к началу.
//Перемещаемся к i-му элементу с конца
fs.seekg(-(i + 1) * IS, ios::end);
//Приводим pt к типу char* для нормальной работы read
// Переписать четные индексы.
//перемещаемся к i-му элементу
fs.seekg(2 * i * IS);
//читаем i-ый элемент
//меняем значение на противоположное
//возвращаемся на шаг назад, к только что прочитанному элементу
//выводим файл на экран
Замечание. Когда эта программа открывает уже существующий файл, он усекается до нулевой длины (т.е. все его данные теряются). Если необходимо работать с уже имеющимися в файле данными, нужно убрать бит ios::trunc из режима открытия потока.
1. Какие виды строк существуют в C++?
2. Как объявить C-строку?
3. Как осуществляется ввод-вывод строк?
4. Какие операции над строками вы знаете?
5. Перечислите операции над символами?
6. Перечислите стандартные потоки ввода-вывода?
7. Как создать файловый поток?
8. Какие режимы открытия файлов существуют?
9. Что такое двоичный режим ввода-вывода?
10.Что такое текстовый режим ввода-вывода?
11.Как осуществляется чтение символов и строк?
12.Как изменить текущую позицию в файле?
13.Как узнать текущую позицию в файле?
14.Для чего используется метод clear()?
1. Написать программу в соответствии с вариантом задания из пункта 5.
2. Отладить и протестировать программу.
3. Оформить отчёт.
Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке.
Написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введенное с клавиатуры слово.
Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие двузначные числа.
Написать программу, которая считывает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв.
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова.
Написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых.
Написать программу, которая считывает текст из файла и определяет, сколько в нем слов, состоящих не более чем из четырех букв.
Написать программу, которая считывает текст из файла и выводит на экран только цитаты, то есть предложения, заключенные в кавычки.
Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов.
Написать программу, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы.
Написать программу, которая считывает текст из файла и выводит на экран только строки, не содержащие двузначных чисел.
Написать программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробельные символы.
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив каждую первую букву слов, начинающихся с гласной буквы, на прописную.
Написать программу, которая считывает текст из файла, находит самое длинное слово и определяет, сколько раз оно встретилось в тексте.
Написать программу, которая считывает текст из файла и выводит на экран сначала вопросительные, а затем восклицательные предложения.
Написать программу, которая считывает текст из файла и выводит его на экран, после каждого предложения добавляя, сколько раз встретилось в нем введенное с клавиатуры слово.
Написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке.
Написать программу, которая считывает текст из файла и выводит на экран сначала предложения, начинающиеся с однобуквенных слов, а затем все остальные.
Написать программу, которая считывает текст из файла и выводит на экран предложения, содержащие максимальное количество знаков пунктуации.
Написать программу, которая считывает текст из файла и записывает в другой только строки, не содержащие символов пунктуации (точка, запятая и т.д.)
Написать программу, которая считывает текст из файла и определяет, сколько в нем строчек, содержащих не более чем три пустых символа (пробел, табуляция и.т.д.).
Написать программу, которая считывает из одного текстового файла строчки и сохраняет их в другой файл в обратном порядке.
Написать программу, которая считывает текст с экрана в файл и выводит его обратно на экран, заменяя арабские цифры римскими (представление чисел не учитывать, заменять только сами цифры).
1. Титульный лист.
2. Наименование и цель работы.
3. Краткое теоретическое описание.
4. Задание на лабораторную работу.
5. Схема алгоритма.
6. Листинг программы.
7. Результаты выполнения программы.
Статьи к прочтению:
Уроки по С++.1 урок.Как создать программу?
Похожие статьи:
Читайте также: