
- •Лабораторная работа №1 Линейные и разветвляющиеся алгоритмы
- •Арифметические выражения
- •Операции с целыми числами
- •Логические выражения
- •Организация ветвлений в алгоритмах
- •Лабораторная работа №2 Циклические алгоритмы
- •Рекуррентные последовательности
- •Вычисление характеристик числовой последовательности
- •Определение свойства числовой последовательности
- •Формирование массива Пример
- •Вычисление характеристик массива
- •Модификация массивов
- •I часть
- •II часть Пример
- •III часть
- •Лабораторная работа №4 «Двумерные массивы»
- •Вывод элементов
- •Вычисление характеристик матриц
- •Модификация
- •Литература
Лабораторная работа №2 Циклические алгоритмы
Цель: научиться записывать циклические алгоритмы в соответствии с правилами языка программирования, применять циклические алгоритмы для решения задач
Рекуррентные последовательности
Пример 1:
Дано вещественное число A и целое число N (> 0). Используя один цикл, найти значение выражения 1 – A + A^2 – A^3 + … + (–1)^N * A^N. Условный оператор не использовать.
Вариант программы на языке С
#include <stdio.h>
int main()
{
float a = 0, summ, m;
int n = 0, sign, i;
printf("Введите a: ");
scanf("%f", &a);
printf("Введите n: ");
scanf("%d", &n);
sign = -1;
summ = 1;
m = a;
for(i = 0; i < n; i++)
{
summ += sign * m;
sign *= -1;
m *= a;
}
printf("Результат: %f\n", summ);
return 0;
}
Пример 2:
Дано вещественное число e (> 0). Последовательность вещественных чисел AK определяется следующим образом: A1 = 1, A2 = 2, AK = (AK–2 + 2•AK–1)/3, K=3,4… Найти первый из номеров K, для которых выполняется условие |AK‑AK‑1| < e.
Вариант программы на языке С++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float a, a1, a2;
float e;
cout << "Введите e: ";
cin >> e;
a1 = 1;
a2 = 2;
do
{
a = (a1 + 2 * a2) / 3;
a1 = a2;
a2 = a;
} while(fabs(a - a1) >= e);
cout << "Результат: " << a << endl;
return 0;
}
Задания для самостоятельного решения
Дано целое число N (> 0). Найти наименьшее целое положительное число K, квадрат которого превосходит N: K2 > N. Функцию извлечения квадратного корня не использовать.
Дано целое число N (> 0), являющееся некоторой степенью числа 2: N = 2K. Найти целое число K — показатель этой степени.
Дано целое число N (> 0). Найти наименьшее целое положительное число K, квадрат которого превосходит N: K2 > N. Функцию извлечения квадратного корня не использовать
Дано целое число N (> 1). Найти первое число Фибоначчи, большее N.
Дано число A (> 1). Вывести наименьшее из целых чисел K, для которых сумма 1 + 1/2 + … + 1/K будет больше A, и саму эту сумму.
Дано целое число N (> 1). Найти наименьшее целое число K, при котором выполняется неравенство 3K > N.
Начальный вклад в банке равен 1000 руб. Через каждый месяц размер вклада увеличивается на P процентов от имеющейся суммы (P — вещественное число, 0 < P < 25). По данному P определить, через сколько месяцев размер вклада превысит 1100 руб.
Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A.
Даны положительные числа A, B, C. На прямоугольнике размера AB размещено максимально возможное количество квадратов со стороной C (без наложений). Найти количество квадратов, размещенных на прямоугольнике. Операции умножения и деления не использовать.
Проверить, является ли число N числом Фибоначчи. Если является, то вывести True, если нет — вывести False