Алгоритмическая структура «Цикл» Тема урока
1. Циклические алгоритмы Циклические алгоритмы обеспечивают многократное выполнение некоторых действий, которые называются телом цикла. Виды циклов : Цикл с условием (цикл «пока») Цикл со счетчиком (цикл «для») Циклические алгоритмы обеспечивают многократное выполнение некоторых действий, которые называются телом цикла. Виды циклов : Цикл с условием (цикл «пока») Цикл со счетчиком (цикл «для»)
2. Оператор цикла со счетчиком (параметром) Применяется в тех случаях, когда в программе действия (операторы): 1)Повторяются заранее известное количество раз 2)При этом некоторая величина меняется с постоянным шагом Применяется в тех случаях, когда в программе действия (операторы): 1)Повторяются заранее известное количество раз 2)При этом некоторая величина меняется с постоянным шагом
Общий вид цикла со счетчиком FOR счетчик=н.з. TO к.з. [STEP шаг] тело цикла NEXT счетчик счетчик – переменная (i, j) н.з. – нач. значение этой переменной к.з. – конем. значение этой переменной
шаг – может быть любым числом если STEP отсутствует, значит шаг =1, при условии н.з.<к.з. если н.з.>к.з. (например н.з.=20, к.з.=1), то шаг = -1
Блок-схема счетчик=н.з. i к.з. тело цикла i=i+шаг Следующий оператор программы да нет
1. Напечатать ряд чисел 20 в виде
2. Напечатать все целые числа от 20 до 35
3. Напишите программу, печатающую все четные числа от 2 до 100 включительно
4. Напечатать таблицу перевода 1, 2, … 20 долларов США в рубли по текущему курсу, который вводится с клавиатуры 1$ = 36 рублей
DIM s, i as integer s=0 FOR i=1 TO 10 s=s+i NEXT i Print s DIM p, i as integer p=1 FOR i=1 TO 10 p=p*i NEXT i Print p 5.1 Вычислить сумму (произведение) натуральных чисел от 1 до 10 (S=1+2+…+9+10) (P=1*2*…*10) 5. Суммирование (произведение) всех чисел последовательности
DIM s, i, x as single Input Сколько чисел в последовательности; n s=0 FOR i=1 TO n input Очередное число; x s=s+x NEXT i Print s 5.2 С клавиатуры последовательно ввести n чисел и подсчитать их сумму 5. Суммирование (произведение) всех чисел последовательности
Dim n, i, p, a As Single Input "a; a Input "n; n p = 1 (степень числа) For i = 1 To n p = p * a Next i Print p 5.3 Дано целое число а и натуральное число n. Найти a n 5. Суммирование (произведение) всех чисел последовательности
5.4 Вычислить сумму ряда 1+1/3+1/3 2 +…+1/3 8
5.5 Найти произведение кубов всех целых чисел от а до b
Dim i, s, n, d, e As Integer Cls Input Введите число; n s = 0 For i = 10 To 99 d = i \ 10 e = i Mod 10 s = d + e If s = n Then Print "i="; i End If Next i Из чисел от 10 до 99 вывести те, сумма цифр которых равна числу n, введенного с клавиатуры 6. Суммирование (произведение) чисел последовательности удовлетворяющих условию
Dim n, k, i, s, e, d, c As Single Input "n; n k = 0 s = 0 For i = 100 To 999 c = i \ 100 d = i \ 10 Mod 10 e = i Mod 10 s = c + d + e If s = n Then k = k + 1 Next i Print k 7. Подсчет количества чисел последовательности, удовлетворяющих условию 7.1 Определить количество трехзначных натуральных чисел, сумма цифр которых равна заданному числу n.
7.2. Ученик за неделю получил 10 оценок. Определить количество «5» и «4»
Dim i, s, b, k, a, sr As single Input Количество чисел b"; b Input "Число для сравнения a<b"; a s = 0 k = 0 For i = 2 To b Step 2 If i > a Then s = s + i k = k + 1 End If Next i sr = s / k Print sr 8. Определение среднего арифметического чисел последовательности, удовлетворяющих условию 8.1 Найти среднее арифметическое всех четных чисел от 1 до В, и больших числа А
8.2 Температура воздуха за месяц менялась от -5 до 5. Определить среднюю положительную температуру за месяц
Dim i, n, t As Single t = 0 For i = 1 To 10 Input " Введите следующее число последовательности"; n If n = 13 Then t = i Next i If t > 0 Then Print "Число 13 имеется в последовательности и " Print " расположено на месте "; t Else Print "Числа 13 в последовательности нет" End If 9. Определение порядкового номера некоторого значения в заданной последовательности Дана последовательность из 10 чисел. Определите, имеется ли в ней число 13 и на каком месте находится.
Dim i, max, t As Single Randomize Timer max = -10 For i = 2 To 30 t = Int((Rnd * 19) - 10) Print t If t > max Then max = t Next i Print max 10. Определение максимального значения в последовательности чисел Известны данные о температуре воздуха в течение месяца (от -10 до 8). Определите максимальную температуру в этом месяце
Dim i, m, t, ch As Single Randomize Timer m = 2 ch = 1 For i = 2 To 30 t = Int((Rnd * 37) + 2) Print t If t > m Then m = t ch = i End If Next i Print ch 11. Определение порядкового номера максимального значения в последовательности чисел Известны данные о количестве осадков, выпавших в каждый день месяца от 2 до 35. Какого числа выпало больше всего осадков? Если таких дней несколько, то должна быть найдена дата последнего из них
Dim i, s, max As Integer s = 0 max = 50 For i = 51 To 81 If i Mod 2 = 0 Then If i > max Then max = i s = s + i End If Next i Print "max"; max Print "symm"; s Определить максимальное четное число и подсчитать сумму четных чисел, среди чисел от 50 до Определение максимального значения чисел последовательности, удовлетворяющих условию
13. Начав тренировки, лыжник в первый день пробежал 10 км. Каждый следующий день он увеличивал пробег на 10% от пробега предыдущего дня. Определить: а) пробег лыжника за второй, третий,..., десятый день тренировок; б) какой суммарный путь он пробежал за первые 7 дней тренировок. А) X=10 FOR I=2 TO 10 X=1.1*X PRINT X NEXT I Б) X=10 S=0 FOR I=1 TO 7 S=S+X X=X*1.1 NEXT I PRINT S
14. Вывести значения функции (протабулировать) на отрезке [-7;14] с шагом 1 Dim y, x As Single For x = -7 To 14 y = (x ^ * x + 1) / Sqr(x ^ 2 + 3) Print "при х="; x, "у="; y Next x
15. Вычислить факториал 7! f!=1*2*3*….*f Dim i, f As Single f = 1 For i = 1 To 7 f = f * i Next i Print " 7!="; f
16.1 Сумма ряда. Вычислить S=1+1/2^2+1/3^2+…+1/x^2 Dim s, x, i As Single Input Введите количество членов ряда; x S = 0 For i = 1 To x s = s + 1 / i ^ 2 Print " S="; S Next i А) Переставьте строки вывода результата за NEXT Б) Измените цикл с x до 1
16.2 Сумма ряда. Вычислить S=1-1/2^2+1/3^2-…-1/10^2 (знакопеременный ряд) Dim s, I, k As Single s = 0: k=1 (отвечает за знак члена ряда) For i = 1 To 10 s = s + k / i ^ 2 K=-k Print " S="; s Next i
16.3 Сумма ряда. Вычислить Dim n, l, k As Single Input k=; k n = 0 For l = 3 To 50 N=n + (k*l-sqr(l))/(3+l) Next l Print " n="; n
17. Палиндром Дано натуральное четырехзначное число. Определить, является ли оно палиндромом. Например, палиндромами являются числа: 2222, 6116, 1441
Dim n, m, a As Integer Input n m = n a = 0 For i = 1 To 4 a = a * 10 + m Mod 10 m = m \ 10 Next i If a = n Then Print "Палиндром" Else Print "Нет End if
18.1 Определение значения переменной по блок-схеме нет да-да да x<>y x:=55 y:=75 x:=x-y y:=y-x x>y Определите значение целочисленной переменной х после выполнения следующего фрагмента программы. 1)12)53)104)15
Определите значение переменной a после выполнения фрагмента алгоритма. 1)82)163)324) Определение значения переменной по блок-схеме
19. Какую задачу решает следующая программа? Что будет выведено на экран при х=18? Dim x, s, I as integer Input введите целое число; x S=0 For i=1 to x If x mod i=0 then S=S+i Next i Print s Сумма делителей числа s = 39