Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
16 задач С4.doc
Скачиваний:
2
Добавлен:
18.09.2019
Размер:
86.02 Кб
Скачать

1) Составить программу, удовлетворяющую следующим условиям. Программа может использовать не более одного массива из не более чем 64 символьных элементов и любое количество числовых или символьных переменных. На вход программе подается набор символов длиной не менее 2 и не более 64, состоящий из заглавных латинских букв и подчёркиваний и заканчивающийся символом '.' (точка). Программа должна сначала определить, есть ли в этом наборе хотя бы одна буква. Если она есть, то программа должна определить, есть ли в наборе группы из не менее чем двух идущих подряд одинаковых букв. Каждую такую группу программа должна заменять на группу «количество повторов+эта буква» (например, группу “AAA” – на группу “3A”), а группу из не менее чем двух идущих подряд подчёркиваний – на одно подчёркивание. Если букв в наборе нет, то программа должна вывести на экран строку, содержащую двухсимвольное слово "NO". А если есть, то в первой строке программа должна вывести трехсимвольное слово "YES", а во второй – слово, полученное из исходного набора в результате всех описанных замен. Например, если на вход подается набор "___." (для краткости, приводим его в виде строки), то программа должна вывести строку "NO", а если на вход подается набор "ABBA_TTTIT__X", то программа должна вывести две строки: YES A2BA_3TIT_X

Входные символы располагаются по одному в строке текста. Программа должна вводить одной командой «ввод» ровно один очередной символ набора

2) Составить программу, удовлетворяющую следующим условиям. Программа может использовать не более одного массива из не более чем 100 числовых элементов и любое количество числовых или символьных переменных. На вход программе подается набор символов, состоящий из символов латинских букв, подчёркиваний и цифр от 0 до 9 и заканчивающийся символом '.' (точка). Программа должна сначала определить, есть ли в этом наборе хотя бы один символ десятичной цифры. Если такие символы есть, то программа должна определить, можно ли переставить их так, чтобы полученная последовательность десятичных цифр оказалась общепринятой записью десятичного числа и эта запись была бы симметричной (то есть, число читалось бы одинаково как слева направо, так и справа налево). В частности, в этой записи не должно быть ведущих нулей, за исключением случая записи числа ноль одной цифрой '0'.

Если соответствующих цифрам символов нет или требуемое число составить невозможно, то программа должна вывести на экран строку, содержащую двухсимвольное слово "NO". А если возможно, то в первой строке программа должна вывести трехсимвольное слово "YES", а во второй – десятичную запись симметричного числа (получаемого перестановкой цифр в наборе). Если таких чисел несколько, то программа должна вывести максимальное из них. Например, если на вход подается набор "rotor." (для краткости приводим его в виде строки), или набор "pi_3_14.", то программа должна вывести строку "NO", а если на вход подается набор "Do_not_911_to_09_do.", то программа должна вывести две строки: YES 91019 Входные символы располагаются по одному в строке текста. Программа должна вводить одной командой "ввод" ровно один очередной символ набора.

3) Составить программу, удовлетворяющую следующим условиям. Программа может использовать не более одного массива из не более чем 100 числовых элементов и любое количество числовых или символьных переменных. На вход программе подается набор символов длиной не более 100, состоящий из заглавных латинских букв и заканчивающийся символом '.' (точка). Программа должна переставлять буквы набора так, чтобы все одинаковые буквы стояли рядом, и группы одинаковых букв располагались по убыванию количества букв в группе, после чего выводить полученный набор в строку без пробелов. Если две буквы встречаются в наборе равное число раз, то соответствующие им группы нужно вывести в алфавитном порядке. Например, если на вход подается набор "DHSXBDDXS." (для краткости, приводим его в виде строки), то программа должна вывести строку "DDDSSXXBH".

Входные символы располагаются по одному в строке текста. Программа должна вводить одной командой «ввод» ровно один очередной символ набора,

4) Составить программу, удовлетворяющую следующим условиям. Программа может использовать не более одного массива из не более чем 100 числовых элементов и любое количество числовых или символьных переменных. На вход программе подается набор символов, состоящий из цифр, строчных латинских букв и подчёркиваний и заканчивающийся символом '.' (точка). Программа должна сначала определить, есть ли в этом наборе хотя бы одна буква. Если она есть, то программа должна определить, можно ли из символов набора составить строку, содержащую все встречающиеся в наборе буквы в алфавитном порядке (каждая буква берётся один раз независимо от того, сколько раз она встречалась в наборе – один раз или больше) разделённые подчёркиваниями между ними. Если букв в наборе нет вообще либо подчёркиваний в наборе меньше, чем необходимо, то программа должна вывести на экран строку, содержащую двухсимвольное слово  . А если есть, то в первой строке программа должна вывести трехсимвольное слово  , а во второй – строку, построенную описанным образом. Например, если на вход подаётся набор “_good_1_9_1_morning__” (для краткости, приводим его в виде строки), то программа должна вывести две строки: YES d_g_i_m_n_o_r А если на вход подаётся набор “12_3_45” или “abc_xy”, то программа должна вывести строку “NO”.

Входные символы располагаются по одному в строке текста. Программа должна вводить одной командой «ввод» ровно один очередной символ набора,

