§ 6. Использование основных алгоритмических конструкций для решения задач

Упражнения

    

1. Напишите программу для вычисления первых n элементов последовательности Фибоначчи.

1. Для какого максимального значения n программа выдает корректный ответ?
2. Измените программу так, чтобы она выводила значение числа Фибоначчи по введенному номеру.
3. Замените в программе тип int на тип long long. Какое максимальное значения n можно ввести сейчас?

2. Напишите программу, которая будет выводить на экран элементы последовательности трибоначчи — первые элементы последовательности: 0, 0, 1, 1, 2, 4, 7, 13, 24, 44, 81, 149… . Каждый элемент, начиная с четвертого, равен сумме трех предыдущих: an = an – 1an – 2an – 3.

1. По заданному n вывести элемент последовательности.
2. Для заданного x вывести элементы последовательности меньшие x.

3. Напишите программу, которая найдет первый отрицательный элемент последовательности sin(tgn)n = 1, 2, ... и его номер.

4. Выполните задания для примера 6.15.

1. Замените в решении задачи цикл for на цикл while или dowhile.
2. Ваня решил сократить количество строк в программе и записал цикл следующим образом:

    for (int n = 1; n <= m; n++){

      double a = n * n * n / (sqrt(* n * n)- n + 1);

      s += a;

    }

Почему для m = 2000 Ваня получил в ответе s = nan?

5. Напишите программу, которая найдет сумму первых m элементов последовательности. Число m вводится. Элементы последовательности задаются формулой.

begin mathsize 16px style 1. space a subscript n space equals space 1 over n cubed.

2. space a subscript n space equals space fraction numerator 2 cos n over denominator left parenthesis n space plus space 1 right parenthesis squared end fraction.

3. space a subscript n space equals space fraction numerator square root of n cubed end root over denominator n squared space plus space n space plus space 3 end fraction.

4. space a subscript n space equals space fraction numerator fourth root of n space plus space 3 end root over denominator n cubed space plus space 4 n end fraction.
end style

6. Написать программу для вычисления суммы, имеющей своими слагаемыми элементы последовательности a subscript n. Вычисления производить до тех пор, пока не найдется слагаемое, для которого верно неравенство open vertical bar a subscript n close vertical bar space less than space e p s. Значение eps вводится (0 < eps < 1 ).

begin mathsize 16px style 1. space a subscript n space equals space fraction numerator 2 to the power of n space plus space n over denominator 5 to the power of n end fraction.

2. space a subscript n space equals space fraction numerator 3 to the power of n over denominator n factorial space plus space 2 end fraction.

3. space a subscript n space equals left parenthesis – 1 right parenthesis to the power of n space fraction numerator 3 to the power of n space plus space 1 over denominator n factorial space plus space 5 end fraction.

4. space a subscript n space equals space 2 over 3 to the power of n space plus space fraction numerator 2 over denominator n factorial end fraction.
end style

7. Напишите программу, которая найдет произведение из n сомножителей следующего вида. Значение n вводится.


1. space open parentheses 1 space plus space 1 over 1 squared close parentheses open parentheses 1 space plus space 1 over 2 squared close parentheses open parentheses 1 space plus space 1 over 3 squared close parentheses... open parentheses 1 space plus space 1 over n squared close parentheses.

2. space a open parentheses a space plus 1 close parentheses... open parentheses a space plus space n space – 1 close parentheses. space Число space а space вводится.

3. space open parentheses space 1 space minus space 1 over 1 squared close parentheses open parentheses 1 space minus space 1 over 2 cubed close parentheses open parentheses 1 space minus space 1 over 2 to the power of 4 close parentheses... open parentheses 1 space minus space 1 over 2 to the power of straight n space plus 1 end exponent close parentheses.

4. space open parentheses x space plus space 2 x squared space plus x cubed close parentheses left parenthesis straight x squared space plus space 2 straight x cubed space plus straight x to the power of 4 right parenthesis left parenthesis straight x cubed space plus space 2 straight x to the power of 4 space plus straight x to the power of 5 right parenthesis... left parenthesis straight x to the power of n space plus space 2 straight x to the power of n italic space plus space 1 end exponent space plus straight x to the power of n space plus space 2 end exponent right parenthesis.

Число space х space long dash space вводится.

8. Выполните задание для примера 6.17.

    1. Замените в решении задачи цикл for на цикл while или dowhile.
    2.  Получите таблицу значений функции на отрезке [–3; 3]. В качестве условия в цикле можно использовать следующее: x < = 3;
    3. Добавьте в программу вывод границ вокруг таблицы:

9. Напишите программу, которая построит таблицы значений для следующих функций.


1. space y space equals space x squared space – space 5 x space – space 3 comma space x element of space open square brackets – 3 semicolon space 3 close square brackets comma space вводится space значение space шага space h.

2. space y space equals cos space x space – space x squared comma space space x element of space open square brackets – straight pi semicolon space straight pi close square brackets comma space space вводится space количество space точек.

3. space y space equals 2 space plus space fraction numerator 3 x minus 7 over denominator x squared space plus space 1 end fraction comma space space x element of space open square brackets a italic comma italic space b close square brackets cubed comma space space вводится space значение space а comma space b space straight и space количество space точек.

4. space y space equals 2 space plus space 1 over x sin x comma space space x element of space open square brackets a italic comma italic space b close square brackets comma space вводится space значение space a comma space b space straight и space количество space точек. space Необходимо space учесть space область space определения space функции.

Число space х space long dash space вводится.

10. Программу из примера 6.18 изменили. Сформулируйте задачу, которая решается с помощью данной программы.

#include<iostream>

 

using namespace std;

 

int main()

{

  int i, n;

  cout << "n = ";

  cin >> n;

  cout << "i = ";

  cin >> i;

  int k = 0;

  while (> 0)

  {

    int z = n % 10//текущая цифра

    k++;

    if (== i){

      cout << "v razrjade " << i;

      cout << " stoit zifra "<< z << endl;

    }

  n /= 10; //уменьшение числа в 10 раз

  }

  if (> k){

    cout << "v chisle "<<k<<" cifr, ";

    cout << "v razrjade " << i << " net cifr " << endl;

  }

  else

  cout<<"v chisle "<<k<<" cifr";

  return 0;

}

11. Дано натуральное число n. Напишите программу, которая определит, каких цифр в числе больше, четных или нечетных.

12. Дано натуральное число n. Напишите программу, которая выведет номера разрядов, в которых стоят цифры кратные 3, или сообщение, что таких цифр нет.

13. Напишите программу, которая выведет на экран цифру, стоящую на средней позиции числа, если число имеет нечетное количество цифр, или 2 средние для числа с четным количеством цифр.

14. Напишите программу, которая после каждой цифры 1 в числе вставит еще одну единицу. Например, из 51214  → 5112114.

15. Выполните задание для примера 6.19.

1. Для ситуации, когда сахар заканчивается, выведите значение времени, когда это произошло.
2. Измените программу так, чтобы задавалось начальное и конечное количество сахара, а рассчитывалось время, необходимое для такого изменения концентрации. 
3. Измените программу так, чтобы по введенному времени и количеству сахара в начале и в конце процесса рассчитывался начальный объем раствора.



[1] Подсказка: begin mathsize 14px style h space equals space fraction numerator b space – space a over denominator k space – space 1 end fraction. end style