Задачи на подпрограммы (процедуры и функции)

(1): Напишите функцию модуля labs, которая возвращает модуль целого числа при a не равном нулю. Если же a = 0, то функция возвращает -100. С помощью этой функции вычислите вычислите N = labs(a-b) + labs(c), где a, b, c — целые числа, вводимые с клавиатуры.

(2): Напишите функцию умножения без использования операции умножения, с помощью арифметического цикла. В основную программу вводится 2 целых числа a и b. Программа должна вывести a*b.

(3): Напишите 3 функции, которые возвращают двоичную, восьмеричную и шестнадцатеричную запись целого числа соответственно. В программу вводятся числа от 1 до N. Для каждого числа в диапазоне от 1 до N программа выводит двоичную, восьмеричную и шестнадцатеричную запись.  

(4): Напишите программу, которая в потоке чисел от 100 до m находит сумму всех чисел, у которых первые две цифры одинаковые. Для этой программы, напишите логическую функцию digEq, которая возвращает истину, если первые две цифры одинаковые, и возвращает ложь в противном случае. m — это натуральное число, которое вводится пользователем с клавиатуры.

(5): Маска — это число, которое в двоичной системе счисления записывается по следующему правилу: Сначала единицы, а затем нули. (Используется в компьютерных сетях) Например, число 192 является маской, так как в двоичном виде записывается как 11000000, а число 193 не является маской, так как
в двоичной записи имеет вид 11000001, что не соответствует правилу, что в двоичной записи числа сначала должны идти единицы, а затем нули. С клавиатуры вводятся N целых чисел (Число N также вводится с клавиатуры). Напишите программу, которая среди них находит и выводит только те, которые
являются маской. Для решения этой задачи, напишите логическую функцию Mask, которая принимает значение истина, если число является маской, и ложь в противном случае.

(6): Напишите функцию, которая ищет в числе количество единиц двоичной записи. В программу вводится десятичное число. Программа должна вывести количество единиц в двоичной записи.

(7): Напишите логическую функцию, которая возвращает истину, если в числе две последние цифры одинаковые. Например, функция вернет истину, если будет введено число 377 или 12855. В противном случае функция возвращает ложь. Программа получает на вход целое число. Программа должна вывести YES, если функция возвращает истину и NO в обратном случае.

(8): Напишите логическую функцию, которая возвращает истину, если в числе две первые цифры одинаковые. Например, функция вернет истину, если будет введено число 7715 или 553132. В противном случае функция возвращает ложь. Программа получает на вход целое число. Программа должна вывести YES, если функция возвращает истину и NO в обратном случае.

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

(10): Напишите функцию, которая возвращает количество пар в числе, в которых одна цифра из пары делится на другую цифру из пары. Под парой подразумевается две идущие подряд цифры. Например, в числе 1256, парами являются следующие сочетания цифр: 1 и 2, 2 и 5, 5 и 6. Программа получает на вход целое число. Программа должна вывести количество пар, в которых одно число делится на другое.

(11): Напишите логическую функцию, которая возвращает истину, если в целом числе есть ровно 3 цифры, идущие в порядке возрастания. В противном случае функция возвращает ложь. Например, при получении числа 701230 – функция вернет истину, а при получении числа 9021 – ложь.

(12): Напишите логическую функцию, которая возвращает истину, если целое десятичное число в двоичной системе счисления записывается в виде чередования единиц и нулей, например 10101 или 1010101. В противном случае функция возвращает ложь.

(13): Напишите логическую функцию, которая возвращает истину, если целое десятичное число в троичной системе счисления записывается в виде чередования двоек, единиц и нулей, например 210210 или 210210210210 или 2102. В противном случае функция возвращает ложь.

(14): Напишите логическую функцию, которая по трем целым числам определяет, является ли введенная тройка чисел Пифагоровой (то есть образует прямоугольный треугольник).

(15): Напишите функции, которые по входным двум целым числам a и b возвращают все значения формул сокращенного умножения (квадрат разности, квадрат суммы и разность квадратов)

(16): Дана числовая последовательность из n целых чисел (n – вводится с клавиатуры). Напишите функцию, которая считает сумму всех цифр у чисел этой последовательности. Основная программа должна вывести сумму цифр всех чисел последовательности, если эта сумма получилась четной. Если она получилась нечетной, но кратной 3, то программа должна вывести разность между этой суммой цифр и количеством цифр 3 в этой последовательности. В противном случае программа должна вывести 0. Если необходимо, воспользуйтесь написанием дополнительных функций.

(17):  Напишите функцию count(x,y), которая возвращает количество цифр «y» в целом числе «x». Переменные x и y — целого типа. Например, значение функции count(177,7) будет равно 2. Проверьте работу функции при входном целом числе. Программа должна работать как для положительных, так и для отрицательных чисел.

(18): Напишите функцию countIF(x,s) которая возвращает количество цифр в числе “x” по строковому условию “s”. Например, значение функции countIf(123456789, “>5”) будет равно 4. В качестве условий  могут быть только “>”, “<”, “>=”, “<=”, “=”.Проверьте работу функции при входном целом числе.

(19): Напишите функцию Next(x,y), которая увеличивает число x на y. Аргумент y должен быть обязательно больше 0. Если y <= 0, то функция должна вернуть None. Проверьте работу функции при входных целых данных. 

(20): Напишите функцию numminmas(m,k), где m — это целочисленный массив, состоящий из любого количества элементов (Массив заполняется в основной программе), а k — это номер минимального элемента. Функция должна возвращать k-тый минимальный элемент в массиве m. Например, если вызвать функцию с аргументами m = [7,2,14,6,13], k = 2, то функция должна вернуть 6 (второй минимальный элемент)

(21): Напишите функцию divmm(n), которая возвращает целочисленное деление максимальной цифры и минимальной цифры числа n. Если минимальная цифра равна 0, то функция должна вернуть значение 0. В основной программе вводится M целых чисел и считается сумма всех таких чисел, что divmm(n) равна 1 (n — вводимые с клавиатуры числа).

(22): Напишите функцию nine(n), которая возвращает строковое значение числа n в девятеричной системе счисления.

(23): Напишите функцию, которая возвращает последнюю цифру в числе, если в девятеричной системе счисления количество цифр 5 равно количество цифр 7. В противном случае функция возвращает максимальную цифру в числе.

(24): Напишите функцию, которая возвращает истину, если в троичной системе счисления количество цифр «2» равно количеству цифр «0». В противном случае функция возвращает ложь. В основной программе пользователь вводит последовательность из N целых чисел (N — целое натуральное число). Программа выводит все числа последовательности, при которых функция будет возвращать истину. 

(25): Напишите функцию sortdigit(n,m), которая по входным параметрам n и m возвращает целое число, состоящее из отсортированных по убыванию чисел. Например, при вводе чисел 25 и 190, результатом работы функции будет число 95210. В основной программе вводится X пар целых чисел (a,b). Программа должна для каждой из пар чисел вывести результат работы функции sortdigit(a,b).

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

(26): Напишите функцию sortnumdig(a,f), где a — целочисленный массив, состоящий из 3 элементов, а параметр f может быть равным 0, 1 или -1. Если f = -1, то функция возвращает целое число, состоящее из цифр всех чисел массива, записанных в порядке убывания. Если f = 1, то функция возвращает целое число, состоящее из цифр всех чисел массива, записанных в порядке возрастания, исключая все нули. Если f = 0, то функция возвращает количество нулей в числах массива. В основной программе сначала вводятся элементы массива, а затем переменная параметра f. Программа должна вывести одно целое число — результат работы функции.

Пример работы программы:

(27): Особый коэффициент числа — это результат сложения максимальной и минимальной цифры, умноженный на результат целочисленного деления суммы всех цифр на количество всех цифр в исходном числе. Напишите программу, которая для каждого из N введенных целых чисел выводит особый коэффициент. Для реализации программы необходимо написать функцию, которая по входному целому параметру возвращает особый коэффициент. Для необходимости можно написать дополнительные функции.

Пример работы программы:

(28): Напишите функцию, которая принимает два аргумента — целые числа a, b. Функция возвращает разность между целочисленным делением a на b и удвоенным остатком от деления a на b. В основную программу вводятся два целых числа. Программа должна вывести значение функции для введенных чисел.

Пример работы программы:

(29): Суперчисло – число, которое делится нацело на количество своих цифр и на сумму своих цифр. Например, число 12 делится на 3 (сумма цифр) и на 2 (количество цифр). Напишите программу, которая в диапазоне от 1 до 10000 находит количество суперчисел. Для нахождения суперчисел напишите функцию, которая возвращает истину, если число является суперчислом, и возвращает ложь в противном случае.