5) Составить программу, удовлетворяющую следующим условиям. Программа может использовать не более одного массива из не более чем 100 числовых элементов и любое количество числовых или символьных переменных. На вход программе подается набор символов, состоящий из символов строчных латинских букв, подчёркиваний и цифр и заканчивающийся символом '.' (точка). Программа должна сначала определить, есть ли в этом наборе хотя бы одна буква. Если буквы есть, то программа должна определить, можно ли переставить их так, чтобы получилась упорядоченная симметричная строка (то есть, строка, которая читается одинаково справа налево и слева направо), и в первой половине которой (не считая центральной буквы, если общее число букв нечётно) буквы идут в алфавитном порядке. Если букв в наборе нет или требуемую строку составить невозможно, то программа должна вывести на экран строку, содержащую двухсимвольное слово "NO". А если возможно, то в первой строке программа должна вывести трехсимвольное слово "YES", а во второй – строку, построенную описанным образом. Например, если на вход подается набор "1_23." (для краткости приводим его в виде строки), или набор "program.", то программа должна вывести строку "NO", а если на вход подается набор "do_mode_dde07.", то программа должна вывести две строки: YES ddeomoedd

Входные символы располагаются по одному в строке текста. Программа должна вводить одной командой «ввод» ровно один очередной символ набора,

6) Составить программу, удовлетворяющую следующим условиям.

Программа вводит с клавиатуры непустую последовательность целых положительных не более чем трехзначных чисел, после которой идет целое число ноль. Само число ноль в последовательность не входит. Не требуется, чтобы программа проверяла непустоту последовательности, положительность или не более чем трехзначность вводимых элементов последовательности. Программа не должна использовать массивы. Программа должна подсчитать количество нерасширяемых строго возрастающих участков последовательности. Строго возрастающим участком называется набор из двух или более подряд идущих элементов последовательности, каждый из которых, кроме первого, больше предыдущего элемента данного набора. Строго возрастающий участок называется нерасширяемым, если он не содержится в большем строго возрастающем участке данной последовательности.

Кроме того, программа должна определить, образуют ли длины нерасширяемых строго возрастающих участков строго возрастающую последовательность. Пустая и одноэлементные последовательности длин считаются строго возрастающими.

В первой строке программа должна вывести количество нерасширяемых строго возрастающих участков последовательности, а во второй строке – слово "YES" (без кавычек), если длины строго возрастающих участков образуют строго возрастающую последовательность, и слово "NO" (без кавычек) в противном случае. Программа не должна ничего выводить на экран, кроме того, что указано выше.

Каждое исходное число вводится отдельной командой "ввод"

7) Составить программу, удовлетворяющую следующим условиям.

Программа вводит с клавиатуры непустую последовательность целых положительных не более чем трехзначных чисел, после которой идет целое число ноль. Само число ноль в последовательность не входит. Не требуется, чтобы программа проверяла непустоту последовательности, положительность или не более чем трехзначность вводимых элементов последовательности. Программа не должна использовать массивы. Программа должна подсчитать количество нерасширяемых строго убывающих участков последовательности. Строго убывающим участком называется набор из двух или более подряд идущих элементов последовательности, каждый из которых, кроме первого, меньше предыдущего элемента данного набора. Строго убывающий участок называется нерасширяемым, если он не содержится в большем строго убывающем участке данной последовательности.

Кроме того, программа должна определить, образуют ли длины нерасширяемых строго убывающих участков арифметическую прогрессию (возрастающую, убывающую или постоянную). Пустая, одно- и двухэлементные последовательности длин считаются арифметическими прогрессиями.

В первой строке программа должна вывести количество нерасширяемых строго убывающих участков последовательности, а во второй строке – слово "YES" (без кавычек), если длины строго убывающих участков образуют арифметическую прогрессию, и слово "NO" (без кавычек) в противном случае. Программа не должна ничего выводить на экран, кроме того, что указано выше.

Каждое исходное число вводится отдельной командой "ввод"

8) Составить программу, удовлетворяющую следующим условиям.

Программа вводит с клавиатуры непустую последовательность целых положительных не более чем трехзначных чисел, после которой идет целое число ноль. Само число ноль в последовательность не входит. Не требуется, чтобы программа проверяла непустоту последовательности, положительность или не более чем трехзначность вводимых элементов последовательности. Программа не должна использовать массивы. Программа должна подсчитать количество нерасширяемых строго возрастающих и нерасширяемых строго убывающих участков последовательности. Строго возрастающим (соответственно, убывающим) участком называется набор из двух или более подряд идущих элементов последовательности, каждый из которых, кроме первого, больше (соответственно, меньше) предыдущего элемента данного набора. Строго убывающий (соответственно, возрастающий) участок называется нерасширяемым, если он не содержится в большем строго убывающем (соответственно, возрастающем) участке данной последовательности.

Кроме того, программа должна определить, чередуются ли в данной последовательности нерасширяемые строго возрастающие и строго убывающие участки, то есть верно ли, что между любыми двумя нерасширяемыми строго возрастающими участками встречается строго убывающий участок (который может иметь ни одного, один или оба конца общими с нерасширяемыми строго возрастающими участками), и наоборот, между любыми двумя нерасширяемыми строго убывающими участками встречается строго возрастающий участок. Если в последовательности нет ни одного такого участка, ровно один такой участок или по одному такому участку каждого типа, то считается, что они чередуются.

В первой строке программа должна вывести количество нерасширяемых строго возрастающих участков последовательности, во второй строке – количество нерасширяемых строго убывающих участков, а в третьей строке – слово "YES" (без кавычек), если участки разных типов чередуются, и слово "NO" (без кавычек) в противном случае. Программа не должна ничего выводить на экран, кроме того, что указано выше.

Каждое исходное число вводится отдельной командой "ввод"