Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лр4(final).doc
Скачиваний:
0
Добавлен:
09.09.2019
Размер:
601.09 Кб
Скачать

Форматирование строк

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

В общем виде параметр задается следующим образом:

{n [m[:спецификатор_формата]]}

Здесь n – номер параметра. Параметры нумеруются с нуля, нулевой параметр заменяется значением первой переменной из списка вывода, первый параметр – второй переменной и т. д. Параметр m определяет минимальную ширину поля, которое отводится под выводимое значение. Если выводимому числу достаточно меньшего количества позиций, неиспользуемые позиции заполняются пробелами. Если числу требуется больше позиций, параметр игнорируется.

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

В операторе 5 используются так называемые пользовательские шаблоны форматирования. Если приглядеться, в них нет ничего сложного: после двоеточия задается вид выводимого значения посимвольно, причем на месте каждого символа может стоять либо #, либо 0. Если указан знак #, на этом месте будет выведена цифра числа, если она не равна нулю. Если указан 0, будет выведена любая цифра, в том числе и 0. В табл. 6.4 приведены примеры шаблонов и результатов вывода.

Таблица 4.4. – Примеры применения пользовательских шаблонов форматирования

Число

Шаблон

Вид

1,243

00.00

01,24

1,243

##.#

1,24

0,1

00.00

00,10

0,1

##.#

,1

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

Строки типа StringBuilder

Возможности, предоставляемые классом string, широки, однако требование неизменности его объектов может оказаться неудобным. В этом случае для работы со строками применяется класс StringBuilder, определенный в пространстве имен System.Text и позволяющий изменять значение своих экземпляров.

При создании экземпляра обязательно использовать операцию new и конструктор, например:

StringBuilder а = new StringBuilder( ); // 1

StringBuilder b = new StringBuilder( "qwerty" ); // 2

StringBuilder с = new StringBuilder( 100 ); // 3

StringBuilder d = new StringBuilder("qwerty", 100 ); // 4

StringBuilder e = new StringBuilder( "qwerty", 1, 3, 100 ); // 5

В конструкторе класса указываются два вида параметров: инициализирующая строка или подстрока и объем памяти, отводимой под экземпляр (емкость буфера). Один или оба параметра могут отсутствовать, в этом случае используются их значения по умолчанию.

Если применяется конструктор без параметров (оператор 1), создается пустая строка размера, заданного по умолчанию (16 байт). Другие виды конструкторов задают объем памяти, выделяемой строке, и/или ее начальное значение. Например, в операторе 5 объект инициализируется подстрокой длиной 3 символа, начиная с первого (подстрока "wer"). Основные элементы класса StringBuilder приведены в табл. 4.5.

Таблица 4.5 – Основные элементы класса System.Text.StringBuilder

Название

Вид

Описание

Capacity

Свойство

Получение или установка емкости буфера. Если устанавливаемое значение меньше текущей длины строки или больше максимального, генерируется исключение ArgumentOutOfRangeExcepti on

MaxCapacity

Свойство

Максимальный размер буфера

Replace

Метод

Замена всех вхождений заданной подстроки или символа новой подстрокой или символом

ToString

Метод

Преобразование в строку типа string

Replace

Метод

Замена всех вхождений заданной подстроки или символа новой подстрокой или символом

ToString

Метод

Преобразование в строку типа string

Пример применения методов приведен в листинге 4.9.

Листинг 4.9 – Работа со строками типа StringBuilder

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

namespace lab4

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Работа со строками типа StringBuilder\n");

Console.WriteLine("Введите зарплату: ");

double salary = double.Parse(Console.ReadLine());

StringBuilder a = new StringBuilder();

a.Append("зарплата ");

a.AppendFormat("{0,6:C} - в год {1, 6:C}", salary, salary * 12);

Console.WriteLine(a);

a.Replace("р.", "$");

Console.WriteLine("А лучше было бы: " + a);

}

}

}

Результат работы программы:

Рисунок 4.11 – Работа со строками типа StringBuilder

А лучше было бы: зарплата 3 500,00 тыс.$ - в год 42 000.00 тыс.$ Емкость буфера не соответствует количеству символов в строке и может увеличиваться в процессе работы программы как в результате прямых указаний программиста, так и вследствие выполнения методов изменения строки, если строка в результате превышает текущий размер буфера. Программист может уменьшить размер буфера с помощью свойства Capacity, чтобы не занимать лишнюю память.

Индивидуальные задания.

Индивидуальное задание №1

Вариант 0

В одномерном массиве, состоящем из n вещественных элементов, вычислить:

1) сумму отрицательных элементов массива;

2)произведение элементов массива, расположенных между максимальным и минимальным элементами.

3)Упорядочить элементы массива по возрастанию.

Вариант 1

В одномерном массиве, состоящем из n вещественных элементов, вычислить:

1)сумму положительных элементов массива;

2) произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.

3)Упорядочить элементы массива по убыванию.

Вариант 2

В одномерном массиве, состоящем из n целочисленных элементов, вычислить:

1)произведение элементов массива с четными номерами;

2)сумму элементов массива, расположенных между первым и последним нулевыми элементами.

3)преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом — все отрицательные (элементы, равные нулю, считать положительными).

Вариант 3

В одномерном массиве, состоящем из я вещественных элементов, вычислить:

1)сумму элементов массива с нечетными номерами;

2)сумму элементов массива, расположенных между первым и последним отрицательными элементами.

3)Сжать массив, удалив из него все элементы, модуль которых не превышает единицу. Освободившиеся в конце массива элементы заполнить нулями.

Вариант 4

В одномерном массиве, состоящем из п вещественных элементов, вычислить:

1)максимальный элемент массива;

2)сумму элементов массива, расположенных до последнего положительного элемента.

3)Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, Ь]. Освободившиеся в конце массива элементы заполнить нулями.

Вариант 5

В одномерном массиве, состоящем из и вещественных элементов, вычислить:

1)минимальный элемент массива;

2)сумму элементов массива, расположенных между первым и последним положительными элементами.

3)Преобразовать массив таким образом, чтобы сначала располагались все элементы, равные нулю, а потом — все остальные.

Вариант 6

В одномерном массиве, состоящем из п целочисленных элементов, вычислить:

1)номер максимального элемента массива;

2)произведение элементов массива, расположенных между первым и вторым нулевыми элементами.

3)Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечетных позициях, а во второй половине — элементы, стоявшие в четных позициях.

Вариант 7

В одномерном массиве, состоящем из я вещественных элементов, вычислить:

1)номер минимального элемента массива;

2)сумму элементов массива, расположенных между первым и вторым отрицательными элементами.

3)Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает единицу, а потом — все остальные.

Вариант 8

В одномерном массиве, состоящем из п вещественных элементов, вычислить:

1)максимальный по модулю элемент массива;

2)сумму элементов массива, расположенных между первым и вторым положительными элементами.

3)Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных.

Вариант 9

В одномерном массиве, состоящем из п целочисленных элементов, вычислить:

1)минимальный по модулю элемент массива;

2)сумму модулей элементов массива, расположенных после первого элемента, равного нулю.

3)Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине — элементы, стоявшие в нечетных позициях.

Вариант 10

В одномерном массиве, состоящем из п вещественных элементов, вычислить:

1)номер минимального по модулю элемента массива;

2)сумму модулей элементов массива, расположенных после первого отрицательного элемента.

3)Сжать массив, удалив из него все элементы, величина которых находится в интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями.

Вариант 11

В одномерном массиве, состоящем из п вещественных элементов, вычислить:

1)номер максимального по модулю элемента массива;

2)сумму элементов массива, расположенных после первого положительного элемента.

3)Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [а, Ь], а потом — все остальные.

Вариант 12

В одномерном массиве, состоящем из п вещественных элементов, вычислить:

1)количество элементов массива, лежащих в диапазоне от А до В;

2)сумму элементов массива, расположенных после максимального элемента.

3)Упорядочить элементы массива по убыванию модулей.

Вариант 13

В одномерном массиве, состоящем из п вещественных элементов, вычислить:

1)количество элементов массива, равных нулю;

2)сумму элементов массива, расположенных после минимального элемента.

3)Упорядочить элементы массива по возрастанию модулей.

Вариант 14

В одномерном массиве, состоящем из п вещественных элементов, вычислить:

1)количество элементов массива, больших С;

2)произведение элементов массива, расположенных после максимального по модулю элемента.

3)Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные нулю, считать положительными).

Вариант 15

В одномерном массиве, состоящем из п вещественных элементов, вычислить:

1)количество отрицательных элементов массива;

2)сумму модулей элементов массива, расположенных после минимального по модулю элемента.

3)Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию.

Вариант 16

В одномерном массиве, состоящем из п целочисленных элементов, вычислить:

1)количество положительных элементов массива;

2)сумму элементов массива, расположенных после последнего элемента, равного нулю.

3)Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает единицу, а потом — все остальные.

Вариант 17

В одномерном массиве, состоящем из и вещественных элементов, вычислить:

1)количество элементов массива, меньших С;

2)сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.

3)Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом — все остальные.

Вариант 18

В одномерном массиве, состоящем из п вещественных элементов, вычислить:

1)произведение отрицательных элементов массива;

2)сумму положительных элементов массива, расположенных до максимального элемента.

3)Изменить порядок следования элементов в массиве на обратный.

Вариант 19

В одномерном массиве, состоящем из п вещественных элементов, вычислить:

1)произведение положительных элементов массива;

2)сумму элементов массива, расположенных до минимального элемента.

3)Упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах.

Индивидуальное задание №2

Вариант 0

Дана целочисленная прямоугольная матрица. Определить:

1)количество строк, не содержащих ни одного нулевого элемента;

2)максимальное из чисел, встречающихся в заданной матрице более одного раза.

Вариант 1

Дана целочисленная прямоугольная матрица. Определить:

1)количество отрицательных элементов в тех строках, которые содержат хотя-бы один нулевой элемент;

2)номера строк и столбцов всех седловых точек матрицы.

Вариант 2

Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента.

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

Вариант 3

Дана целочисленная прямоугольная матрица. Определить:

1)количество столбцов, содержащих хотя бы один нулевой элемент;

2)номер строки, в которой находится самая длинная серия одинаковых элементов.

Вариант 4

Дана целочисленная квадратная матрица. Определить:

1)произведение элементов в тех строках, которые не содержат отрицательных элементов;

2)максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.

Вариант 5

Дана целочисленная квадратная матрица. Определить:

1)сумму элементов в тех столбцах, которые не содержат отрицательных элементов;

2)минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.

Вариант 6

Дана целочисленная прямоугольная матрица. Определить:

1)сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент;

2)номера строк и столбцов всех cедловых точек матрицы.

Вариант 7

Для заданной матрицы размером 8x 8 найти такие к, при которых k-я строка матрицы совпадает с k-м столбцом.

Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.

Вариант 8

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

Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент.

Вариант 9

Соседями элемента A{j в матрице назовем элементы Аы, где i-l<k<i+l ,

j - 1 < l<j + 1, (k, I) Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы. Построить результат сглаживания заданной вещественной матрицы размером 10 х 10.

В сглаженной матрице найти сумму модулей элементов, расположенных ниже главной диагонали.

Вариант 10

Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10 х 10.

Найти сумму модулей элементов, расположенных выше главной диагонали.

Вариант 11

Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. С помощью допустимых преобразований привести систему к треугольному виду.

Найти количество строк, среднее арифметическое элементов которых меньше заданной величины.

Вариант 12

Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями.

Найти номер первой из строк, содержащих хотя бы один положительный элемент.

Вариант 13

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

Вариант 14

Осуществить циклический сдвиг элементов квадратной матрицы размером М х N вправо на k элементов таким образом: элементы первой строки сдвигаются в последний столбец сверху вниз, из него — в последнюю строку справа налево, из нее — в первый столбец снизу вверх, из него — в первую строку; для остальных элементов — аналогично.

Вариант 15

Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент.

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

Вариант 16

Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке.

Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента.

Вариант 17

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

Найти номер первой из строк, не содержащих ни одного положительного элемента.

Вариант 18

Дана целочисленная прямоугольная матрица. Определить:

1)количество строк, содержащих хотя бы один нулевой элемент;

