Структурированная запись алгоритма 13 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Структурированная запись алгоритма 13



1. Ввести x, n.

2. Задать начальные значения s =0; stx =1.

3. Повторять n раз в цикле i =1, n

3.1. Вычислить очередное слагаемое stx = stx * x.

3.2. Прибавить слагаемое к сумме s=s+stx.

4. Вывести сумму s.

Схема алгоритма

 

 

Программа на языке Си

#include <stdio.h>

int main (void)

{

int n, i;

double x,s,stx;

printf ("n=");

scanf ("%d", &n);

printf ("x=");

scanf ("%lf", &x);

s=0;

stx=1;

for (i=1; i<=n; i++)

{

stx*=x;

s+=stx;

 }

printf ("s=%7.3lf\n", s);

return 0;

}

Программа на языке Паскаль

Program Pr_13;

Var

s, stx, x: real;

i, n: integer;

begin

writeln ('x=');

readln(x);

writeln ('n=');

readln(n);

s:=0; stx:=1;

for i:=1 to n do

begin

stx:=stx*x;

s:=s+stx;

end;

writeln('s=', s:7:3);

end.

Программа на языке Фортран

Program Pr_13

Implicit none

real s/0/, stx/1/, x

integer i, n

print *, 'x='

read *, x

print *, 'n='

read *, n

do i=1, n

    stx = stx*x

    s = s+stx

enddo

print *, 's=', s

end

Программа на языке Python

print("Введите x, n (по одному в строке,”)

print(“ x - вещественное, n - натуральное):")

x=float(input())

n=int(input())

s = 0

stx = 1

for i in range(n):

# i = 0, 1,..., n-1 - всего n повторений

stx *= x

s += stx

print("Сумма s = ", s)

Программа в системе Матлаб

x = input('Введите x=');

n = input('Введите n=');

s = 0;

stx = 1;

for i = 1:n

stx = stx*x;

s = s+stx;

end

disp(strcat('Сумма s = ',num2str(s)))

 

Задача 14. Вычисление факториала

Условие задачи. Дано натуральное N. Найти значение N!.

Факториал натурального числа N — это произведение чисел натурального ряда от 1 до N. То есть 2!=1*2, 3!=1*2*3, 5!=1*2*3*4*5, N!=1*2*3*...* N. Отдельно определен факториал нуля, значение которого равно единице: 0!=1. Таким образом, для вычисления факториала числа N, отличного от нуля, требуется вычислить произведение N сомножителей, отличающихся друг от друга на 1.

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

Исходным данным для задачи будет натуральное число N, результатом — натуральное число F. Для организации цикла потребуется натуральное i, которое будет использоваться в качестве сомножителя при вычислении произведения.

Заметим, что при вычислении произведения N!=1*2*3*...* N выполнять на первом шаге цикла умножение числа F на i =1 не имеет смысла, так как умножение на 1 не изменяет результат. Достаточно вычислить произведение 2*3*...* N, взяв в качестве первого сомножителя i =2 и далее изменяя его до N. Следует отметить, что все промежуточные значения F будут являться факториалами соответствующих значений i, т. е. начальное значение F =1!, при i =2 F = F * i =1!*2=2!, при i =3 F = F * i =2!*3=3!, наконец, при i = N F = F * i =(N -1)!* N = N!

Структурированная запись алгоритма 14

1. Ввести N.

2. Задать начальное значение F =1.

3. Повторять N раз в цикле i =2, N

3.1. Вычислить значение произведения F = F*i.

4. Вывести F.

Схема алгоритма

 

Программа на языке Си

#include <stdio.h>

int main (void)

{

unsigned int n, i, f=1;

printf (″Введите n\n″);

scanf (″%u″, &n);

for (i=2; i<=n; i++)

f*=i;

printf (″%u! = %u″, n, f);

return 0;

}

Программа на языке Паскаль

Program Pr_14;

var n, i: integer;

f: longint;

begin

writeln ('Введите n');

read (n);

f:=1;

for i:=2 to n do

f:=f*i;

writeln (n, '! = ', f)

end.

Программа на языке Фортран

Program Pr_14

Implicit none

integer n, i, f/1/

print *, ‘Введите n’

read *, n

do i=2, n

f=f*i

enddo

print *, n, '! = ', f

end

Программа на языке Python

print("Введите n (n >0):")

n=int(input())

F=1

for i in range(2,n+1):

# i = 2,..., n -- всего n-1 повторений

F=F*i

print("{0}! = {1}".format(n,F))

Программа в системе Матлаб

n= input('Введите n (n >0):');

F=1;

for i =2:n

F=F*i;

end

disp(strcat(int2str(n),'! =',int2str(F)))



Поделиться:


Последнее изменение этой страницы: 2021-04-12; просмотров: 65; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.42.164 (0.006 с.)