Методическая разработка темы "Программирование на языке QBasic. Циклы."
методическая разработка (информатика и икт, 7 класс) по теме
Материал предназначен для изучения темы "Циклы" при программировании на языке QBasic в 7 классах.
Содержание
- Теория
- Задачи
Скачать:
Вложение | Размер |
---|---|
2.doc | 110.5 КБ |
Предварительный просмотр:
Малышева М. И.
Программирование.
Тема: Циклы.начало
Х*Y=А
Ввод А
Х=INT(RND(1)*10)
Y=INT(RND(1)*10)
конец
неверно
верно
вывод X*Y=
+
-
Задача. ЭВМ загадывает два числа; выводится на экран пример на умножение; компьютер ждет ответа ученика. Если ответ верный, выводится поощрительное сообщение, в противном случае компьютер выводит сообщение об ошибке.
CLS
X=INT(RND(1)*10)
Y= INT(RND(1)*10)
PRINT X; ”*”; Y; “=”;
INPUT A
IF X*Y=A THEN PRINT “верно” ELSE PRINT “неверно ”
Х*Y=А
Ввод А
Х=INT(RND(1)*10)
Y=INT(RND(1)*10)
начало
конец
I=1
I=I+1
I<=10
Вывод X*Y=
верно
неверно
+
-
+
-
END
Тело
цикла
Усложняем задачу: ЭВМ задает ученику не один, а 10 примеров на умножение. Для решения новой задачи, необходимо, действия, обведенные пунктирным прямоугольником, повторить 10 раз. Чтобы организовать такое повторение, придется завести некий счетчик, где мы будем считать, сколько раз выполняется действие. Давайте назовем эту ячейку памяти, например, I.
CLS
I=1
10 X=INT(RND(1)*10)
Y= INT(RND(1)*10)
PRINT X; ”*”; Y; “=”;
INPUT A
IF X*Y=A THEN PRINT “верно” ELSE
PRINT “неверно ”
I=I+1
IF I<=10 THEN GOTO 10
Проследим, как выполняются действия:
- Счетчик I принимает значение 1 (начальное значение)
- Выполняются те действия, которые должны повторяться.
- Счетчик I увеличивается на 1 (следующее значение счетчика).
- Проверяем, счетчик I все еще меньше значения, до которого мы должны досчитать (10)? Если да, то снова выполняем повторяющиеся действия, в противном случае заканчиваем работу.
ENDЦиклом (повтором) называется такая форма организации действий, при которой одна и та же последовательность действий совершается несколько раз.
Повторяющаяся последовательность команд называется телом цикла.
Счетчик называется параметром цикла.
ДЛЯ I ОТ начального ДО конечного С ШАГОМ S
Выполняем тело цикла
ПЕРЕЙТИ К СЛЕДУЮЩЕМУ I
Для I от нач до кон с шагом S
Тело цикла
Другими словами, мы повторяем действия тело цикла ДЛЯ значений параметра цикла (счетчика) ОТ начального значения ДО конечного. Потом переходим к следующему значению параметра цикла и снова повторяем тело цикла. И так до тех пор, пока параметр не станет больше конечного значения. Причем счетчик может считать как подряд: 1, 2, 3, …; так и с некоторым шагом, например, с шагом 2: 1, 3, 5, …; или с шагом 0.5: 1, 1.5, 2, 2.5, 3, …На языке Бейсик цикл ДЛЯ записывается так:
FOR I= нач TO кон STEP S
Тело цикла
NEXT I
STEP S может отсутствовать. Это равносильно записи STEP 1.
Цикл “ДЛЯ” выполняется следующим образом:
- Когда встречается команда FOR, параметр цикла I (счетчик) принимает начальное значение.
- Выполняется тело цикла (действия, которые должны повторяться).
- По команде NEXT I параметр цикла I увеличивается на величину шага (следующее значение).
- Проверяем, параметр цикла I все еще меньше конечного значения? Если да, то снова выполняем тело цикла (п.2), в противном случае цикл заканчивается.
Запишем теперь решение задачи про 10 примеров на знание таблицы умножения, используя цикл FOR:
CLS
FOR I=1 TO 10
X=INT(RND(1)*10)
Y= INT(RND(1)*10)
PRINT X; ”*”; Y; “=”;
INPUT A
IF X*Y=A THEN PRINT “верно” ELSE PRINT “неверно ”
NEXT I
END
ЗАДАЧИ:
- ЭВМ последовательно запрашивает оценки по информатике каждого из 12 учеников группы, вычисляет среднее арифметическое и выводит его на экран.
CLS
S=0
FOR I=1 TO 12
INPUT “ВВЕДИ ОЦЕНКУ”; R
S=S+R
NEXT I
S=S/…
PRINT “средний балл =”; …
- В компьютер последовательно вводятся 10 чисел, не равных 0. Подсчитать количество положительных и количество отрицательных чисел.
CLS
KP=0
KO=0
FOR I=1 TO …
INPUT “ВВЕДИ ЧИСЛО”; R
IF R>0 THEN KP=KP+1 ELSE KO=KO+1
NEXT I
PRINT “положительных чисел -”; …; “отрицательных чисел -”; …
- В компьютер последовательно вводятся 10 символов А или О. Подсчитать количество символов А и количество символов О.
CLS
KА=0
KO=0
FOR I=… TO …
INPUT “ВВЕДИ СИМВОЛ”; R$
IF R$=”А” THEN KА=KА+1 ELSE KO=KO+1
NEXT …
PRINT “было введено символов А -”; …; “символов О -”; …
- С клавиатуры задается число в интервале от 1 до 10 (включительно). ЭВМ случайным образом выбирает 50 чисел в этом интервале. Определить, сколько раз ЭВМ выбирает заданное число. (Выбираемые числа выводить на экран в строчку)
CLS
K=0 ‘кол-во совпадений
INPUT “введи заданное число”; X
FOR …TO …
A=INT(RND(1)*10)+1
PRINT A;
IF А=Х THEN K=K+1
…
PRINT “ЭВМ выбрала”; …; “чисел, совпадающих с заданным числом”; …
- Написать программу, которая будет определять число работников бригады, не выполнивших норму (количество работников бригады, норма и выполненное каждым работником вводится с клавиатуры)
CLS
K=0 ‘кол-во работников бригады, не выполнивших норму
INPUT “сколько человек в бригаде”; N
INPUT “введи норму”; Х
… I=1 … N
PRINT "сколько сделал работник бригады с номером"; I
INPUT A
IF А<Х THEN K=K+1
… I
PRINT “не выполнили норму”; …; “человек”
------------------------------------------------------------------------------------------------------------------------------
Циклы (продолжение).
В предыдущих задачах параметр цикла использовался только как счетчик. Однако очень часто параметр цикла используется в командах тела цикла.
ЗАДАЧИ:
- Посчитать сумму чисел от 1 до 10
S=0
FOR I=1 TO 10
S=S+I
NEXT I
PRINT “СУММА ЧИСЕЛ =”; …
END
Все последующие программы отличаются от приведенной выше только одним оператором.
- Посчитать сумму чисел от 50 до 80
FOR I=50 TO …
- Посчитать сумму нечетных чисел от 1 до 10
FOR I=… TO … STEP 2
- Посчитать сумму четных чисел от 1 до 10
FOR I=2 TO 10 STEP …
- Посчитать сумму квадратов чисел от 1 до 10
S=S+I^…
Число А является делителем числа Х, если Х делится на А нацело, т.е. если Х/А=INT(Х/А). Или число А является делителем числа Х, если остаток от деления числа Х на число А равен нулю, т.е. Х MOD A = 0
Найти и вывести на экран все делители числа, которое вводится с клавиатуры.
CLS
INPUT “введи число”; X
… A=1 TO X/2
IF Х/А=INT(Х/А) … PRINT A; (или IF X MOD A=0 THEN PRINT A;)
… A
END
- Составить программу определения, является ли число, введенное с клавиатуры, «магическим». Проверить, является ли «магическим» число:
а) 6; б) 8.
Число называется «магическим», если сумма делителей этого числа равна самому числу (причем 1 считается делителем, а само число делителем не считается).
CLS
S=0
INPUT “введи число”; X
FOR A=1 … X/2
IF Х/А=INT(Х/А) THEN S=S+A
… A
IF S=X THEN PRINT “число”; …; “является магическим” ELSE PRINT “ число”; …; “не является магическим ”
END
Простым называется число, которое имеет всего два делителя – 1 и само себя.
Определить, является ли простым число, введенное с клавиатуры.
CLS
FL=0 ‘вводим некий флажок
INPUT “введи число”; X
… A=2 TO X/2
IF Х/А=INT(Х/А) … FL=1 ‘если есть делитель, то флажок =1
… A
… FL=0 THEN PRINT “число”; X; “является простым” ELSE PRINT “ число”; X; “не является простым ”
END
9. Найти сумму ряда (число N вводится с клавиатуры)
Внимательно смотрим на условие задачи и замечаем, что сумма S накапливается из однотипных слагаемых. Знаменатель каждого слагаемого меняется от 1 до N с шагом 1 (используется цикл «ДЛЯ» с параметром I). Параметр цикла I меняется от 1 до N. I находится в знаменателе каждого слагаемого.
CLS
INPUT “введи число”; N
S=0
… I=1 TO N
S=S+1/I
… I
PRINT “СУММА РЯДА =”; …
10. Найти сумму ряда (число N вводится с клавиатуры)
CLS
… “введи число”; …
S=1
… I=2 TO N
S=S+(I-1)/I
NEXT I
PRINT “СУММА РЯДА =”; …
11. Найти сумму ряда чисел, при заданном N:
S=1*1 + 1*2*2 + 1*2*3*3 + 1*2*3*4*4 + … + 1*2*3*…*N*N
Каждый член ряда образуется как некоторое промежуточное значение Х на номер члена ряда I, а каждое значение Х образуется умножением предыдущего значения Х на номер члена ряда I.
CLS
INPUT …
S=0
Х=1
… I=1 TO N
Х=Х*I
S=S+Х*I
… I
PRINT “сумма будет =”; …
------------------------------------------------------------------------------------------------------------------
Следующая группа задач принципиально отличаются от приведенных выше.
1. Сколько слагаемых должно быть в сумме, чтобы она не превысила 5?
Обратите внимание, что в этой задаче нам неизвестно, сколько слагаемых должно быть. (Именно это мы и должны определить). Поэтому мы не можем использовать цикл «ДЛЯ». Мы должны накапливать сумму S, ПОКА она меньше или равна заданному числу. Соответственно, переход к следующему числу мы должны будем организовать сами.
начало
S=0 : I=1
конец
I=I+1
S<=5
S=S+1/I
Слагаемых должно быть I
5 CLS10 S=0
20 I=1
30 S=S+1/I
40 I=I+1
50 IF S<=5 THEN 30
60 PRINT “слагаем. должно быть”; I
70 END
2. Первый член геометрической прогрессии В0=3, а коэффициент Q=5. Определить номер члена этой прогрессии, который больше 1000.
1 CLS
5 I=0 ‘номер члена прогрессии
10 B=3
20 Q=5
30 I=I+1
40 B=B*Q
50 IF B<=1000 THEN 30
60 PRINT “номер члена геометрической прогрессии больший 1000=”; I
70 END
3. С клавиатуры задается число в интервале от 1 до 10 (включительно). ЭВМ случайным образом выбирает числа в этом интервале. Сколько чисел выберет ЭВМ, ПОКА не «угадает» заданное число. (Выбираемые числа выводить на экран в строчку)
10 S=0
20 INPUT “введите число”; X
30 A=INT(RND(1)*10)+1
40 PRINT A;
50 IF X=A THEN 80
60 S=S+1
70 GOTO 30
80 PRINT “ЭВМ выберет”; S; “чисел”
4. Составить программу вычисления суммы, пока разность между предыдущим и текущим слагаемыми остается больше 0,04
5 CLS
нет
начало
S=1/2 : I=1 : Х=1/2 : Y=1/4
I=I+1
X=Y
Y=1/(2*I)
|X-Y|<=0.04
S=S+Y
конец
Сумма = S
да
10 S=1/220 I=1
30 X=1/2 ‘предыдущ. знач.
40 Y=1/4 ‘текущее. знач.
50 IF ABS(X-Y)<=0.04 THEN 110
60 S=S+Y
70 I=I+1
80 X=Y ‘текущее значен. стало предыдущим
90 Y=1/(2*I) ‘вычисляем след. значение
100 GOTO 50
110 PRINT “сумма =”; S
70 END
- Найти наименьшее количество слагаемых в сумме ряда чисел, при котором эта сумма станет больше 120:
S=1*1 + 1*2*2 + 1*2*3*3 + 1*2*3*4*4 + …
Каждый член ряда образуется как некоторое промежуточное значение Х на номер члена ряда I, а каждое значение Х образуется умножением предыдущего значения Х на номер члена ряда I.
5 CLS
10 S=0
20 I=0
30 Х=1
40 I=I+1
50 Х=Х*I
60 S=S+Х*I
70 IF S<=120 THEN 40
80 PRINT “слагаемых должно быть”; I; “тогда сумма будет =”; S
90 END
-------------------------------------------------------------------------------------------------------------------------------
По теме: методические разработки, презентации и конспекты
Методическая разработка по русскому языку (9 класс) на тему: "Русский язык - национальный язык русского народа".
Приобретение учащимися знаний об особенностях национального языка, его назначении, развитии....
Методическая разработка урока "7 класс Вложенные циклы"
Рассматриваемая тема расширяет базовый курс по информатике для средней школы и отнесена к теме Программировние. Теоретический материал темы раскрывается в ходе выполнения учащимися цикла практических ...
МЕТОДИЧЕСКАЯ РАЗРАБОТКА "Интеграция на уроках теоретического цикла в ДМШ"
Внутривидовая (предметная) интеграция уроков теоретического цикла и специальности, хора, оркестра, ансамбля; межвидовая интеграция: интеграция искусств, интеграция с предметами гуманитарного, те...
Методическая разработка по теме "Основы QBasic.Циклическая структура"
Данная разработка содержит конспект урока, презентацию, раздаточный материал....
МЕТОДИЧЕСКАЯ РАЗРАБОТКА проведения круглого стола из цикла «Уроки успеха». «Урок первый. Образование» для учащихся 7-х классов
«Корни образования горьки, но плоды сладки»....
МЕТОДИЧЕСКАЯ РАЗРАБОТКА проведения круглого стола из цикла «Уроки успеха». «Урок второй. Общество» для учащихся 8-х классов
«Жить в обществе и быть свободным от общества нельзя.»Владимир ...
Методическая разработка урока "В зоопарке" методическая разработка по английскому языку (5 класс)
Данный урок основан на учебнике Spotlight 5. Тема урока: В зоопарке . УМК: «Английский в фокусе» (Spotlight- 5) Ю.Е. Ваулина, Дж.Дули, О.Е. Подоляко, В.Эванс. Тип урока: урок актуализ...