1. Задать координаты вершин прямоугольника АВСД. Найти длины его сторон, длину диагонали и площадь. Длины отрезков рассчитывать в подпрограмме.
2. Написать программу определения наибольшего из четырех чисел, используя подпрограмму определения наибольшего из двух чисел.
3. Написать программу, которая по введенному значению температуры по Цельсию, рассчитывает температуры по шкале Кельвина и Фаренгейта. Основная программа производит печать, расчет температур оформить в виде подпрограммы.
4. Написать программу, которая решает квадратное уравнение и проверяет решение. Расчет корней уравнения провести в подпрограмме.
5. Программа должна давать заключение, является ли треугольник с вершинами А(x,y), В(x1,y1), С(x2,y2) прямоугольным. Расчёт длины стороны производить в подпрограмме.
6. Даны длины двух сторон треугольника и угол между ними. Используя теорему косинусов, найти два других угла треугольника. Проверить, что сумма углов треугольника равна 180о. Расчет угла производить в подпрограмме.
7. Даны длина стороны треугольника и значения прилегающих углов. Используя теорему синусов, найти две другие стороны треугольника и его периметр. Расчет стороны производить в подпрограмме.
8. Написать программу, которая находит наибольший общий делитель (НОД) трех натуральных чисел. Алгоритм Евклида оформить в виде подпрограммы.
9. В одномерном массиве найти наибольший и второй по величине элемент. Поиск максимального в массиве с произвольным числом элементов оформить как отдельную функцию.
10. Даны координаты выпуклого n- угольника. Найти его углы.
11. Даны координаты выпуклого n- угольника. Определить его площадь, как сумму площадей треугольника. Площадь треугольника по формуле Герона вычислять с помощью подпрограммы.
12. Даны размеры (высота и радиус основания) нескольких конусов. Определить фигуру, отношение площади поверхности к объему у которой наибольшая. Расчет площади поверхности и объема провести в подпрограмме.
13.Сортировка выбором. Написать программу, в которой введенный одномерный массив сортируется выбором. Реализовать печать массива и сортировку в отдельных подпрограммах. Для сортировки при просмотре мaссива будем искать элемент, меньше первого. Если такой элемент найден, поменяем его местами с первым и продолжим просмотр массива. Затем повторим эту операцию, но начнем не с первого элемента, а со второго. И будем продолжать подобным образом, пока не рассортируем весь массив.Подсчитайте количество перестановок чисел.
14.Сортировка вставками. Написать программу, в которой введенный одномерный массив сортируется выбором. Реализовать печать массива и сортировку в отдельных подпрограммах. Для сортировки элементы массива условно разбиваются на готовую последовательность а1, а2, а3,... аi-1 и входную последовательность аi,... аn. На каждом шаге, начиная с i=2, берут i- тый элемент входной последовательности и вставляют его на нужное место в готовой последовательности. При этом часть элементов готовой последовательности приходится перемещать. Отсортируйте массив по возрастанию. Подсчитайте количество перестановок чисел.
15. Даны две целочисленных таблицы А[1:10] и В[1:10]. Написать программу, которая проверяет, являются ли эти таблицы одинаковыми. Указание: Отсортируйте массивы и сравните их поэлементно.
16. Даны две целочисленных таблицы А [1:10] и В[1:15]. Разработать алгоритм и написать программу, которая проверяет, являются ли эти таблицы похожими. Две таблицы называются похожими, если совпадают множества чисел, встречающихся в этих таблицах. Указание: отсортировать оба массива - и A, и B (например, по неубыванию). Далее, если первые элементы массивов A и B совпадают, то ищем и в A, и в B минимальные элементы, большие данного, и повторяем сравнения; если же элементы не совпадают, либо один из массивов уже закончился, а другой еще нет, то массивы не похожие.
17. Имеются числа А1,А2,...,АN и B1,B2,...,BN. Составить из них N пар (Аi, Bj) таким образом, чтобы сумма произведений пар была максимальна (минимальна). Каждое Ai и Bj в парах встречаются ровно по одному разу. Указание: Чтобы сумма произведений пар была максимальна (минимальна) необходимо упорядочить наборы A и B одинаковым (различным) образом и пары будут составлять элементы стоящие на одинаковых позициях в упорядоченных наборах.
18.Число сочетаний рассчитывается по формуле с(i,j)=i!/(j!*(i-j)!). Написать программу, которая рассчитывает число сочетаний для введенных i и j. Вычисление факториала оформить как подпрограмму. Запрограммировать итерационный и рекурсивный варианты вычисления факториала.
19. Сортировка Шелла. Написать программу, в которой введенный одномерный массив сортируется с помощью сортировки Шелла. Реализовать печать массива и сортировку в отдельных подпрограммах. Для сортировки на первом проходе массива сортируются группы элементов, отстоящие друг от друга, например, на 4 позиции (4-сортировка). На втором проходе сортируются элементы, отстоящие друг от друга, например, на 2 позиции (2-сортировка). На третьем проходе сортируются все элементы (1-сортировка). Теоретические разработки показывают, что лучше брать последовательные сортировки не степени двойки, а последовательность (записана в обратном порядке):1, 4, 13, 40, 121,.. или 1, 3, 7, 15, 31...
20. Метод Хoаpа. Написать программу с подпрограммой сортировки по следующему методу. Сначала выбирают элемент в середине массива (его называют опорным). Затем остальные элементы перемещаются так, чтобы слева остались те элементы, что меньше опорного, а справа - те, что не меньше его. Сделаем это следующим образом:
Параметрами подпрограммы являются массив a[0]...a[N] и опорный элемент p, по которому будет производиться разделение.
- Введем два указателя: i и j. В начале алгоритма они указывают, соответственно, на левый и правый конец последовательности.
- Будем двигать указатель i с шагом в 1 элемент по направлению к концу массива, пока не будет найден элемент a[i] >= p. Затем аналогичным образом начнем двигать указатель j от конца массива к началу, пока не будет найден a[j] < p.
- Далее, если i <= j, меняем a[i] и a[j] местами и продолжаем двигать i,j по тем же правилам...
- Повторяем, пока i <= j.
Комментариев нет:
Отправить комментарий