Похожие презентации:
Разработка программ с линейной, разветвляющейся и циклической алгоритмической структурой. Лекция №18
1. Разработка программ с линейной, разветвляющейся и циклической алгоритмической структурой.
Лекция №182. Оператор типа переменной
DIM–
оператор
описания
типа
переменной.
Под
переменной
языках
программирования понимают программный
объект (число, слово, часть слова, несколько
слов, символы), имеющий имя и значение,
которое может быть получено и изменено
программой.
3.
Если "заглянуть" в компьютер, топеременную можно определить так:
Переменная - это имя физического
участка в памяти, в котором в каждый
момент времени может быть только
одно значение.
Переменная
это
ячейка
в
оперативной памяти компьютера для
хранения какой-либо информации.
4.
Самоназвание
"переменная"
подразумевает, что содержимое этого
участка может изменяться.
В качестве имен переменных могут
быть латинские буквы с индексами.
Причем может быть не одна буква, а
несколько.
Пример:
DIM a, b, chislo1 AS INTEGER
Integer – целые числа от -32768 до
32768
5.
Если в программе используютсяпеременные не описанные с помощью
оператора DIM, то компьютер будет
рассматривать их как универсальные
переменные. Это может привести к
неэффективному
использованию
оперативной памяти. К тому же, такие
программы не всегда легки для
восприятия - плохо читаемы.
6.
Для задания значения переменнойслужит оператор присваивания. Он
записывается так:
LET переменная = значение (или
просто: переменная = значение)
Пример:
LET a = 3
chislo1 = 15
END – оператор конца программы.
7. Операции на языке Бейсик
1. Арифметическиеоперации на
языке Basic.
2. Математические
языке Basic.
функции
на
8. Арифметические операции на языке Basic.
ОперацияОбозначение Пример Результат
Сложение
+
2+5
7
Вычитание
-
10-8
2
Умножение
*
3*4
12
Деление
/
15/3
15/4
5
3.75
Целочисленное деление
\
15\4
3
Возведение в степень
^
2^3
8
Остаток от деления
MOD
13 MOD 5
3
9. Математические функции на языке Basic.
КореньSQR(X)
Модуль числа
ABS(X)
Синус
SIN(X)
Косинус
COS(X)
Тангенс
TAN(X)
Целая часть числа
INT(X)
Натуральный логарифм
LOG(X)
10. Линейная структура программы
Программа имеет линейную структуру, если всеоператоры (команды) выполняются последовательно друг за
другом.
11. Пример: программа, складывающая два числа
REM Сумма двух чиселa=5
b=6
c=a+b
PRINT "Результат: ", c
END
REM Сумма двух чисел
DIM a, b, c AS INTEGER
a=5
b=6
c=a+b
PRINT "Результат: ", c
END
12. Пример: Вычислите площадь прямоугольника по его сторонам.
REM Площадь прямоугольникаINPUT "Введите сторону а", а
INPUT "Введите сторону b", b
s=a*b
PRINT "Площадь равна: ", s
END
13. Пример: Вычислить выражение
REM Вычисление выраженияINPUT "Введите а", а
INPUT "Введите b", b
c = SQR(2*a*b)/(a+b)
PRINT "Площадь равна: ", с
END
14. Пример: Вычислите длину окружности и площадь круга по данному радиусу
Пример:Вычислите
длину
окружности
площадь круга по данному радиусу
REM Вычисление длины окружности и
площади круга
INPUT "Введите радиус ", r
PI = 3.14
l = 2 * PI * r
s= PI * r * r
PRINT "Длина окружности равна: ", l
PRINT "Площадь равна: ", s
END
и
15. Ветвление в алгоритмах и программах.
Разветвляющий алгоритм – это алгоритм, вкотором в зависимости от условия
выполняется либо одна, либо другая
последовательность действий.
Во многих случаях требуется, чтобы при
одних
условиях
выполнялась
одна
последовательность действий, а при других другая.
16.
17.
Вся программа состоит из команд (операторов). Командыбывают простые и составные (команды, внутри которых
встречаются другие команды). Составные команды часто
называют
управляющими
конструкциями.
Этим
подчеркивается то, что эти операторы управляют
дальнейшим ходом программы.
18.
Рассмотрим запись условного оператора наязыке Basic.
Простая
форма
оператора
выглядит
следующим образом:
IF <УСЛОВИЕ> THEN <ОПЕРАТОР>
или
IF <УСЛОВИЕ>
<ОПЕРАТОР 1>
<ОПЕРАТОР 2>
…
<ОПЕРАТОР N>
END IF
19.
Еслиусловие
справедливо,
то
программа выполняет тот оператор, который стоит
после ключевого слова THEN (или серию операторов
от ключевого слова THEN до END IF), и дальше
руководствуется обычным порядком действий. Если
условие не справедливо, то оператор, стоящий
после THEN (или серия операторов от THEN до END
IF) не выполняется, и программа сразу переходит к
обычному
порядку
действий.
Конструкция IF...THEN позволяет в зависимости от
справедливости условия либо выполнить оператор,
либо
пропустить
этот
оператор.
Конструкция IF...THEN...END IF
позволяет в
зависимости от справедливости условия либо
выполнить группу операторов, либо пропустить эту
группу операторов.
20.
Условия - еще один тип логических выражений.В них используются следующие операторы
сравнения:
=
<>
>
<
>=
<=
равно
не равно
больше
меньше
больше или равно
меньше или равно
21.
Справа и слева от знака сравнениядолжны стоять величины, относящиеся к
одному типу. В результате сравнения
получается логическая величина, имеющее
значение ИСТИНА (TRUE) или ЛОЖЬ
(FALSE).
Пример:
5<7 - ИСТИНА;
8=12 -ЛОЖЬ (проверяем равно ли 8
12,
именно
проверяем,
а
не
утверждаем, что 8=12);
22.
Предыдущие конструкции позволялиобойти или выполнить серию оператор в
зависимости от справедливости условия.
Это еще не было ветвлением. Чтобы
вычисления могли разветвляться по
нескольким
направлениям,
служит
конструкция IF...THEN...ELSE...END IF.
IF <УСЛОВИЕ> THEN
<ОПЕРАТОРЫ 1>
ELSE
<ОПЕРАТОРЫ 2>
END IF
23.
Если условие справедливо (ИСТИНА), товыполняются <операторы 1> (стоящие
между THEN и ELSE), а <операторы 2>
(стоящие между ELSE и END IF) будут
пропущены.
Если условие не справедливо (ЛОЖЬ), то
<операторы
1>
игнорируются
и
выполняются <операторы 2>.
IF - если, THEN - тогда, ELSE - иначе.
Если в комнате темно, тогда надо
включить свет.
Если пойдет дождь, тогда надо взять
зонтик,
иначе, зонтик не брать.
24.
Пример: Проверить, равно ли введенноечисло некоторому значению, и в случае
равенства выдать на экран сообщение о
равенстве чисел.
REM сравнить число с каким-то
значением
INPUT "Введите а", а
IF a=7 THEN PRINT "Числа равны"
END
После запуска программы проверяется
равно ли введенное значение семи или нет.
Если равно, то на экран выводится
сообщение 'Числа равны'.
25. Пример: Определить большее из двух чисел, вывести его на экран, затем - увеличить его в двое и вывести результат на экран.
REM определить большее из двух чисел...INPUT "Введите а", а
INPUT "Введите b", b
IF a>b THEN
PRINT "Большее число: ", a
с=2*a
ELSE
PRINT "Большее число: ", b
с=2*b
END IF
PRINT "результат: ", c
END
26.
Сначала программа запрашивает обачисла, затем проверяет условие a>b. Если
условие верно, то на экран выводится число
a, затем это число удваивается. Иначе на на
экран выводится число b, затем число b
удваивается. В завершении на экран
выводится удвоенное значение большего
числа.
Обратите внимание: программа имеет
один недостаток - не учитывается тот
случай, когда введенные числа равны.
Исправим это, использовав вложение
одного условия в другое.
27.
REM определить большее из двух чисел...INPUT "Введите а", а
INPUT "Введите b", b
IF a=b TNEN
PRINT "Числа равны"
В этой программе два
с=2*a
условных оператора,
ELSE
первым проверяется
IF a>b THEN
условие
равенства
PRINT "Большее число: ", a
чисел и, в случае его
с=2*a
выполнения,
будет
ELSE
выдано сообщение о
PRINT "Большее число: ", b
равенстве чисел, если
с=2*b
числа не равны, то
END IF
проверяется
второе
END IF
условие...
PRINT "результат: ", c
END
28. Пример: Решение квадратного уравнения. Решение квадратного уравнения зависит от значения дискриминанта.
REM Решение квадратного уравненияINPUT "Введите коэффициент a: ", а
INPUT "Введите коэффициент b: ", b
INPUT "Введите коэффициент c: ", c
d=b*b-4*a*c
IF d<0 THEN
PRINT "Корней нет"
ELSE
IF d=0 THEN
x=-b/(2*a)
PRINT "корень уравнения: ", x
ELSE
x1=(-b-SQR(d))/(2*a)
x2=(-b+SQR(d))/(2*a)
PRINT "корни уравнения: ", x1, x2
END IF
END IF
END
29. Структура "Выбор".
Структура "Выбор".Структура IF... позволяет выбрать между двумя
вариантами. Если требуется осуществить выбор между
большим числом вариантов, то это можно организовать
используя лишь структуру IF... Но можно (что чаще
проще) и с помощью структуры "Выбор". Эта структура
имеет вид:
SELECT CASE <Выражение>
CASE <условие 1>
<серия 1>
CASE<условие 2>
<серия 2>
...
CASE ELSE
<серия иначе>
END SELECT
30.
Выражение, заданное после ключевыхслов SELECT CASE, сравнивается с
определенными
значениями
условиями и если они истинны, то
выполняется соответствующая серия
команд. Если не одно условие не
истинно, то выполняется серия команд
между CASE ELSE и END SELECT.
31. Пример: Выдать словесное значение числа
REM Преобразование чисел в словаINPUT "Введите число", a
SELECT CASE a
В
данном
примере
CASE 1
введенное
число
сравнивается с числами от 1
PRINT "один"
до 10 и если наше число
CASE 2
равно одному из этих чисел,
PRINT "два"
то на экран выводится
CASE 3
словесное значение числа.
PRINT "три"
Если это не так на экран
...
выводится сообщение: "это
CASE 10
число не могу перевести".
PRINT "десять"
CASE ELSE
PRINT "это число не могу перевести"
END SELECT
END
32. Циклы в алгоритмах и программах
Лучшее качества компьютеров проявляютсяне тогда, когда они рассчитывают значения
сложных выражений, а когда многократно, с
незначительными изменениями, повторяют
сравнительно простые операции. Даже очень
простые расчеты могут поставить человека в
тупик, если их надо повторить тысячи раз, а
повторять операции миллионы раз человек
совершенно не способен.
33.
Снеобходимостью
повторяющихся
вычислений программисты сталкиваются
постоянно. Например, если надо подсчитать,
сколько раз буква "о" встречается в тексте
необходимо перебрать все буквы. При всей
простоте этой программы исполнить ее
человеку очень трудно, а для компьютера это
задача на несколько секунд.
Циклический
алгоритм
описание
действий, которые должны повторяться
указанное число раз или пока не выполнено
заданное условие.
Перечень
повторяющихся
действий
называют телом цикла.
34. Например, на уроке физкультуры вы должны пробежать некоторое количество кругов вокруг стадиона.
35.
Такие циклы называются - циклы сосчетчиком.
На языке Basic они записываются
следующим образом:
FOR Счетчик=НачЗнач TO КонЗнач
[STEP шаг]
тело цикла
NEXT [Счетчик]
Параметры указанные в квадратных
скобках являются не обязательными (их
можно не записывать). По умолчанию шаг
цикла равен одному, т.е. каждый раз после
прохождения
тела
цикла
счетчик
увеличивается на единицу.
36. Пример: Вывести на экран все числа от 1 до 100. Для этого можно было бы написать следующую программу:
REM Вывод чисел от 1 до 100PRINT 1
PRINT 2
PRINT 3
Хотя эту же программу можно
PRINT 4
написать намного короче:
PRINT 5
PRINT 6
REM Вывод чисел от 1 до 100
PRINT 7
FOR I=1 TO 100
...
PRINT I
PRINT 98
NEXT
PRINT 99
PRINT 100
END
END
37.
Немного исправив программу можно сделать, чтобыона выводила все числа от a до b.
REM Вывод чисел от a до b
a=55
b=107
FOR I=a TO b
PRINT I
NEXT
END
В этом случае счетчик при первом прохождении
цикла принимает значение переменной a, после чего
выполняются операторы до ключевого слова NEXT.
После этого счетчик увеличивается на единицу и
сравнивается со значение переменной b, если счетчик
меньше, то цикл выполняется еще.
38.
Легко сделать чтобы программа выводила числав обратном порядке. Для этого шаг цикла должен
быть равен -1 (минус один). В этом случае
значение счетчика каждый раз после прохождения
цикла будет уменьшено на единицу.
REM Вывод чисел от b до a
a=55
b=107
FOR I=b TO a STEP -1
PRINT I
NEXT
END
39. Пример: Вычислить сумму двухзначных натуральных чисел.
REM Вычислить сумму двухзначных натуральныхчисел
FOR I=10 TO 99
s=s+I
NEXT
PRINT "Результат = ",s
END
40.
Программа перебирает числа от 10 до 99 каждыйраз выполняя действия s=s+I. С точки зрения
математики это совершенно бессмысленная запись,
но рассмотрим её внимательней.
Процесс решения вычислительной задачи - это
процесс последовательного изменения значений
переменных. В итоге - в определенных переменных
получается
результат.
Переменная
получает
определенное значение в результате присваивания.
Вы помните, что присваивание - это занесение в
ячейку, отведенную под переменную, определенного
значения в результате выполнения команды.
В результате операции а=5 переменная а получает
значение 5.
41.
В результате операции с=a+b переменная сполучает значение равное сумме значений
переменной а и b.
В результате операции s=s+I переменная
s получает значение равное сумме предыдущего
значения переменной s и значения переменной I. Т.е.,
если до операции присваивания значение s было
равно 5, а переменной I равно 3, то после операции
значение переменной s будет равно 8 (5+3, старое
значение s + значение I).
Значит после выполнения нашей программы в
переменной s будет хранится сумма всех двузначных
чисел от 10 до 99.
42. Пример: вычислить факториал числа а (записывается так: а!). Факториал - это произведение чисел от 1 до а. Например,
5! (факториал пяти) - это 5!=1*2*3*4*5REM Вычислить факториал числа
a=5
f=1
FOR I=1 TO a
f=f*I
NEXT
PRINT f
END
Вы, конечно, заметили, что до начала цикла мы
присвоили переменной f значение равное единице.
Иначе бы мы получили в результате ноль.
43.
В субботу вечером вы смотрите телевизор. Время отвремени поглядываете на часы и если время меньше
полуночи, то продолжаете смотреть телевизор, если это не
так, то вы прекращаете просмотр телепередач.
Циклы такого вида называют - циклы с предусловием
44.
На языке Basic они записываютсяследующим образом:
DO WHILE условие
Тело цикла
LOOP
В этом цикле проверяется условие и если
оно
выполняется
(ИСТИНА),
то
выполняется тело цикла до ключевого слова
LOOP, затем условие проверяется снова ... и
так до тех пор пока условие истинно.
45.
DO UNTIL условиеТело цикла
LOOP
Этот цикл отличается от предыдущего
только тем, что он выполняется до тех пор
пока условие не истинно (т.е. совсем
наоборот).
46. Пример: Вывести все натуральные числа меньше данного.
REM Вывод всех чисел меньше данногоa=0
Стоит обратить внимание на
chislo=10
то, что цикл может быть не
выполнен ни разу (если
DO WHILE a<chislo
условие первоначально не
PRINT a
истинно, например, a=5,
а chislo=4).
a=a+1
И наоборот, если условие
будет истинно при любых
LOOP
значениях переменный, то
цикл
будет
выполнятся
END
бесконечное
число
раз
(произойдет зацикливание)
47. Пример цикла, который будет выполняться бесконечное число раз:
REM зацикливаниеDO WHILE a=a
PRINT "Это сообщение будет выводится на
экран постоянно"
LOOP
PRINT "А это сообщение вы не увидите
никогда"
END
48.
Вам надо поточить все карандаши в коробке. Вы точите одинкарандаш и откладываете его в сторону. Затем проверяете,
остались ли карандаши в коробке. Если условие ложно, то снова
выполняется действие 'заточить карандаш'. Как только условие
становится истинным, то цикл прекращается.
Циклы такого вида называют - циклы с постусловием.
49.
На языке Basic они записываютсяследующим образом:
DO
Тело цикла
LOOP WHILE условие
DO
Тело цикла
LOOP UNTIL условие
Циклы такого рода отличаются тем, что
хоть один раз, но тело цикла будет
выполнено вне зависимости от условия.
Условие проверяется после первого
выполнения тела цикла.
50. Пример: Вычислите сумму цифр в числе.
REM Сумма цифр числаDIM a, chislo, s AS INTEGER
INPUT "Введите число: ", chislo
a=chislo
DO
s=s+a MOD 10
a=a/10
a=INT(a)
LOOP UNTIL a=0
PRINT "Сумма цифр числа ",chislo ," равна: ", s
END
51.
Переменную s используем для хранениясуммы
цифр.
До
начала
цикла
в
переменную a заносим значение переменной
chislo.
Все
дальнейшие
преобразования
осуществляем с переменной а. В цикле берем
остаток от деления на 10 (последняя цифра
числа) и прибавляем к тому, что уже есть в
переменной s; делим значение переменной а на
10, берем целую часть (т.е. отбрасываем
последнюю цифру числа) и заносим в а. Цикл
продолжается до тех пор пока значение
переменной а не окажется равным нулю
(перебрали все цифры числа). Результат
выводим на экран
52.
Домашнее заданиеНайти ответы на вопросы и выписать
их в тетрадь.
1. \ - как называется эта арифметическая операция в
переводе с Basic
2. Оператор сравнения «больше или равно» в QBasic …?
3. Сколько значений может иметь переменная в
каждый момент времени?
4. REM сравнить число со каким-то значением
INPUT "Введите а", а
IF a=7 THEN PRINT "Числа равны"
END - что делает эта программа
5. Оператор описания типа переменной - …?
6. Оператор сравнения «не равно» в QBasic - …?
53.
7. Модуль числа на Basic?8. Как правильно на языке Basic программу содержащую
цикл со счетчиком?
9. Чему должен быть равен шаг цикла чтобы программа
выводила числа в обратном порядке?
10. LET - это оператор ...
11. Что такое переменная в языках программирования?
12. Условная запись цикла -…?
13. Чему равен по умолчанию шаг цикла в программах
Basic содержащих цикл со счетчиком?
14. Запись условного оператора ветвления - …?
15. Имя физического участка в памяти компьютера
называют ...
16. MOD – как называется эта арифметическая операция в
переводе с Basic
17. Оператор сравнения «меньше или равно» в QBasic - …?
Программирование