|
Программирование >> Структурное программирование
16.18. Напишите программу, которая вводит символ с клавиатуры и проверяет этот символ каждой из функций библиотеки обработки символов. Программа должна печатать значение, возвращ;аемое каждой функцией. 16.19. Следующая программа использует функцию multiple для определения, кратно ли введенное с клавиатуры целое некоторой целой переменной х. Изучите функцию multiple и определите значение х. Эта программа определяет, кратно ли значение величине X #include <iostream.h> int multiple(int); main() ( int y; cout Введите целое между 1 и 32000: ; cin у; if (multiple(у)) cout у кратно X endl; else cout << у << не кратно X << endl; return 0; } int multiple(int num) ( int mask = 1, mult = 1; for (int i = 0; i < 10; i++, mask = 1) if ((num & mask) != 0) { mult = 0; break; return mult; 16.20. Что делает следующая программа? #include <iostream.h> int mystery(unsigned); main() { unsigned x; cout Введите целое: ; cin >> x; cout << Результат равен << mystery(x) << endl; return 0; int mystery(unsigned bits) ( unsigned mask = 1 << 15, total = 0; for (int i = 0; i < 16; i++, bits = 1) if ( (bits & mask) == mask) ++total; return total % 2 == 0 ? 1 : 0; 16.21. Напишите программу, которая вводит строку текста функцией-элементом getline класса istream (см. главу 11) в массив символов s[100]. Затем выводит ее в верхнем регистре и в нижнем регистре. 16.22. Напишите программу, которая вводит 4 строки, представляюпд;ие собой целые числа, преобразует эти строки в целые значения и печатает их сумму. 16.23. Напишите программу, которая вводит 4 строки, представляющие собой числа с плавающей точкой, преобразует эти строки в значения типа double и печатает их сумму. 16.24. Напишите программу, которая вводит с клавиатуры строку текста и подстроку (ключ поиска). Используя функцию strstr, найдите первое вхождение подстроки в тексте и присвойте этот адрес переменной searchPtr типа char *. Если подстрока найдена, напечатайте остальной текст строки, начиная с найденной подстроки. Затем снова используйте strstr для определения следующего вхождения подстроки в строку текста. Если второе вхождение найдено, напечатайте остальной текст строки, начиная с этого второго вхождения. Подсказка: второй вызов strstr должен содержать searchPtr -I- 1 в качестве первого аргумента. 16.25. Напишите программу, основанную на программе упражнения 16.24, которая вводит несколько строк текста и одну подстроку (ключ поиска). Используя функцию strstr определите общее число вхождений подстроки в эти строки. Напечатайте результат. 16.26. Напишите программу, которая вводит несколько строк текста и один символ (ключ поиска). Используя функцию strchr определите общее число вхождений этого символа в строки текста. 16.27. Напишите программу, основанную на программе упражнения 16.26, которая вводит несколько строк текста и использует функцию strchr для определения общего числа вхождений каждой буквы алфавита в этот текст. Буквы в верхнем и нижнем регистрах подсчитываю.тся совместно. Сохраняйте число вхождений каждой буквы в массиве и напечатайте эти значения в табулированном формате после того, как все результаты будут определены. 16.28. Таблица в приложении В содержит числовые коды, представляющие все символы набора символов ASCII. Изучите эту таблицу и затем ответьте, верны ли следующие утверждения: a) Буква А имеет код меньший, чем буква В . b) Цифра 9 имеет код меньший, чем цифра О . c) Обычно используемые символы сложения, вычитания, умножения и деления имеет код меньший, чем любая цифра. d) Цифры имеют код меньший, чем буквы. е) Если сортирующая программа сортирует строки в порядке возрастания, то эта программа помещает символ правой скобки перед символом левой скобки. 16.29. Напишите программу, которая читает ряд последовательных строк и печатает только те из них, которые начинаются с буквы Ь . 16.30 Напишите программу, которая читает ряд последовательных строк и печатает только те из них, которые кончаются буквами ED . 16.31. Напишите программу, которая вводит коды ASCH и печатает соответствующие им символы. Модифицируйте эту программу так, чтобы она генерировала все возможные трехразрядные коды в диапазоне от ООО до 255 и пыталась напечатать соответствующие им символы. Что случается при выполнении этой программы. 16.32. Используя таблицу символов ASCII из приложения В напишите ваши собственные версии функций обработки символов из таблицы на рис. 16.16. 16.33. Напишите ваши собственные версии функций преобразования строк в числа из таблицы на рис. 16.20. 16.34. Напишите ваши собственные версии функций поиска в строках (таблица на рис. 16.27). 16.35. Напишите ваши собственные версии функций работы с блоками памяти из таблицы на рис. 16.34. 16.36. (Проект: контроль орфографии) Многие популярные пакеты программ обработки текстов имеют встроенные блоки контроля орфографии. Мы использовали средства контроля орфографии в Microsoft Word 5.0 при подготовке этой книги и обнаружили, что независимо от того, насколько тщательно мы писали главу. Word всегда находил больше орфографических ошибок, чем мы могли обнаружить вручную. В данном проекте мы просим вас разработать свою собственную утилиту контроля орфографии. Мы предложим ряд упрощений, чтобы помочь вам начать этот проект. В дальнейшем вы можете решить добавить в проект дополнительные возможности. Вы можете решить также, что полезно использовать компьютеризованные словари в качестве источников правильного написания слов. Почему мы пишем так много слов с орфографическими ошибками? В некоторых случаях это связано с тем, что мы просто не знаем правильное правописание и гадаем, как написать то или иное слово. В некоторых случаях мы переставляем две буквы (например, умлочание вместо умолчание ). Иногда мы случайно сдваиваем буквы (например, удоббно вместо удобно ). Иногда мы случайно нажимаем соседнюю клавишу (например, лень вместо день ) и т.д. Спроектируйте и реализуйте программу контроля орфографии на С-Ы-. Ваша программа должна обрабатывать массив wordList (словарь) символьных строк. Вы можете или ввести эти строки сами, или взять их из компьютерного словаря.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |