- •«Программирование на языках высокого уровня»
- •Вставить первую строку после строки, в которой находится первый встреченный максимальный элемент.
- •Вставить второй столбец после первого столбца, в котором все элементы положительны. Если такого столбца нет, то сообщить об этом.
- •Вставить нулевую строку и нулевой столбец перед строкой и столбцом, где находится первый минимальный элемент.
- •Вставить после строки, в которой есть заданное число а, последнюю строку.
- •Вставить перед столбцом, в котором нет отрицательных элементов, второй столбец.
- •Удалить столбец, в котором находится минимальный элемент.
Задание для выходного контроля знаний по дисциплине
«Программирование на языках высокого уровня»
Составить одну программу, в которой решаются все задачи вашего варианта, каждая в соответствующей процедуре (функции).
Примечание: Ввод массивов, структур для задач осуществлять с помощью соответствующих процедур (функций).
Вариант 1.
Треугольник задан координатами своих вершин. Составить функцию вычисления его площади.
Дано натуральное число N. Составить процедуру (функцию) формирования массива, элементами которого являются цифры числа N.
Найдите сумму цифр заданного натурального числа, используя рекурсивную подпрограмму.
Найти сумму всех чётных элементов одномерного массива, стоящих на чётных местах, то есть имеющие чётные номера.
В прямоугольной матрице, размерностью n*m, заполненной случайным образом числами из промежутка [-40,30], найти сумму и количество элементов каждого столбца с заданным условием (хранить эти значения в массивах): элементы, кратные k1 или k2.
Вставить первую строку после строки, в которой находится первый встреченный максимальный элемент.
Распечатать список учеников, фамилии которых начинаются на букву В с указанием даты их рождения.
Написать подпрограмму, определяющую количество суток, прошедших от даты t1 до t2.
Вариант 2.
Составить функцию нахождения наибольшего общего делителя и наименьшего общего кратного двух натуральных чисел (НОК(А, В) = А*Б/ НОД(А, В).
Составить процедуру (функцию), определяющую, в каком из данных двух чисел больше цифр.
Подсчитать количество цифр в заданном натуральном числе, используя рекурсивную подпрограмму.
Найти сумму и произведение первых пяти элементов одномерного массива.
В прямоугольной матрице, размерностью n*m, заполненной случайным образом числами из промежутка [-40,30], найти сумму и количество элементов каждого столбца с заданным условием (хранить эти значения в массивах): элементы, попадающие в промежуток от А до В.
Вставить второй столбец после первого столбца, в котором все элементы положительны. Если такого столбца нет, то сообщить об этом.
Из данного списка спортсменов распечатать данные о тех из них, кто занимается плаванием. Указать возраст, сколько лет они занимаются спортом.
Написать подпрограмму, определяющую день недели, выпадающий на дату t1, если известно, что в первый день нашей эры был понедельник.
Вариант 3.
Составить функцию нахождения наибольшего общего делителя четырех натуральных чисел.
Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получить 651.
Описать функцию С(m,n), где 0 m n, для вычисления биномиального коэффициента
по
следующей формуле:
при 0< m< n
используя рекурсивную подпрограмму.
Найти сумму элементов одномерного массива с k1-го по k2-ой, где k1 и k2 вводятся с клавиатуры. Сделайте проверку корректности их ввода.
В прямоугольной матрице, размерностью n*m, заполненной случайным образом числами из промежутка [-40,30], найти сумму и количество элементов каждого столбца с заданным условием (хранить эти значения в массивах): данные элементы положительные и лежат выше главной диагонали.
Вставить нулевую строку и нулевой столбец перед строкой и столбцом, где находится первый минимальный элемент.
Распечатать фамилии рабочих бригады, начинающиеся с букв А и С, с указанием их месячной зарплаты.
Дан массив, содержащий информацию об учениках некоторой школы. Заполнить второй массив данными об учениках только девятых классов.
Вариант 4.
Составить функцию нахождения наименьшего общего кратного трех натуральных чисел.
Даны натуральные числа K и N. Составить процедуру (функцию) формирования массива A, элементами которого являются числа, сумма цифр которых равна K и которые не больше N.
Описать рекурсивную функцию Root(f, b, ), которая методом деления отрезка пополам находит с точностью корень уравнения f(x) = 0 на отрезке [а, b] (считать, что > 0, а < b, f(a} • f(b) < 0 и f(x)- непрерывная и монотонная на отрезке [а, b]).
Найти сумму элементов одномерного массива, больших данного числа А (А вводится с клавиатуры).
В прямоугольной матрице, размерностью n*m, заполненной случайным образом числами из промежутка [-40,30], найти сумму и количество элементов каждого столбца с заданным условием (хранить эти значения в массивах): элементы, которые являются простыми числами.
Вставить после строки, в которой есть заданное число А, последнюю строку.
Распечатать фамилии рабочих бригады, начинающиеся с букв А и С, с указанием их месячной зарплаты.
Дан массив, содержащий информацию об учениках некоторой школы. Выяснить на сколько человек в восьмых классах больше, чем в девятых.
Вариант 5.
Написать функцию нахождения суммы большего и меньшего из 3 чисел.
Даны три квадратных матрицы A, B, С n-го порядка. Вывести на печать ту из них, норма которой наименьшая. Пояснение. Нормой матрицы считать максимум из абсолютных величин ее элементов.
Описать функцию min(x) для определения минимального элемента линейного массива х, введя вспомогательную рекурсивную функцию min1(k), находящую минимум среди последних элементов массива х, начиная с k-го.
Найти сумму элементов одномерного массива , принадлежащих промежутку от А до В (А и В вводятся с клавиатуры).
В прямоугольной матрице, размерностью n*m,найти сумму элементов в строках с k1-й по k2-ю.
Вставить перед столбцом, в котором нет отрицательных элементов, второй столбец.
Из ассортимента конфет, выпускаемых пермской кондитерской фабрикой, выбрать те, стоимость которых от 10 до 15 тыс. рублей за 1 кг. Указать срок их годности и номера магазинов, в которых они имеются в продаже.
Дано время, описанное следующим образом:
Type time = Record
h: 0..23
m,s: 0..59
End;
Описать логическую функцию для проверки, предшествует ли время t1 времени t2 (в рамках суток).
Вариант 6.
Вычислить площадь правильного шестиугольника со стороной a, используя функцию вычисления площади треугольника.
Два натуральных числа называются «дружественными», если каждое из них равно сумме всех делителей (кроме его самого) другого (например, числа 220 и 284). Найти все пары «дружественных чисел», которые не больше данного числа N.
Описать рекурсивную логическую функцию Simm(S, i, j), проверяющую, является ли симметричной часть строки S, начинающаяся i-м и кончающаяся j-м ее элементами.
Найти номера всех отрицательных элементов одномерного массива (вывести их на экран), если таких нет, то сообщить об этом.
В прямоугольной матрице, размерностью n*m,найти номера всех максимальных элементов.
Удалить столбец, в котором находится минимальный элемент.
Распечатать список учеников музыкальной школы, которые учатся играть на скрипке. Указать также, сколько лет они занимаются музыкой и принимали ли участие в каких-либо конкурсах.
Дано время, описанное следующим образом:
Type time = Record
h: 0..23
m,s: 0..59
End;
Описать процедуру, присваивающую параметру t1 время, на секунду большее времени t (учесть смену суток).
Вариант 7.
На плоскости заданы своими координатами n точек. Составить функцию, определяющую между какими из пар точек самое большое расстояние. Указание: координаты точек занести в массив.
Два простых числа называются «близнецами», если они отличаются друг от друга на 2 (например, 41 и 43). Напечатать все пары «близнецов» из отрезка [n, 2n], где n — заданное натуральное число больше 2.
Составить программу вычисления наибольшего общего делителя двух натуральных чисел, используя рекурсивную подпрограмму.
Найти номера всех элементов одномерного массива с максимальным значением.
В прямоугольной матрице, размерностью n*m,найти номера первых отрицательных элементов каждой строки (столбца).
Удалить строку с номером k и столбец с номером l.
Среди работников данного предприятия найти тех, чья заработная плата за месяц является ниже средней по предприятию, а также распечатать список тех, кто проработал на предприятии более 10 лет с указанием их фамилии, зарплаты, стажа работы и должности.
Const n=30;
Type MyRecord = Record
Key: Integer;
Name: String;
End;
Table = Array[1..n] Of MyRecord.
Считая, что в таблице записи имеют различные ключи, описать процедуру, упорядочивающую записи таблицы по убыванию значений поля Key
Вариант 8.
Составить функцию, которая в массив- A[N] находит второе по величине число (т.e. вывести на печать число, которое меньше максимального элемента массива, но больше всех других элементов).
Написать процедуру (функцию) вычисления суммы ряда
для заданного числа n. Дробь p/q должна быть несократимой (р, q — натуральные). Указание: основой вычислений должна быть процедура сложения двух простых дробей.
Составить программу нахождения числа, которое образуется из данного натурального числа при записи его цифр в обратном порядке, используя рекурсивную подпрограмму. Например, для числа 1234 получаем ответ 4321.
Найти количество и произведение отрицательных элементов одномерного массива.
В прямоугольной матрице, размерностью n*m,найти номера последних отрицательных элементов каждой строки (столбца).
Удалить столбец, в котором нет нулевого элемента.
Распечатать фамилии тех учеников, которые не получили ни одной, "тройки" за последнюю четверть. В каких классах учатся эти ученики? Какой их средний балл?
Const n=30;
Type MyRecord = Record
Key: Integer;
Name: String;
End;
Table = Array[1..n] Of MyRecord.
Считая, что в таблице записи имеют различные ключи, описать логическую функцию Found(T, K, H), определяющую, есть ли в таблице T (все записи которой уже упорядочены по возрастанию поля Кеу) запись со значением поля Key, равным K, и, если есть, присваивающую ее номер параметру H.
Вариант 9.
Составить функцию, проверяющую, являются ли данные три числа взаимно простыми.
Написать процедуру (функцию) вычисления суммы 1 + 1/2 + 1/3 + …+1/n для заданного числа n. Результат представить в виде несократимой дроби p/q (p, q — натуральные).
Составить программу перевода данного натурального числа в р-ичную систему счисления (2 р 9) ,используя рекурсивную подпрограмму.
Найти количество и сумму нечетных элементов одномерного массива.
В прямоугольной матрице, размерностью n*m,найти количество элементов в каждой строке, больших (меньших) среднего арифметического элементов заданной строки.
Удалить строку и столбец, на пересечении которых стоит отрицательный элемент.
Распечатать фамилии детей данного детского сада, которые родились в указанном месяце; указать их возраст и группу.
Дан массив, содержащий информацию об учениках школы. Заполнить второй массив данными об учениках только девятых классов.
Вариант 10.
Написать функцию вычисления суммы факториалов всех нечетных чисел от 1 до 9.
Натуральное число, в записи которого n цифр, называется числом Амстронга, если сумма его цифр, возведенная в степень n, равна самому числу. Найти все числа Амстронга от 1 до k.
Дана символьная строка, представляющая собой запись натурального числа в р-ичной системе счисления (2 р 9). Составить программу перевода этого числа в десятичную систему счисления, используя рекурсивную подпрограмму.
Сколько элементов одномерного массива превосходят по модулю заданное число А.
Определить, есть ли в данном двумерном массиве два одинаковых элемента.
Поменять местами первый максимальный и последний минимальный элементы.
Распечатать список тех учителей школы, которые преподают математику и информатику, указать стаж их работы и недельную нагрузку.
Дан массив, содержащий информацию об учениках школы. Выяснить, на сколько человек в восьмых классах больше, чем в девятых.
Вариант 11.
Даны две дроби A/B и C/D. (А, В, С, D - натуральные числа). Составить функцию деления дроби на дробь. Ответ должен быть несократимой дробью.
Написать процедуру (функцию), которая находит и выводит на печать все четырехзначные числа вида abcd, для которых выполняется: а) а, b, с, d — разные цифры; б) ab - cd = а + b + с + d.
Составить программу вычисления суммы:
1! +2! + З! + … +n! (n 20)
используя рекурсивную подпрограмму. Примечание.
Тип результата значения функции - LongInt.
Найти все элементы одномерного массива, кратные 3 или 5. Сколько их?
Определить, есть ли в данном двумерном массиве данное число А среди элементов массива.
В заданной строке поменять местами первый элемент и максимальный по модулю.
Распечатать анкетные данные учеников, участвовавших в олимпиаде по информатике и заработавших не менее 30 баллов.
Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан массив, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляют собой запись с двумя полями: одно поле целого типа (количество вещей) и другое – действительное (вес в килограммах). Найти багаж, средний вес одной вещи в котором отличается не более, чем на 0,3 кг от общего среднего веса одной вещи.
Вариант 12.
Задан массив D из 6 элементов. Определить следующие суммы: D[1] + D[2] + D[3]; D[3] + D[4] + D[5]; D[4] + D[5] + D[6]. Пояснение. Составить функцию вычисления суммы трех последовательно расположенных элементов массива с номерами от k до m.
Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой палиндром, т.е. читается одинаково слева направо и справа налево.
Составить программу вычисления суммы , используя рекурсивную подпрограмму:
2! + 4! + … + n! (n 20, n - четное).
Примечание: Тип результата значения функции — LongInt.
Есть ли в данном одномерном массиве два соседних положительных элемента? Найти номера первой (последней) пары.
Определить является ли двумерный массив логическим квадратом, то есть суммы по всем горизонталям, вертикалям и двум диагоналям должны быть равны.
В заданной строке переставить первый отрицательный и последний положительный элементы, если таких нет, то сообщить об этом.
Распечатать фамилии тех учеников класса, которые являются хорошистами и отличниками по итогам года. Также указать, насколько их средне балл отличается от среднего балла класса.
Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан массив, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляют собой запись с двумя полями: одно поле целого типа (количество вещей) и другое – действительное (вес в килограммах). Найти число пассажиров, имеющих более двух вещей и число пассажиров, количество вещей которых превосходит среднее число вещей.
Вариант 13.
Даны две дроби A/B и C/D (А, В, С, D — натуральные числа). Составить функцию умножения дроби на дробь. Ответ должен быть несократимой дробью.
Найти все натуральные четырехзначные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789).
Дано n различных натуральных чисел. Напечатать все перестановки этих чисел , используя рекурсивную подпрограмму.
Есть ли в данном одномерном массиве элемент, равный заданному числу? Если есть, то вывести номер одного из них.
Определить является ли двумерный массив логическим квадратом, то есть суммы по всем горизонталям, вертикалям и двум диагоналям должны быть равны и сумма должна быть равна данному числу А.
Переставить вторую и предпоследнюю строки.
Имеются сведения об учениках класса. Определить среднюю массу мальчиков и средний рост девочек. Кто из учеников класса самый высокий?
Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан массив, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляют собой запись с двумя полями: одно поле целого типа (количество вещей) и другое – действительное (вес в килограммах). Выяснить, имеется ли пассажир, багаж которого состоит из одной вещи весом менее 30 кг.
Вариант 14.
Даны две дроби A/B и C/D (А, В, С, D — натуральные числа). Составить функцию вычитания из первой дроби второй. Ответ должен быть несократимой дробью.
Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр.
Дан одномерный массив. Переставить в обратном порядке элементы массива, расположенные между минимальным и максимальным элементами.
Определить, есть ли в данном массиве строка (столбец), состоящая только из положительных элементов.
Поменять местами первую строку и строчку, в которой находится первый нулевой элемент.
Даны результаты переписи населения, которые хранятся в памяти ЭВМ. Напечатать фамилии, имена и подсчитать общее число жителей, родившихся после 1990 года.
Описать структуру с именем STUDENT, содержащую следующие поля:
• NAME – фамилия и инициалы;
• GROUP – номер группы;
• SES - успеваемость (массив из пяти элементов).
Написать подпрограмму, выполняющую следующие действия :
• ввод с клавиатуры данных в массив STUD1, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию содержимого поля GROUP;
• вывод на дисплей фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше 4,0;
• если таких нет, вывести соответствующее сообщение.
Вариант 15.
Даны две дроби A/B и C/D (А, В, С, D — натуральные числа). Составить функцию сложения этих дробей. Ответ должен быть несократимой дробью.
Составить процедуру (функцию) для нахождения чисел из интервала [М; N], имеющих наибольшее количество делителей.
Дан одномерный массив В, состоящий из 2n элементов. Переставить его элементы по следующему правилу: b[n+1], b[n+2],..., b[2n], b[1], b[2],..., b[n].
Определить, есть ли в данном массиве строка (столбец), состоящая только из положительных или нулевых элементов.
Начиная с k-го столбца, сдвинуть их назад, а последние k поставить на место первых.
При поступлении в университет лица, получившие оценку "неудовлетворительно" на первом экзамене, ко второму экзамену не допускаются. Считая фамилии абитуриентов и их оценки после первого экзамена исходными данными, составить список абитуриентов, допущенных ко второму экзамену.
Описать структуру с именем STUDENT, содержащую следующие поля:
• NAME - фамилия и инициалы;
• GROUP- номер группы;
• SES- успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия :
• ввод с клавиатуры данных в массив STUD1, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию среднего балла;
• вывод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5;
• если таких нет, вывести соответствующее сообщение.
Вариант 16.
На плоскости заданы своими координатами n точек. Создать массив размерности
,
элементами которого являются расстояния
от каждой из точек до n
- 1 других.Для последовательности а1 = 1, an+1 = an + 1/(1 + an) составить процедуру (функцию) печати k-го члена в виде обыкновенной несократимой дроби. Например,
Дан одномерный массив В, состоящий из 2n элементов. Переставить его элементы по следующему правилу: b[n+1] b[n+2],..., b[2n], b[n-1],..., b[1].
Определить, есть ли в данном двумерном массиве строка (столбец), состоящая только из элементов равных числу А.
Начиная с k-го столбца, сдвинуть их вперед, а первые k поставить на место последних.
Составить программу назначения стипендии студентам по результатам сессии, используя следующие правила:
1) если все оценки 5, назначается повышенная стипендия;
2) если оценки 4 и 5, назначается обычная стипендия;
3) если есть оценка 3, стипендия не назначается.
В результате работы программы должен быть напечатан список группы с оценками и средним баллом каждого студента и два списка фамилий (назначенных на повышенную и обычную стипендию).
Описать структуру с именем ORDER, содержащую следующие поля:
• PLAT — расчетный счет плательщика;
• POL — расчетный счет получателя;
• SUMMA — перечисляемая сумма в руб.
Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив SPISOK, состоящий из восьми элементов типа ORDER; записи должны быть размещены в алфавитном порядке по расчетным счетам плательщиков;
• вывод на экран информации о сумме, снятой с расчетного счета плательщика, введенного с клавиатуры;
• если такого расчетного счета нет, выдать на дисплей соответствующее сообщение.
Вариант 17.
Даны 4 числа X, Y, Z, Т — длины сторон четырехугольника. Вычислить его площадь, если угол между сторонами длиной Х и Y – прямой.
Дано натуральное число n. Выяснить, можно ли представить n в виде произведения трех последовательных натуральных чисел.
Дан одномерный массив В, состоящий из 2n элементов. Переставить его элементы по следующему правилу: b[1], b[n+1], b[2], b[n+2],..., b[n], b[2n].
Определить, есть ли в данном двумерном массиве строка (столбец), состоящая только из элементов, принадлежащих промежутку от А до В.
Дан двумерный массив. Начиная с первой строки, сдвинуть все строки на две вниз, а последние две перенести на место первых двух строк.
В таблице хранятся следующие данные об учениках: фамилия, имя, отчество, рост, масса. Вычислить средний рост учеников, рост самого высокого и самого низкого ученика. Сколько учеников могут заниматься в баскетбольной секции, если рост баскетболиста должен быть больше 170 см?
Описать структуру с именем STUDENT, содержащую следующие поля:
• NAME - фамилия и инициалы;
• GROUP- номер группы;
• SES- успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия :
• ввод с клавиатуры данных в массив STUD1, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по алфавиту;
• вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2;
• если таких студентов нет, вывести соответствующее сообщение.
Вариант 18.
