Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cpp2_2008.doc
Скачиваний:
20
Добавлен:
04.11.2018
Размер:
202 Кб
Скачать
☆

Вариант 31

Из входного потока вводится произвольное число строк. Длина каждой строки не превышает 80 символов. Конец ввода определяется концом файла.

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

Разработать следующие варианты программы:

  1. каждая строка представлена массивом символов, доступ к элементам массива осуществляется с помощью указателей;

    1. при обработке строки (строк) использовать библиотечные функции (<string.h>);

    2. библиотечные функции обработки строки не использовать.

  2. каждая строка представлена списком; первое поле элемента списка - символ строки; второе - указатель на следующий элемент списка или NULL в конце списка;

    1. при обработке исходного списка (исходных списков) формировать новый список (списки);

    2. список результата формировать, модифицируя исходный список.

Примечания:

  1. Ввод строк должен быть организован с помощью метода cin.getline(куда, максимум_сколько). Метод cin >> куда не использовать!

  2. Логически-законченные части алгоритма программы оформлять функциями с параметрами (например, пропуск разделителей, построении списка, вывод списка, удаление списки и др.).

Вариант 30

Из входного потока вводится произвольное число строк. Каждая строка содержит одно или более слов, разделенных пробелами и/или знаками табуляции. Длина каждой строки не превышает 80 символов. Конец ввода определяется концом файла.

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

Разработать следующие варианты программы:

  1. каждая строка представлена массивом символов, доступ к элементам массива осуществляется с помощью указателей;

    1. при обработке строки (строк) использовать библиотечные функции (<string.h>);

    2. библиотечные функции обработки строки не использовать.

  2. каждая строка представлена списком; первое поле элемента списка - символ строки; второе - указатель на следующий элемент списка или NULL в конце списка;

    1. при обработке исходного списка (исходных списков) формировать новый список (списки);

    2. список результата формировать, модифицируя исходный список.

Примечания:

  1. Ввод строк должен быть организован с помощью метода cin.getline(куда, максимум_сколько). Метод cin >> куда не использовать!

  2. Логически-законченные части алгоритма программы оформлять функциями с параметрами (например, пропуск разделителей, построении списка, вывод списка, удаление списки и др.).

Вариант 32

Из входного потока вводится произвольное число строк. Каждая строка представляет собой слова, разделенные одним или несколькими пробелами и/или знаками табуляции. Некоторые слова или группы слов в строке заключены в круглые скобки. Возможно отсутствие скобок в строке. Длина каждой строки не превышает 80 символов. Конец ввода определяется концом файла.

Для каждой строки сформировать новую строку, поместив в нее слова исходной строки, заключенные в круглые скобки. Если для последней в строке левой скобки отсутствует правая скобка, считать, что ее заменяет конец строки. Возможны вложенные скобки. В полученной строке слова разделять только одним пробелом. Полученную строку вывести на экран.

Разработать следующие варианты программы:

  1. каждая строка представлена массивом символов, доступ к элементам массива осуществляется с помощью указателей;

    1. при обработке строки (строк) использовать библиотечные функции (<string.h>);

    2. библиотечные функции обработки строки не использовать.

  2. каждая строка представлена списком; первое поле элемента списка - символ строки; второе - указатель на следующий элемент списка или NULL в конце списка;

    1. при обработке исходного списка (исходных списков) формировать новый список (списки);

    2. список результата формировать, модифицируя исходный список.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]