1. Язык программирования QBasic. Алфавит языка. Краткие исторические сведения. Арифметические операции. ОСНОВЫ ЯЗЫКА ПРОГРАММИРОВАНИЯ Бейсик - язык программирования, т.е. средство для записи алгоритма решения задачи в виде, понятном для ЭВМ, в виде программы для ЭВМ. Любая ЭВМ обрабатывает информацию по программе. Программой называется алгоритм, записанный на языке программирования. Существуют различные языки программирования, и каждый из них предназначен для определенного круга задач. Для решения вычислительных задач используются операторные языки программирования. К таким языкам относятся: Fortran, Paskal, Basic и др. АЛФАВИТ, СЕМАНТИКА И СИНТАКСИС Основными элементами любого языка программирования являются: алфавит, синтаксис и семантика. Алфавит - это набор разрешенных символов языка. Синтаксис - это формальные правила образования отдельных конструкций (команд, операторов) языка из символов алфавита. Семантика - смысловое содержание тех или иных синтаксических конструкций языка. ЯЗЫКИ ПРОГРАММИРОВАНИЯ. КРАТКИЕ ИСТОРИЧЕСКИЕ СВЕДЕНИЯ. 1. Одним из первых и наиболее удачных языков стал Фортран - 1958 г. Предназначен для удобной записи формул и выполнения сложных расчетов. Им пользуются в основном инженеры и ученые. 2. Вскоре после Фортрана появился язык Алгол - 60 (алг. язык, принятый в 60 г.). 3. Язык Кобол - 1961 г. для учреждений, министерств, для статистических ведомств. 4. 1965 г. язык Бейсик (многоцелевой язык символических команд для начинающих). 5. Снобол - 4 (для обработки текстов) 6. АПЛ (отличается необыкновенно сжатой аннотацией) 7. ЛИСП (используется в области искусственного интеллекта). 8. Универсальные языки, такие как Алгол-60, Паскаль, Фортран, Си предназначены для решения широкого круга задач. 9. Специализированные языки позволяют эффективно решать задачи в некоторых областях: моделирование, искусственного интеллекта (Пролог), описания баз данных , обучения программированию (Лого) и т.д. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ В арифметических операциях используются следующие символы: Символ Название операции + Сложение - Вычитание * Умножение / Деление ^ Возведение в степень Арифметическое выражение (формула, по которой надо произвести вычисления) представляет собой совокупность констант переменных, стандартных функций, соединенных по определенным правилам знаками арифметических операций. Существует ряд условий для правильной записи арифметических выражений. При составлении сложного выражения, состоящего из нескольких операций, вы должны помнить следующие правила: 1. В программировании выражение должно быть записано в одну строку. Например: 17,0 - записывается как: 17.0/(3.5+4.0) 3,5 + 4,0 L = a записывается как: L=a/(d+k) d+k 2. Операции имеют различные приоритеты: 2.1. Вычисляются выражения внутри скобок; 2.2. Вычисляются стандартные функции; 2.3. Производятся операции возведения в степень; 2.4. Производятся операции типа умножения и деления; 2.5. Выполняются самые младшие по старшинству действия операции типа сложения и вычитания. 2.6. Операции одного ранга (равные по старшинству), например, умножения и деления, производятся по формуле слева направо. 3. Нельзя опускать знаки операций, например символ операции умножения "*"; нельзя ставить два знака операций подряд. 4. Количество открывающихся скобок должно быть равно количеству закрывающихся. 2. Язык программирования QBasic. Стандартные функции языка Стандартные функции Матем. Функция | Функция в Бейсике | Пояснение | SIN х | SIN(х) | Синус числа Х, выраженный в радианах | COSх | COS(х) | Косинус числа Х, выраженный в радианах | Tg х | TАN(х) | Тангенс числа Х, выраженный в радианах | eх | exp(x) | Степень числа e = 2.7 | ln х | LOG(x) | Натур. логарифм х | loggх | Log(x)/LOG(g) | Десятичный логарифм х | |X| | ABS(x) | Модуль числа | | SQR (Х) | Квадратный корень |
3. Введение в программирование. Понятие программы. Операторы LET, PRINT, INPUT Компьютер – это просто машина, которая выполняет ваши указания. И все эти указания она выполняет по определенной команде (программе). Программы для компьютера пишут люди, которых называют программистами. Нам с вами предстоит научится писать несложные программы. Но для этого необходимо знать основные операторы, использующиеся для составления программ. Основные операторы и команды языка Бейсик. Операторы – это основные элементы языка программирования, из которых конструируются определенные слова, которые являются зарезервированными. Их нельзя использовать для обозначение программных переменных или создаваемых процедур или функций. Программа для компьютера является набором операторов. По мере того, как вводится в компьютер каждый оператор программы он запоминается в памяти компьютера. Операторы программы не выполняются сразу. Для этого необходимо запустить программу клавишей F5. Оператор присваивания. Предположим, что у вас имеется числовая переменная с именем А. Можно присвоить значение данной переменной с помощью оператора LET LET А = 8 Например: LET А = 8 LET В = 3 LET С = 10 LET У = А*В*С В результате данной программы ( а это уже программа!) мы подсчитаем произведение трех переменных: а,в,с Но для того, чтобы результат данной программы вышел на экран компьютера необходимо знать еще один оператор: PRINT - оператор вывода данных. Данный оператор записывается с пояснительным текстом в кавычках. PRINT «результат равен»; У Войдем в программу Бейсик и напечатаем данную программу. А = 8 В = 3 С = 10 У = А*В*С PRINT «результат равен»; У Запустите программу на выполнение (F5). В результате выполнения данной программы вы увидите следующую фразу: результат равен 240 Иногда возникает ситуация, когда нужно ввести не постоянное число, а любое с клавиатуры. Оператор ввода данных input позволяет вводить данные в ЭВМ во время выполнения программы. При выполнения оператора input вычисления по программе прерываются и на экране появляется вопросительный знак ? Программист набирает на клавиатуре необходимое значение и нажимает клавишу ввода. INPUT «Введите радиус окружности»;R При выполнении этого оператора на дисплее будет выведено: Введите радиус окружности ? Программист должен ввести значение радиуса и нажать Enter. Пример 1. Для обозначения длины и высоты стены используются числовые переменные L и H. Написать программу для вычисления площади стены. L = 8 H = 3 S = L*H PRINT «площадь равна»; S В данной программе присвоены конкретные значения переменным L и H. Но данную программу можно записать и в другом виде: INPUT «Введите длину стены»;L INPUT «Введите высоту стены; H S = L*H PRINT «площадь равна»; S В данной программе значение переменных L и H зависит уже от программиста, работающего с данной программой. Пример 2. Составить программу для вычисления площади и периметра треугольника (применить формулу Герона) INPUT «Введите стороны треугольника; a,b,c Р = (а + в + с) / 2 S = SQR(p * (p – a) * (p – d) * (p – c)) PRINT «площадь треугольника равна»; S Составьте программу: Заработок S рабочих на фабрике составил Z рублей. Написать программу для вывода на экран заработка одного рабочего; 3- х рабочих. INPUT «Введите месячный заработок»; Z INPUT «Введите количество рабочих; S Y = Z / S Y1 = Z / S * 3 PRINT «заработок одного рабочего =»; Y «руб» PRINT «заработок трех рабочих =»; Y1 «руб» 4. Массивы Решение многих задач на ЭВМ связано с обработкой большого количества данных. Эти данные обычно представлены в виде таблиц. Часто используются одномерные и двумерные таблицы (массивы). Одномерные массивы содержат N элементов и каждый имеет один индекс – номер элемента в таблице. Двумерный массив содержит N x M элементов и каждый элемент имеет два индекса (номер строки и номер столбца) Каждый массив должен быть объявлен до того, как с ним будут выполняться расчеты. Для объявления массива используется оператор DIM. Потом перечисляются через запятую имена таблиц и в скобах указываются максимальные значения. Пример ввода линейного (одномерного) массива Input “введите n”; n Dim A(n) For i=1 to n Input A(i) Next i Задачи анализа сводятся к работе с заполненным массивом по нахождению каких то его характеристик, например: найти сумму элементов массива Задача 1 Input” введите количество элементов массива”; n DIM A(n) For i=1 to n Input “ введите элементы массива”; A(i) S=s+A(i) Next i Print” сумма элементов массива равна” s Задача 2 Нахождение максимального элемента в таблице Input “n=”;n DIM a(n) For i=1 to n A(i)=int( rnd(1)*20+1) Next i Max=A(1): k=1 For i=2 to n If max Next i ?” max =” max “ его индекс =» k Задача 3 Сформировать массив случайных элементов A(N), значения которых находятся в интервале (-10, 10). Подсчитать количество отрицательных элементов массива. Input “n=”;n Dim A(n) For i=1 to n A(i) = int(rnd(1)*20-10) Print A(i) Next i For i=1 to n If A(i)<0 then OTR=OTR+1 Next i Print “ отрицательных элементов” otr Задачи для самостоятельного решения Создать массив из 50 случайных чисел из интервала (-20, 20). Написать программу, которая даст ответ на вопрос: каких чисел больше: положительных или отрицательных? Написать программу замены отрицательных чисел массива из N элементов на их квадраты. Пример ввода двумерного массива Input “ введите размерность массива”; n,m DIM A(n,m) For i=1 to n For j=1 to m A(I,j)= int(rnd(1)*20)+10) Print” A(I,j) Next i Next j Задача 2 Написать программу нахождения максимального элемента в каждой строке массива M(n,m) Input” введите размерность массива”; N,M Dim A(n,m): P(n) For i=1 to n : max=A(I,1) For j=1 to m A(I,j)=int(rnd(1)*20+1) Next j Next i For i=1 to n Max= A(I,1) For j=2 to m If max < A(I,j) then max = A(I,j) Next j Print max 5. Операторы ветвления: if, then, еlse IF … THEN… ELSE - условные операторы Например: IF Х = 7 THEN Y = X*8 ELSE Y = X / 9 если то иначе Запись означает, что если Х = 7 то Y = Х * 8, иначе Y = x / 9 6. Операторы цикла for, to, next, step Операторы for и next используются для циклических вычислений. Оператор for обозначает начало, а оператор next – конец циклической части программы. Все операторы, стоящие между операторами for и next, циклически выполняются в соответствии с условиями, записанными в операторе for. Например: For x=1 to 7 step 0.2 Эта запись означает, что переменная х изменяется от 1 до 7 с шагом 0.2 . Например: for i=1 to 3 input a,b C = a+b ? “ сумма равна”;c next I Эта программа содержит цикл, с переменной i, а первая строка говорит, что эта переменная принимает значение от 1 до 3. Цикл выполняется 3 раза. Можно заметить, что переменная i играет роль счетчика. Она считает от 1 до 3 Покажем, что выводиться на экран после запуска программы на выполнение: ? 6,9 сумма равна 15 ? 8,12 сумма равна 20 ? 82,6 сумма равна 88 7. Операторы, используемые при построении графиков функций. Операторы это основные элементы языка программирования, из которых конструируется программа. Для записи операторов используются определенные слова или сокращения слов английского языка. REM оператор комментария. Например: REM программу выполнил Иванов Оператор SCREEN предназначен из перехода из текстового режима в графический и обратно. Этот оператор имеет несколько форматов. Screen О - задать текстовый режим. Минимальной единицей текстовой информации является буква. Размеры экраны 25 строк по 80 символов. Задать графический режим. Screen число точек цвета 12 640x480 16 13 320x200 256 Мы будем использовать режим Screen 12 Для изменения цвета символа и фона используется оператор COLOR COLOR С , где с – целое значение от 0 до 15, определяющее цвет символа Для фона можно выбрать один из 16 цветов (0 – черный, 1- синий, 2 – зеленый, 3 – бирюзовый, 4- красный, 5 – лиловый, 6 – коричневый, 7 – белый, 8 – серый, 9 – голубой, 10 – ярко – зеленый, 11 – ярко –бирюзовый, 12 – ярко-красный, 13 – ярко-лиловый, 14 – желтый, 15 – ярко-белый Для построения линии используется оператор LINE LINE (х1,у1)-(х2,у2),С – провести линию на экране цвета С, где (х1,у1) – координаты начала линии, (х2,у2) – координаты конца линии; Для построения точки используется оператор Pset Pset(x,y),с где х, у – координаты точки, С – цвет точки QBasic позволяет вам работать как со всем экраном, так и с его частью. Обращаться к отдельной области экрана можно через оператор VIEW. Этот оператор позволяет разделить экран на несколько независимых областей просмотра. С помощью этого оператора можно выделить прямоугольную часть экрана. VIEW(x1 ,у1)-(x2,y2), С х1, у1 - координаты левого верхнего угла х2, у2 - координаты правого нижнего угла С – номер цвета Пример. Screen 12 VIEW (150, 50)-(550, 350) В этом примере мы задаем графический режим с разрешением 640 х 480 точек и выделяем на экране прямоугольник Р, т.е. х изменяется от 150 до 550, значит ширина прямоугольника Р = 400; у изменяется от 50 до 350, длина прямоугольника 300. Все дальнейшие операторы в программе будут работать только в прямоугольнике Р. Оператор WINDOW предназначен для задания на экране удобной для задачи на построение графика функций декартовой системы координат. WINDOW (ха, уа) - (х 2, у 2) (т.е. х изменяется от х1 до х2, а у изменяется от у1 до у2) Пример 1. Задать в прямоугольнике Р систему координат для построения графика функции у = sin х, когда х изменяется от - 6.28 до 6. 28 (от –2п до 2п). Т.к. sin х изменяется от -1 до 1, то для задания нужной системы координат используются операторы. Screen 12 VIEW (150, 50)-(550, 350),14- выделение прям, области размерами по х = 400, по у = 300 WINDOW (-6.28, 1) - (6.28 -1) - задание мысленной системы координат, где х изменяется от –2п до 2п, а у от -1 до 1. Для построения осей координат добавили перед циклом две строки с оператором LINE. line (-6.28, 0) - (6.28, 0) 14 (ось ох) line (0,-1)-(0, 1), 14 (ось оу) Пример 2. В центре экрана в графическом режиме 12 выделить прямоугольник размером 400 х 340 точек и построить график функции у = sin х для х, изменяющегося от –2п до 2п с шагом 0.1. Screen 12 VIEW (150, 50)-(550, 350),14 WINDOW (-6.28, 1) - (6.28, -1) Line (-6.28,0)-(6.28,0),1 Line(0,-1)-(0,1),1 for x = - 6.28 to 6.28 step 0.1 y=sin(x) pset (x, y),14 next x или Screen 12 VIEW (150, 50)-(550, 350),14 WINDOW (-6.28, 1) - (6.28, -1) Line (-6.28,0)-(6.28,0),1 Line (0,-1)-(0,1),1 for x = - 6.28 to 6.28 step 0.1 pset (x, sin(x)),14 next x Для того, чтобы построить на одной оси два графика, допечатаем в программу еще следующие строки. Screen 12 VIEW (150, 50)-(550, 350),14 WINDOW (-6.28, 1) - (6.28, -1) Line (-6.28,0)-(6.28,0),1 Line(0,-1)-(0,1),1 for x = - 6.28 to 6.28 step 0.1 y=sin(x) у1 = cos (x) pset (x, y),14 pset (x, y1), 11 next x Построить графики функций: (если у изменяется от –3 до 3) y = | x| у = x2 у = | -x2 + 1| у= -2х у= 3 -| x | у = х 3 -4х2 у = х2 –4х +4 у = 2 х +| x | у = х – sin2х y = | 3| x | -3| y = |cos x| Задача на построение графика функций sin (x) и cos (x) и обозначение всех точек на координатной оси. Screen 12 VIEW (20, 150) - (620, 250) WINDOW (-6.28, 1) - (6.28, -1) line (-6.28, 0) - (6.28, 0), 14 line (0, -1)- (0, 1), 14 locate 14,60 ? "п" locate 14,40 ? "О" locate 14,20 ? "-п" locate 14,30 ?"-3п/2" locate 14,50 ?"3п/2" for x =-6.28 to 6.28 step . 005 pset (x, sin (x)), 10 pset (x, cos (x)), 3 next x locate 15,8 color 3 ? "у = cos x" locate 17,26 color 10 ? "y = sin (x) 8.Операторы машинной графики. Построение геометрических фигур с использованием операторов графики. Для построения прямоугольника используется оператор LINE LINE (х1,у1)-(х2,у2),С,В – начертить прямоугольник на экране цвета С, где (х1,у1) – координаты верхнего левого угла прямоугольника, (х2,у2) – координаты нижнего правого угла прямоугольника; LINE (х1,у1)-(х2,у2),С,ВF – начертить прямоугольник и закрасить его Для построения окружности используется оператор СIRCLE CIRCLE (х,у),R,C, Х,У – координаты центра; R - радиус; C - цвет окружности; Построение дуги: CIRCLE (х,у),R,C,L1, L2 Х,У – координаты центра; R - радиус; C - цвет окружности; L1, - начало дуги; L2 - конец дуги; Построение эллипса CIRCLE (х,у),R,C,,,Z Х,У – координаты центра; R - радиус Z - коэффициент сжатия если Z > 1 если Z < 1 Построение секторов. CIRCLE (х,у),R,C,L1, L2 Х,У – координаты центра; R - радиус; C - цвет окружности; L1, - начало дуги; L2 - конец дуги; При отрицательных параметрах L1 и L2 начальные и конечные точки дуги соединяются с центром соответствующей окружности. Таким образом, на экране получается изображение сектора Для закраски фигуры используется оператор PAINT PAINT (х,у), с1,с2 , где х,у – координаты внутри фигуры, закраска происходит цветом с1, по контуру цвета с2. Построение непрерывных линий: DRAW «СХВМх,у;мхn,yn…» ,где СХ – номер цвета (С4), х и у координаты точек. X2,y2 x4,y4 X6,y6 X3,y3 (x1,y1) X5,y5 CLS – оператор очистки экрана 9. Функция RND Функция y= RND(1) генерирует случайное число из интервала (0,1) RND(1)*10- случайное число из интервала (0,10) Int(rnd(1)*100) – случайное число из (0,100) Int(rnd(1)*50+80) – случайное число из (80, 130) – подумайте, почему? RANDOMIZE TIMER– обновление базы случайных чисел Пример 1. Выбрать числа для карточки «Спортлото» RANDOMIZE For i=1 to 6 Print int(rnd(1)*49+1) Next i Пример 2 Компьютер загадывает двузначное число и предлагает его угадать Randomize timer Х=int(rnd(1)*89+10) Print” Я загадал двузначное число. Угадай его» Met: Input a If a>x then print “ Много»: goto met If a If a=x then print “ Молодец. Угадал” Пример 3 Составить программу « Звездное небо» Screen 12 For i=1 to 10000 X=int(rnd(1)*640) Y=int(rnd(1)*480) Pset (x,y),14 Next i Пример 4 Что будет изображено на экране? Screen 12 For x=20 to 640 step 5 C=int(rnd(1)*15) Circle(x, 20),15,c Circle(x,460),15,c Next x Пример 5 Секундомер For i=1 to 59 Locate 10,12 Print i Sleep ‘ пауза Next i 10. Звуковые эффекты. Наиболее простой звуковой оператор BEEP воспроизводит короткие звуковые сигналы длиной в четверть секунды. Он может быть использован для привлечения внимания к определенному месту программы, например, сигнализируя о вводе неверного значения или сопровождая вывод об ошибке. Оператор BEEP очень хорош и прост, но интерес к нему пропадет довольно быстро – слушать однообразный звук неинтересно. Оператор SOUND позволяет значительно разнообразить звук. Он содержит два аргумента: Sound частота, продолжительность (частота и продолжительность – это числовые выражения, выражающие частоту и продолжительность). Частота может иметь значение от 37 до 32767 и определяет число колебаний в секунду и измеряется в ГЦ (но если значение очень велико(больше 12000ГЦ) производимые колебания не ощущаются человеческим ухом – вы получаете ультразвук). Продолжительность измеряется в тиках. Это необычная единица измерения времени, в жизни не применяется, но применяется в программировании 1 сек = 18,2 тика. Значит, для продолжительности в 5 сек. Надо задать параметр, равный 18,2 * 5 = 91 тик Если продолжительность = 0 – происходит выключение звука. Например: Rem выключение звука Cls Sound 500,91 ‘ начало звучания For t=1 to 50 Print “Ждите ответа” Next t Sound 500,0 ‘ отключение звука Rem ‘ создание серии коротких звуков Cls For t-1 to 10 Sound 30000,3 Locate 10,20 Print “ телефон занят!” Sound 450,5 Next t Создание музыкальных пьес (оператор Play) Для композиторских целей подходит оператор Play. Он позволяет записывать краткие музыкальные пьесы в виде текстовых выражений. Оператор Play позволяет: проигрывать отдельные ноты; создавать паузы; менять темп. В Qbasic октавы нумеруются слева направо (от 0до 6). Номера нот от 1 до 84 Ноты C D E F G A B До ре ми фа соль ля си Ох – задание октавы (х изменяется от 0 до 6) По умолчанию ставится 2 октава (О3 – первая октава, О0 – контроктава, О1 – большая, О2 – малая и т.д.) Nx – воспроизвести ноту х (0….6) Lх – продолжительность следующей ноты, (где х изменяется от 1 до 64) например: L2CD – ноты С и D – половинные; L4CD – ноты С и D четвертные и т.д. Рх – пауза где х меняется от 1 до 64) Р1 – самая продолжительная пауза Р64 – самая короткая пауза + - диез ставятся после ноты (ставятся перед буквенными Песенка про кузнечика Play «MFT200lL4O3;AEAEAG#G#P4G#EG#EG#AAP4 Play “AEAEAG#G#P4G#EG#EG#;AP2 Play “ABB8B8B00CC8C8CCCO3BAG#;AAP4 Play “ABB8B8BO4CC8C8CCCO3BAG#;AP4 Во поле береза стояла. Play “mft200L4O3 Play “AAAAG2FFE2D2 Play “AAO4CO3AGGFFE2D2 Play “E2.FG2FFEE2D2 Play “E2.FGGFFE2D «Сулико» Play «T110L8O3GGEFL4GL8A.L16FL1GL8BBBBL4BO4L8D.O3 L16BO4L1C” Т110 означает темп MODERATO (умеренно), Для темпа ADAGIO (медленно) следует записать Т70, а для темпа FLLEGRO (быстро) – Т150 |