
- •Введение
- •Переменные и константы
- •Типы данных
- •Числовые функции
- •Класс Random
- •Линейные алгоритмы
- •Условные операторы
- •Оператор if...Else
- •Оператор выбора switch
- •Оператор цикла с параметром
- •Сумма конечного ряда
- •Обработка данных во время ввода
- •Циклы с постусловием и предусловием
- •Дополнительные задачи
- •Массивы
- •Одномерные массивы Пример
- •Инициализация массива
- •Обработка элементов массива
- •Задания на определение суммы и количества элементов одномерного массива, соответствующих определенному условию
- •Задания на нахождение максимального и минимального элемента в одномерном числовом массиве
- •Работа с двумя массивами
- •Условный оператор после обработки массива
- •Самостоятельные задания по теме «Одномерные массивы»
- •Двумерные массивы Простейшие задачи
- •Сравнение (анализ) элементов
- •Расчётные задачи
- •Простейшие задачи
- •Поиск в текстовом файле
- •Работа с несколькими файлами
- •Текстовые файлы
- •Функции и процедуры
- •Библиографический список
Функции и процедуры
Теория - ? и пример - ?
Получить все шестизначные счастливые номера. Счастливым называют такое шестизначное число, для которого сумма его первых трёх цифр равна сумме его последних трёх цифр. Определить функцию для расчёта суммы цифр трёхзначного числа.
Даны шесть различных чисел. Определить максимальное из них. Определить функцию, находящую максимум из двух различных чисел.
Даны два предложения. В каком из них доля в % вхождений букв «б» больше? Определить функцию для расчёта доли вхождений некоторой буквы в предложение.
Даны стороны двух треугольников. Найти сумму их периметров и сумму их площадей. Определить процедуру для расчёта периметра и площади треугольника по его сторонам.
Написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке.
Описать функцию Min2(A,B)1|Max2(A,B)2 вещественного типа, находящую минимальное1|максимальное2 из двух вещественных чисел A и B. С помощью этой функции найти минимальные1|максимальные2 из пар чисел A и B, A и C, A и D, если даны числа A, B, C, D.
Описать процедуру Minmax(A,B), записывающую в переменную A минимальное из значений A и B, а в переменную B — максимальное из этих значений (A и B — вещественные параметры, являющиеся одновременно входными и выходными). Используя четыре вызова этой процедуры, найти минимальное и максимальное из ·исел A, B, C, D.
Используя процедуру Minmax из задания Proc2, описать функцию Min3(A,B,C)1|Max3(A,B,C)2 вещественного типа, находящую минимальное1|максимальное2 из трех вещественных чисел A, B и C. С помощью этой функции найти минимальные1|максимальные2 из наборов (A,B,C), (A,B,D), (A,C,D), если даны числа A, B, C, D.
Используя функцию Min21|Max22 из задания Proc1, описать функцию Min4(A,B,C,D)1|Max4(A,B,C,D)2 вещественного типа, находящую минимальное1|максимальное2 из четырех вещественных чисел A, B, C и D. С помощью этой функции найти минимальные1|максимальные2 из наборов (A,B,C,D), (A,B,C,E), (A,C,D,E), если даны числа A, B, C, D, E.
Описать функцию Fact(N) целого типа, вычисляющую значение факториала N! = 1·2·...·N (N > 0 — параметр целого типа). С помощью этой фунЄции вычислить факториалы 10 данных чисел.
Описать функцию FactR(N) вещественного типа, позволяющую вычислять приближенное значение факториала N! = 1·2·...·N для целых N (> 0). С помощью этой функции вычислить факториалы пяти данных чисел.
Описать функцию Fact2(N) целого типа, вычисляющую значение "двойного факториала": N!! = 1·3·5·...·N, если N — нечетное, N!! = 2·4·6·...·N, если N — четное (N > 0 — параметр целого типа). С помощью этой функции вычислить двойные факториалы десяти данных чисел.
Описать нерекурсивную функцию Fib(N) целого типа, вычисляющую N-е число Фибоначчи F(N) по формуле: F(1) = F(2) = 1, F(k) = F(k–2) + F(k–1), k = 3, 4, ... . С помощью этой функции вычислить 10 чисел Фибоначчи с указанными номерами.
Описать процедуру SumDigit(N,S), находящую сумму цифр S целого числа N (N — входной, S — выходной параметр). Используя эту процедуру, найти суммы цифр пяти данных чисел.
Описать нерекурсивную функцию NOD2(A,B) целого типа, находящую наибольший общий делитель (НОД) двух натуральных чисел A и B, используя алгоритм Евклида: НОД(A,B) = НОД(B mod A,A), если A <> 0; НОД(0,B) = B. С помощью этой функции найти наибольшие общие делители пар A и B, A и C, A и D, если даны числа A, B, C, D.
Используя функцию NOD2 из задания Proc10, описать процедуру Frac(a,b,p,q), преобразующую дробь a/b к несократимому виду p/q (все параметры процедуры — целого типа). Знак результирующей дроби p/q приписывается числителю (т.е. q > 0). С помощью этой процедуры найти несократимые дроби, равные a/b + c/d, a/b + e/f, a/b + g/h (числа a, b, c, d, e, f, g, h даны).
Описать функцию Exp1(x,eps) вещественного типа (параметры x, eps — вещественные, eps > 0), находящую приближенное значение функции exp(x): exp(x) = 1 + x + x2 / 2! + x3 / 3! + ... + xn / n! + ... . В сумме учитывать все слагаемые, большие eps. С помощью Exp1 найти приближенное значение экспоненты для данного x при шести данных eps.
Описать функцию Sin1(x,eps)1|Cos1(x,eps)2 вещественного типа (параметры x, eps — вещественные, eps > 0), находящую приближенное значение функции sin(x)1|cos(x)2: [sin(x) = x – x3 / 3! + x5 / 5! – ... + (–1)n x2n+1 / (2n+1)! + ...]1| [cos(x) = 1 – x2 / 2! + x4 / 4! – ... + (–1)n x2n / (2n)! + ...]2. В сумме учитывать все слагаемые, большие по модулю eps. С помощью Sin11|Cos12 найти приближенное значение синуса1|косинуса2 для данного x при шести данных значениях eps.
Описать функцию Ln1(x,n)1|Arctg1(x,n)2 вещественного типа (параметры x, eps — вещественные, |x| < 1, eps > 0), находящую приближенное значение функции ln(1+x)1|arctg(x)2: [ln(1+x) = x – x2 / 2 + x3 / 3 – ... + (–1)n xn+1 / (n+1) + ...]1| [arctg(x) = x – x3 / 3 + x5 / 5 – ... + (–1)n x2n+1 / (2n+1) + ...]2. В сумме учитывать все слагаемые, большие по модулю eps. С помощью Ln11|Arctg12 найти приближенное значение ln(1+x)1|arctg(x)2 для данного x при шести данных значениях eps.
Описать функцию PowerA(x,a,eps) вещественного типа (параметры x, a, eps — вещественные, |x| < 1, a > 0, eps > 0), находящую приближенное значение функции (1+x)a: (1+x)a = 1 + a·x + a·(a–1)·x2 / 2! + ... + a·(a–1)·...·(a–n+1)·xn / n! + ... . В сумме учитывать все слагаемые, большие по модулю eps. С помощью PowerA найти приближенное значение (1+x)a для данных x и a при шести различных значениях eps.
Описать функцию Otr(Ax,Ay,Bx,By) вещественного типа, находящую длину отрезка AB на плоскости по координатам его концов: |AB| = sqrt((Ax-Bx)2 + (Ay-By)2) (Ax, Ay, Bx, By — вещественные параметры). С помощью этой функции найти длины отрезков AB, AC, AD, если даны координаты точек A, B, C, D.
Используя функцию Otr из задания Proc16, описать функцию Perim(Ax,Ay,Bx,By,Cx,Cy) вещественного типа, находящую периметр треугольника ABC по координатам его вершин (Ax, Ay, Bx, By, Cx, Cy — вещественные параметры). С помощью этой функции найти периметры треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.
Используя функции Otr и Perim из заданий Proc16 и Proc17, описать функцию Area(Ax,Ay,Bx,By,Cx,Cy) вещественного типа, находящую okny`d| треугольника ABC по формуле Герона: SABC = sqrt(p·(p–|AB|)·(p–|AC|)·(p–|BC|)), где p — полупериметр. С помощью этой функции найти площади треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.
Используя функции Otr и Area из заданий Proc16 и Proc18, описать процедуру Dist(Px,Py,Ax,Ay,Bx,By,D), находящую расстояние D от точки P до прямой AB по формуле D = 2SPAB / |AB|, где SPAB — площадь треугольника PAB. С помощью этой процедуры найти расстояния от точки P до прямых AB, AC, BC, если даны координаты точек P, A, B, C.
Используя процедуру Dist из задания Proc19, описать процедуру Heights(Ax,Ay,Bx,By,Cx,Cy,hA,hB,hC), находящую высоты hA, hB, hC треугольника ABC, проведенные соответственно из вершин A, B, C. С помощью этой процедуры найти высоты треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D.
Классы
Теория - ? и пример - ?
Определить класс «Дом», содержащий следующие поля:
количество этажей
ширина дома
длина дома
стоимость постройки 1 кв.м дома
Определить методы класса:
общая площадь дома
количество затрачиваемых материалов
стоимость постройки дома
Создать три экземпляра класса «Дом»
Определить класс «Студент», содержащий следующие поля:
номер студента
оценка по экзамену 1
оценка по экзамену 2
оценка по курсовой работе
Определить методы класса:
средняя оценка
минимальная оценка
максимальная оценка
Создать три экземпляра класса «Студент»
Определить класс «Рабочий», содержащий следующие поля:
номер рабочего
год рождения рабочего
заработная плата рабочего
премия рабочего
Определить методы класса:
выдача заработной платы (заработная плата + премия – 13% подоходный налог)
возраст рабочего
Создать три экземпляра класса «Рабочий»
Определить класс «Поезд», содержащий следующие поля:
номер поезда
длина маршрута (в км)
стоимость 1 км
количество пассажиров
Определить методы класса:
стоимость билета на поезд для одного пассажира
стоимость билетов на поезд для всех пассажиров
Создать три экземпляра класса «Поезд»
Определить класс «Магазин», содержащий следующие поля:
номер товара
стоимость единицы товара
количество товара (в шт.)
скидка на товар (в %)
Определить методы класса:
стоимость всех единиц данного товара
стоимость всех единиц данного товара со скидкой
Создать три экземпляра класса «Магазин»
Определить класс «Банк», содержащий следующие поля:
номер расчетного счета
сумма на расчетном счете в руб.
поступившая сумма в евро
текущий курс евро
Определить методы класса:
поступившая сумма в рублях
общая сумма на расчетном счете в рублях
общая сумма в евро
Создать три экземпляра класса «Банк»
Определить класс «Склад», содержащий следующие поля:
номер клиента склада
количество товара, отгруженного клиенту
стоимость единицы товара (руб.)
месяц отгрузки товара
текущий курс евро
Определить методы класса:
стоимость товара, отгруженного клиенту в руб.
стоимость товара, отгруженного клиенту в евро
количество месяцев, прошедшее с момента отгрузки товара
Создать три экземпляра класса «Склад»
Определить класс «Животное», содержащий следующие поля:
номер животного
вес животного
год рождения животного
количество еды, необходимое для питания на 1 кг веса животного
Определить методы класса:
возраст животного
рассчитать количество еды, необходимое животному
Создать три экземпляра класса «Животное»
Определить класс «Аптека», содержащий следующие поля:
номер лекарства
стоимость 1 г лекарства
сколько г лекарства необходимо на 1 кг больного
вес больного, для которого заказывается лекарство
скидка
Определить методы класса:
рассчитать количество лекарства, необходимого человеку
рассчитать стоимость лекарства
рассчитать стоимость лекарства со скидкой
Создать три экземпляра класса «Аптека»
Определить класс «Ребенок», содержащий следующие поля:
номер ребенка
год рождения
стоимость 100 г каши
количество каши, съедаемое ребенком за один прием пищи (в г)
количество приемов пищи ребенком за день
Определить методы класса:
возраст ребенка
количество каши, съедаемое ребенком за день
стоимость каши, съедаемой ребенком за день
стоимость каши, съедаемой ребенком за один прием пищи
Создать три экземпляра класса «Ребенок»
Определить класс «Пляж», содержащий следующие поля:
номер пляжа
количество посетителей пляжа
количество коктейлей, выпиваемых одним посетителем
стоимость одного коктейля
Определить методы класса:
стоимость коктейлей, выпиваемых одним посетителем пляжа за 1 день
стоимость коктейлей, выпиваемых всеми посетителями пляжа за 1 день
стоимость коктейлей, выпиваемых одним посетителем пляжа за 7 дней
стоимость коктейлей, выпиваемых всеми посетителями пляжа за 7 дней
Создать три экземпляра класса «Пляж»
Определить класс «Фотоателье», содержащий следующие поля:
номер фотоателье
стоимость одной фотографии 10 х 15
стоимость одной фотографии на загранпаспорт
Определить методы класса:
стоимость фотографии 10 х 15 и трёх фотографий на загранпаспорт
стоимость 36 фотографий 10 х 15
стоимость 100 фотографий 10 х 15 со скидкой 5%
Создать три экземпляра класса «Фотоателье»
Определить класс «Салон красоты», содержащий следующие поля:
номер услуги, оказываемой салоном
стоимость услуги
количество посещений салона клиентом
скидка в % на каждое последующее посещение салона
Определить методы класса:
стоимость всех посещений без скидки
стоимость всех посещений со скидкой
сколько сэкономил клиент за все посещения
Создать три экземпляра класса «Салон красоты»
Определить класс «Цветок», содержащий следующие поля:
номер цветка
высота цветка (в см)
количество удобрений, необходимое для 1 см цветка ( в г)
стоимость 1 г удобрений
Определить методы класса:
количество удобрений, необходимое для цветка
стоимость удобрений для цветка
стоимость удобрений для 10 таких цветов
Создать три экземпляра класса «Цветок»
Определить класс «Посуда», содержащий следующие поля:
номер посуды
стоимость 1 тарелки
стоимость 1 чашки
стоимость 1 блюдца
Определить методы класса:
стоимость набора посуды: 3 чашки + 3 блюдца
стоимость набора посуды: 3 чашки + 3 блюдца + 3 тарелки
стоимость набора посуды: 6 чашек + 6 блюдец + 6 тарелок
Создать три экземпляра класса «Посуда»