Методические указания для студентов механикоматематического, физического и экономического факультетов РостовнаДону 2004
Скачать 0.6 Mb.
|
N (> 1), являющееся числом Фибоначчи: N = F K (оп- ределение чисел Фибоначчи дано в задании While24). Найти целые числа F K–1 и F K+1 — предыдущее и последующее числа Фибоначчи. 30 While27. Дано целое число N (> 1), являющееся числом Фибоначчи: N = F K (оп- ределение чисел Фибоначчи дано в задании While24). Найти целое число K — порядковый номер числа Фибоначчи N. While28. Дано вещественное число ε (> 0). Последовательность вещественных чисел A K определяется следующим образом: A 1 = 2, A K = 2 + 1/A K–1 , K = 2, 3, … . Найти первый из номеров K, для которых выполняется условие |A K – A K–1 | < ε, и вывести этот номер, а также числа A K–1 и A K While29. Дано вещественное число ε (> 0). Последовательность вещественных чисел A K определяется следующим образом: A 1 = 1, A 2 = 2, A K = (A K–2 + 2·A K–1 )/3, K = 3, 4, … . Найти первый из номеров K, для которых выполняется условие |A K – A K–1 | < ε, и вывести этот номер, а также числа A K–1 и A K While30. Даны положительные числа A, B, C. На прямоугольнике размера A × B размещено максимально возможное количество квадратов со стороной C (без наложений). Найти количество квадратов, размещенных на прямо- угольнике. Операции умножения и деления не использовать. 10 Последовательности: группа Series Во всех заданиях данной группы предполагается, что исходный набор со- держит ненулевое число элементов (в частности, число N всегда больше нуля). В заданиях на обработку нескольких наборов чисел (Series29–Series40) количе- ство наборов K также всегда является ненулевым. Для решения заданий из данной группы следует использовать «однопро- ходные» алгоритмы, позволяющие получить требуемый результат после одно- кратного просмотра набора исходных данных. Однопроходные алгоритмы об- ладают важным преимуществом: для них не требуется хранить в памяти одно- временно весь набор данных, поэтому при программной реализации этих алго- ритмов можно не использовать массивы. Series1 °. Даны десять вещественных чисел. Найти их сумму. Series2. Даны десять вещественных чисел. Найти их произведение. Series3. Даны десять вещественных чисел. Найти их среднее арифметическое. Series4. Дано целое число N и набор из N вещественных чисел. Вывести сумму и произведение чисел из данного набора. Series5. Дано целое число N и набор из N положительных вещественных чисел. Вывести в том же порядке целые части всех чисел из данного набора (как 31 вещественные числа с нулевой дробной частью), а также сумму всех целых частей. Series6. Дано целое число N и набор из N положительных вещественных чисел. Вывести в том же порядке дробные части всех чисел из данного набора (как вещественные числа с нулевой целой частью), а также произведение всех дробных частей. Series7. Дано целое число N и набор из N вещественных чисел. Вывести в том же порядке округленные значения всех чисел из данного набора (как целые числа), а также сумму всех округленных значений. Series8. Дано целое число N и набор из N целых чисел. Вывести в том же по- рядке все четные числа из данного набора и количество K таких чисел. Series9. Дано целое число N и набор из N целых чисел. Вывести в том же по- рядке номера всех нечетных чисел из данного набора и количество K таких чисел. Series10. Дано целое число N и набор из N целых чисел. Если в наборе имеют- ся положительные числа, то вывести True; в противном случае вывести False. Series11. Даны целые числа K, N и набор из N целых чисел. Если в наборе имеются числа, меньшие K, то вывести True; в противном случае вывести False. Series12. Дан набор ненулевых целых чисел; признак его завершения — чис- ло 0. Вывести количество чисел в наборе. Series13. Дан набор ненулевых целых чисел; признак его завершения — чис- ло 0. Вывести сумму всех положительных четных чисел из данного набора. Если требуемые числа в наборе отсутствуют, то вывести 0. Series14. Дано целое число K и набор ненулевых целых чисел; признак его за- вершения — число 0. Вывести количество чисел в наборе, меньших K. Series15 °. Дано целое число K и набор ненулевых целых чисел; признак его за- вершения — число 0. Вывести номер первого числа в наборе, большего K. Если таких чисел нет, то вывести 0. Series16 °. Дано целое число K и набор ненулевых целых чисел; признак его за- вершения — число 0. Вывести номер последнего числа в наборе, больше- го K. Если таких чисел нет, то вывести 0. Series17 °. Дано вещественное число B, целое число N и набор из N веществен- ных чисел, упорядоченных по возрастанию. Вывести элементы набора вместе с числом B, сохраняя упорядоченность выводимых чисел. Series18. Дано целое число N и набор из N целых чисел, упорядоченный по возрастанию. Данный набор может содержать одинаковые элементы. Вы- вести в том же порядке все различные элементы данного набора. 32 Series19 °. Дано целое число N (> 1) и набор из N целых чисел. Вывести те эле- менты в наборе, которые меньше своего левого соседа, и количество K та- ких элементов. Series20. Дано целое число N (> 1) и набор из N целых чисел. Вывести те эле- менты в наборе, которые меньше своего правого соседа, и количество K таких элементов. Series21 °. Дано целое число N (> 1) и набор из N вещественных чисел. Прове- рить, образует ли данный набор возрастающую последовательность. Если образует, то вывести True, если нет — вывести False. Series22. Дано целое число N (> 1) и набор из N вещественных чисел. Если данный набор образует убывающую последовательность, то вывести 0; в противном случае вывести номер первого числа, нарушающего законо- мерность. Series23. Дано целое число N (> 2) и набор из N вещественных чисел. Набор называется пилообразным, если каждый его внутренний элемент либо больше, либо меньше обоих своих соседей (то есть является «зубцом»). Если данный набор является пилообразным, то вывести 0; в противном случае вывести номер первого элемента, не являющегося зубцом. Series24. Дано целое число N и набор из N целых чисел, содержащий по край- ней мере два нуля. Вывести сумму чисел из данного набора, расположен- ных между последними двумя нулями (если последние нули идут подряд, то вывести 0). Series25. Дано целое число N и набор из N целых чисел, содержащий по край- ней мере два нуля. Вывести сумму чисел из данного набора, расположен- ных между первым и последним нулем (если первый и последний нули идут подряд, то вывести 0). Вложенные циклы Series26. Даны целые числа K, N и набор из N вещественных чисел: A 1 , A 2 , …, A N . Вывести K-e степени чисел из данного набора: (A 1 ) K , (A 2 ) K , …, (A N ) K Series27. Дано целое число N и набор из N вещественных чисел: A 1 , A 2 , …, A N Вывести следующие числа: A 1 , (A 2 ) 2 , …, (A N–1 ) N–1 , (A N ) N Series28. Дано целое число N и набор из N вещественных чисел: A 1 , A 2 , …, A N Вывести следующие числа: (A 1 ) N , (A 2 ) N–1 , …, (A N–1 ) 2 , A N Series29. Даны целые числа K, N, а также K наборов целых чисел по N элемен- тов в каждом наборе. Вывести общую сумму всех элементов, входящих в данные наборы. 33 Series30. Даны целые числа K, N, а также K наборов целых чисел по N элемен- тов в каждом наборе. Для каждого набора вывести сумму его элементов. Series31. Даны целые числа K, N, а также K наборов целых чисел по N элемен- тов в каждом наборе. Найти количество наборов, содержащих число 2. Ес- ли таких наборов нет, то вывести 0. Series32. Даны целые числа K, N, а также K наборов целых чисел по N элемен- тов в каждом наборе. Для каждого набора вывести номер его первого эле- мента, равного 2, или число 0, если в данном наборе нет двоек. Series33. Даны целые числа K, N, а также K наборов целых чисел по N элемен- тов в каждом наборе. Для каждого набора вывести номер его последнего элемента, равного 2, или число 0, если в данном наборе нет двоек. Series34. Даны целые числа K, N, а также K наборов целых чисел по N элемен- тов в каждом наборе. Для каждого набора выполнить следующее действие: если в наборе содержится число 2, то вывести сумму его элементов; если в наборе нет двоек, то вывести 0. Series35. Дано целое число K, а также K наборов ненулевых целых чисел. При- знаком завершения каждого набора является число 0. Для каждого набора вывести количество его элементов. Вывести также общее количество эле- ментов во всех наборах. Series36. Дано целое число K, а также K наборов ненулевых целых чисел. Ка- ждый набор содержит не менее двух элементов, признаком его завершения является число 0. Найти количество наборов, элементы которых возраста- ют. Series37. Дано целое число K, а также K наборов ненулевых целых чисел. Ка- ждый набор содержит не менее двух элементов, признаком его завершения является число 0. Найти количество наборов, элементы которых возраста- ют или убывают. Series38. Дано целое число K, а также K наборов ненулевых целых чисел. Ка- ждый набор содержит не менее двух элементов, признаком его завершения является число 0. Для каждого набора выполнить следующее действие: ес- ли элементы набора возрастают, то вывести 1; если элементы набора убы- вают, то вывести –1; если элементы набора не возрастают и не убывают, то вывести 0. Series39. Дано целое число K, а также K наборов ненулевых целых чисел. Ка- ждый набор содержит не менее трех элементов, признаком его завершения является число 0. Найти количество пилообразных наборов (определение пилообразного набора дано в задании Series23). Series40. Дано целое число K, а также K наборов ненулевых целых чисел. Ка- ждый набор содержит не менее трех элементов, признаком его завершения 34 является число 0. Для каждого набора выполнить следующее действие: ес- ли набор является пилообразным (см. задание Series23), то вывести коли- чество его элементов; в противном случае вывести номер первого элемен- та, который не является зубцом. 11 Процедуры и функции: группа Proc 11.1 Процедуры с числовыми параметрами Proc1. Описать процедуру PowerA3(A, B), вычисляющую третью степень числа A и возвращающую ее в переменной B (A — входной, B — выходной пара- метр; оба параметра являются вещественными). С помощью этой процеду- ры найти третьи степени пяти данных чисел. Proc2. Описать процедуру PowerA234(A, B, C, D), вычисляющую вторую, тре- тью и четвертую степень числа A и возвращающую эти степени соответст- венно в переменных B, C и D (A — входной, B, C, D — выходные парамет- ры; все параметры являются вещественными). С помощью этой процедуры найти вторую, третью и четвертую степень пяти данных чисел. Proc3. Описать процедуру Mean(X, Y, AMean, GMean), вычисляющую среднее арифметическое AMean = (X + Y)/2 и среднее геометрическое GMean = = X Y ⋅ двух положительных чисел X и Y (X и Y — входные, AMean и GMean — выходные параметры вещественного типа). С помощью этой процедуры найти среднее арифметическое и среднее геометрическое для пар (A, B), (A, C), (A, D), если даны A, B, C, D. Proc4 °. Описать процедуру TrianglePS(a, P, S), вычисляющую по стороне a равностороннего треугольника его периметр P = 3·a и площадь S = 2 3 / 4 a (a — входной, P и S — выходные параметры; все параметры являются ве- щественными). С помощью этой процедуры найти периметры и площади трех равносторонних треугольников с данными сторонами. Proc5. Описать процедуру RectPS(x 1 , y 1 , x 2 , y 2 , P, S), вычисляющую периметр P и площадь S прямоугольника со сторонами, параллельными осям коорди- нат, по координатам (x 1 , y 1 ), (x 2 , y 2 ) его противоположных вершин (x 1 , y 1 , x 2 , y 2 — входные, P и S — выходные параметры вещественного типа). С помощью этой процедуры найти периметры и площади трех прямо- угольников с данными противоположными вершинами. Proc6. Описать процедуру DigitCountSum(K, C, S), находящую количество C цифр целого положительного числа K, а также их сумму S (K — входной, C и S — выходные параметры целого типа). С помощью этой процедуры найти количество и сумму цифр для каждого из пяти данных целых чисел. 35 Proc7. Описать процедуру InvertDigits(K), меняющую порядок следования цифр целого положительного числа K на обратный (K — параметр целого типа, являющийся одновременно входным и выходным). С помощью этой процедуры поменять порядок следования цифр на обратный для каждого из пяти данных целых чисел. Proc8 °. Описать процедуру AddRightDigit(D, K), добавляющую к целому поло- жительному числу K справа цифру D (D — входной параметр целого типа, лежащий в диапазоне 0–9, K — параметр целого типа, являющийся одно- временно входным и выходным). С помощью этой процедуры последова- тельно добавить к данному числу K справа данные цифры D 1 и D 2 , выводя результат каждого добавления. Proc9. Описать процедуру AddLeftDigit(D, K), добавляющую к целому положи- тельному числу K слева цифру D (D — входной параметр целого типа, ле- жащий в диапазоне 1–9, K — параметр целого типа, являющийся одновре- менно входным и выходным). С помощью этой процедуры последователь- но добавить к данному числу K слева данные цифры D 1 и D 2 , выводя ре- зультат каждого добавления. Proc10. Описать процедуру Swap(X, Y), меняющую содержимое переменных X и Y (X и Y — вещественные параметры, являющиеся одновременно вход- ными и выходными). С ее помощью для данных переменных A, B, C, D по- следовательно поменять содержимое следующих пар: A и B, C и D, B и C и вывести новые значения A, B, C, D. Proc11. Описать процедуру Minmax(X, Y), записывающую в переменную X ми- нимальное из значений X и Y, а в переменную Y — максимальное из этих значений (X и Y — вещественные параметры, являющиеся одновременно входными и выходными). Используя четыре вызова этой процедуры, найти минимальное и максимальное из данных чисел A, B, C, D. Proc12. Описать процедуру SortInc3(A, B, C), меняющую содержимое перемен- ных A, B, C таким образом, чтобы их значения оказались упорядоченными по возрастанию (A, B, C — вещественные параметры, являющиеся одно- временно входными и выходными). С помощью этой процедуры упорядо- чить по возрастанию два данных набора из трех чисел: (A 1 , B 1 , C 1 ) и (A 2 , B 2 , C 2 ). Proc13. Описать процедуру SortDec3(A, B, C), меняющую содержимое пере- менных A, B, C таким образом, чтобы их значения оказались упорядочен- ными по убыванию (A, B, C — вещественные параметры, являющиеся од- новременно входными и выходными). С помощью этой процедуры упоря- дочить по убыванию два данных набора из трех чисел: (A 1 , B 1 , C 1 ) и (A 2 , B 2 , C 2 ). 36 Proc14. Описать процедуру ShiftRight3(A, B, C), выполняющую правый цикли- ческий сдвиг: значение A переходит в B, значение B — в C, значение C — в A (A, B, C — вещественные параметры, являющиеся одновременно вход- ными и выходными). С помощью этой процедуры выполнить правый цик- лический сдвиг для двух данных наборов из трех чисел: (A 1 , B 1 , C 1 ) и (A 2 , B 2 , C 2 ). Proc15. Описать процедуру ShiftLeft3(A, B, C), выполняющую левый цикличе- |