С использованием векторных операций. Задача 10. Нахождение суммы 


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



ЗНАЕТЕ ЛИ ВЫ?

С использованием векторных операций. Задача 10. Нахождение суммы



a= input('a=');

b= input('b=');

n= input('n=');

x=linspace(a,b,n)

f=2*sin(x)+cos(2*x);

fm=max(f);

disp('max = ')

disp(fm)

 

Задача 10. Нахождение суммы

Условие задачи. Вычислить значение суммы натуральных чисел от 1 до 10

В задаче требуется найти сумму 10 слагаемых, которые принимают значения от 1 до 10, то есть S =1+2+3+…+10. Математически её можно описать следующей формулой: . Независимо от того, сложной или простой формулой выражаются слагаемые, много или мало слагаемых входит в сумму (если, конечно, это количество больше 2 или 3), известно заранее количество слагаемых или нет, для вычисления суммы применяется такой приём. Берётся переменная (назовём её S), к которой по одному прибавляется каждое слагаемое, и результат сложения каждый раз заносится в ту же переменную S = S +<слагаемое>. Чтобы сложить нужное количество слагаемых, указанное действие выполняется в цикле, причём если количество слагаемых заранее известно или его можно определить, используется арифметический цикл, если же его невозможно найти заранее, а оно определяется некоторым условием, то используется итерационный цикл, т.е. цикл с заранее неизвестным количеством повторений. До выполнения всех сложений переменной S присваивается значение 0, чтобы первое слагаемое прибавлялось к 0, а не к какому-то непредсказуемому значению.

В данной задаче нет данных, которые надо было бы вводить. Сначала переменной S, которая предназначена для накопления суммы, присваивается значение 0. Далее в цикле, изменяющем значение переменной i от 1 до 10, производится прибавление к сумме очередного слагаемого (в нашем случае - значения i) с занесением результата сложения в ту же переменную S: S = S + i. То есть, на первом шаге цикла при i =1 к переменной S, имеющей значение 0, прибавится i =1, и результат сложения, равный 1, попадёт в переменную S. На втором шаге цикла при i =2 к S =1 прибавится 2, и результат, равный 3, снова попадёт в S. На третьем шаге цикла при i =3 к S =3 прибавится 3, и S получит значение 6. Такие действия будут повторяться ещё 7 раз, пока к сумме не будет прибавлено последнее слагаемое, равное 10. По окончании всех сложений найденное значение S нужно вывести на экран.

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

1. Задать начальное значение S =0.

2. Повторять для i =1,10

2.1. Прибавлять слагаемые к сумме S=S+i.

3. Вывести результат S.

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

 

 

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

#include <stdio.h>

int main (void)

{

int i, s=0;

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

s+=i;

printf (″Сумма = %d″, s);

return 0;

}

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

Program Pr_10;

var

i, s: integer;

begin

s:=0;

for i:=1 to 10 do s:=s+i;

writeln('s=', s);

end.

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

Program main_10

Implicit none

integer i, s/0/

do i=1,10

s=s+i

enddo

print *,'s=', s

end program

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

s = 0

for i in range(1,11): # i = 1, 2,... 10

s = s + i

print(" s = ", s)

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

s=0;

for i=1:10

s=s+i;

end

disp(strcat('s=', num2str(s)));

С использованием векторных операций

s=sum(1:10);

disp(strcat('s=', num2str(s)))

 

Задача 11. Нахождение суммы

Условие задачи. Дано натуральное n. Вычислить значение суммы .

Математически эту сумму можно записать в виде , где n – величина, которая определяет последнее значение i. Значение n вводится с клавиатуры. По условию задачи требуется найти сумму n-1 слагаемых. Чтобы получить необходимый результат, нужно n -1 раз повторить действие
s = s +<слагаемое>, т.е. последовательно прибавлять к переменной s по одному слагаемому, предварительно задав начальное значение суммы s=0. Для вычисления суммы организуется цикл по переменной i, который позволит изменять значение i от 2 до n (i=2, n). На каждом шаге изменения переменной i будет вычисляться очередное слагаемое по формуле , и прибавляться к накопленной сумме . Действия в цикле повторятся n-1 раз.

В результате на первом шаге, при i =2 переменная s получит значение , т.е. . На втором шаге при i =3 к текущему значению s, равному , прибавится следующее слагаемое , и результат сложения , равный , снова присваивается переменной s. Далее на третьем шаге при i =4 s получит значение  и так далее, пока не будет произведено суммирование всех n -1 слагаемых. После завершения цикла полученная сумма выводится на экран.

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

1. Ввод с клавиатуры значения n

2. Установка начального значения переменной s для суммирования s =0

3. В цикле для i =2, n повторять

3.1. Прибавление к сумме очередного слагаемого

     Конец цикла по i

4. Вывод полученной суммы s на экран

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

 

 

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

#include <stdio.h>

int main (void)

{

int i, n;

double s=0;

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

scanf (“%d”, &n);

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

s+=1./(i*i);

printf (″Сумма = %lf″, s);

return 0;

}

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

Program Pr_11;

var

i, n: integer;

s:real;

begin

writeln ('n=');

readln(n);

s:=0;

for i:=2 to n do s:=s+1/(i*i);

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

end.

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

Program main_11

Implicit none

integer i,n

real s/0/

print '(A\)', 'n='

read *, n

do i=2,n

s=s+1./i**2

enddo

print '(A,F6.3)','s=', s

end program

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

print("Введите натуральное n")

n = int(input())

s = 0

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

# i = 2,... n -- n-1 значение

s += 1/(i*i)

print(" s = ", s)

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

s=0;

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

for i=1:n

s=s+1/i^2;

end

disp(strcat('s=', num2str(s)))

 



Поделиться:


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

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