Пензенский колледж управления и промышленных технологий
им. Е.Д. Басулина
Лекции по дисциплине
«информатика»
для студентов,
обучающихся на базе основного
общего образования
часть II
Составил преподаватель:
Л.С. Лачугина
Решение задач на ЭВМ
Одним из новейших
средств решения различных учебных и производственных задач становится ЭВМ.
Универсальность ЭВМ состоит в возможности выполнения ими практически любых
задач, связанных с обработкой данных в любой предметной области.
Решение задач на
ЭВМ предполагает реализацию следующих этапов:
1. Постановка задачи.
Поиск решения
задачи начинается с анализа ее условий. Результатом анализа должна стать четкая
постановка задачи, т.е. нужно определить все исходные и выходные данные.
2. Построение математической
модели и выбор метода решения.
На этом этапе
решения задачи нужно «перевести» задачу на язык математики, т.е. создать
математическую модель. Для этого нужно:
а)
выделить предположения, на которых основана математическая модель;
б)
определить, что считать исходными данными и результатами;
в)
записать математические соотношения (формулы, уравнения, неравенства и т.д.),
связывающие результаты с исходными данными.
После того как
математическая модель создана, необходимо решить нужным методом полученное уравнение,
неравенство или систему уравнений, систему неравенств.
3. Разработка алгоритма.
Перед
использованием ЭВМ необходимо составить алгоритм решения задачи каким-либо
способом.
4. Программирование.
Алгоритм,
написанный на языке программирования, называется программой. Данный этап
предполагает ввод программы в ЭВМ.
5. Отладка.
Не исключено, что
при вводе программы были допущены различного рода ошибки. Поэтому перед
запуском необходимо их исправить. Этот процесс называется отладкой.
6. Выполнение.
Далее в работу
вступает ЭВМ, которая работает в соответствии с введенной программой и выводит
результат.
7. Анализ результатов.
Последним этапом
является анализ полученных результатов на достоверность.
Первые три этапа
были рассмотрены в теме «Алгоритмизация».
Основы программирования
Язык программирования Basic.
Алфавит, простейшие конструкции.
Правила работы с программами.
Программа – это последовательность
действий, понятных машине.
Для составления
программ применяются специально созданные языки – языки программирования
(Паскаль, Бейсик, СИ, Ассемблер и др.) Одним из них является язык Бейсик.
Бейсик – язык программирования,
т.е. средство для записи алгоритма решения задачи в виде программы. Бейсик –
один из наиболее простых языков и очень подходит для начального знакомства с
ЭВМ.
Язык Бейсик был
создан в 60-х годах XX в. как язык для начального
обучения программированию в диалоге с ЭВМ. Этот язык создавался американскими
программистами, и поэтому в основу его была положена лексика английского языка.
На ПЭВМ язык
Бейсик позволяет составлять самые различные программы: Для поведения
математических расчетов и построения графиков, организации игр, диалоговых
справочников, обучающие, консультирующие и многие другие программы.
Алфавит языка
Каждый язык имеет
свой синтаксис и алфавит. Алфавит языка Бейсик включает:
·
буквы
латинского алфавита от A до Z;
·
буквы
русского алфавита (только в текстовых константах);
·
арабские
цифры 0, 1, 2, …, 9;
·
знаки
арифметических операций: + сложение; –
вычитание; * умножение; / деление; ^ возведение в степень;
·
знаки
операций отношения: = равно; > больше; < меньше; >= больше или равно; <= меньше или равно; <> не равно;
·
разделители
и прочие символы: . точка; , запятая; ; точка с запятой; : двоеточие; пробел; ! признак вещественной величины; # признак вещественной величины
двойной точности; % признак
целой величины; (
) скобки
круглые; “ кавычки; ‘ апостроф.
Данные
В Бейсике
используются следующие виды данных: константы и переменные.
Каждая группа
данных в свою очередь, имеет деление:
1. Константы (константа
– это постоянная неизменяемая величина):
а)
числовые;
б)
строковые (текстовые).
Числовая
константа
записывается в программе в виде конкретного числа.
Целая константа – это набор
десятичных цифр (со знаком или без него). Лежит в диапазоне от –32768 до 32768.
Пример: 78, –567
Вещественная
константа –
это последовательность десятичных цифр (со знаком или без него) и точки. Точка
разделяет целую и дробную части константы.
Различают
вещественные константы с фиксированной точкой
Пример: –12.6, 78.234, –.89
и с плавающей
точкой (в экспоненциальном виде). В общем случае для представления числа в
таком виде оно преобразуется в выражение:
,
после чего
записывается в следующем виде:
, где –
мантисса, – порядок числа, –
обозначение основания степени.
Пример: 6.83 Е7 (т. е. 6,83 × 107 = 68300000)
–2.1
Е –7 (т. е. –2,1 × 10–7 = –0,00000021)
Текстовая
(строковая) константа – это последовательность любых символов языка (в том числе
заглавных букв русского алфавита), ограниченная кавычками.
Длина текстовой
константы не более 255 символов.
Пример: «Кошка, которая гуляет сама
по себе»
2. Переменные (переменная
– это величина, значение которой может изменяться в процессе выполнения
программы):
а)
числовые;
б)
текстовые (строковые).
Переменные хранят
константы во время работы программы. Переменная обозначается именем, которое
состоит не более чем из 255 символов: латинских букв; букв и цифр, начинающихся
с буквы. Последний символ в имени переменной может явно задавать ее тип:
% – целый,
! – вещественный (6 знаков),
# – вещественный двойной точности (14 знаков),
$ – символьный.
Переменная
каждого типа может принимать только значения, допустимые для констант
соответствующего типа.
Пример: А, АХ, А8, ВХ$
Встроенные (стандартные) математические функции
Для проведения
математических расчетов в языке Бейсик, как и в калькуляторах, имеются
элементарные математические функции. Для наиболее употребительных функций
программы их вычисления записаны в память ЭВМ в библиотеки программ, а функции
включены в состав языков программирования. Обращение к ним упрощается. Такие
функции называются встроенными.
Встроенные
математические функции – это те функции, которые компьютер умеет вычислить.
Для вычисления
каждой из них в программе достаточно указать лишь ее имя и значение аргумента.
Рассмотрим форму
записи и примеры использования этих функций:
Функция
|
Описание
|
Пример
|
Результат
|
ABS
(Х)
|
Возвращает абсолютную величину
(модуль) числа
|
ABS(–3)
|
3
|
SQR (X)
|
Возвращает квадратный корень из
числа
|
SQR(2)
|
|
SIN (X)
|
Возвращает значение синуса
аргумента (аргумент указывается в радианах)
|
SIN(0)
|
0
|
COS (X)
|
Возвращает значение косинуса аргумента
(аргумент указывается в радианах)
|
COS(0)
|
0.99999
|
TAN (X)
|
Возвращает значение тангенса
аргумента (аргумент указывается в радианах)
|
TAN(0)
|
0
|
ATN (X)
|
Возвращает значение арктангенса
аргумента (результат в радианах)
|
ATN(1)*4
|
3.14159
|
EXP (X)
|
Находит значение показательной
функции ex
|
EXP(1)
|
2.71828
|
LOG (X)
|
Находит значение натурального
логарифма
|
LOG(2)
|
0.693147
|
INT (X)
|
Возвращает значение целой части
числа
|
INT(2.5)
INT(–2.5)
|
2
–3
|
RND (X)
|
Датчик случайных чисел (каждое
обращение к этой функции будет давать некоторое число от 0 до 1 – заранее
неизвестно, какое именно. При этом каждое новое обращение будет давать новое
значение)
|
RND(1)
|
0.456732
|
Пример:
Выражения
Выражение
представляет собой запись, указывающую, какие операции следует произвести над
данными, чтобы получить требуемое значение.
Различают два
вида выражений – арифметические и текстовые.
Арифметическое
выражение
содержит в себе числа (числовые константы), числовые переменные, стандартные математические
функции, соединенные знаками арифметических операций и скобки.
Результатом
вычисления арифметических выражений является число.
Простейшим
применением Бейсика может быть использование ЭВМ в качестве калькулятора. Для
этого достаточно команд вывода на экран значений арифметических выражений.
Команда
|
Результат
|
Пояснения
|
? 1+2+3+4+5¿
|
15
|
сумма пяти чисел
|
? 365*24*60¿
|
525600
|
число минут в году
|
? 2 ^ 10¿
|
1024
|
2 в 10-й степени
|
? (367 – 24) / 7¿
|
49
|
число недель
|
?5 / 3¿
|
1.66666666666666
|
дробное число
|
Пример:
Арифметическое
выражение задает правило вычисления числового значения.
Пример: (5 * Х + 3.3 * COS (X)) / LOG (Y)
Текстовое
выражение может содержать символы, слова, строковые
функции и операции конкатенации (склеивания).
Пример: В$ = «А» + «1»
В частном случае
текстовым выражением является текстовая переменная или константа.
Пример: С$, «КОНЕЦ»
Результатом
вычисления символьного выражения является символ или группа символов.
В Бейсике
используются арифметические операции +,-,*, /, ^ (возведение в степень).
В состав языка
Бейсик включаются еще две операции, выполняемые над целыми величинами:
А\В – целочисленное деление.
Результат – частное от деления А на В.
А MOD В – деление
по модулю В. Результат – остаток от деления А на В.
Пример: 9 \ 2 = 4, 9 MOD 2 = 1, 9 MOD 4 = 1
При записи
арифметических выражений необходимо придерживаться следующих правил и
ограничений:
1) все формулы должны записываться в
одну строчку (многоэтажные выражения, верхние и нижние символы запрещены);
2) два знака
арифметических операций не должны располагаться рядом. Знак умножения опускать
нельзя;
3) операции в
арифметическом выражении выполняются в порядке старшинства, т. е.: а) операции
внутри скобок;
б)
вычисления встроенных функций;
в)
возведение в степень;
г)
операция умножения и деления;
д)
операции целочисленного деления;
е)
операции деления по модулю;
ж)
операции сложения и вычитания.
4) операции
равного старшинства выполняются по порядку слева направо (исключение: А ^ В ^ С
= А ^ (В ^ С)).
Примеры:
→ (5 + 6) / 2
→ 1 / (3 * 4) (но не 1 / 3 * 4)
→ (А * Х + В) / (15 * А)
→ SQR (5 * X ^ 3 + 3.6) / (Y – 5) / A + D
→ (3 * X – COS (X)) ^ (1 / 3) / (2.5+ABS (Y) ^ 5)
→ (P * SIN (X) + COS (X) ^ 2) / (EXP (2) + LOG (G))
Понятие оператора и программы. Правила работы с программами
Программа – это последовательность
команд, которые должна выполнять машина.
Иными словами, программа
– это алгоритм, записанный на языке, понятном для ЭВМ. Располагая алгоритмом,
мы можем перевести его на любой язык программирования.
Текст программы,
как и осмысленный текст на русском языке, состоит из отдельных предложений. В
языке Бейсик они называются операторами.
Каждый оператор
записывается строго определенным образом и указывает, какую операцию и над
какими величинами ЭВМ должна выполнить.
Теперь обсудим
правила записи программ на языке Бейсик.
Программа на
языке Бейсик – это последовательности строк, содержащие операторы (один
или несколько операторов, разделяемых двоеточием) и комментарии.
Формат строки: [№пробел ] оператор…
С помощью
комментариев можно включать в программы слова и фразы, поясняющие смысл
выполняемых действий. Комментарии в программах начинаются со знака апострофа: ¢. Комментарии могут стоять в
конце строки либо занимать всю строку целиком.
Составление
программ на языке Бейсик лучше всего начинать с составления алгоритма, а уже
затем записывать этот алгоритм на языке Бейсик. Такой способ дает возможность
составлять более понятные программы, которые легче читать и легче исправлять.
После составления
программ начинается ее ввод и испытание на ЭВМ. Эта работа состоит в следующем:
1) ввод
программы;
2) выполнение
программы;
3) исправление
программы.
Ввод каждого
оператора обязательно заканчивается нажатием клавиши <Enter>. Только после этого ЭВМ
запоминает введенный оператор и вставляет его в соответствующее место
программы.
Выполнение
программ на Бейсике начинается по команде RUN (RUN – выполнять) или
клавиша F5.
Редактирование
программ – это исправление введенных строк или удаления ненужных.
Оператор CLS стирает текст программы с экрана.
Удаление из
памяти всего текста программы осуществляется командой FILE ® NEW (NEW – новый).
Нарушение правил
языка программирования при записи команд и операторов в программах называются
синтаксическими ошибками. Такие ошибки ЭВМ обнаруживает автоматически. При
обнаружении их ЭВМ прерывает выполнение программы и выводит на экран сообщение
с указанием ошибочного оператора.
Операторы языка Бейсик
Все операторы
языка Бейсик можно разделить на основные группы:
1) присваивания;
2) ввода-вывода;
3) управления
(условия, выбора, разветвления, цикла)
4) организации
подпрограмм и функций;
5) обработки строковых
величин;
6) организации
массивов;
7) графические,
музыкальные;
8) начала и
окончания программы.
Рассмотрим каждую
группу операторов.
Оператор
присваивания. Он присваивает переменной значение некоторого выражения.
Общий вид
оператора: LET X=A
Здесь LET – имя оператора (переводится
«пусть») может быть опущено;
Х – имя
переменной;
А –
выражение, арифметическое или текстовое.
Работа
оператора:
вычисляет значение выражения А и присваивает его переменной Х.
LET R=3*X+2*SIN(Y)^2
|
вычисляет значение R по формуле
|
LET R=R+1
|
значение R увеличивается на 1
|
Y=LOG(X)^2+AВS(Z)
|
вычисляет значение Y по формуле
|
LET B$="Тетя Маша"
|
присваивает текстовой переменной В$
значение текстовой константы
|
Пример:
Оператор
ввода INPUT. Данные могут вводиться с
клавиатуры или заноситься непосредственно в память ЭВМ с помощью оператора
присваивания.
В языке Бейсик в
качестве оператора ввода информации с клавиатуры используется оператор INPUT.
Общий вид
оператора: INPUT["строка-подсказка";]
х1, х2, …, хi, ..., xn
(список вводимых переменных)
где INPUT – имя оператора;
строка-подсказка
– выводимая на экран информация – обычно содержит комментарии к вводимой
информации (может быть опущена);
список
переменных – одна или несколько переменных, разделенных запятыми.
Пример: оператор INPUT "Введите А, В"; А, В$
выдает на экран сообщение
ВВЕДИТЕ А, В ?
Работа
оператора:
1) оператор
прерывает выполнение программы, выдает на экран текст подсказки и знак «?» –
приглашение к вводу данных;
2) пользователь
должен набрать на клавиатуре для каждой переменной хi, ее значение сi, разделяя их запятыми;
3) по окончании
набора данных пользователь должен нажать клавишу <Enter> – данные с экрана вводятся
в ЭВМ и каждой величине хi присваивается ее значение сi, при этом проверяется соответствие типов этих величин и
количество вводимых значений.
Операторы DATA, READ. Служат для организации и хранения
данных внутри программы (необходимы, когда используются редко изменяющиеся
данные, например справочные).
Общий вид
операторов: DATA c1,c2,...ci,...cn
(список
констант)
READ x1,x2,...,xi,...,xn
(список переменных)
где DATA, READ – имена операторов;
хi – имя переменной;
сi – константа (числовая или
текстовая).
Работа операторов: последовательно каждой
величине хi оператора READ присваивается значение сi из оператора DATA, т. е. действие операторов равносильно
выполнению операций: х1 = с1; х2 = с2;
… xn = cn
Пример: DATA 30, 40, "ТЕКСТ"
READ А, В, С$
В результате
выполнения операторов переменной А присваивается значение 30, переменной В –
40, переменной С$ – "ТЕКСТ".
Оператор RESTORE. Это оператор без аргументов.
Служит для повторного чтения одних и тех же данных операторами READ. После выполнения оператора RESTORE оператор READ начинает чтение данных с первого
элемента оператора DATA (с с1).
Пример: после выполнения операторов
DATA 5, 17, 30, 50
READ А, В
RESTORE
READ С, Х
величины А,
В, С, Х получают значения 5, 17, 5, 17.
Оператор
вывода PRINT. Он служит для вывода информации
на экран монитора.
Общий вид
оператора: PRINT [список вывода]
где список
вывода – выводимые данные. Ими могут быть числовые и символьные константы,
переменные, арифметические, логические, строковые выражения. Каждое выводимое
данное отделяется друг от друга разделителем, который определяет, как будут
выводиться данные:
1) если
разделитель точка с запятой (;), то данные выводятся друг за другом подряд
(через пробел);
2) если
разделитель запятая (,), то под каждое выводимое данное отводится определенное
количество символов (зона) – экран разбивается на 5 колонок по 14 позиций в
каждой. Такой формат называется «зонным». Каждый оператор PRINT выводит список данных с новой
строки.
Оператор PRINT может записываться без списка
величин, тогда на экран выводится пустая строка.
В одном операторе
PRINT можно использовать различные
разделители («,» и «;»).
Работа
оператора:
оператор просматривает последовательно элементы списка и для каждого элемента
выводит на экран его значение.
Пример 1: в результате выполнения
операторов
X=30
PRINT 100; –20; X; "ФАРА"; "ОН"; X–80
на экране получим
текст:
100 –20 30 ФРА ОН
–50
Пример 2: после
выполнения операторов
В=
–10
Н=В
Т=100
PRINT В, В+Н, –3, –4, 6, 7, Т,
"КОНЕЦ"
на экране получим
такие две строки:
–10 –20 –3 –4 6
7 100 КОНЕЦ
Замечание. Операторы INPUT и PRINT позволяют организовать диалог пользователя с ЭВМ
(программой).
Пример: PRINT "Я – ПЭВМ! А как ваше имя?"
INPUT А$ ‘вводится имя пользователя
PRINT "Здравствуйте,"; А$; "!" ‘печатается слово «Здравствуйте» и имя
PRINT "Как погода?"
PRINT "Да, погода"; В$;
"!" ‘печатается фраза, содержащая это слово
|
|
INPUT В$ ‘вводится слово, определяющее характер погоды
Функция TAB в операторе PRINT: Она служит для вывода
(печати) значения величины в определенных позициях строки экрана (листа
бумаги).
Общий вид
функции: TAB (n)
где n – целое число или арифметическое
выражение.
Работа
оператора PRINT с функцией TAB: оператор PRINT TAB (n); Х выводит значение Х с n-й позиции строки. Нумерация позиций
в строке начинается с нуля (в QBASIC с
1. Длина строки программы 80 позиций).
Пример: С=10
В= –20
PRINT
TAB(5); С, TAB(10); В; TAB(20); "МАМА"
получим строки: 10
–20 МАМА
В этом примере TAB(10) выводит значение В = –20 на
следующей строке, так как запятая после С переводит курсор в 14-ю позицию.
Вывод
информации на печать. Для этого используется оператор LPRINT. Он записывается и работает
аналогично оператору PRINT и также использует функцию TAB.
Оператор REM. Он служит для включения в текст
программы пояснений, необходимых для ее понимания.
Общий вид
оператора: REM [текст]
где REM – признак оператора (замечание,
примечание);
текст –
последовательность любых символов языка Бейсик.
Пример: REM Вычисление площади круга
Вместо слова REM можно использовать символ ¢ (апостроф) и записывать
оператор в одной строке с любым другим оператором.
Пример: Y=4*X^3+6 ¢Расчет прочности
Оператор END. Он прекращает выполнение программы,
является последним оператором программы.
Контрольные вопросы
1. Назовите этапы решения задач
на ЭВМ. Охарактеризуйте каждый из них.
2. Буквы какого алфавита
используются в Бейсике?
3. Какие типы данных в Бейсике
вам известны?
4. Как обозначаются константы и
переменные в Бейсике?
5. Какие типы констант и
переменных существуют в Бейсике? Как обозначаются переменные различных типов?
6. Как записываются числа на
языке Бейсик?
7. Что называется арифметическим
выражением в Бейсике? Каков порядок выполнения операций в таком выражении?
8. Какие математические функции
есть в языке Бейсик?
9. Что такое программа для ЭВМ?
10. Что такое оператор в языке
Бейсик? Какие операторы вы знаете?
11. Назначение оператора REM. Выполняется ли он в программе?
12. Каким образом в программу
вводятся исходные данные?
13. Как стереть программу а) с
экрана; б) из памяти?
14. Каково назначение и работа
оператора LET?
15. Каково назначение операторов
INPUT и PRINT в Бейсике? Как записываются эти операторы?
16. Можно ли в операторе INPUT записывать пояснения?
17. Как обеспечить в программе
выдачу результатов на печать?
18. Как записать в программе
пояснения к тексту программы?
Составление
линейных программ
Программа – это алгоритм, записанный
на языке, понятном для ЭВМ.
Программа на языке Бейсик – это
последовательности строк (один или несколько операторов, разделяемых
двоеточием), содержащие операторы и комментарии.
Линейной называется программа,
являющейся записью линейного алгоритма. В ней все операторы выполняются строго
последовательно, т. е. после выполнения каждого оператора ЭВМ автоматически
переходит к выполнению следующего за ним оператора.
Составление
программ производится по такому правилу: для каждого блока схемы записывается
соответствующий ему оператор Бейсика, т. е.
для блока Начало
– оператор REM с названием программы;
для блока Ввод
– оператор ввода;
для блока Процесс
– оператор присваивания;
для блока вывод
– оператор вывода;
для блока конец
– оператор END.
Задача 1. Вычислить периметр
прямоугольного треугольника, если заданы длины его катетов.
В первой строке программы будем записывать оператор CLS.
CLS
→ REM ПЕРИМЕТР ТРЕУГОЛЬНИКА
→ INPUT «Ввести катеты А и В»; А, В
→ Y=(A^2+B^2)^0.5
→ P=Y+A+B
→ PRINT «Гипотенуза Y=»; Y;
«Периметр Р=»; Р
→ END
Задача 2. Составить программу
вычисления значения выражения по формуле . Число
Х вводится с клавиатуры.
CLS
REM Вычисление Х
INPUT «Введите число»; Х
Y=(1–X)^2
PRINT «Значение выражения равно»; Y
END
Контрольные вопросы
1. Какая программа называется
линейной?
2. Каким образом можно исправить
ошибку в строке?
3. Назначение клавиш INS и DELETE.
4. Какие операторы соответствуют
блокам алгоритма:
а) начало;
б) ввод;
в) процесс;
г) вывод;
д) конец.
5. Как записывается каждый из
этих операторов и как работает?
Разветвляющиеся программы
Операторы передачи управления
Разветвляющейся называют программу, которая
является записью разветвляющегося алгоритма.
В линейных
программах операторы выполнялись строго последовательно. В разветвляющихся
программах часто требуется обеспечить иной порядок выполнения операторов. Для
этой цели служат операторы передачи управления. Рассмотрим два из них: оператор
безусловного перехода и оператор условного перехода.
Оператор безусловного перехода
Он служит для
перехода из одной строки программы к другой.
Общий вид
оператора: GOTO n
где GOTO – имя оператора (переводится – «перейти к…»);
n – номер строки программы.
Работа
оператора:
оператор обеспечивает переход к строке программы с номером n.
Пример 1. 10 Х=Х+1
Р=(Х+2)*3
GOTO 10
Здесь оператор
перехода обеспечивает циклическое выполнение двух операторов.
Пример 2 Х=3*А
GOTO 70
У=2*Х
Здесь
оператор GOTO 70 позволяет обойти 60-ю
строку программы.
|
|
70
В=5*Х
Логические выражения в Бейсике
В языке Бейсик
логические выражения имеют тот же смысл, но записываются по правилам этого
языка.
Отношение в Бейсике – это конструкция
вида A @ B, где А и В – либо арифметические
выражения либо текстовые; под символом @ подразумевается один из знаков
операции отношения.
Пример: (LOG(X)+2)<=(ABS(Y–3))
“ДА“
< > “НЕТ“
Логические операции в Бейсике
изображаются служебными словами:
AND (и); OR (или); NOT (не).
Логическое выражение в Бейсике –
это отношение или формула, составленная из отношений, круглых скобок и символов
логических операций.
Логическое
выражение принимает значение «истина» или «ложь» (1 или 0).
Условный оператор
Он обеспечивает в
программе проверку условий и организацию ветвлений.
Общий вид записи оператора (полная форма):
Общий вид записи оператора (неполная
форма):
где IF (если), THEN (то), ELSE (иначе) – служебные слова языка
Бейсик;
P1 (P2) – оператор или группа операторов;
<Условие>
– логическое выражение, т. е. отношение или составное условие.
Работа
оператора:
Работа каждого варианта оператора определяется соответствующей схемой
разветвляющегося алгоритма
вариант 1 вариант
2
После выполнения
оператора(ов) Р1 или Р2 во всех случаях обеспечивается переход к
следующей строке.
Пример 1: IF X<Y THEN A=X: B=Y ELSE A=Y: B=X
PRINT “A=”;A, “B=”;B;
Пример 2: Y=COS(X)
IF(2<=X) AND (10>=X)
THEN Y=SIN(X): Z=Y*Y;
Y=2:
Z=10
Во 2-м примере в
случае истинности условия 2 £ Х £ 10 выполняются последовательно операторы Y=SIN(X) и Z=Y*Y, и в противном случае выполняются
операторы Y=2:
Z=10.
Примеры составления разветвляющихся программ
Задача 1. Вычислить значение Y по одной из формул:
ìX +Z, если X<10 и Z>5,
Y = í
îX * Z, в остальных случаях.
Решение. CLS
REM Задача
INPUT
«Введите числа X и Z»; X, Z
А=X*Z
IF
X>=10 THEN Y=А: GOTO 70
IF Z<=5 THEN Y=А: GOTO 70
Y=X+Z
70 PRINT «Y=»; Y
END
Задача 2. Составить программу ввода
величины t – времени в течение суток, и
выдачи текста:
«Вы уже
проснулись?», если t<10;
«Не пора ли
обедать?», если t=12;
«Еще не вечер!»,
если t³18;
«Как
работается?», в остальных случаях.
Решение. CLS
REM Время
PRINT
«Который час?»
INPUT Т
С$ = «Вы
уже проснулись?»
Р$ = «Не пора
ли обедать?»
IF Т<10 THEN
PRINT С$: GOTO 100
IF Т=12 THEN PRINT
Р$: GOTO 100
IF Т>=18 THEN PRINT
«Еще не вечер!»: GOTO 100
PRINT «Как работается?»
100 END
Контрольные
вопросы
1. Какая программа называется
разветвляющейся?
2. Для чего служат операторы
передачи управления?
3. Каково назначение и общий вид
записи оператора безусловного перехода?
4. Что такое отношение и
логическое выражение в языке Бейсик?
5. Как записать оператор
условного перехода в полной форме?
6. Чем отличается от него
условный оператор в неполной форме?
7. Можно ли после оператора ELSE вновь записать команду ветвления?
8. Можно ли в качестве условия
указать: а) математическую функцию; б) арифметическое выражение?
9. Можно ли в команде ветвления
вычислить и вывести на экран более одного арифметического выражения?
Циклические программы
Циклической называется программа,
которая является записью циклического алгоритма.
Циклические
программы с использованием операторов
передачи
управления
Любой циклический
алгоритм можно рассматривать как частный случай разветвляющегося алгоритма, а
потому любую циклическую программу можно составить с помощью тех же операторов,
которые используются в разветвляющихся программах (т. е. операторов передачи
управления).
В этом случае
блок проверки окончания цикла и блок изменения аргумента цикла будут
изображаться оператором-строкой вида:
IF ‹условие›THEN P1: GOTO n
Работа операторов
определяется соответствующей схемой алгоритма.
Задача. Составить алгоритм и
программу, вычисляющую значения функции
Y = X3 + BX – C при Х = 2, 4, 6, 8, 12 (используя
цикл «пока» – с предусловием и цикл «до» – с постусловием).
Решение. Составим программу,
соответствующую схеме алгоритма.
а) CLS
REM Цикл «пока»
INPUT “Ввести переменные”; B, C
X = 2
10 IF
X < 12 THEN Y = X^3 + B*X – C
PRINT X, Y
X: = X + 2
GOTO 10
б) CLS
REM Цикл «до»
INPUT B, C
X = 2
10 Y: = X3 + B*X – C
PRINT X, Y
X = X + 2
IF X < 12 THEN GOTO 10
END
Циклические программы с операторами цикла
В языке Бейсик
есть специальные операторы цикла, позволяющие создавать более компактные
программы – операторы FOR и NEXT (пригодны для описания алгоритмов с
заданным числом повторений).
Общий вид
записи операторов:
FOR I = n TO k STEP шаг (заголовок цикла)
NEXT I
где FOR – имя оператора (переводится «для»);
I – управляющая переменная
цикла (целого типа)
n – начальное значение
управляющей переменной;
k – конечное значение
управляющей переменной;
TO, STEP – символы языка Бейсик (переводятся
«до», «шаг»);
P – оператор или группа
операторов языка;
NEXT – имя оператора (переводится
«следующий»)
Исключение. Если шаг равен единице, то
конструкцию STEP 1 можно опустить.
Работа операторов
FOR и NEXT определяется соответствующей схемой алгоритма.
Пример. Составить программу по
данным предыдущей задачи, используя операторы цикла.
Решение. CLS
INPUT “Ввести переменные”; B, C
FOR Х = 2 TO 12 STEP 2
Y = X^3 + B*X – C
PRINT
“X=”; X; “Y=”; Y
NEXT Х
END
Задача 2. Составить алгоритм и
программу, которая выводит на экран все числа от 4 до 10.
Решение. CLS
FOR I
= 4 TO 10
PRINT
I
NEXT I
END
Как выводится
результат в этом случае (в столбик).
Поставьте точку с
запятой в операторе PRINT и запустите программу ещё
раз. Что изменилось? (результат выводится в строчку).
Контрольные
вопросы
1. Что такое циклическая
программа?
2. Как на языке Бейсик
кодируется цикл-пока и цикл-до?
3. Как на языке Бейсик
кодируется цикл со счетчиком?
4. Как изменяется значение
счетчика цикла?
5. Можно ли после операторов FOR и NEXT указывать разные переменные?
6. Каким образом можно выйти из
цикла?
7. В каком случае начальное
значение переменной в цикле может быть больше его конечного значения?
8. Где располагается оператор PRINT, если надо получить: а) все
промежуточные результаты вычислений; б) конечный результат?
9. Что называется зацикливанием
процесса?
10. Как организовать вывод
результатов расчета в виде таблицы?
Подпрограммы
Понятие
«подпрограммы» – одно из важнейших в программировании. Использование
подпрограмм – наиболее мощное средство повышения эффективности применения ЭВМ и
снижения затрат на разработку программ.
Подпрограммы в
языках программирования служат для реализации вспомогательных алгоритмов.
Использование
подпрограмм необходимо при создании больших и сложных программ для того, чтобы
упростить их чтение, понимание и внесение изменений.
Подпрограммой (п/п) называется
участок программы, оформленный определенным образом, к которому можно
обращаться из разных точек программы любое число раз.
При этом п/п
может решать каждый раз одну и туже задачу с разными значениями исходных
данных.
Программу, в
которой используется п/п называется рабочей.
Целесообразно
использовать п/п тогда, когда в процессе решения задачи многократно встречается
некоторая подзадача.
Использование
подпрограмм позволяет существенно уменьшить объем рабочей программы.
Вспоминаем блок-схему основного и
вспомогательного алгоритма и правила выполнения этих алгоритмов
С термином
«подпрограмма» тесно связано понятие – оператор вызова подпрограммы.
Оператор
вызова п/п.
Он обеспечивает
исполнение п/п. Оператор помещается в той точке рабочей программы, где
необходимо выполнить подпрограмму.
Общий вид
оператора:
GOSUB n
где GOSUB – имя оператора (означает «перейти в
п/п);
n – номер строки-заголовка
п/п.
Работа
оператора:
Оператор
запоминает номер строки программы, следующей за ним по тексту, и переходит к
выполнению п/п, начиная с n-й
строки.
Оператор
RETURN
Оператор RETURN обеспечивает возврат из п/п в
рабочую программу непосредственно к строке, следующей за оператором GOSUB.
Структура рабочей п/п и правила выполнения п/п
REM название программы
. . . .
<операторы>
. . . .
вычисление исходных величин для п/п
GOSUB 200 ‘оператор
вызова п/п
запоминание результатов п/п
. . . .
<операторы>
. . . .
END
200 REM
название подпрограммы
. . . .
<операторы>
. . . .
RETURN
Контрольные
вопросы
1. Что такое подпрограмма?
2. Для чего служат подпрограммы?
3. В каком случае рекомендуется
применять подпрограммы?
4. Как записывается оператор
вызова подпрограммы? Каково его назначение?
5. Каким образом обеспечивается
возвращение в рабочую программу из подпрограммы?
6. Как передаются значения
исходных данных в подпрограмму?
7. Как в бейсике оформляются
подпрограммы?
8. Каков механизм выполнения
подпрограмм в Бейсике?
9. Можно ли создать подпрограмму
в подпрограмме? Сколько операторов RETURN надо включить в программу?
10. Возможно ли использовать
один оператор RETURN для работы с несколькими
операторами GOSUB?
11. Почему после оператора RETURN не указывается номер строки?
Массивы
в языке Бейсик
Массивом называется упорядоченная
совокупность однородных величин, обозначенных каждая одним и тем же именем с
различными целочисленными индексами, изменяющимися по порядку.
В Бейсике
используются одно- и двумерные массивы. Они могут быть различных типов: целые,
вещественные, текстовые (строковые) и т. д.
Одномерным массивом называют
некоторое упорядоченное количество данных. Каждому элементу массива
соответствует его порядковый номер и наоборот – каждому номеру в массиве
соответствует некоторый элемент.
Таблица данных,
состоящая из K строк и L столбцов, называется двумерным
массивом. Каждому элементу массива соответствует свой номер строки и
столбца, причем на первом месте принято указывать номер строки
Каждый массив
должен иметь свое имя – латинские буквы (отвечает тем же правилам, что и имя
переменной).
Массив
предназначен для хранения совокупности данных в памяти ЭВМ. Эти данные можно
извлекать из массива, производить над ними какие-либо действия и затем опять
отсылать их для хранения в ячейки памяти.
Если в программе
используется массив, то предварительно его нужно описать с помощью специального
оператора DIM.
Оператор описания размерности массива DIM.
Размерность
массива – это максимальное число элементов массива (ячеек).
Общий вид
оператора:
1) DIM <имя> (k)
2) DIM <имя> (m, n)
где DIM – имя оператора (от слова dimension – размерность);
<имя>
– имя массива;
k, m, n– размеры массива, т. е. k –
максимальное число элементов одномерного массива; m (n) – максимальное число строк (столбцов) двумерного массива.
Работа
оператора:
Оператор выделяет
в памяти ЭВМ нужное количество пустых ячеек, которые требуются для хранения
данных.
Особенности
записи оператора:
1) в одном операторе DIM можно описывать любое число
массивов;
2) оператор DIM помещается в начале программы;
3) не следует использовать в
программе простую переменную и массив с одним и тем же именем.
Ввод
данных в массив и вывод их из массива
После того как
массив описан, его нужно заполнить данными. Для этого используются операторы
цикла.
Заполнение
массивов осуществляется либо вводом данных с клавиатуры, либо путем их
заблаговременной записи в память ЭВМ.
Ввод
данных в одномерный массив
1) с помощью операторов цикла:
FOR i = 1 TO n
INPUT A (i)
NEXT i
2) с помощью операторов DATA,
READ
(если заданы конкретные значения):
DATA 30, 40, 50, –10
FOR i = 1 TO n
READ A (i)
NEXT i
В результате
выполнения операторов первому элементу массива А присваивается значение 30,
второму – 40, третьему – 50 и т. д.
3) с помощью датчика случайных
чисел:
FOR i = 1 TO n
A (i) = RND(1)*100
NEXT i
Вывод
(или печать) одномерного массива
FOR i = 1 TO n
PRINT A (i);
NEXT i
Задание 1. Вывести одномерный массив, состоящий
из 8-ми элементов.
DIM A (8)
FOR i = 1 TO 8
INPUT “введите”, i; “-й элемент”; A (i)
NEXT i
FOR i = 1 TO 8
PRINT A (i);
NEXT i
Задание 2. Вывести одномерный массив
произвольной размерности.
Переменные-размеры массивов должны быть определены до обращения к
оператору DIM.
INPUT
“введите размерность”; n
DIM A (n)
FOR i = 1 TO n
INPUT “введите”, i; “-й элемент”; A (i)
NEXT i
FOR i = 1 TO n
PRINT A (i);
NEXT i
Задание 3. Вывести массив, заданный
датчиком случайных чисел произвольной размерности.
INPUT “введите размерность”; n
DIM A (n)
FOR i = 1 TO n
A (i) = RND(1)*100
NEXT i
FOR i = 1 TO n
PRINT A (i);
NEXT i
Ввод
данных в двумерный массив
1) по строкам:
FOR i = 1 TO m
PRINT “введите”, i; “-ю строку”
FOR j = 1 TO n
INPUT A (i, j)
NEXT j
NEXT I
2) по столбцам:
FOR j = 1 TO n
PRINT “введите”, j; “-ый столбец”
FOR i = 1 TO m
INPUT A (i, j)
NEXT
i
NEXT
j
3) с помощью
датчика случайных чисел.
FOR i = 1 TO m
FOR j = 1 TO n
A (i, j) = RND(1)*100
NEXT j
NEXT i
4) с помощью операторов DATA, READ
DATA (список значений через запятую,
количеством M*N)
FOR i = 1 TO m
FOR j = 1 TO n
READ A (i, j)
NEXT j
NEXT i
Вывод
(или печать) двумерного массива
FOR i = 1 TO m
FOR j = 1 TO n
PRINT A (i, j);
NEXT j
PRINT
NEXT i
Задание 1. Заполнить массив А (2, 2) данными,
введенными с клавиатуры и вывести его на экран монитора.
DIM A (2, 2)
FOR i = 1 TO 2
FOR j = 1 TO 2
INPUT A (i, j)
NEXT j
NEXT I
FOR i = 1 TO 2
FOR j = 1 TO 2
PRINT A (i, j);
NEXT j
PRINT
NEXT I
Задание 2. Вывести на экран массив В (3, 4).
Массив заполнить с помощью датчика случайных чисел.
Контрольные
вопросы
1. Что такое массив? Какие виды
и типы массивов вы знаете?
2. Для чего служит оператор DIM?
3. В каком месте программы
должен находиться этот оператор, если массив задан определенной размерности,
произвольной размерности?
4. Что значит заполнить массив?
5. Как происходит заполнение
одномерного массива? двумерного массива?
Символьные
переменные и выражения
в
языке Бейсик
Символьной
называется переменная, которая имеет то же имя, что и числовая, но в конце ее
имени стоит специальный символ $, а значение символьной переменной
заключено в кавычки. Значениями символьных переменных могут быть комбинации
любых символов, имеющихся на клавиатуре (от одной буквы, слова до любого
набора).
Пример: A$ = “M”
B$ = “Информатика”
X$ = “Лаб. работа”
Y$ = “256”
AM$ = “А! R? G”
Основными
операциями над символьными данными являются:
1) операция конкатенации (склеивания)
Пример: В$ = «МА» + «МА» + «!»
2) выделение подслов (позволяет
образовывать новые слова)
В Бейсике есть
специальные операторы для работы с символьными переменными.
Функция
|
Описание
|
Пример
|
Результат
|
LEN (A$)
|
Определяет длину символьной переменной
(т.е. количество символов в ней)
|
A$ = “Информатика”
PRINT LEN (A$)
|
11
|
LEFT$ (A$, n)
|
Выделяет из слова слева n букв
|
A$ = “Информатика
PRINT LEFT$ (A$, 4)
|
Инфо
|
RIGHT$ (A$, n)
|
Выделяет из слова справа n букв
|
A$ = “Информатика
PRINT RIGHT$ (A$, 9)
|
форматика
|
MID$ (A$, n, k)
|
Выделяет из слова,
начиная с n-й буквы к букв
|
A$ = “Информатика
PRINT MID$ (A$, 3, 6)
|
формат
|
Функция
|
Описание
|
Пример
|
Результат
|
STR$ (n)
|
Переводит число из обычной формы в символьную
|
|
|
VAL (n$)
|
Переводит символьную форму в числовую
|
|
|
ASC (A$)
|
Определяет код символа
|
A$
= “Z”
PRINT
ASC (A$)
|
90
|
CHR$ (n)
|
Определяет символ по его коду
|
n
= 65
PRINT
CHR$ (n)
|
A
|
Пример 1: Составить из слова
«КРУГОВОРОТ» слова «ВОРОТ», «КРУГ», «ГОВОР»
Решение: a$ = “Круговорот”
PRINT
RIGHT$ (a$, 5)
PRINT
LEFT$ (a$, 4)
PRINT
MID$ (a$, 4, 5)
Пример 2: Дано произвольное число N. Приписать по единице в начало и в
конец записи числа.
Решение: INPUT “введите число”; n
a$ = STR$ (n)
b$ =
“1”
c$ =
b$ + a$ + b$
n1 =
VAL (c$)
PRINT
“новое число =”; n1
Контрольные
вопросы
1. В чем отличие символьной
переменной от числовой?
2. Назовите основные операции с
символьными переменными.
3. С помощью каких строковых
функций можно образовывать новые слова?
4. Назначение функций ASC и CHR.
Графические
возможности на языке Бейсик
ЭВМ может
представлять информацию в наглядной графической форме. Для начала работы с
графикой нужно знать некоторые параметры монитора.
Поверхность
экрана состоит из отдельных точек (пиксель), расположенных рядами с равным
числом точек в строке.
Перед началом
работы нужно перейти в графический режим с помощью оператора SCREEN 12.
При этом на
плоскость экрана накладывается определенная система координат, и каждая точка
определяется своими координатами:
Графические операторы
1) PSET (x, y), c
высвечивает
точку с указанными координатами и закрашивает ее в цвет (это число 0 ≤ с ≤ 15) ·
2) PRESET (x, y)
закрашивает точку в цвет экрана
3) LINE (x1, y1) – (x2, y2), c
выводит на экран изображение линии с
указанными координатами концов
·
·
4) LINE (x1, y1) – (x2, y2), c,
B
выводит на экран изображение
прямоугольника с указанными координатами его диагонали
5) LINE (x1, y1) – (x2, y2),
c, BF
выводит на экран изображение прямоугольника и закрашивает его
в указанный цвет
Задание: определить какому числу
какой цвет соответствует.
6) CIRCLE (x, y), r, c
выводит на экран изображение
окружности с указанным
цветом границы
7) PAINT (x, y), c заливки, с границы
закрашивает фигуру выбранным
цветом заливки до указанного цвета границы (точка с координатами x, y должна лежать внутри фигуры)
7) CIRCLE (x, y), r, c, a1, a2
выводит на экран дугу окружности.
a1, a2 – углы дуги окружности,
задаваемые в радианах
8) CIRCLE (x, y), r, c, , , m
выводит на экран эллипс
если m > 1 →
если 0 < m < 1→
Контрольные
вопросы
1. Как перейти в графический
режим?
2. Как установить начало
координат в центр экрана?
3. Назначение оператора LINE.
4. Назначение оператора CIRCLE.
5. Правила применения оператора PAINT.
6. Как задать сжатие окружности,
чтобы получить горизонтальный эллипс, вертикальный эллипс?
7. Каким образом можно получить
верхнюю полуокружность, нижнюю полуокружность?
8. Где должна находиться точка,
с которой начинается закрашивание?
9. Что произойдет с рисунком,
если закрасить незамкнутый контур?
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.