Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример 5




В лабораторных работах, курсовых работах и т.д.).

 

Вычислить сумму первых ста целых чисел.

Решение

Как мы вычисляем сумму вручную?

1+2+3+4+...+100 Сначала мы складываем 1 и 2. Результат запоминаем. Затем результат складываем с 3. Новый результат запоминаем. И т.д. Программу надо составить так, чтобы она делала то же самое. Но, чтобы она запоминала результат, надо завести переменную и ей присваивать значение результата.

...

S

В конце концов в этой переменной накопится вся сумма. До того, как мы начали складывать, у нас сумма была равна 0. Следовательно, сначала S=0. Потом мы запоминаем 1-й элемент:

S=S+1.

S станет равно 1. Затем прибавляем следующий:

S=S+2,

после чего S станет равно 3 и т.д. То есть S последующее равно S предыдущему плюс очередное число, которое мы должны прибавить:

S=S+i.

В этих выражениях 2-е слагаемое изменяется от i=1 до 100 с шагом 1.

В общем виде получаем следующую запись:

То есть для i, изменяющегося от 1 до 100, надо вычислять по формуле:

S=S+i.

Напишем то же самое на языке PASCAL:

for i:=1 to 100 do

s:=s+i;

Программа будет иметь вид:

var

i,s:integer;

begin

{ВЫЧИСЛЕНИЕ СУММЫ}

s:=0;

for i:=1 to 100 do

s:=s+i;

writeln(s)

end.

Произведение вычисляется аналогично, но S сначала (до цикла) приравнивается к единице, а не к нулю, т.к., если умножать на ноль, - всегда будет НОЛЬ, и вместо знака «плюс» в цикле будет знак «умножить». В этом примере надо будет заменить тип у S на longint, т.к. в результате будет довольно большое число и тип integer не подойдет. В результате произведение будет вычислено так:

var

i:integer;

s: longint;

begin

{ВЫЧИСЛЕНИЕ ПРОИЗВЕДЕНИЯ}

s:=1;

for i:=1 to 100 do

s:=s*i;

writeln(s)

end.

ЗАДАНИЯ

№12. Написать программу для вычисления значения выражения

№13. Написать программу для вычисления значения величины

№14. Написать программу для вычисления значения выражения

A1*B50+A2*B49+A3*B48+...+A49*B2+A50*B1.

№15. Написать программу для вычисления значения выражения

№16. Написать программу для вычисления значения выражения

На О.О.Ф. функцию не исследовать. Считать, что все исходные данные удовлетворяют О.О.Ф.

№17. Написать программу для вычисления значения выражения

Указание. Так как заранее неизвестно количество элементов в массиве Х, а его необходимо обязательно описать, то мы допустим, что наша программа будет вычислять значение данного выражения при максимальном количестве элементов в массиве Х, равном, например, 100. Теперь можно описать одномерный массив из 100 элементов (тем самым мы зарезервируем память для этих 100 элементов):

Var

X:array [1..100] of real;

Итак, наша программа будет работать, если количество элементов в массиве Х будет меньше или равно 100.

Чтобы программе было известно, cколько же фактически элементов (n) в массиве Х в каждом конкретном случае, n надо ввести:

read(n);

Теперь можно ввести фактический массив Х:

for i:=1 to n do

read(x[i]);

Например, при n=5 будем вводить массив Х, состоящий из пяти элементов.

Конечно, необходимо описать переменные i и n.

ЗАДАНИЯ

№18. Написать программу для вычисления an без использования формулы для возведения в степень, где n - натуральное число.

№19. Определить произведение элементов целочисленного массива из 17 элементов.

№20. Определить сумму положительных элементов целочисленного массива.

№21. Вычислить сумму квадратов элементов массива Х(50), попадающих в интервал [a,b].

№22. В массиве TEMPER содержится информация о ежедневной температуре апреля месяца некоторого года. Вычислить среднемесячную температуру.

№23. В группе 25 студентов. В массиве М(25) дана информация обо всех студентах (результаты сессии по информатике). Подсчитать отдельно количество студентов, получивших 2, 3, 4 и 5.

№24. Определить отдельно количество положительных, нулевых и отрицательных элементов массива из 100 элементов целого типа.

№25. Для целочисленного массива N(34) определить отдельно сумму положительных и отрицательных элементов массива.

№26. Определить первый положительный и последний нулевой элемент в массиве целого типа, а также их месторасположение в массиве.

ПРИМЕР 6

Написать программу для определения максимального элемента вектора Х(50).

Решение

Как бы мы вычисляли максимальный элемент вручную?

5 8 -13 100 -110

Мы сравнили бы первый элемент со вторым и запомнили наибольший. Потом сравнили бы это запомненное число с третьим. Опять запомнили бы наибольшее из них и т.д.

В программе должно наблюдаться аналогичное последовательное сравнение. Только тот элемент, который мы запоминаем, максимальный - надо как-то назвать, например, MAX.

Итак, сначала мы сравнивали первый элемент со вторым, потом результат с третьим. Будем считать, что сначала MAX=Х1 (т.е. допустим, что максимальный элемент - Х1) и начнем этот максимум сравнивать сначала со вторым элементом, потом с третьим и т.д. (т.е. установим, является ли действительно первый элемент максимальным; если это не так, то максимум будем изменять).

Составим программу:

Var

X:array [1..50] of real;

i:integer;

max:real;

Begin

for i:=1 to 50 do

READ(X[I]);

max:=x[1]; {допустим, что максимальным является первый элемент массива}

for i:=2 to 50 do

if max < x[i] then max:=x[i]; {то максимум новый}

Writeln(max)

End.

Эта программа написана для нахождения максимума из элементов некоторого одномерного массива. Минимум ищется аналогично.

ЗАДАНИЯ

№27. Известны результаты забега (в секундах) на 100 метров 13 спортсменов. Определить наилучший результат.

№28. В массиве DOGD содержатся сведения о количестве осадков, выпавших в каждом месяце некоторого года. Определить, в каком месяце выпало наибольшее количество осадков и какой месяц был самым сухим. Подсчитать также среднегодовое количество осадков.

№29. Написать программу выбора наименьшего из 25 данных чисел, не используя массив (должна многократно выполняться процедура ввода READ(X)).

№30. Написать программу вычисления суммы положительных и количества отрицательных чисел, содержащихся среди 250 данных чисел, не используя массив (должна многократно выполняться процедура ввода READ(X)).

№31. Написать программу для вычисления величины

Y=COS(1+COS(2+COS(3+...+COS(39+COS40)...))).




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 373; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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