Введите с клавиатуры символьную строку и выведите в порядке убывания все цифры которых нет
КОМПИЛЯЦИЯ И ОТЛАДКА ПРИЛОЖЕНИЙ В LINUX
Цель работы
Изучить инструментарий разработки приложений для Linux и фундаментальные основы системного программирования с использованием утилит gcc (g++) и gdb для создания, компиляции и отладки приложений на языке программирования С/C++.
Требования
Разработать приложение согласно варианту бригады. Во всех программах необходимо ввести N-строк, используя два способа ввода: через аргументы командной строки и стандартного ввода данных во время работы программы. Запустить программу в режиме отладки и продемонстрировать знания основных команд gdb.
При разработки программы использовать модульный принцип.
Во время работы программы должны выводить на экран исходные и конечные данные.
При выполнении задания запрещается использовать интегрированные средства разработки (Integrated Development Environment, IDE). Рекомендуется задействовать любой текстовый редактор (к примеру, gedit) и набор компиляторов GNU Compiler Collection (GCC), в частности, компилятор языка программирования С/C++ gcc/g++ .
Индивидуальное задание:
Упорядочить и вывести строки в порядке возрастания (убывания) значений их длины.
Ход выполнения лабораторной работы:
- Установил соответствующий инструментарий для выполнения лабораторной работы (gcc, g++ и gdb).
- Для удобства навигации по файлам установил дополнительно файловый менеджер GNOME Comander (gnome-commender).
- Разработал алгоритм и блок-схему решения индивидуального задания.
- В текстовом редакторе gedit набрал исходный код решения задания на языке программирования С++ и сохранил исходник с именем. Программа состоит из следующих файлов (см. рис. 1):
- sort.ccp– файл реализующий сортировку строк;
- SortRows.ccp– файл, в котором описана главная функция программы main;
- Запустил терминал Linux и с помощью команды cd перешёл в папку местонахождения исходных кодов программы.
- Для компиляции программы использовал компилятор g++ с вводом соответствующих параметров (см. рис. 2);
- Для тестирования работоспособности запустил программу с соответствующими аргументами командной строки (см. рис. 2).
- Отладил программу.
Результаты выполнения лабораторной работы:
Рисунок 1 – Содержимое папки программы лабораторной работы № 2
Рисунок 2 — Компиляция и выполнение программы SortRows
Что я освоил в процессе выполнения лабораторной работы:
- Процесс создания исполняемой программы.
- Базовые основы разработки программ на языке программирования С/С++.
- Изучил некоторые команды (ls, cd, clear, man, info, help, . ) для работы в Linux-терминале.
- Научился компилировать и запускать C/C++ программы с использованием gcc и g++ компиляторов.
- Научился подключать модульные файлы.
- Разобрался в процессе создания компилятором выполняемой программы (что именно происходит за «кулисами»), а также как воедино собрать проект, который написан с использованием модульного принципа.
- Научился отлаживать работу программы с использованием встроенного отладчика gdb.
Выводы:
1. При создании исходной программы мы выделяем четыре стадии:
- написание исходного кода прогарммы (получаем файлы *.h, *.с / *.ссp);
- обработка исходного кода программы препроцессором;
- компиляция преобразованного исходного файла препроцессором в набор машинных команд (результат сохраняется в объектных файлах с расширением *.o);
- отладка программы
2. GCC(GNU Compiler Collection) – набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC используется как стандартный компилятор для свободных UNIX-подобных операционных систем.
3. GNU Debugger — отладчик проекта GNU, который поддерживает такие языки как: Си, C++ и др. В ходе выполнения лабораторной работы мы познакомились с командами GNU GDB.
4. g++ – традиционное обозначение GNU C++, свободно распространяемого компилятора языка C++. Является частью GCC – коллекции компиляторов GNU.
5. Использование динамических массивов позволяют эффективно распределять память.
Дополните приведенный код, используя индексатор, так чтобы он вывел символ запятой.
Дополните приведенный код, используя индексатор, так чтобы он вывел символ w .
В столбик 1
На вход программе подается одна строка. Напишите программу, которая выводит элементы строки с индексами 0, 2, 4, . в столбик.
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести элементы строки с индексами 0, 2, 4, . , каждое на отдельной строке.
В столбик 2
На вход программе подается одна строка. Напишите программу, которая выводит в столбик элементы строки в обратном порядке.
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести в столбик элементы строки в обратном порядке.
ФИО
На вход программе подаются три строки: имя, фамилия и отчество. Напишите программу, которая выводит инициалы человека.
Формат входных данных
На вход программе подаются три строки, каждая на отдельной строке.
Формат выходных данных
Программа должна вывести ФИО человека.
Примечание. Гарантируется, что имя, фамилия и отчество начинаются с заглавной буквы.
Цифра 1
На вход программе подается одна строка состоящая из цифр. Напишите программу, которая считает сумму цифр данной строки.
Формат входных данных
На вход программе подается одна строка состоящая из цифр.
Формат выходных данных
Программа должна вывести сумму цифр данной строки.
Сколько раз?
На вход программе подается одна строка. Напишите программу, которая определяет сколько раз в строке встречаются символы + и * .
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести сколько раз встречаются символы + и * в строке.
Одинаковые соседи
На вход программе подается одна строка. Напишите программу, которая определяет сколько в ней одинаковых соседних символов.
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести количество одинаковых соседних символов.
Гласные и согласные
На вход программе подается одна строка с буквами русского языка. Напишите программу, которая определяет количество гласных и согласных букв.
Формат входных данных
На вход программе подается одна строка.
Формат выходных данных
Программа должна вывести количество гласных и согласных букв.
Примечание. В русском языке 10 гласных букв (а, у, о, ы, и, э, я, ю, ё, е) и 21 согласная буква (б, в, г, д, ж, з, й, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ).
Decimal to Binary
На вход программе подается натуральное число, записанное в десятичной системе счисления. Напишите программу, которая переводит данное число в двоичную систему счисления.
Формат входных данных
На вход программе подается одно натуральное число.
Формат выходных данных
Программа должна вывести число записанное в двоичной системе счисления.
Задача. Дана строка символов, подсчитать сколько раз среди символов строки встречается буква x.
Разбор задачи. Сначала необходимо запросить у пользователя строку, ввести ее с клавиатуры. Затем в цикле, начиная с первого символа, проверять равен ли текущий символ символу х, если да, символы равны, увеличить специальную переменную-счетчик на 1, иначе перейти к анализу следующего символа и так до конца строки. В конце вывести результат (значение переменной-счетчика) на экран. Замечание: не забудьте обнулить значение счетчика перед использованием.
Пример2
Задача. Написать программу, которая получает от пользователя набор символов, исключая пробел, и удаляет из этого набора все вхождения символов S и s.
Разбор задачи. Из условия задачи можно сделать следующие выводы: мы должны написать программу, которая при получении конкретного набора символов должна произвести проверку этого набора на наличие символов S и s. Если символ S(или s) встретится в наборе, то необходимо его удалить из этого набора. Конечный результат не должен содержать ни одного символа S и s.
Решение задачи будет состоять из трех блоков:
- получение данных от пользователя (т.е. пользователь должен ввести строку для обработки),
- анализ строки на наличие символов S и s,
- вывод результата.
Пускай дана следующая строка:
Проверяя поиндексно каждый элемент массива, находим, что 2 элемент массива и есть искомый символ. Тогда, нам нужно сместить каждый элемент массива на 1 индекс меньше, т.е. мы получим следующий результат:
и тем самым добьемся решения задачи.
Реализация сказанного приведена ниже на С++.
Замечание к задаче. Как Вы думаете, что произойдет, если в программу ввести строку содержащую пробелы (т.е. нарушить условия задачи)? Как Вы можете объяснить полученное?
Пример 3
Задача. Написать программу сравнения двух строк.
Разбор задачи. Чтобы понять, что означает одна строка "больше" или "меньше", чем другая строка, рассмотрим процесс расстановки имен по алфавиту. Вы, без сомнения, поставили бы "Jones" перед "Smith", потому что в алфавите J раньше S. Но как компьютер узнает о порядке следования букв? Помните? - все символы представляются внутри компьютера как численные коды; когда компьютер сравнивает две строки, он на самом деле сравнивает численные коды символов в строке. (Замечание: коды символов упорядочены по алфавиту только для латинских букв, к кириллице это, к сожалению, не относится)
Напишите программу, которая находит все цифры, которых нет в переданной ей строке.
На вход программа подаётся символьная строка.
Программа должна вывести в одной строке все цифры, которые не встречаются в исходной строке, в порядке убывания.
Если таких цифр нет, нужно вывести слово 'NO'.
Ответ в файле ответ в файле.
Напишите программу, которая определяет, верно ли, что введённое число содержит две одинаковых цифры, стоящие рядом (как, например, 221)?
Напишите программу, которая определяет, верно ли, что введённое число содержит две одинаковых цифры, стоящие рядом (как, например, 221).
Выходные данные Программа должна вывести слово 'YES', если в числе есть две одинаковые цифры, стоящие рядом, и слово 'NO', если такой пары цифр нет.
Примеры входные данные 5221 выходные данные YES входные данные 1232 выходные данные NO.
Напишите программу, которая определяет, верно ли, что введённое число содержит две одинаковых цифры, стоящие рядом (как, например, 221)?
Напишите программу, которая определяет, верно ли, что введённое число содержит две одинаковых цифры, стоящие рядом (как, например, 221).
Выходные данные Программа должна вывести слово 'YES', если в числе есть две одинаковые цифры, стоящие рядом, и слово 'NO', если такой пары цифр нет.
Примеры входные данные 5221 выходные данные YES входные данные 1232 выходные данные NO
ПРОГРАММА ДОЛЖНА БЫТЬ С ЦИКЛОМ БЕЗ КОНСТАНТ.
Напишите программу, которая выводит все цифры, встречающиеся в символьной строке больше одного раза?
Напишите программу, которая выводит все цифры, встречающиеся в символьной строке больше одного раза.
Программа должна вывести в одну строчку в порядке возрастания все цифры, встречающиеся во входной строке больше одного раза.
Если таких цифр нет, нужно вывести слово 'NO'.
Напишите программу, которая определяет количество различных символов, встречающихся в символьной строке?
Напишите программу, которая определяет количество различных символов, встречающихся в символьной строке.
На вход программы подаётся символьная строка.
Программа должна вывести количество различных символов в этой строке.
Напишите программу, которая проверяет правильность имени переменной в языке Паскаль?
Напишите программу, которая проверяет правильность имени переменной в языке Паскаль.
Имя может содержать только латинские буквы (заглавные и строчные), цифры и знак подчёркивания, но не может начинаться с цифры.
На вход программы подаётся символьная строка, содержащая имя переменной.
Программа должна вывести ответ 'YES', если строка представляет собой правильное имя переменной в языке Паскаль, и 'NO', если имя ошибочно.
8 с использованием множеств.
НА C + + ПОЖАЛУЙСТАНапишите программу, которая определяет, верно ли, что введённое число - – трёхзначное?
НА C + + ПОЖАЛУЙСТА
Напишите программу, которая определяет, верно ли, что введённое число - – трёхзначное.
Если введённое число – трёхзначное, нужно вывести ответ YES, если нет, то вывести ответ NO.
Напишите программу, которая находит все цифры, которых нет в переданной ей строке?
Напишите программу, которая находит все цифры, которых нет в переданной ей строке.
На вход программа подаётся символьная строка.
Программа должна вывести в одной строке все цифры, которые не встречаются в исходной строке, в порядке убывания.
Если таких цифр нет, нужно вывести слово 'NO'.
8 с использованием множества.
Напишите программу, которая находит все символы в символьной строке, которые встречаются только один раз?
Напишите программу, которая находит все символы в символьной строке, которые встречаются только один раз.
На вход программы подаётся символьная строка.
Программа должна вывести все символы, которые встречаются в строке только один раз, в порядке возрастания их ASCII - кодов.
Если таких символов нет, нужно вывести слово 'NO'.
8 с использованием множеств.
Напишите программу, которая выбирает максимальное и минимальное из пяти введённых чисел?
Напишите программу, которая выбирает максимальное и минимальное из пяти введённых чисел.
В первой строке нужно вывести минимальное из введённых чисел, во второй строке – максимальное.
Напишите программу, которая вводит две символьные строки и находит все латинские буквы?
Напишите программу, которая вводит две символьные строки и находит все латинские буквы.
Которых нет ни в одной из них.
Заглавные и строчные буквы не различаются.
На вход программе подаются две символьные строки.
Программа должна вывести в одной строке в алфавитном порядке все латинские буквы, которые не встречаются ни в одной из двух входных строк.
Все буквы должны быть заглавными.
Если ни одной такой буквы нет, нужно вывести число 0.
8 с использованием множеств.
Аналитик, юрист, риэлтор, переводчик.
Секретарь, кассир, кондуктор, сортировщик.
Янт, ты любишь разговаривать по телефону? (Да \ Нет) Янт, ты разговариваешь? (Да \ Нет) ————————————————————— Янт, кому ты звонишь? (Нельзя ответить да \ нет) Янт, придумай сам этот вопрос.
Читайте также: