ммм. База заданий. Линейные и разветвляющиеся
Скачать 0.98 Mb.
|
ЛИНЕЙНЫЕ И РАЗВЕТВЛЯЮЩИЕСЯ АЛГОРИТМЫ 9 экземпляров одной книги стоят 11 рублей и несколько копеек, 13 экземпляров этой же книги стоят 15 рублей и несколько копеек. Сколько стоит один экземпляр книги? Ввести целое N. Определить, является ли оно: 1) не положительным, 2) нечетным, 3) превосходящим число –3, 4) степенью двойки. Вести x, вычислить 𝑦 = # |𝑥 + 1| при 𝑥 < 0 1 при 𝑥 = 0 𝑠𝑖𝑛 ! 2𝑥 при 𝑥 > 0 Найти алгоритм работы чёрного ящика. 1 6 96 ЛЕС лес ворон Вова 88 698 юла енот 0 1 2 0 1 2 6 4 Написать программу, которая определит результат для любого сочетания букв кириллицы. Дано действительное число а. Не пользуясь никакими другими арифметическими операциями, кроме умножения, получить: а) а 3 и а 10 за четыре операции; б) а 4 и а 20 за пять операций; в) а 5 и а 13 за пять операций; г) а 5 и а 19 за пять операций; д) а 2 , а 5 , а 17 за шесть операций; е) а 4 , а 12 , а 28 за шесть операций. Дана дыра в стене размером (a, b). определить пройдёт ли через эту дыру кирпич размером (x, y, z). Поставить в порядке возрастания числа a, b, c. Даны вещественные координаты точки, не лежащей на координатных осях OX и OY. Вывести номер координатной четверти, в которой находится данная точка. Дан номер некоторого года (положительное целое число). Вывести соответствующий ему номер столетия, учитывая, что, к примеру, началом 20 столетия был 1901 год. Даны координаты трёх точек на плоскости (x1, y1) (x2, y2) (x3, y3). Определить, принадлежит ли точка с координатами (x, y) треугольнику, построенному на заданных трёх точках. Даны действительные числа a, b, c, d, e, f, g, h. Известно, что точки (e,f) и (g,h) различны. Известно также, что точки (a,b) и (c,d) не лежат на прямой l, проходящей через точки (e,f) и (g,h). Прямая l разбивает координатную плоскость на 2 полуплоскости. Выяснить, верно ли, что точки (a,b) и (c,d) принадлежат одной и той же полуплоскости. 1 2 3 4 5 6 7 6 9 10 11 АЛГОРИТМЫ МНОЖЕСТВЕННОГО ВЫБОРА Дано целое число в диапазоне 100 – 999. Вывести строку — словесное описание данного числа, например, 256 — "двести пятьдесят шесть", 814 — "восемьсот четырнадцать". Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины и длина отрезка L в этих единицах (вещественное число). Вывести длину данного отрезка в метрах. Элементы окружности пронумерованы следующим образом: 1 — радиус (R), 2 — диаметр (D), 3 — длина (L), 4 — площадь круга (S). Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данной окружности (в том же порядке). В качестве значения π использовать 3.14. Дано целое число в диапазоне 100 – 999. Вывести строку — словесное описание данного числа, например, 256 — «двести пятьдесят шесть», 814 — «восемьсот четырнадцать». Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер действия и два числа A и B (В не равно нулю). Выполнить над числами указанное действие и вывести результат. Даны два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного года. Вывести значения D и M для даты, предшествующей указанной. Даны два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного года. Вывести значения D и M для даты, следующей за указанной. Дано целое число в диапазоне 20 – 69, определяющее возраст (в годах). Вывести строку — словесное описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 — «двадцать лет», 32 — «тридцать два года», 41 — «сорок один год». Локатор ориентирован на одну из сторон света («С» — север, «З» — запад, «Ю» — юг, «В» — восток) и может принимать три цифровые команды: 1 — поворот налево, –1 — поворот направо, 2 — поворот на 180 градусов. Дан символ C — исходная ориентация локатора и числа N1 и N2 — две посланные ему команды. Вывести ориентацию локатора после выполнения данных команд. В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и черный. В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. По номеру года вывести его название, если 1984 год был началом цикла — годом зеленой крысы. ВЛОЖЕННЫЕ ЦИКЛЫ Определите число, полученное выписыванием в обратном порядке цифр заданного целого числа. Вычислить ∑ 𝑘 " ∑ (𝑘 − 𝑙) ! #$ % #' ( 1 2 3 4 5 6 7 19 20 21 22 23 Вычислить ∑ (−1) ( (2𝑘 ! + 1) ) ( ! Найти наименьшее общее кратное n и m. Натуральное число называется совершенным, если оно равно сумме всех своих делителей, за исключением самого себя. Число 6 – совершенное, т.к. 6=1+2+3. Число 8 – не совершенное, т.к. 8 ≠ 1+2+4. Дано натуральное число n. Получить все совершенные числа, меньшие n. Даны целые числа m, a 1 , a 2 , a 3 , …, a 20 . Найти три натуральных числа i, j, k, каждое из которых не превосходит 20, такие, что a i + a j + a k = m. Если таких чисел нет, то сообщить об этом. Часовая стрелка образует угол φ с лучом, проходящим через центр и через точку, соответствующую 12 часам на циферблате, 0<φ≤2π. Определить значение угла для минутной стрелки, а также количество часов и полных минут. Дано натуральное число n. Определить, является ли число n палиндромом (перевёртышем, например, 6116, 34543). В шестизначных трамвайных билетах найти все счастливые билеты. Найти натуральное число от 1 до 10000 с максимальной суммой делителей. ОДНОМЕРНЫЕ МАССИВЫ Пусть А – одномерный массив N вещественных чисел. 1) Поменять местами максимальный элемент и минимальный положительный элемент. 2) Проверить, является ли пятый ненулевой элемент по модулю меньшим 2, а если такого элемента нет, вывести сообщение. 3) Переставить все отрицательные элементы в начало массива. Дан целочисленный массив A размера 10. Вывести номер первого из тех его элементов A[i], которые удовлетворяют двойному неравенству: A[1] < A[i] < A[10]. Если таких элементов нет, то вывести 0. Пусть А, В, С, D – одномерные массивы длины N, составленные из элементов заданного типа. При этом массив А вводится с клавиатуры, массив В строится по формуле, массив С заполняется случайным образом значениями, принадлежащими отрезку [a;b], а массив D получается из этих массивов заданной линейной комбинацией. Ввести А, создать остальные массивы и распечатать все перечисленные массивы, используя процедуру вывода массивов. N=10; тип float; B[i,j]=Ctg(1+i*i); [a;b]=[-11;1]; D=A-5C+4B Даны действительные числа a 1 , a 2 , a 3 , …, a 50 . Получить «сглаженные» значения a 1 , a 2 , a 3 , …, a 50 , заменив в исходной последовательности все члены, кроме первого и последнего, 24 25 26 27 28 29 30 31 32 33 33а 34 по формуле 𝑎 * = + !"# ,+ ! ,+ !$# " . Считается, что после того как получено новое значение некоторого члена, оно используется для вычисления нового значения следующего члена. Даны: натуральные n и a 1 , a 2 , a 3 , …, a n . Написать алгоритм вычисления последовательности: a 1 , a 1 + a 2 , …, a 1 + a 2 + a 3 +…+a n Даны действительные числа a 1 , a 2 , a 3 , …, a 50 . Получить «сглаженные» значения a 1 , a 2 , a 3 , …, a 50 , заменив в исходной последовательности все члены, кроме первого и последнего, по формуле 𝑎 * = + !"# ,+ ! ,+ !$# " . Считается, что при «сглаживании» используются лишь старые значения членов последовательности. Даны натуральное число n и символы s 1 , s 2 , …, s n . Известно, что среди s 1 , s 2 , …, s n есть по крайней мере одна запятая. Определить такое i, что s i – последняя по порядку запятая. Дан массив размера N и число k (0 < k < 5, k < N). Осуществить циклический сдвиг элементов массива влево на k позиций. Проверить, образуют ли элементы целочисленного массива размера N арифметическую прогрессию. Если да, то вывести разность прогрессии, если нет — вывести 0. Даны множества A и B, состоящие соответственно из N1 и N2 точек. Найти минимальное расстояние между точками этих множеств и сами точки, расположенные на этом расстоянии. Дано множество A из N точек. Найти наименьший периметр треугольника, вершины которого принадлежат различным точкам множества A, и сами эти точки (точки выводятся в том же порядке, в котором они перечислены при задании множества A). 41а Заданы массивы A[1..n] и B[1..n]. Необходимо найти такие индексы i0 и j0, что a i0 + b j0 = max (a i + b j ), где 1<=i<=n, 1<=j<=m , i Дана точка A и множество B из N точек. Найти номер точки из множества B, наиболее близкой к А. Дан массив x [1], ..., x[n] целых чисел. Не используя других массивов, переставить элементы массива в обратном порядке. Дан массив x[n], причём x[1] <= x[2] <= ... <= x[n]. Найти количество различных чисел среди элементов этого массива. Дан массив размера N. Определить количество участков, на которых его элементы монотонно возрастают. Дан массив размера N. Найти максимальный и |минимальный из его локальных минимумов. 35 36 37 38 39 40 41 42 43 44 45 46 Дано множество A из N точек с целочисленными координатами. Порядок на координатной плоскости определим следующим образом: (x1,y1) < (x2,y2), если либо x1 < x2, либо x1 = x2 и y1 < y2. Расположить точки данного множества по возрастанию или убыванию в соответствии с указанным порядком. Дан массив размера N. Вывести индексы массива в том порядке, в котором соответствующие им элементы образуют возрастающую или убывающую последовательность. Дан массив размера N. Вывести индексы массива в том порядке, в котором соответствующие им элементы образуют возрастающую или убывающую последовательность. Дан целочисленный массив размера N. Определить максимальное количество его одинаковых элементов. Решить задачу самым оптимальным способом. Дан массив целых чисел x[1]…x[m+n], рассматриваемый как соединение двух его отрезков: начала x[1]..x[m] длины m и конца x[m+1]…x[m+n] длины n. Не используя дополнительных массивов, переставить начало и конец. Даны две целочисленные таблицы. Разработать алгоритм, который проверяет, являются ли эти таблицы похожими. Две таблицы называются похожими, если совпадают множества чисел, встречающихся в этих таблицах. Задаётся словарь. Найти в нём все анаграммы (слова, составленные из одних и тех же букв). Дано n точек на плоскости. Указать (n-1)-звенную не самопересекающуюся замкнутую ломаную, проходящую через все эти точки. Соседним отрезкам ломаной разрешается лежать на одной прямой. Напишите программу для слияния двух отсортированных одномерных массивов разной длины в один отсортированный. ДВУМЕРНЫЕ МАССИВЫ Дана матрица размера 5 x 9. Найти суммы элементов всех ее четных столбцов. Даны целые числа a 1 , a 2 , …, a n . Получить матрицу b ij [n x n] для которой b ij =a i -3a j Пусть А, В, С, D, E – двумерные массивы размерности MxN, составленные из элементов заданного типа. При этом А вводится с клавиатуры, В строится по формуле, С заполняется случайным образом значениями, лежащими на отрезке [a;b], Е заполняется единицами, а D получается из перечисленных массивов заданной линейной комбинацией. Ввести А, создать все остальные массивы и распечатать все массивы, используя процедуру вывода массива. M=2; N=5; тип int; B[i,j]=i*j-(5-i-j); [a;b]=[-3;6]; D=6E-C-2B-3A Даны натуральные числа n и m, действительная матрица [n x m]. Найти среднее арифметическое каждого из столбцов и записать в вектор a 1 , a 2 , …, a n 47 48 49 50 51 52 53 54 54а 55 56 56а 57 Дана действительная квадратная матрица порядка [n x n]. В строках с отрицательным элементом на главной диагонали найти сумму всех элементов. Дана действительная матрица размера [n x m], все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением. Дана действительная квадратная матрица порядка [n x n]. Найти наименьшее из значений элементов побочной диагонали и двух соседних с ней линий. Дана целочисленная матрица размера M x N. Вывести номер ее последней строки, содержащей максимальное количество одинаковых элементов. Дана квадратная матрица порядка M. Повернуть ее на 270 градусов в положительном направлении. Дана целочисленная матрица размера M x N. Различные строки (столбцы) матрицы назовем похожими, если совпадают множества чисел, встречающихся в этих строках (столбцах). Найти количество строк, похожих на последнюю строку. Дана матрица размера M x N. Поменять местами ее строки так, чтобы их максимальные элементы образовывали возрастающую последовательность. ФУНКЦИИ Пусть А, В, С, D – одномерные массивы длины N, составленные из элементов заданного типа. При этом массив А вводится с клавиатуры, массив В строится по формуле, массив С заполняется случайным образом значениями, принадлежащими отрезку [a;b], а массив D получается из этих массивов заданной линейной комбинацией. Ввести А, создать остальные массивы и распечатать все перечисленные массивы, используя функцию вывода массивов. N=10; тип flot; B[i,j]=Ctg(1+i*i); [a;b]=[-11;1]; D=A-5C+4B Пусть А, В, С, D, E – двумерные массивы размерности MxN, составленные из элементов заданного типа. При этом А вводится с клавиатуры, В строится по формуле, С заполняется случайным образом значениями, лежащими на отрезке [a;b], Е заполняется единицами, а D получается из перечисленных массивов заданной линейной комбинацией. Ввести А, создать все остальные массивы и распечатать все массивы, используя функцию вывода массива. M=2; N=5; тип integer; B[i,j]=i*j-(5-i-j); [a;b]=[-3;6]; D=6E-C-2B-3A Описать функцию, находящую минимальное из двух вещественных чисел A и B. С помощью этой функции найти минимальные из пар чисел A и B, A и C, A и D, если даны числа A, B, C, D. Описать функцию, записывающую в переменную A минимальное из значений A и B, а в переменную B — максимальное из этих значений. Используя четыре вызова этой процедуры, найти минимальное и максимальное из чисел A, B, C, D. 58 59 60 61 62 63 64 65 66 67 68 Даны действительные числа a, b, c. Получить -+.(+,+,1),-+.(+,1,3) #,-+.(+,13,#.#$) Описать все необходимые функции для нахождения площади треугольника ABC по формуле Герона: S ABC = sqrt(p·(p–|AB|)·(p–|AC|)·(p–|BC|)), где p — полупериметр. С помощью этой функции найти площади треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D. Описать функцию, записывающую в переменную A минимальное из значений A и B, а в переменную B — максимальное из этих значений. Используя четыре вызова этой процедуры, найти минимальное и максимальное из чисел A, B, C, D. Описать функцию, находящую сумму цифр S целого числа N. Используя эту процедуру, найти суммы цифр пяти данных чисел. Описать функцию, находящую приближенное, с заданной точностью, значение функции exp(x) = 1 + x + x 2 / 2! + x 3 / 3! + ... + x n / n! + ... . В сумме учитывать все слагаемые, большие заданной разрешенной погрешности eps. С помощью этой функции найти приближенное значение экспоненты для данного x с шестью различными точностями. Описать функцию, находящую наибольший общий делитель (НОД) двух натуральных чисел A и B, используя алгоритм Евклида. С помощью этой функции найти наибольшие общие делители пар A и B, A и C, A и D, если даны числа A, B, C, D. Даны действительные числа x 1 , y 1 , x 2 , y 2 , …, x 10 , y 10 . Найти периметр десятиугольника, вершины которого имеют соответственно координаты (x 1 , y 1 ), (x 2 , y2 ), …, (x 10 , y 10 ). Определить и использовать функцию вычисления расстояния между двумя точками, заданными своими координатами. Даны действительные числа u 1 , u 2 , v 1 , v 2 , w 1 , w 2 . Получить 2𝑢 + "56 !,678 − 7, где u, w, v – комплексные числа (u 1 + iu 2 ), (v 1 + iv 2 ), (w 1 + iw 2 ). Определить процедуры выполнения арифметических операций над комплексными числами. Описать все необходимые функции для нахождения высот hA, hB, hC треугольника ABC, проведенных соответственно из вершин A, B, C. С помощью этой функции найти высоты треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D. Написать функцию, определяющую, есть ли в записи числа N цифра 3. Рассмотреть два случая: · исходное число записывается посимвольно в строке; · исходное число размещается в одной ячейке в формате int. РЕКУРСИВНЫЕ АЛГОРИТМЫ Написать рекурсивную программу вывода на экран следующей картинки: 1111111111111111 222222222222 33333333 4444 33333333 222222222222 1111111111111111 69 70 71 72 73 74 75 76 77 78 79 В выражении 12894*4193*9510*8653*4381*2546*1158*8645*2587 заменить звёздочки знаками "+" или "-" так, чтобы получившееся арифметическое выражение равнялось 1989. В написанном выражении ((((1 ? 2) ? 3) ? 4) ? 5) ? 6 вместо каждого знака "?" вставить знак одного из четырёх арифметических действий: +, -, *, / - так, чтобы результат вычислений равнялся 35 (при делении дробная часть в частном отбрасывается). Вычислите наибольший общий делитель двух чисел, используя рекурсивную функцию. Из данных предметов выбрать такие, чтобы суммарный вес был менее 30 кг, а стоимость - наибольшей. |