русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Алгоритм вычисления суммы n чисел.


Дата добавления: 2015-07-09; просмотров: 12615; Нарушение авторских прав


Задача. Вычислить сумму n чисел.

При вычислении суммы n слагаемых действие сложение повторится n раз.

Предположим, что значение каждого числа задается случайным образом, но при этом для хранения каждого очередного числа используется только одна переменная a, т.е. каждое очередное значение присваивается этой переменной. Чтобы правильно решить задачу, следует помнить о том, что оператор S:=S+A; выполняется следующим образом: вычисляется правая часть, т.е. к значению переменной S добавляется значение переменной A и полученное значение присваивается переменной S. В некоторой переменной S накапливается значение суммы, т.к. суммировать предстоит n чисел.

Перечислим действия алгоритма:

1) переменной s присвоить значение 0.

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

Используя этот алгоритм, решим частную задачу: вычислить сумму первых 10 чисел натурального ряда.

Переменную, в которой предстоит накапливать сумму 10 чисел, назовем S. Операция сложения будет выполняться 10 раз.

При первом прохождении тела цикла к переменной S добавляется a = 1. Получена первая промежуточная сумма S = 1.

При втором прохождении тела цикла к переменной S (равной 1) добавляется a=2, получаем следующую промежуточную сумму S=3, при третьем проходе тела цикла к переменной S=3 добавляется a=3 и вычисляется очередная промежуточная сумма S=6.

ОБРАТИТЕ ВНИМАНИЕ: сумма постепенно накапливается.

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

На рис. 4.2. представлен алгоритм нахождения суммы первых 10 членов натурального ряда.



Рис. 4.2. Схема алгоритма вычисления суммы первых 10 членов натурального ряда.

 

Запишем текст программы.

 

PROGRAM SUMMA;

USES CRT;

VAR

a, S: integer;

BEGIN

clrscr;

S:=0;

FOR a:=1 TO 10 DO

S := S + a;

writeln('сумма = ',S);

writeln('Нажмите любую клавишу для выхода...');

readln;

END.

 

Выполним трассировку алгоритма.

 

 

I прохождение цикла   II прохождение цикла   III прохождение цикла
a=1, S=0 S:=S+a (1=0+1) a=1+1 (шаг изменения) a<=10? Да   a=2, S=1 S=S+a (3=1+2) a=2+1 a<=10? да   a=3, S=3 S=S+a (6=3+3) a=3+1 a<=10? да (и т.д.)
         
X прохождение Цикла        
a=10, S=45 S=S+a (55=45+10) a=10+1 a<=10? Нет   выход из цикла a=10, S=55    

 

Пример 1. Вычислить сумму 12 целых чисел, введенных с клавиатуры. Алгоритм суммирования не изменяется. Изменился способ задания значений слагаемых. Для ввода чисел с клавиатуры используется процедура - оператор readln(a), который останавливает выполнение программы и ждет, пока пользователь введет с клавиатуры данные и нажмет Enter. Данные, введенные с клавиатуры, будут занесены в переменную a. Процедура - оператор Readln будет рассмотрен более подробно далее, а сейчас нужно лишь понимать для чего он служит.

PROGRAM SUMMA_2;

USES CRT;

VAR

a: integer; {введенное число}

i: integer; {счетчик цикла}

S: integer; {сумма}

BEGIN

clrscr;

S:=0;

FOR I:=1 TO 12 DO

BEGIN

write('задайте значение очередного слагаемого: ');

readln(a);

S:=S+a

END;

writeln('Сумма = ', S);

writeln('Нажмите любую клавишу для выхода...');

readln;

END.

Пример 2. Вычислить сумму натуральных чисел от 100 до 300.

PROGRAM SUMMA_3;

USES CRT;

VAR

a: integer;

S: integer;

BEGIN

clrscr;

S:=0;

FOR a:=100 TO 300 DO

S:=S+a;

writeln('сумма = ', S);

writeln('Нажмите любую клавишу для выхода...');

readln;

END.



<== предыдущая лекция | следующая лекция ==>
Составные условия. | Подсчет количества чисел, удовлетворяющих заданному условию.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.