Составные типы данных в процедурах и функциях: группа Param

Одномерные и двумерные массивы

При вводе исходного массива вначале следует ввести его размер (одно число для одномерных массивов, два числа — количество строк и столбцов — для двумерных массивов-матриц), а затем — все его элементы.
Если в задании явно не указывается размер одномерного массива, являющегося параметром процедуры или функции, то предполагается, что этот размер может меняться в пределах от $$1$$ до $$10$$. Для двумерных массивов-матриц также предполагается, что число их строк и столбцов может меняться от $$1$$ до $$10$$. Порядковые номера начальных элементов как одномерных, так и двумерных массивов всегда считаются равными 1. При описании процедур, выполняющих преобразование массива, не следует использовать вспомогательный массив того же размера.

Param1. Описать функцию MinInt($$A$$, $$N$$) целого типа, находящую минимальный элемент целочисленного массива $$A$$ размера $$N$$. С помощью этой функции найти минимальные элементы массивов $$A$$, $$B$$, $$C$$ размера $$N_A$$, $$N_B$$, $$N_C$$ соответственно.

Решение задачи, на языке: Паскаль

Param2. Описать функцию NMax($$A$$, $$N$$) целого типа, находящую номер максимального элемента вещественного массива $$A$$ размера $$N$$. С помощью этой функции найти номера максимальных элементов массивов $$A$$, $$B$$, $$C$$ размера $$N_A$$, $$N_B$$, $$N_C$$ соответственно.

Решение задачи, на языке: Паскаль

Param3. Описать процедуру NMiNMax($$A$$, $$N$$, $$NMin$$, $$NMax$$), находящую номера минимального и максимального элемента вещественного массива $$A$$ размера $$N$$. Выходные параметры целого типа: NMin (номер минимального элемента) и NMax (номер максимального элемента). С помощью этой процедуры найти номера минимальных и максимальных элементов массивов $$A$$, $$B$$, $$C$$ размера $$N_A$$, $$N_B$$, $$N_C$$ соответственно.

Решение задачи, на языке: Паскаль

Param4. Описать процедуру Invert($$A$$, $$N$$), меняющую порядок следования элементов вещественного массива $$A$$ размера $$N$$ на противоположный (инвертирование массива). Массив $$A$$ является входным и выходным параметром. С помощью этой процедуры инвертировать массивы $$A$$, $$B$$, $$C$$ размера $$N_A$$, $$N_B$$, $$N_C$$ соответственно.

Решение задачи, на языке: Паскаль

Param5. Описать процедуру Smooth_1($$A$$, $$N$$), выполняющую сглаживание вещественного массива $$A$$ размера $$N$$ следующим образом: элемент $$A_K$$ заменяется на среднее арифметическое первых $$K$$ исходных элементов массива $$A$$. Массив $$A$$ является входным и выходным параметром. С помощью этой процедуры выполнить пятикратное сглаживание данного массива $$A$$ размера $$N$$, выводя результаты каждого сглаживания.

Решение задачи, на языке: Паскаль

Param6. Описать процедуру Smooth_2($$A$$, $$N$$), выполняющую сглаживание вещественного массива $$A$$ размера $$N$$ следующим образом: элемент $$A_1$$ не изменяется, элемент $$A_K$$ $$(K=2,…, $$N$$)$$ заменяется на полусумму исходных элементов $$A_{K-1}$$ и $$A_K$$. Массив $$A$$ является входным и выходным параметром. С помощью этой процедуры выполнить пятикратное сглаживание данного массива $$A$$ размера $$N$$, выводя результаты каждого сглаживания.

Решение задачи, на языке: Паскаль

Param7. Описать процедуру Smooth_3($$A$$, $$N$$), выполняющую сглаживание вещественного массива $$A$$ размера $$N$$ следующим образом: каждый элемент массива заменяется на его среднее арифметическое с соседними элементами (при вычислении среднего арифметического используются исходные значения соседних элементов). Массив $$A$$ является входным и выходным параметром. С помощью этой процедуры выполнить пятикратное сглаживание данного массива $$A$$ размера $$N$$, выводя результаты каждого сглаживания.

Решение задачи, на языке: Паскаль

Param8. Описать процедуру RemoveX($$A$$, $$N$$, $$X$$), удаляющую из целочисленного массива $$A$$ размера $$N$$ элементы, равные целому числу $$X$$. Массив $$A$$ и число $$N$$ являются входными и выходными параметрами. С помощью этой процедуры удалить числа $$X_A$$, $$X_B$$, $$X_C$$ из массивов $$A$$, $$B$$, $$C$$ размера $$N_A$$, $$N_B$$, $$N_C$$ соответственно и вывести размер и содержимое полученных массивов.

Решение задачи, на языке: Паскаль

Param9. Описать процедуру RemoveForIN_C($$A$$, $$N$$), удаляющую из вещественного массива $$A$$ размера $$N$$ «лишние» элементы так, чтобы оставшиеся элементы оказались упорядоченными по возрастанию: первый элемент не удаляется, второй элемент удаляется, если он меньше первого, третий — если он меньше предыдущего элемента, оставленного в массиве, и т. д. Например, массив $$5.5, 2.5, 4.6, 7.2, 5.8, 9.4$$ должен быть преобразован к виду $$5.5, 7.2, 9.4$$. Массив $$A$$ и число $$N$$ являются входными и выходными параметрами. С помощью этой процедуры преобразовать массивы $$A$$, $$B$$, $$C$$ размера $$N_A$$, $$N_B$$, $$N_C$$ соответственно и вывести размер и содержимое полученных массивов.

Решение задачи, на языке: Паскаль

Param10. Описать процедуру DoubleX($$A$$, $$N$$, $$X$$), дублирующую в целочисленном массиве $$A$$ размера $$N$$ элементы, равные целому числу $$X$$. Массив $$A$$ и число $$N$$ являются входными и выходными параметрами. С помощью этой процедуры продублировать числа $$X_A$$, $$X_B$$, $$X_C$$ в массивах $$A$$, $$B$$, $$C$$ размера $$N_A$$, $$N_B$$, $$N_C$$ соответственно и вывести размер и содержимое полученных массивов.

Решение задачи, на языке: Паскаль

Param11. Описать процедуру Sort($$A$$, $$N$$), выполняющую сортировку по возрастанию вещественного массива $$A$$ размера $$N$$. Массив $$A$$ является входным и выходным параметром. С помощью этой процедуры отсортировать массивы $$A$$, $$B$$, $$C$$ размера $$N_A$$, $$N_B$$, $$N_C$$ соответственно.

Решение задачи, на языке: Паскаль

Param12. Описать процедуру SortIndex($$A$$, $$N$$, $$I$$), формирующую для вещественного массива $$A$$ размера $$N$$ индексный массив $$I$$. — массив целых чисел того же размера, содержащий номера элементов массива $$A$$ в том порядке, который соответствует возрастанию элементов массива $$A$$ (сам массив $$A$$ при этом не изменяется). Индексный массив $$I$$. является выходным параметром. С помощью этой процедуры создать индексные массивы для массивов $$A$$, $$B$$, $$C$$ размера $$N_A$$, $$N_B$$, $$N_C$$ соответственно.

Решение задачи, на языке: Паскаль

Param13. Описать процедуру Bell($$A$$, $$N$$), меняющую порядок элементов вещественного массива $$A$$ размера $$N$$ на следующий: наименьший элемент массива располагается на первом месте, наименьший из оставшихся элементов — на последнем, следующий по величине располагается на втором месте, следующий — на предпоследнем и т. д. (в результате график значений элементов будет напоминать колокол). Массив $$A$$ является входным и выходным параметром. С помощью этой процедуры преобразовать массивы $$A$$, $$B$$, $$C$$ размера $$N_A$$, $$N_B$$, $$N_C$$ соответственно.

Решение задачи, на языке: Паскаль

Param14. Описать процедуру Split1($$A$$, $$N_A$$, $$B$$, $$N_B$$, $$C$$, $$N_C$$), формирующую по вещественному массиву $$A$$ размера $$N_A$$ два вещественных массива $$B$$ и $$C$$ размера $$N_B$$ и $$N_C$$ соответственно; при этом массив $$B$$ содержит все элементы массива $$A$$ с нечетными порядковыми номерами $$(1, 3,…)$$, а массив $$C$$ — все элементы массива $$A$$ с четными номерами $$(2, 4,…)$$. Массивы $$B$$ и $$C$$ и числа $$N_B$$ и $$N_C$$ являются выходными параметрами. Применить эту процедуру к данному массиву $$A$$ размера $$N_A$$ и вывести размер и содержимое полученных массивов $$B$$ и $$C$$.

Решение задачи, на языке: Паскаль

Param15. Описать процедуру Split2($$A$$, $$N_A$$, $$B$$, $$N_B$$, $$C$$, $$N_C$$), формирующую по целочисленному массиву $$A$$ размера $$N_A$$ два целочисленных массива $$B$$ и $$C$$ размера $$N_B$$ и $$N_C$$ соответственно; при этом массив $$B$$ содержит все четные числа из массива $$A$$, а массив $$C$$ — все нечетные числа (в том же порядке). Массивы $$B$$ и $$C$$ и числа $$N_B$$ и $$N_C$$ являются выходными параметрами. Применить эту процедуру к данному массиву $$A$$ размера $$N_A$$ и вывести размер и содержимое полученных массивов $$B$$ и $$C$$.

Решение задачи, на языке: Паскаль

Param16. Описать процедуру ArrayToMatrix1($$A$$, $$K$$, $$M$$, $$N$$, $$B$$), формирующую по вещественному массиву $$A$$ размера $$K$$ матрицу $$B$$ размера $$M \times N$$ (матрица заполняется элементами массива $$A$$ по строкам). «Лишние» элементы массива игнорируются; если элементов массива недостаточно, то оставшиеся элементы матрицы полагаются равными $$0$$. Двумерный массив $$B$$ является выходным параметром. С помощью этой процедуры на основе данного массива $$A$$ размера $$K$$ и целых чисел $$M$$ и $$N$$ сформировать матрицу $$B$$ размера $$M \times N$$.

Решение задачи, на языке: Паскаль

Param17. Описать процедуру ArrayToMatrix2($$A$$, $$K$$, $$M$$, $$N$$, $$B$$), формирующую по вещественному массиву $$A$$ размера $$K$$ матрицу $$B$$ размера $$M \times N$$ (матрица заполняется элементами массива $$A$$ по столбцам). «Лишние» элементы массива игнорируются; если элементов массива недостаточно, то оставшиеся элементы матрицы полагаются равными $$0$$. Двумерный массив $$B$$ является выходным параметром. С помощью этой процедуры на основе данного массива $$A$$ размера $$K$$ и целых чисел $$M$$ и $$N$$ сформировать матрицу $$B$$ размера $$M \times N$$.

Решение задачи, на языке: Паскаль

Param18. Описать процедуру Chessboard($$M$$, $$N$$, $$A$$), формирующую по целым положительным числам $$M$$ и $$N$$ матрицу $$A$$ размера $$M \times N$$, которая содержит числа $$0$$ и $$1$$, расположенные в «шахматном» порядке, причем $$A_{1,1}=0$$. Двумерный целочисленный массив $$A$$ является выходным параметром. С помощью этой процедуры по данным целым числам $$M$$ и $$N$$ сформировать матрицу $$A$$ размера $$M \times N$$.

Решение задачи, на языке: Паскаль

Param19. Описать функцию Norm1($$A$$, $$M$$, $$N$$) вещественного типа, вычисляющую норму вещественной матрицы $$A$$ размера $$M \times N$$: Norm1($$A$$, $$M$$, $$N$$)=$$max {|A_{1,J}|+|A_{2,J}| +…+ |A_{M,J}|}$$, где максимум берется по всем $$J$$ от $$1$$ до $$N$$. Для данной матрицы $$A$$ размера $$M \times N$$ найти Norm1($$A$$, $$K$$, $$N$$), $$K=1,…, M$$.

Решение задачи, на языке: Паскаль

Param20. Описать функцию Norm2($$A$$, $$M$$, $$N$$) вещественного типа, вычисляющую норму вещественной матрицы $$A$$ размера $$M \times N$$: Norm2($$A$$, $$M$$, $$N$$)=$$max {|A_{I,1}|+|A_{I,2}| +…+ |A_{I,N}|}$$, где максимум берется по всем $$I$$. от $$1$$ до $$M$$. Для данной матрицы $$A$$ размера $$M \times N$$ найти Norm2($$A$$, $$K$$, $$N$$), $$K=1,…, M$$.

Решение задачи, на языке: Паскаль

Param21. Описать функцию SumRow($$A$$, $$M$$, $$N$$, $$K$$) вещественного типа, вычисляющую сумму элементов вещественной матрицы $$A$$ размера $$M \times N$$, расположенных в $$K$$-й строке (если $$K>M$$, то функция возвращает $$0$$). Для данной матрицы $$A$$ размера $$M \times N$$ и трех данных $$K$$ найти SumRow($$A$$, $$M$$, $$N$$, $$K$$).

Решение задачи, на языке: Паскаль

Param22. Описать функцию SumCol($$A$$, $$M$$, $$N$$, $$K$$) вещественного типа, вычисляющую сумму элементов вещественной матрицы $$A$$ размера $$M \times N$$, расположенных в $$K$$-м столбце (если $$K>N$$, то функция возвращает $$0$$). Для данной матрицы $$A$$ размера $$M \times N$$ и трех данных $$K$$ найти SumCol($$A$$, $$M$$, $$N$$, $$K$$).

Решение задачи, на языке: Паскаль

Param23. Описать процедуру SwapRow($$A$$, $$M$$, $$N$$, $$K_1$$, $$K_2$$), осуществляющую перемену местами строк вещественной матрицы $$A$$ размера $$M \times N$$ с номерами $$K_1$$ и $$K_2$$. Матрица $$A$$ является входным и выходным параметром; если $$K_1$$ или $$K_2$$ больше $$M$$, то матрица не изменяется. Используя эту процедуру, поменять для данной матрицы $$A$$ размера $$M \times N$$ строки с данными номерами $$K_1$$ и $$K_2$$.

Решение задачи, на языке: Паскаль

Param24. Описать процедуру SwaP_Col($$A$$, $$M$$, $$N$$, $$K_1$$, $$K_2$$), осуществляющую перемену местами столбцов вещественной матрицы $$A$$ размера $$M \times N$$ с номерами $$K_1$$ и $$K_2$$. Матрица $$A$$ является входным и выходным параметром; если $$K_1$$ или $$K_2$$ больше $$N$$, то матрица не изменяется. Используя эту процедуру, поменять для данной матрицы $$A$$ размера $$M \times N$$ столбцы с данными номерами $$K_1$$ и $$K_2$$.

Решение задачи, на языке: Паскаль

Param25. Описать процедуру Transp($$A$$, $$M$$), выполняющую транспонирование (то есть зеркальное отражение относительно главной диагонали) квадратной вещественной матрицы $$A$$ порядка $$M$$. Матрица $$A$$ является входным и выходным параметром. Используя эту процедуру, транспонировать данную матрицу $$A$$ порядка $$M$$.

Решение задачи, на языке: Паскаль

Param26. Описать процедуру RemoveRows($$A$$, $$M$$, $$N$$, $$K_1$$, $$K_2$$), удаляющую из вещественной матрицы $$A$$ размера $$M \times N$$ строки с номерами от $$K_1$$ до $$K_2$$ включительно (предполагается, что $$1 < K_1 \le K_2$$). Если $$K_1>M$$, то матрица не изменяется; если $$K_2>M$$, то удаляются строки матрицы с номерами от $$K_1$$ до $$M$$. Двумерный массив $$A$$ и числа $$M$$, $$N$$ являются входными и выходными параметрами. Используя процедуру RemoveRows, удалить из данной матрицы $$A$$ размера $$M \times N$$ строки с номерами от $$K_1$$ до $$K_2$$ и вывести размер полученной матрицы и ее элементы.

Решение задачи, на языке: Паскаль

Param27. Описать процедуру RemoveCols($$A$$, $$M$$, $$N$$, $$K_1$$, $$K_2$$), удаляющую из вещественной матрицы $$A$$ размера $$M \times N$$ столбцы с номерами от $$K_1$$ до $$K_2$$ включительно (предполагается, что $$1 < K_1 \le K_2$$). Если $$K_1>N$$, то матрица не изменяется; если $$K_2>N$$, то удаляются столбцы матрицы с номерами от $$K_1$$ до $$N$$. Двумерный массив $$A$$ и числа $$M$$, $$N$$ являются входными и выходными параметрами. Используя процедуру RemoveCols, удалить из данной матрицы $$A$$ размера $$M \times N$$ столбцы с номерами от $$K_1$$ до $$K_2$$ и вывести размер полученной матрицы и ее элементы.

Решение задачи, на языке: Паскаль

Param28. Описать процедуру RemoveRowCol($$A$$, $$M$$, $$N$$, $$K$$, $$L$$), удаляющую из вещественной матрицы $$A$$ размера $$M \times N$$ строку и столбец, которые содержат элемент $$A_{K,L}$$ (предполагается, что $$M>1$$ и $$N>1$$; если $$K>M$$ или $$L>N$$, то матрица не изменяется). Двумерный массив $$A$$ и числа $$M$$, $$N$$ являются входными и выходными параметрами. Дана матрица $$A$$ размера $$M \times N$$ и числа $$K$$, $$L$$. Применить к матрице $$A$$ процедуру RemoveRowCol и вывести размер полученной матрицы и ее элементы.

Решение задачи, на языке: Паскаль

Param29. Описать процедуру SortCols($$A$$, $$M$$, $$N$$), выполняющую сортировку по возрастанию столбцов целочисленной матрицы $$A$$ размера $$M \times N$$ (столбцы сравниваются лексикографически: если первые элементы столбцов различны, то меньшим считается столбец, содержащий меньший первый элемент; если первые элементы столбцов равны, то анализируются их вторые элементы и т. д.). Двумерный массив $$A$$ является входным и выходным параметром. Используя процедуру SortCols, отсортировать столбцы данной матрицы $$A$$ размера $$M \times N$$.

Решение задачи, на языке: Паскаль

 

Строки

Param30. Описать функцию IsIdent($$S$$) целого типа, проверяющую, является ли строка $$S$$ допустимым идентификатором, то есть непустой строкой, которая содержит только латинские буквы, цифры и символ подчеркивания «_» и не начинается с цифры. Если $$S$$ является допустимым идентификатором, то функция возвращает $$0$$. Если $$S$$ является пустой строкой, то возвращается $$-1$$, если $$S$$ начинается с цифры, то возвращается $$-2$$. Если $$S$$ содержит недопустимые символы, то возвращается номер первого недопустимого символа. Проверить с помощью функции IsIdent пять данных строк.

Решение задачи, на языке: Паскаль

Param31. Описать функцию FillStr($$S$$, $$N$$) строкового типа, возвращающую строку длины $$N$$, заполненную повторяющимися копиями строки-шаблона $$S$$ (последняя копия строки-шаблона может входить в результирующую строку частично). Используя эту функцию, сформировать по данному числу $$N$$ и пяти данным строкам-шаблонам пять результирующих строк длины $$N$$.

Решение задачи, на языке: Паскаль

Param32. Описать процедуру UP_CaseRus($$S$$), преобразующую все строчные русские буквы строки $$S$$ в прописные (остальные символы строки $$S$$ не изменяются). Строка $$S$$ является входным и выходным параметром. Используя процедуру UP_CaseRus, преобразовать пять данных строк.

Решение задачи, на языке: Паскаль

Param33. Описать процедуру LowCaseRus($$S$$), преобразующую все прописные русские буквы строки $$S$$ в строчные (остальные символы строки $$S$$ не изменяются). Строка $$S$$ является входным и выходным параметром. Используя процедуру LowCaseRus, преобразовать пять данных строк.

Решение задачи, на языке: Паскаль

Param34. Описать процедуру TrimLeftC($$S$$, $$C$$), удаляющую в строке $$S$$ начальные символы, совпадающие с символом $$C$$. Строка $$S$$ является входным и выходным параметром. Дан символ $$C$$ и пять строк. Используя процедуру TrimLeftC, преобразовать данные строки.

Решение задачи, на языке: Паскаль

Param35. Описать процедуру TrimRightC($$S$$, $$C$$), удаляющую в строке $$S$$ конечные символы, совпадающие с символом $$C$$. Строка $$S$$ является входным и выходным параметром. Дан символ $$C$$ и пять строк. Используя процедуру TrimRightC, преобразовать данные строки.

Решение задачи, на языке: Паскаль

Param36. Описать функцию InvertStr($$S$$, $$K$$, $$N$$) строкового типа, возвращающую инвертированную подстроку строки $$S$$, содержащую в обратном порядке $$N$$ символов строки $$S$$, начиная с ее $$K$$-го символа. Если $$K$$ превосходит длину строки $$S$$, то возвращается пустая строка; если длина строки меньше $$K+N$$, то инвертируются все символы строки, начиная с ее $$K$$-го символа. Вывести значения функции InvertStr для данной строки $$S$$ и каждой из трех пар положительных целых чисел: ($$K_1$$, $$N_1$$), ($$K_2$$, $$N_2$$), ($$K_3$$, $$N_3$$).

Решение задачи, на языке: Паскаль

Param37. Описать функцию PosSub($$S_0$$, $$S$$, $$K$$, $$N$$) целого типа, возвращающую номер позиции, начиная с которой в строке $$S$$ содержится первое вхождение строки $$S_0$$, причем анализируются только $$N$$ символов строки $$S$$, начиная с ее $$K$$-го символа (таким образом, PosSub обеспечивает поиск в подстроке). Если $$K$$ превосходит длину строки $$S$$, то возвращается $$0$$, если длина строки меньше $$K+N$$, то анализируются все символы строки, начиная с ее $$K$$-го символа. Если в требуемой подстроке строки $$S$$ вхождения $$S_0$$ отсутствуют, то функция возвращает $$0$$. Вывести значения функции PosSub для данных строк $$S_0$$, $$S$$ и каждой из трех пар положительных целых чисел: ($$K_1$$, $$N_1$$), ($$K_2$$, $$N_2$$), ($$K_3$$, $$N_3$$).

Решение задачи, на языке: Паскаль

Param38. Описать функцию PosLast($$S_0$$, $$S$$) целого типа, возвращающую номер позиции, начиная с которой в строке $$S$$ содержится последнее вхождение подстроки $$S_0$$. Считать, что перекрывающихся вхождений подстрок $$S_0$$ строка $$S$$ не содержит. Если в строке $$S$$ отсутствуют подстроки $$S_0$$, то функция возвращает $$0$$. Вывести значения этой функции для пяти данных пар строк $$S_0$$ и S.

Решение задачи, на языке: Паскаль

Param39. Описать функцию PosK($$S_0$$, $$S$$, $$K$$) целого типа, возвращающую номер позиции, начиная с которой в строке $$S$$ содержится $$K$$-е вхождение подстроки $$S_0$$ $$(K>0)$$. Если количество вхождений $$S_0$$ в строке $$S$$ меньше $$K$$, то функция возвращает $$0$$. Считать, что перекрывающихся вхождений подстрок $$S_0$$ строка $$S$$ не содержит. Вывести значения этой функции для пяти данных троек: $$S_0$$, $$S$$ и K.

Решение задачи, на языке: Паскаль

Param40. Описать функцию WordK($$S$$, $$K$$) строкового типа, возвращающую $$K$$-е слово строки $$S$$ (словом считается набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки). Если количество слов в строке меньше $$K$$, то функция возвращает пустую строку. Используя эту функцию, выделить из данной строки $$S$$ слова с данными номерами $$K_1$$, $$K_2$$, $$K_3$$.

Решение задачи, на языке: Паскаль

Param41. Описать процедуру SplitStr($$S$$, $$W$$, $$N$$), которая формирует по данной строке $$S$$ массив $$W$$ слов, входящих в $$S$$ (массив $$W$$ и его размер $$N$$ являются выходными параметрами). Словом считается набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки; предполагается, что строка $$S$$ содержит не более $$10$$ слов. Используя функцию SplitStr, найти количество слов $$N$$, содержащихся в данной строке $$S$$, и сами эти слова.

Решение задачи, на языке: Паскаль

Param42. Описать функцию CompressStr($$S$$) строкового типа, выполняющую сжатие строки $$S$$ по следующему правилу: каждая подстрока строки $$S$$, состоящая из более чем четырех одинаковых символов $$C$$, заменяется текстом вида «С{K}», где $$K$$ — количество символов $$C$$ (предполагается, что строка $$S$$ не содержит фигурных скобок «{» и «}»). Например, для строки $$S$$=«bbbccccce» функция вернет строку «bbbc{5}e». С помощью функции CompressStr сжать пять данных строк.

Решение задачи, на языке: Паскаль

Param43. Описать функцию DeCompressStr($$S$$) строкового типа, восстанавливающую строку, сжатую процедурой CompressStr (см. задание Param42). Параметр $$S$$ содержит сжатую строку; восстановленная строка является возвращаемым значением функции. С помощью функции DeCompressStr восстановить пять данных сжатых строк.

Решение задачи, на языке: Паскаль

Param44. Описать функцию DecToBin($$N$$) строкового типа, возвращающую строковое представление целого неотрицательного числа $$N$$ в двоичной системе счисления. Результирующая строка состоит из символов «0»-«1» и не содержит ведущих нулей (за исключением представления числа $$0$$). Используя эту функцию, получить двоичные представления пяти данных чисел.

Решение задачи, на языке: Паскаль

Param45. Описать функцию DecToHex($$N$$) строкового типа, возвращающую строковое представление целого неотрицательного числа $$N$$ в 16-ричной системе счисления. Результирующая строка состоит из символов «0»-«9», «A»-«F» и не содержит ведущих нулей (за исключением представления числа $$0$$). Используя эту функцию, получить 16-ричные представления пяти данных чисел.

Решение задачи, на языке: Паскаль

Param46. Описать функцию BinToDec($$S$$) целого типа, определяющую целое неотрицательное число по его строковому представлению $$S$$ в двоичной системе счисления. Параметр $$S$$ имеет строковый тип, состоит из символов «0»-«1» и не содержит ведущих нулей (за исключением значения «0»). Используя эту функцию, вывести пять чисел, для которых даны их двоичные представления.

Решение задачи, на языке: Паскаль

Param47. Описать функцию HexToDec($$S$$) целого типа, определяющую целое неотрицательное число по его строковому представлению $$S$$ в 16-ричной системе счисления. Параметр $$S$$ имеет строковый тип, состоит из символов «0»-«9», «A»-«F» и не содержит ведущих нулей (за исключением значения «0»). Используя эту функцию, вывести пять чисел, для которых даны их 16-ричные представления.

Решение задачи, на языке: Паскаль

 

Файлы

Param48. Описать функцию IntFileSize($$S$$) целого типа, возвращающую количество элементов в файле целых чисел с именем $$S$$. Если файл не существует, то функция возвращает $$-1$$. С помощью этой функции найти количество элементов в трех файлах с данными именами.

Решение задачи, на языке: Паскаль

Param49. Описать функцию LineCount($$S$$) целого типа, возвращающую количество строк в текстовом файле с именем $$S$$. Если файл не существует, то функция возвращает $$-1$$. С помощью этой функции найти количество строк в трех файлах с данными именами.

Решение задачи, на языке: Паскаль

Param50. Описать процедуру InvertIntFile($$S$$), меняющую порядок следования элементов файла целого типа с именем $$S$$ на противоположный. Если файл не существует или содержит менее двух элементов, то процедура не выполняет никаких действий. Обработать с помощью этой процедуры три файла с данными именами.

Решение задачи, на языке: Паскаль

Param51. Описать процедуру AddLineNumbers($$S$$, $$N$$, $$K$$, $$L$$), добавляющую в начало каждой строки существующего текстового файла с именем $$S$$ ее порядковый номер: первая строка получает номер $$N$$, вторая — $$N+1$$ и т. д. Номер отображается в $$K$$ позициях, выравнивается по правому краю и отделяется от последующего текста $$L$$ пробелами $$(K>0, L>0)$$. Если строка файла является пустой, то она также нумеруется, но пробелы после номера не добавляются. Применить эту процедуру к данному файлу, используя указанные значения $$N$$, $$K$$ и $$L$$.

Решение задачи, на языке: Паскаль

Param52. Описать процедуру RemoveLineNumbers($$S$$), удаляющую из начала каждой строки существующего текстового файла с именем $$S$$ ее порядковый номер, добавленный процедурой AddLineNumbers (см. задание Param51), а также пробелы, отделяющие номер от последующего текста. Если строки не содержат номеров, то процедура не выполняет никаких действий. Применить эту процедуру к файлу с данным именем.

Решение задачи, на языке: Паскаль

Param53. Описать процедуру SplitIntFile($$S_0$$, $$K$$, $$S_1$$, $$S_2$$), копирующую первые $$K$$ $$(\ge0)$$ элементов существующего файла целых чисел с именем $$S_0$$ в новый файл целых чисел с именем $$S_1$$, а остальные элементы — в новый файл целых чисел с именем $$S_2$$. Один из созданных файлов может остаться пустым. Применить эту процедуру к файлу с данным именем $$S_0$$, используя указанные значения $$K$$, $$S_1$$ и $$S_2$$.

Решение задачи, на языке: Паскаль

Param54. Описать процедуру SplitText($$S_0$$, $$K$$, $$S_1$$, $$S_2$$), копирующую первые $$K$$ $$(\ge0)$$ строк существующего текстового файла с именем $$S_0$$ в новый текстовый файл с именем $$S_1$$, $$A$$ остальные строки — в новый текстовый файл с именем $$S_2$$. Один из созданных файлов может остаться пустым. Применить эту процедуру к файлу с данным именем $$S_0$$, используя указанные значения $$K$$, $$S_1$$ и $$S_2$$.

Решение задачи, на языке: Паскаль

Param55. Описать процедуру StringFileToText($$S$$), преобразующую двоичный строковый файл с именем $$S$$ в текстовый файл с тем же именем. Используя эту процедуру, преобразовать два данных строковых файла с именами $$S_1$$ и $$S_2$$ в текстовые.

Решение задачи, на языке: Паскаль

Param56. Описать процедуру TextToStringFile($$S$$), преобразующую текстовый файл с именем $$S$$ в двоичный строковый файл с тем же именем. Используя эту процедуру, преобразовать два данных текстовых файла с именами $$S_1$$ и $$S_2$$ в строковые.

Решение задачи, на языке: Паскаль

Param57. Описать процедуру EN_CodeText($$S$$, $$K$$), которая шифрует текстовый файл с именем $$S$$, выполняя циклическую замену каждой русской буквы на букву того же регистра, расположенную в алфавите на $$K$$-й позиции после шифруемой буквы $$(0<K<10)$$. Например, при $$K=3$$ «А» перейдет в «Г», «я» — в «в». Букву «ё» в алфавите не учитывать, считая, что за буквой «е» сразу идет «ж». Символы, не являющиеся русскими буквами, при шифровании не изменять. Используя эту процедуру и зная кодовое смещение $$K$$, зашифровать файл с указанным именем.

Решение задачи, на языке: Паскаль

Param58. Описать процедуру DecodeText($$S$$, $$K$$), которая дешифрует текстовый файл с именем $$S$$, зашифрованный с использованием кодового смещения $$K$$ (способ шифрования описан в задании Param57). Используя эту процедуру и зная кодовое смещение $$K$$, расшифровать файл с указанным именем.

Решение задачи, на языке: Паскаль

 

Записи

При вводе и выводе каждой даты в заданиях Param59-Param63 вначале указывается день, затем номер месяца, затем год. При вводе каждой точки в заданиях Param64-Param70 вначале указывается ее абсцисса ($$x$$-координата), затем ее ордината ($$y$$-координата).

Param59. Описать тип TDate — запись с полями целого типа Day (день), Month (месяц) и Year (год) — и функцию LeaP_Year($$D$$) логического типа с параметром типа TDate, которая возвращает True, если год в дате $$D$$ является високосным, и False в противном случае. Вывести значение функции LeaP_Year для пяти данных дат (предполагается, что все даты являются правильными). Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на $$100$$ и не делятся на $$400$$.

Решение задачи, на языке: Паскаль

Param60. Используя тип TDate и функцию LeaP_Year (см. задание Param59), описать функцию DaysInMonth($$D$$) целого типа с параметром типа TDate, которая возвращает количество дней для месяца, указанного в дате $$D$$. Вывести значение функции DaysInMonth для пяти данных дат (предполагается, что все даты являются правильными).

Решение задачи, на языке: Паскаль

Param61. Используя тип TDate и функцию DaysInMonth (см. задания Param59 и Param60), описать функцию CheckDate($$D$$) целого типа с параметром типа TDate, которая проверяет правильность даты, указанной в параметре $$D$$. Если дата $$D$$ является правильной, то функция возвращает $$0$$; если в дате указан неверный номер месяца, то функция возвращает $$1$$; если в дате указан неверный день для данного месяца, то возвращается $$2$$. Вывести значение функции CheckDate для пяти данных дат.

Решение задачи, на языке: Паскаль

Param62. Используя тип TDate и функции DaysInMonth и CheckDate (см. задания Param59-Param61), описать процедуру PrevDate ($$D$$) с параметром типа TDate, которая преобразует дату $$D$$ к предыдущей дате (если дата $$D$$ является неправильной, то она не изменяется). Запись $$D$$ является входным и выходным параметром. Применить процедуру PrevDate к пяти данным датам.

Решение задачи, на языке: Паскаль

Param63. Используя тип TDate и функции DaysInMonth и CheckDate (см. задания Param59-Param61), описать процедуру NexTDate($$D$$) с параметром типа TDate, которая преобразует дату $$D$$ к следующей дате (если дата $$D$$ является неправильной, то она не изменяется). Запись $$D$$ является входным и выходным параметром. Применить процедуру NexTDate к пяти данным датам.

Решение задачи, на языке: Паскаль

Param64. Описать тип TPoint — запись с полями вещественного типа $$X$$ и $$Y$$ (координаты точки на плоскости) — и функцию Leng($$A$$, $$B$$) вещественного типа, находящую длину отрезка $$AB$$ на плоскости по координатам его концов: $$|AB|=\sqrt{(A.X-B.X)^2+(A.Y-B.Y)^2}$$ . ($$A$$ и $$B$$ — параметры типа TPoint). С помощью этой функции найти длины отрезков $$AB$$, $$AC$$, $$AD$$, если даны координаты точек $$A$$, $$B$$, $$C$$, $$D$$.

Решение задачи, на языке: Паскаль

Param65. Используя тип TPoint и функцию Leng (см. задание Param64), описать тип TTriangle — запись с полями $$A$$, $$B$$, $$C$$ типа TPoint (вершины треугольника) — и функцию Perim($$T$$) вещественного типа, находящую периметр треугольника $$T$$ ($$T$$ — параметр типа TTriangle). С помощью этой функции найти периметры треугольников $$ABC$$, $$ABD$$, $$ACD$$, если даны координаты точек $$A$$, $$B$$, $$C$$, $$D$$.

Решение задачи, на языке: Паскаль

Param66. Используя типы TPoint, TTriangle и функции Leng и Perim (см. задания Param64 и Param65), описать функцию Area($$T$$) вещественного типа, находящую площадь треугольника $$T$$ ($$T$$ — параметр типа TTriangle) по формуле Герона: $$S_{ABC}=\sqrt{p*(p-|AB|)*(p-|AC|)*(p-|BC|)}$$, где $$p$$ — полупериметр. С помощью этой функции найти площади треугольников $$ABC$$, $$ABD$$, $$ACD$$, если даны координаты точек $$A$$, $$B$$, $$C$$, $$D$$.

Решение задачи, на языке: Паскаль

Param67. Используя типы TPoint, TTriangle и функции Leng и Area (см. задания Param64-Param66), описать функцию Dist($$P$$, $$A$$, $$B$$) вещественного типа ($$P$$, $$A$$, $$B$$ — параметры типа TPoint), находящую расстояние $$D(P, AB)$$ от точки $$P$$ до прямой $$AB$$ по формуле $$D(P, AB)=2*S_{PAB}/|AB|$$, где $$S_PAB$$ — площадь треугольника $$PAB$$. С помощью этой функции найти расстояния от точки $$P$$ до прямых $$AB$$, $$AC$$, $$BC$$, если даны координаты точек $$P$$, $$A$$, $$B$$, $$C$$.

Решение задачи, на языке: Паскаль

Param68. Используя типы TPoint, TTriangle и функцию Dist (см. задания Param64, Param65, Param67), описать процедуру Heights($$T$$, $$h_1$$, $$h_2$$, $$h_3$$), находящую высоты $$h_1$$, $$h_2$$, $$h_3$$ треугольника $$T$$ ($$T$$ — входной параметр типа TTriangle, $$h_1$$, $$h_2$$, $$h_3$$ — выходные вещественные параметры), проведенные соответственно из вершин $$T.A$$, $$T.B$$, $$T.C$$. С помощью этой процедуры найти высоты треугольников $$ABC$$, $$ABD$$, $$ACD$$, если даны координаты точек $$A$$, $$B$$, $$C$$, $$D$$.

Решение задачи, на языке: Паскаль

Param69. Используя тип TPoint и функцию Leng (см. задание Param64), описать функцию PerimN($$P$$, $$N$$) вещественного типа, находящую периметр N-угольника, вершины которого (в порядке их обхода) передаются в массиве $$p$$ размера $$N$$ $$(>2)$$ с элементами типа TPoint. С помощью этой функции найти периметры трех многоугольников, если дано число их сторон и координаты их вершин.

Решение задачи, на языке: Паскаль

Param70. Используя типы TPoint, TTriangle и функцию Area (см. задания Param64-Param66), описать функцию AreaN($$P$$, $$N$$) вещественного типа, находящую площадь выпуклого N-угольника, вершины которого (в порядке их обхода) передаются в массиве $$p$$ размера $$N$$ $$(>2)$$ с элементами типа TPoint. С помощью этой функции найти площади трех многоугольников, если дано число их сторон и координаты их вершин.

Решение задачи, на языке: Паскаль

 

Если вы хотите выложить решение для задач, но нет решения на нужном языке, или вообще к задаче нет решений. Можете разместить его в виде комментария к данной статье.

Другие задачи по программированию, для проверки своих знаний.

Комментарии:

Комментарии 1

  • pls can you help with this problem using c++ language, though its familiar with param5 on your page.
    Write a procedure Smooth1(A, N) that performs smoothing an array A of N real numbers as follows: each element AK is replaced with the average of initial values of K first elements of the given array A. The array A is an input and output parameter. Using five calls of this procedure, perform smoothing a given array A of N real numbers five times successively; out-put array elements after each smoothing.

Добавить комментарий для Raymond Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *