Домашнее задание для студентов курса “Основы программирования” 1 курса кафедры ИУ5 МГТУ им Н.Э. Баумана.
Освоение низкоуровнего программирования
Зайдите в локальную директорию с репозиторием и обновите его из upstream-репозитория:
git pull upstream
или, если используется ветка homeWork:
git pull upstream homeWork
Переключитесь на ветку с текущей работой:
git checkout homeWork
Свяжите ветку локального репозитория с вашим удаленным репозиторием:
git push --set-upstream origin homeWork
Слова текста состоят из строчных латинских букв и разделены одним или несколькими пробелами.
Текст оканчивается точкой.
На экран должны выводиться только строчные латинские буквы, пробел и точка; все остальные вводимые символы игнорируются.
При нажатии клавиши Backspace удаляется последний введённый символ.
БЕЗ ИСПОЛЬЗОВАНИЯ конструкции
а) написать программу ввода такого текста с клавиатуры.
Вариант 1. б) напечатать все слова, отличающиеся от последнего слова, перед печатью перенеся первую букву в конец слова.
Вариант 2. б) напечатать все слова, отличающиеся от последнего слова, перед печатью удалив из слова последнюю букву.
Вариант 3. б) напечатать все слова, отличающиеся от последнего слова, перед печатью удалив из слова все последующие вхождения первой буквы.
Вариант 4. б) напечатать все слова, отличающиеся от последнего слова, перед печатью удалив из слова все предыдущие вхождения последней буквы.
Вариант 5. б) напечатать все слова, отличающиеся от последнего слова, перед печатью оставив в слове только первые вхождения каждой буквы.
Вариант 6. б) напечатать все слова, отличающиеся от последнего слова, перед печатью (если слово нечетной длины) удалив его среднюю букву.
Вариант 7. б) напечатать все слова, отличающиеся от последнего слова, и одновременно симметричные.
Вариант 8. б) напечатать все слова, отличающиеся от последнего слова, в которые первая буква печатаемого слова входит в него еще только один раз.
Вариант 9. б) напечатать все слова, отличающиеся от последнего слова, в которых буквы упорядочены по алфавиту.
Вариант 10. б) напечатать все слова, отличающиеся от последнего слова, и совпадающие с начальным отрезком алфавита (a, ab, abc и т.д.).
Вариант 11. б) напечатать все слова, отличающиеся от последнего слова, и совпадающие с конечным отрезком алфавита (z, yz, xyz и т.д.).
Вариант 12. б) напечатать все слова, отличающиеся от последнего слова, и имеющие максимальную длину.
Вариант 13. б) напечатать все слова, отличающиеся от последнего слова, и не содержащие повторяющихся букв.
Вариант 14. б) напечатать все слова, отличающиеся от последнего слова, и в которые каждая буква входит не менее двух раз.
Вариант 15. б) напечатать все слова, отличающиеся от последнего слова, в которых гласные буквы (a, e, i, o, u, y) чередуются с согласными.
Вариант 16. б) напечатать слова текста в обратном порядке букв.
Вариант 17. б) напечатать этот текст, удалив все повторные вхождения слов.
Вариант 18. б) напечатать все слова, входящие в текст по одному разу.
Вариант 19. б) напечатать все различные слова текста, указав для каждого из них количество его вхождений в текст.
Вариант 20. б) напечатать слова текста в алфавитном порядке.
Вариант 21. б) напечатать все слова, отличающиеся от последнего слова, и совпадающие с конечным отрезком алфавита (z, yz, xyz и т.д.).
Вариант 22. б) напечатать все слова, отличающиеся от последнего слова, и имеющие максимальную длину.
Вариант 23. б) напечатать все слова, отличающиеся от последнего слова, и не содержащие повторяющихся букв.
Вариант 24. б) напечатать все слова, отличающиеся от последнего слова, и в которые каждая буква входит не менее двух раз.
Вариант 25. б) напечатать все слова, отличающиеся от последнего слова, в которых гласные буквы (a, e, i, o, u, y) чередуются с согласными.
В Windows используется getch() (библиотека conio.h).
В Linux / macOS аналогичной функции нет, поэтому для безэхового посимвольного ввода используется termios.
Необходимо подключить:
#include <termios.h> // для управления параметрами терминала (отключение эха)
#include <unistd.h> // функции read(), write()
#include <stdio.h> // putchar()
В начале main() устанавливаем переменные управления консолью
struct termios old, raw;
где
old — сохранит исходный режим терминала;raw — изменённый;Отключение канонического режима и эха:
tcgetattr(STDIN_FILENO, &old); // читаем текущие настройки терминала
raw = old; // копируем для модификации
raw.c_lflag &= ~(ICANON | ECHO);
где
tcsetattr(STDIN_FILENO, TCSANOW, &raw);
// применяем новые настройки
Перед завершением программы необходимо обязательно восстановить режим терминала:
tcsetattr(STDIN_FILENO, TCSANOW, &old);