2)номер столбца, в котором находится самая длинная серия одинаковых элементов.

Вариант 19

Дана целочисленная квадратная матрица. Определить:

1)сумму элементов в тех строках, которые не содержат отрицательных элементов;

2)минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.

Примечание: Матрица А имеет седловую точку у, если y является минимальным элементом в i-й строке и максимальным — в j-м столбце.

Индивидуальное задание №3

Вариант 0

Написать программу, которая считывает из консоли три предложения и выводит их в обратном порядке.

Вариант 1

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

Вариант 2

Написать программу, которая считывает текст из консоли и выводит на экран только предложения, содержащие введенное с клавиатуры слово.

Вариант 3

Написать программу, которая считывает текст из консоли и выводит на экран только строки, содержащие двузначные числа.

Вариант 4

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

Вариант 5

Написать программу, которая считывает текст из консоли и выводит его на экран, меняя местами каждые два соседних слова.

Вариант 6

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

Вариант 7

Написать программу, которая считывает текст из консоли и определяет, сколько в нем слов, состоящих не более чем из четырех букв.

Вариант 8

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

Вариант 9

Написать программу, которая считывает текст из консоли и выводит на экран только предложения, состоящие из заданного количества слов.

Вариант 10

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

Вариант 11

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

Вариант 12

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

Вариант 13

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

Вариант 14

Написать программу, которая считывает текст из консоли и выводит его на экран, заменив цифры от 0 до 9 словами «ноль», «один», «девять», начиная каждое предложение с новой строки.

Вариант 15

Написать программу, которая считывает текст из консоли, находит самое длинное слово и определяет, сколько раз оно встретилось в тексте.

Вариант 16

Написать программу, которая считывает текст из консоли и выводит на экран сначала вопросительные, а затем восклицательные предложения.

Вариант 17

Написать программу, которая считывает текст из консоли и выводит его на экран, после каждого предложения добавляя, сколько раз встретилось в нем введенное с клавиатуры слово.

Вариант 18

Написать программу, которая считывает текст из консоли и выводит на экран все его предложения в обратном порядке.

Вариант 19

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

Пример выполнения варианта №0

Задание 1.

1.Условие

В одномерном массиве, состоящем из n вещественных элементов, вычислить:

1) сумму отрицательных элементов массива;

2)произведение элементов массива, расположенных между максимальным и минимальным элементами.

3)Упорядочить элементы массива по возрастанию.

2.Листинг программы

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace lab4

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Лабораторная работа №4. Выполнил студент XXXXX группы XXXXX");

Console.WriteLine("Вариант №0\n Задание1:\n В одномерном массиве из n вещественных элементов вычислить:\n1) сумму отрицательных элементов массива\n2) произведение элементов массива, расположенных между максимальным\n и минимальным элементами\n3) упорядочить элементы массива по возрастанию");

Console.Write("Введите количество элементов: ");

int n = int.Parse(Console.ReadLine());

double[] arr = new double[n];

for (int i = 0; i < n; i++)

{

Console.Write("Введите " + i.ToString() + " элемент: ");

arr[i] = double.Parse(Console.ReadLine());

}

double sum = 0;

foreach (double i in arr)

if (i < 0.0)

sum += i;

double minval = arr[0], maxval = arr[0];

int minpos = 0, maxpos = 0;

for (int i = 0; i < n; i++)

{

if (arr[i] < minval)

{

minval = arr[i];

minpos = i;

}

if (arr[i] > maxval)

{

maxval = arr[i];

maxpos = i;

}

}

