1. Основные понятия алгоритмизации и программирования


Download 1.01 Mb.
bet57/78
Sana03.02.2023
Hajmi1.01 Mb.
#1148576
TuriЗадача
1   ...   53   54   55   56   57   58   59   60   ...   78
Bog'liq
c# qo\'llanma

Контрольные вопросы


  1. Какой процесс называется итеративным?

  2. Каким образом реализуются итеративные процессы?

  3. Какой алгоритм называется рекурсивным?

  4. Какая функция называется прямо рекурсивной? Косвенно рекурсивной?

  5. Что такое стек? В какой последовательности происходит заполнение стека и выбор элементов из стека?

  6. Что должно обязательно присутствовать в теле рекурсивно описанной функции?

  7. Перечислите различия между итерацией и рекурсией.

  8. Что произойдет, если рекурсивный алгоритм будет вызывать сам себя «бесконечное» число раз?

  9. Как предотвратить бесконечное выполнение рекурсивного алгоритма?

  10. Верно ли, что решение задачи, реализуемое рекурсивным алгоритмом, можно выразить, используя итерацию?

Пример выполнения лабораторной работы


Задание. Для заданных границ интегрирования a и b вычислите значение определенного интеграла следующего вида:



Решение
1. Математическая модель
Аргументы: границы интегрирования a, b целого типа;
степень n1 целого типа.
Результаты: разность int_b - int_a вещественного типа.
Промежуточные величины: значение интеграла для нижней границы интегрирования int_a; значение интеграла для верхней границы интегрирования int_b (вещественного типа).
2 . Алгоритм
3. Программа

// вычисление значения определенного интеграла


using System;
namespace ConsoleApp3
{
class Program
{

static void Main(string[] args)
{
double b, a;
int n1;
Console.WriteLine("Введите а и b, где b больше a : ");
a=Convert.ToDouble(Console.ReadLine());
b = Convert.ToDouble(Console.ReadLine());
Console.WriteLine();
Console.WriteLine("Введите степень n : ");
n1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
double int_a, int_b;
int_a = Integrate(n1, a);
int_b = Integrate(n1, b);
Console.WriteLine("Значение определённого интеграла при а = " + a+ " и b = " + b + " равно " + (int_b - int_a));
}

static double Integrate(int n, double x)


{
double c = 2.0; // значение константы а выбирается произвольно
if (n == 1) return (Math.Exp(c * x) / (c * c) * (c * x - 1));
else if (n > 1) return (Math.Pow(x, n) * Math.Exp(c * x) / c - (n / c) * Integrate(n - 1, x));
else return 0;
}
}
}

Download 1.01 Mb.

Do'stlaringiz bilan baham:
1   ...   53   54   55   56   57   58   59   60   ...   78




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling