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

Вариант 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. список результата формировать, модифицируя исходный список.

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