double mul = 1;

for (int i = Math.Min(maxpos, minpos); i <= Math.Max(minpos, maxpos); i++)

mul *= arr[i];

Array.Sort(arr);

Console.WriteLine("Сумма отрицательных элементов равна : " + sum.ToString());

Console.WriteLine("Произведение элементов между минимальным и максимальным элементами равно : " + mul.ToString());

Console.WriteLine("Массив после сортировки:");

for (int i = 0; i < n; i++)

Console.Write(arr[i].ToString() + " ");

Console.WriteLine("");

}

}

}

3.Результат выполнения

Рисунок 4.12 – Результат выполнения задания 1

4.Анализ

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

Задание 2.

1.Задание

Дана целочисленная прямоугольная матрица. Определить:

1)количество строк, не содержащих ни одного нулевого элемента;

2)максимальное из чисел, встречающихся в заданной матрице более одного раза.

2.Листинг программы

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace lab4

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Лабораторная работа №4");

Console.WriteLine("Выполнил студент XXX группы XXX");

Console.WriteLine("Задание №2");

Console.WriteLine("Дана прямоугольная матрица. Определить:");

Console.WriteLine("1) Количество строк, не содержащих ни одного нулевого элемента");

Console.WriteLine("2) Максимальное из чисел, встречающихся более одного паза\n");

const int inf = 1 << 30;

int n, m;

Console.Write("Введите кол-во строк: ");

string buf;

buf = Console.ReadLine();

n = Convert.ToInt32(buf);

Console.Write("Введите кол-во столбцов: ");

buf = Console.ReadLine();

m = Convert.ToInt32(buf);

Random rnd = new Random();

int [,] arr = new int [n, m];

int[] tmp = new int[n * m]; //вспомогательный массив для 2го подзадания

Console.WriteLine("Изначальный массив:");

int num = 0; // кол-во строк, не содержащих нулевого элемента

for (int i = 0; i < n; i++)

{

bool was = false;

for (int j = 0; j < m; j++)

{

arr[i, j] = rnd.Next(-100, 100);

tmp[i * m + j] = arr[i, j];

was |= (arr[i, j] == 0); //встречался ли нулевой элемент

Console.Write("\t" + arr[i, j]);

}

Console.WriteLine();

if (!was)

num++;

}

Array.Sort(tmp);

int max = -inf;

for (int i = 1; i < tmp.Length; i++)

if (tmp[i] == tmp[i - 1] && tmp[i] > max)

max = tmp[i];

Console.WriteLine("Кол-во строк без нулевых элементов: " + num);

if (max == -inf)

Console.WriteLine("Нет элементов, встречающихся хотя бы 2 раза");

else Console.WriteLine("Максимальный элемент, встречающийся хотя бы 2 раза = " + max);

}

}

}

3.Результат выполнения

Рисунок 4.13 – Результат выполнения задания 2

4. Анализ программы

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

Задание 3

1.Условие

Написать программу, которая считывает из консоли три предложения и выводит их в обратном порядке

2.Листинг программы

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace lab4

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Лабораторная работа №4");

Console.WriteLine("Выполнил студент XXX группы XXX");

Console.WriteLine("Задание №3");

Console.WriteLine("Написать программу, которая считывает 3 предложения и выводит их в обратном порядке.");

string s = Console.ReadLine();

string[] str = new string[3];

int last = -1;

int k = 0;

for (int i = 0; i < s.Length; i++)

{

if (char.IsPunctuation(s[i]))

{

str[k ++] = s.Substring(last + 1, i - last);

last = i;

}

}

for (int i = k - 1; i >= 0; i--)

Console.Write(str[i]);

Console.WriteLine();

}

}

}

3.Результат выполнения

Рисунок 4.13 – Результат выполнения задания 3

4. Анализ программы

Используя проверку IsPunctuation, последовательно разбили текст на 3 предложения. После чего вывели их в обратном порядке.