program Number_2;
{Дана строка, в которой слова
Разделены произвольным количеством пробелов.
Удалить все лишние пробелы, кроме одного.
Вывести исходную строку и результат обработки.}
var s:string[80];
i,k:integer;
ch:char;
b:boolean;
Begin
writeln('Работает программа- пример на использование строк');
Repeat
writeln('Введите исходную строку');
readln(s);
writeln('Исходная строка = ',s);
k:=length(s);{Определяем длину введенной строки}
i:=1;
while (i<=k-1) do
Begin
if s[i]=' ' then
Begin
Repeat
if s[i+1]=' ' then
Begin
delete(s,i,1);
k:=k-1;
b:=false;
End
else b:=true;
until b;
end;
i:=i+1;
end;
writeln('Результат преобразования = ',s);
writeln('Будете еще преобразовывать строки? ');
readln(ch);
until ch='n';
End.
Разработка структурированных программ с использованием процедур и функций.
В этом разделе приведены задачи для освоения правил работы с массивами данных типа последовательностей, матриц, таблиц. Работа с подобными типами данных зачастую требует выполнения одинаковых или подобных операций, для описания которых целесообразно использовать процедуры и функции.
|
|
1.3.1. Дана последовательность из букв латинского алфавита размерности N. Упорядочить последовательность по алфавиту с помощью процедуры. Вывести исходную и упорядоченную последовательности букв.
1.3.2. Ввести произвольную последовательность чисел. Упорядочить с помощью процедуры последовательность в порядке возрастания. Вывести результат упорядочивания и номера чисел в исходной последовательности.
1.3.3. Ввести последовательность слов, в каждом из которых от 2 до 6 латинских букв. Слова разделены запятыми. Последнее слово заканчивается точкой. Написать процедуру, определяющую одинаковых “соседей” (слова справа и слева — совпадают). Напечатать всех “соседей” и исходную последовательность слов.
1.3.4. Ввести последовательность из N элементов. Подсчитать количество элементов, равных 0. С помощью процедуры обеспечить удаление всех нулевых элементов последовательности и сжатие последовательности. Вывести исходную последовательность, количество нулей, результат сжатия последовательности и количество элементов в преобразованной последовательности.
1.3.5. Ввести неупорядоченную последовательность из 20 элементов. Написать процедуры упорядочивания последовательности и вставки К новых элементов на правильное место в упорядоченную последовательность. Вывести результаты всех обработок последовательности.
1.3.6. Ввести последовательность из N целых чисел. Упорядочить по возрастанию четные (по значению, а не по номеру) элементы последовательности. Нечетные элементы должны остаться на своих местах. Упорядочивание описывается процедурой.
|
|
1.3.7. Ввести последовательность из N целых чисел. Выбрать из последовательности нулевые значения и составить последовательность из их номеров. Выбор элементов последовательности описывается процедурой. Вывести исходную последовательность и результат обработки последовательности.
1.3.8. Вводится последовательность из чисел, определяющих координаты вершин треугольников. Выбрать из этих значений тот треугольник, который будет иметь наибольшую площадь. Вычисление площади выполнить функцией. Вывести исходную последовательность и результат поиска.
1.3.9. Вводится произвольный текст, содержащий не более 50 слов. С помощью функции выбрать из текста те слова, в которых первая буква слова встречается еще хотя бы один раз. Вывести исходный текст и результат его обработки.
1.3.10. Вводится последовательность из N элементов. С помощью функции подсчитать количества положительных, отрицательных и нулевых элементов последовательности. Вывести исходную последовательность и результаты ее обработки.
1.3.11. Дана матрица действительных чисел размерности M*N. С помощью процедуры обеспечить получение сумм элементов матрицы по столбцам, строкам и диагоналям, параллельным главной диагонали. Вывести исходную матрицу и результаты вычислений в соответствующих строках и столбцах.
1.3.12. Задана последовательность из слов, в каждом из которых не более 7 букв. С помощью процедуры обеспечить перестановку слов в обратном порядке. Вывести исходную последовательность и результат преобразования.
1.3.13. Задана последовательность из N слов. С помощью функции обеспечить выбор из последовательности всех одинаковых слов. Оставить в исходной последовательности одинаковые слова по одному разу. Вывести исходную последовательность, последовательность одинаковых слов и результат преобразования последовательности.
1.3.14. Задана двухмерная таблица. Процедура вычисляет количество нулей в каждой строке таблицы. Вывести результат вычислений вместе с номером той строки, для которой выводится найденное количество нулей.
1.3.15. Определить с помощью функции симметричность матрицы размерности M*M относительно главной диагонали. Вывести исходную матрицу и сообщение о проверке.
1.3.16. Задана таблица из нулей и единиц размерности N*N. С помощью функции определить количество единиц в каждой строке и в каждом столбце матрицы. Результаты обработки вывести вместе с номерами соответствующих строк и столбцов таблицы.
1.3.17. Задана таблица размерности N*N. С помощью процедуры выполнить перестановку K-ого столбца таблицы на место L-ого столбца, а также перестановку K -ой и L-ой строк в соответствии с запросом на обработку таблицы. Вывести исходную таблицу и результат ее преобразования.
1.3.18. В заданной таблице размерности N*N с помощью функции обеспечить поиск строки или столбца с минимальным числом нулевых элементов. Вывести исходную таблицу и результат ее обработки с указанием номеров искомых столбца или строки.
1.3.19. Дана матрица действительных чисел размерности M*N. С помощью процедуры перестановки строк матрицы обеспечить преобразование матрицы: