Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практика 1.docx
Скачиваний:
2
Добавлен:
12.11.2019
Размер:
147.25 Кб
Скачать

Задания для самостоятельного выполнения

Пример 1. Известны плотность и геометрические размеры цилиндрического слитка, полученного в металлургической лаборатории. Найти объем, массу и площадь основания слитка.

Входные данные: R - радиус основания цилиндра, h - высота цилиндра, ρ- плотность материала слитка.

Выходные данные: m - масса слитка, V - объем, S - площадь основания.

Изобразить блок-схему решения задачи.

Пример 2. Заданы длины двух катетов в прямоугольном треугольнике. Найти длину гипотенузы, площадь треугольника и величину его углов.

Входные данные: a, b - длины катетов.

Выходные данные: с - длина гипотенузы, S - площадь треугольника, α, β - углы.

Изобразить блок-схему решения задачи.

Пример 3. Известны коэффициенты a, b и с квадратного уравнения. Вычислить корни квадратного уравнения.

Входные данные: a, b, c.

Выходные данные: x1, x2.

Изобразить блок-схему решения задачи.

Пример 4. Составить программу нахождения действительных и комплексных корней квадратного уравнения. Можно выделить следующие этапы решения задачи:

Ввод коэффициентов квадратного уравнения a, b и c.

Вычисление дискриминанта d по формуле d = b2 - 4ас.

Проверка знака дискриминанта. Если d >= 0, то вычисление действительных корней по формуле 1.1 и вывод их на экран.

(1.1)

При отрицательном дискриминанте выводится сообщение о том, что действительных корней нет, и вычисляются комплексные корни. Комплексные числа записываются в виде a + ib (формула 1.2):

(1.2)

a - действительная часть комплексного числа, b - мнимая часть комплексного числа. У обоих комплексных корней действительные части одинаковые, а мнимые отличаются знаком. Поэтому можно в переменной x1 хранить действительную часть числа -b/2a, в переменной x2 - модуль мнимой части, а в качестве корней вывести x1+ix2 и x1-ix2.

Изобразить блок-схему решения задачи.

Пример 5. Составить таблицу значений функции y = esin(x)cos(x) на отрезке [0;π] с шагом 0.1.

Входные данные: начальное значение аргумента - 0, конечное значение аргумента - π , шаг изменения аргумента - 0.1.

Выходные данные: множество значений аргумента X и соответствующее им множество значений функции Y.

Пример 6. Вычислить факториал числа N (N!=1 2 3 … N).

Входные данные: N- целое число, факториал которого необходимо вычислить.

Выходные данные: factorial- значение факториала числа N, произведение чисел от 1 до N, целое число.

Промежуточные данные: i- целочисленная переменная, принимающая значения от 2 до N с шагом 1, параметр цикла.

Пример 7. Вычислить an (n > 0).

Входные данные: a - вещественное число, которое необходимо возвести в целую положительную степень n.

Выходные данные: p (вещественное число) - результат возведения вещественного числа a в целую положительную степень n.

Промежуточные данные: i- целочисленная переменная, принимающая значения от 1 до n с шагом 1, параметр цикла.

Известно, что для того, чтобы получить целую степень n числа a, нужно умножить его само на себя n раз. Результат этого умножения будет храниться в участке памяти с именем p. При выполнении очередного цикла из этого участка предыдущее значение будет считываться, умножаться на основание степени a и снова записываться в участок памяти p. Цикл выполняется n раз.

В таблице 3 отображен протокол выполнения алгоритма при возведении числа 2 в пятую степень: a = 2, n = 5. Подобные таблицы, заполненные вручную, используются для тестирования - проверки всех этапов работы программы.

Таблица 3. Процесс возведения числа a в степень n

i

1

2

3

4

5

P

1

2

4

8

16

32

Пример 6. Вычислить сумму натуральных четных чисел, не превышающих N.

Входные данные: N - целое число.

Выходные данные: S - сумма четных чисел.

Промежуточные данные: i - переменная, принимающая значения от 2 до N с шагом 2, следовательно, также имеет целочисленное значение.

При сложении нескольких чисел необходимо накапливать результат в определенном участке памяти, каждый раз считывая из этого участка предыдущее значение суммы и прибавляя к нему следующее слагаемое. Для выполнения первого оператора накапливания суммы из участка памяти необходимо взять такое число, которое не влияло бы на результат сложения. Т.е. перед началом цикла переменной, предназначенной для накапливания сумы, необходимо присвоить значение нуль.

В таблице 4 приведены результаты тестирования алгоритма для n = 7. Несложно заметить, что при нечетных значениях параметра цикла значение переменной, предназначенной для накапливания суммы, не изменяется.

Таблица 4. Суммирование четных чисел

i

1

2

3

4

5

6

7

S

0

0

2

2

6

6

12

12

Пример 7. Дано натуральное число N. Определить К - количество делителей этого числа, не превышающих его (N = 12, его делители 1, 2, 3, 4, 6, K = 5).

Входные данные: N - целое число.

Выходные данные: целое число K - количество делителей N.

Промежуточные данные: i - параметр цикла, возможные делители числа N.

Реализован следующий алгоритм: в переменную K, предназначенную для подсчета количества делителей заданного числа, помещается значение, которое не влияло бы на результат, т.е. нуль. Далее организовывается цикл, в котором изменяющийся параметр i выполняет роль возможных делителей числа N. Если заданное число делится нацело на параметр цикла, это означает, что i является делителем N, и значение переменной K следует увеличить на единицу. Цикл необходимо повторить N/2 раз.

В таблице 5 отображены результаты тестирования алгоритма при определении делителей числа N = 12.

Таблица 5. Определение делителей числа N

i

1

2

3

4

5

6

K

0

1

2

3

4

4

5