Первое занятие по очень важной теме программирования. Рекомендуем быть внимательными. На простых, ярких и доступных примерах покажем возможности использования этого оператора.
Наиболее проще организовывать циклы, используя операторы FOR (для) и NEXT (следующий). Оператор FOR открывает цикл, оператор NEXT закрывает его. Все команды, расположенные между этими операторами, будем называть телом цикла. FOR и NEXT – “неразлучны”, иначе ошибка. Внимательно отслеживайте, по какой переменной цикл открывается, по какой закрывается. STEP (шаг): по умолчанию 1, если первое значение параметра цикла меньше последнего, то STEP должен быть отрицательным.
1.Вернемся к задаче табулирования функции. Задана функция y = f(x) на отрезке [a;b]. Разбив отрезок на n частей напечатать таблицу ее значений.
…………………Программа 10.1…………………………………….
def fna(x) = x^3 + 2*x^2 – 3*x -12
input”Введите отрезок a,b”;a,b
input”Сколько строк в таблице”;n
h = (b – a)/n
?” x y”
for x = a to b step h
?x, fna(x)
next x
2.Вернемся также к популярной задаче суммирования. Пусть необходимо найти сумму 20 членов числовой последовательности с общим членом an = .
…………………Программа 10.2…………………………………….
s = 0
for i = 1 to 20: s = s + i^2/(exp(i) + i): next
?”Запишите сумму:”;s
3.На отрезке [a;b] задана функция y = f(x). Найти ее наибольшее и наименьшее значения на этом отрезке.
…………………Программа 10.3…………………………………….
DEF fna (x) = x ^ 3 / 3 + x ^ 2 - 5 * x + 3
INPUT "Введите отрезок a,b"; a, b
ma = fna(a): mi = fna(a)
FOR x = a TO b STEP .001
y = fna(x)
IF ma < y THEN ma = y: xma = x
IF mi > y THEN mi = y: xmi = x
NEXT x
PRINT "Наибольшее значение f("; xma; ") = "; ma
PRINT "Наименьшее значение f("; xmi; ") = "; mi
4.В операторе DATA помещены 10 чисел. Вывести на печать наибольшее из них.
…………………Программа 10.4…………………………………….
DATA 1,3,5,7,4,-3,4,11,8,2
READ m
FOR i = 1 TO 9: READ a
IF m < a THEN m = a
NEXT
PRINT "максимальное число "; m
5.Найти все делители натурального числа, меньшие самого числа.
…………………Программа 10.5…………………………………….
INPUT "Введите число", x
FOR i = 1 TO x/2
IF x MOD i = 0 THEN PRINT "Множитель "; i
NEXT i
Усложните задачу: в случае, если кроме 1 множителей нет – выдавать сообщение: число простое.
Задачи более интересные в плане подготовки к олимпиаде по программированию
5.1Найти все простые числа меньшие заданного числа.
5.2Есть ли в пределах первых ста натуральных чисел числа, сумма делителей которых, включая единицу, но исключая само число, равна этому числу?
5.3 В пределах от 1 до 1000 напечатать все пары простых чисел отличающихся на два.
6.Важная и нужная задача численного интегрирования.
На отрезке [a,b] задана функция y = f(x). Разбить данный отрезок на n частей, определить h = , определить x0 = a, x1 = a + h, x2 = a + 2h, и т.д., и вычисляя yi = f(xi), определить суммы S = h(y0 + y1 + …+ yn-1), S = h(y1 + y2 + …+ yn); - это формулы прямоугольников
S = h(); - формула трапеций S = - и самая популярная формула парабол (Симпсона), n – обязательно четное число.
…………………Программа 10.6…………………………………….
DEF fna (x) = x ^ 3 / 3 + x ^ 2 - 5 * x + 3
INPUT "Введите пределы интегрирования a,b"; a, b
n = 4
10 n = n * 2: s = 0
h = (b - a) / n
s = fna(a) + fna(b)
FOR i = 1 TO n - 1 STEP 2: x = a + h * i
s = s + 4 * fna(x): NEXT i
FOR i = 2 TO n - 2 STEP 2: x = a + h * i
s = s + 2 * fna(x): NEXT i
PRINT "При n = "; n; "I = "; s * h / 3
GOTO 10
Суммирование нечетных и четных у мы провели в двух различных циклах. Но можно поступить и так:
FOR i = 1 TO n - 1: x = a + h * i
IF i / 2 = i \ 2 THEN s = s + 2 * fna(x) ELSE s = s + 4 * fna(x)
NEXT i
Формулы прямоугольников и трапеций запрограммируйте самостоятельно.
Это задачи для самостоятельного решения. Подготовьте программы дома и представьте на проверку, по-возможности в электронном варианте.
1.Составить таблицу перевода: долларов в рубли, рублей в доллары.
2.Составить таблицу стоимости порций сыра массой 50, 100, 150, …, 1000 г., если известна цена одного килограмма.
3.Даны действительное число а, натуральное число n. Вычислить
a(a - n)(a - 2n)…(a - n2).
4. Даны натуральное n, действительное x. Вычислить: sin x +sin2 x + sin3x + … + sinnx.
5.Даны натуральное n, действительное x. Вычислить сумму n членов степенного ряда, если an = .
6.Дано a и n. Вычислить значение произведения a(a - n)(a - 2n)…(a - n2).
7.Вывести на экран все двузначные числа кратные 3. Подсчитать их сумму и количество.
8.Вывести на экран n членов последовательности Фибоначчи, используя рекуррентную формулу : an = an-1 + an-2. Если a1 = 1 и a2 = 1
9.Составить калибровочную таблицу определения объема жидкости в резервуаре, имеющем форму прямоугольного параллелепипеда, внутренние размеры которого a,b,c. Задайте шаг калибровочной таблицы h. Объем выражать в литрах.
Что нового Вы узнали, какие умения и навыки приобрели на занятии №10?