*
Умножение
/
Деление
\ или MOD
Целочисленное деление ( 9 \ 2=4).
DIV
Остаток от деления (9 DIV 2 = 1)
+
Сложение
—
Вычитание
Операции сравнения
=
Равно
>
Больше
<
Меньше
>=
Больше или равно
<=
Меньше или равно
<>
Не равно
Логические операции
NOT
Логическая операция НЕ
AND
Логическая операция И
OR
Логическая операция ИЛИ
Другие символы
“”
Текстовая константа
‘
Начало комментария к программе
$
Текстовый тип данных
%
Целый тип данных
, : ;
Разделители (в разных случаях используют разные знаки для разделения однотипных элементов строки).
.
Отделяет целую часть числа от десятичной дроби.
Компьютерная программа всегда так или иначе использует и обрабатывает данные. Данные можно ввести в программу в виде констант, переменных или массивов. Кроме того каждый вид величин разделяется на типы данных( числовые, строковые, логические и т.д.).
Константа — величина, которую компьютер не может изменить в ходе выполнения программы. В Qbasic константы чаще всего задаются в явном виде, то есть числовые константы записываются как числа, строковые — как текст, заключенный в кавычки и т.д. (можно также задавать константы с помощью имен, в этом случае значения констант задаются в разделе описаний в начале программы).
Переменная — величина, значение которой может меняться в ходе выполнения программы.
Массив- совокупность однотипных данных, имеющих общее имя. Массивы позволяют организовать циклы обработки данных в которых параметр цикла указывает на индекс элемента массива. Их классифицируют по типу данных (числовые, строковые, логические) и по размерности (одномерные, двухмерные, трехмерные и т.д.). Каждый элемент массива представляет собой переменную величину. Для указания на элемент массива в программе записывается имя массива и рядом в скобках набор индексов (для одномерных-1 индекс; для двухмерных -2 (строка, столбец) и т.д.), например A(17) — 17й по счету элемент одномерного массива А.
Значение, хранящееся в нем, не связано с его номером. Числовые функции
Функция QBASIC
|
Примечания |
Математика |
ABS ( X ) |
модуль |
|
SIN ( Х ) |
Х – в радианах |
sin x |
COS ( Х ) |
Х – в радианах |
cos x |
TAN ( Х ) |
|
tg x |
LOG ( Х ) |
Для Х > 0 |
ln x |
EXP ( Х ) |
|
ex |
SQR ( Х ) |
Для Х>=0 |
Квадратный корень из Х |
INT ( Х ) |
Округление до ближайшего меньшего целого |
— |
FIX ( Х ) |
Отбрасывание дробной части |
— |
RND ( Х ) |
Генератор случайного числа |
— |
Х — аргумент числовой функции. Аргументом числовой функции может быть числовая константа, числовая переменная или выражение.
Строковые функции и функции преобразования типов
Функция QBASIC
|
Примечания |
МID$ ( Х$,N,K ) |
Возвращает из Х$ фрагмент, начиная с N-го символа длиной в K символов. |
LEFT$ ( Х$,N ) |
Возвращает из Х$ фрагмент, левее N-го символа. |
RIGHT$ ( Х$,N ) |
Возвращает из Х$ фрагмент, правее N-го символа. |
ASC ( Х$ ) |
Возвращает код первого символа Х$ |
CHR$ ( Х ) |
Возвращает знак, соответствующий коду Х, Х должен быть в пределах от 0 до 255. |
LEN ( X$ ) |
Возвращает длину Х$ ( в количестве знаков ). |
INKEY$ |
Считывает содержимое буфера клавиатуры. |
Здесь Х$ — любая текстовая константа, переменная или выражение; N, K, X – числовые константы, переменные или выражения.
Операторы описания и объявления
DIM список — служит для описания переменных и массивов. Обязательно только описание массивов.
DECLARE SUB имя (формальные параметры) — объявляет процедуру.
Операторы ввода данных.
INPUT “приглашение”; список переменных — служит для ввода данных с клавиатуры, например:
INPUT”Введите массу и ускорение”; m,a
Когда в программе встречается такой оператор, компьютер приостанавливает выполнение программы, выдает на экран текст приглашения и ждет ввода данных. Данные вводятся с клавиатуры пользователем программы. Их количество и тип должны соответствовать списку переменных! Совместно с оператором INPUT удобно использовать операторы COLOR LOCATE. Первый регулирует цвет текста, а второй местоположение текста на экране. Например, чтобы вводить данные из центра экрана, а приглашение печаталось красным цветом, можно применить следующий фрагмент программы:
COLOR 4
LOCATE 14, 35
INPUT “Введите массу и ускорение “; m,a
DATA список данных
READ список переменных
Служат для автоматического ввода данных из программы. Оператор DATA должен предшествовать оператору (или операторам) READ. Чтение данных производится последовательно.
Оператор присваивания
Имя переменной = выражение
Присваивает переменной, имя которой находится слева от знака = (знак присваивания) значение выражения находящегося справа. Старое значение переменной при этом теряется. Например:
A = A + 1
Берется значение переменной А, к нему добавляется единица, полученное значение записывается обратно в переменную А
Операторы вывода данных
PRINT список вывода — служит для вывода текстовых и числовых данных на экран. Список для вывода может включать в себя константы, переменные и выражения. Константы выводятся без изменений, вместо переменных и выражений печатаются их текущие значения. Совместно с PRINT удобно использовать операторы LOCATE COLOR. Например:
COLOR 2
LOCATE 15, 35
PRINT “Сила =”; F; “H”
В результате выполнения программы в центре экрана зелёным цветом будет выведено:
Сила = 129.81 H
BEEP — выводит звуковой сигнал.
SOUND частота, длительность — выводит звуковой сигнал заданной длительности и частоты.
PLAY”символьное выражение” — позволяет создавать музыкальные фрагменты (см. справку Qbasic).
SCREEN номер— включает графический режим. Допустимые номера режимов 1,2,8,9,12. Наилучшее качество изображения (640*480 пикселей, 16 цветов) обеспечивает 12 режим.
CLS — очищает экран.
LINE (x1, y1)-(x2, y2), цвет — рисует линию от точки Х1,У1 до Х2,У2 указанным цветом.
LINE (x1, y1)-(x2, y2), цвет, b — рисует рамку с углами в точках Х1,У1 и Х2,У2 указанным цветом.
LINE (x1, y1)-(x2, y2), цвет, bf — рисует закрашенный прямоугольник.
PSET (x, y), цвет — устанавливает точку.
CIRCLE (x, y), радиус, цвет — рисует окружность с центром в точке Х,У указанного цвета и радиуса.
PAINT (x,y), c1, c2 — выполняет заливку начиная с точки Х,У цветом С1. Заливка ограничивается линией цвета С2.
DRAW”символьное выражение” – позволяет создавать сложные рисунки (см. справку Qbasic).
Операторы переходовGOTO Метка — передает управление на строку с указанной меткой.
GOSUB Метка — передает управление в подпрограмму, начинающуюся с указанной метки.
RETURN — возвращает управление после окончания подпрограммы, в основную программу.
EXIT — передает управление на строку, следующую за концом текущей структуры.
CALL Имя (фактические параметры) — передает управление процедуре с указанным именем и фактическими параметрами.
Оператор конца программы
END — завершает выполнение программы.
Операторы ветвлений
Неполное ветвление:
IF условие THEN Оператор — если условие – истина, то выполняется оператор после ключевого слова THEN. Затем управление передаётся на следующую строку программы. Если условие – ложь, то управление сразу передается на следующую строку программы.
IF условие THEN
Группа операторов
END IF
— если условие – истина, то выполняется группа операторов между THEN и END IF. Затем управление передаётся на следующую за END IF строку программы. Если условие – ложь, то управление сразу передается на следующую за END IF строку программы.
Полное ветвление:IF условие THEN оператор_1 ELSE оператор_2 — если условие – истина, то выполняется оператор1, иначе выполняется оператор2 . Затем управление передаётся на следующую строку программы.
IF условие THEN
Группа операторов 1
ELSE
Группа операторов 2
END IF
— если условие – истина, то выполняется блок операторов 1, иначе выполняется блок операторов 2 . Затем управление передаётся на следующую за END IF строку программы.
Выбор: SELECT CASE выражение для сравненияCASE условие 1
Группа операторов 1
CASE условие 2
Группа операторов 2
………….
ELSE CASE
Группа операторов N
END SELECT
— если условие 1 — истина, то выполняется блок операторов 1 и осуществляется переход на строку программы, следующую за END SELECT; если условие 2 — истина, то выполняется блок операторов 2 и осуществляется переход на строку программы, следующую за END SELECT и т. д., если все условия – ложь, то выполняется блок операторов N и осуществляется переход на строку программы, следующую за END SELECT.
Операторы циклов
DO WHILE условие DO WHILE условие
Группа операторов Группа операторов Группа операторов
LOOP LOOP WHILE условие WEND
— выполняет группу операторов, пока условие – истина (такие циклы называются циклами «ПОКА»).
DO UNTIL условие DO
Группа операторов Группа операторов
LOOP LOOP UNTIL условие
— выполняет группу операторов до выполнения условия (такие циклы называются циклами «ДО»).
FOR Параметр = Начальное значение TO Конечное значение STEP шаг
Группа операторов
NEXT Параметр
— выполняет группу операторов фиксированное число раз. Количество повторений зависит от начального значения и конечного значения параметра, а также шага. Переменная – параметр изменяется от начального значения, увеличиваясь (или уменьшаясь, если шаг отрицательный) каждый раз на величину шага. Цикл завершает работу, когда значение параметра достигает (или превышает) конечное значение.
Процедуры
SUB Имя (формальные параметры)
Группа операторов
END SUB
— содержит группу операторов – процедуру; обращение к процедуре выполняется оператором САLL. К одной и той же процедуре можно обращаться многократно, задавая при этом различные фактические параметры.
В начало темы
программа — Алгоритмы и эффективные вычисления
Курс просто отличный. Две части, Александра Шеня и Александра Куликова, гармонично дополняют друг друга (и даже один раз пересекаются, когда оба лектора рассказывают в два голоса одну тему). Теоретический курс суперски прокачал мозги, а в практическом смысле — дал знания, как оценить сложность реализации придуманного алгоритма (время, память, количество логических элементов для схем), я начал НА САМОМ ДЕЛЕ понимать, что такое эквивалентность классов NP и P, что означает разрешимость (или нет) задачи, почему (и даже КАК) всегда можно написать квайн (программу, печатающую саму себя) и их «сонеты» для цепочек разных языков программирования. И далеко не только это. Практический курс разложил по полочкам мои прежние обрывочные сведения об алгоритмах. Теперь я могу осознанно подходить к их выбору, исходя из имеющейся задачи, а не вслепую пробовать один за другим. Благодаря тому, что многие из них я реализовал сам с нуля, я имею детальное представление об их внутреннем устройстве, а это сильно помогает правильно использовать готовые библиотечные реализации. Отдельно хочу сказать про Code Review. Советы и рекомендации, которые дают проверяющие, реально на вес золота. Это те знания, получить которые иначе можно только на собственном (зачастую отрицательном) опыте. Здесь же на примере твоего собственного кода проверяющий рассказывает, к каким нежелательным последствиям и почему может привести применённое тобою решение, и как можно исправить код, чтобы последствия были минимальны. А ещё более бесценны советы, как можно сделать код проще, понятнее, или более поддающимся повторному использованию. Спасибо
Андрей Белецкий
Вообще, узнал о программе случайно. Кто-то сбросил ссылку на экзамен в беседе в телеграме. Но до конца курса ни разу не пожалел, что попал сюда. Занятия немного переделаны и дополнены. Код ревью помогает задуматься о качестве кода, который ты пишешь. Преподаватели очень быстро отвечают как в комментариях, так и в созданных каналах в слаке и ютреке. Курсы позволили мне, по сути, освоить то, что мои друзья учили на технических специальностях. Спасибо большое команде курса и организатором за возможность получить эти знания!
Дмитрий Минченко
Теоретическая информатика — большое удовольствие от решения задач. Алгоритмы — четкая и ясная база с практическими задачами для закрепления.
Валерий Байбурин
Два направления программы, теоретическая информатика и алгоритмы, пересекаются, дополняют друг друга и формируют целостную картину. Главные, на мой взгляд, достоинства программы — структура и подача материала по курсу алгоритмов и задачи на код ревью. Есть ощущение, что после этих курсов я «подрос», многое из программы уже пригодилось на работе. Большое спасибо создателям!
Андрей Рыжиков
Что такое алгоритм и что такое программа?
Что такое алгоритм?
- Алгоритм — это рецепт решения набора задач.
- Это набор инструкций, в которых шаг за шагом рассказывается, что делать.
- Алгоритм является чем-то концептуальным и может быть описан с помощью языка, блок-схем или псевдокода.
- Алгоритм может быть реализован на разных языках программирования.
Блок-схемы
Это графическое описание алгоритма с использованием различных фигур и соединяющих их стрелок. Удобно для простых алгоритмов.
Когда они становятся больше, они превращаются в «диаграмму спагетти», за которой трудно следить.
В настоящее время они обычно не используются.
Псевдокод
Идея состоит в том, чтобы использовать промежуточный способ связи между естественным языком и языком программирования. Он не имеет формального синтаксиса, но обычно имеет следующую структуру:
- Используется концепция переменной и присвоения. Например: «a <- 5» означает, что переменной a присвоена константа 5 .
- Отображаются входные и выходные данные.
- Используются условные операторы: например: «если <условие>, то <инструкции>
- Используются инструкции цикла типа «повторять до…»
Пример алгоритма:
Алгоритм определения, является ли треугольник разносторонним, равнобедренным или равносторонним Входные данные: сторона1, сторона2, сторона3 Выходные данные: тип треугольника если сторона1 = сторона2 и сторона1 = сторона3 тогда тип <- равносторонний еще если (сторона1 = сторона2) или (сторона1 = сторона3) или (сторона2 = сторона3) тогда тип <- равнобедренный еще тип <- разносторонний
Что такое программа?
Программа неразрывно связана с существованием компьютера. Компьютеры запускают программы. Программы считывают данные из файлов, баз данных, сетей, клавиатур и записывают данные в файлы, базы данных, сети, экраны и т.д..
Программы выполняются процессором компьютера. Для этого они должны быть загружены в основную память RAM.
Загрузка программ в память осуществляется специальным программным обеспечением или программой под названием операционная система .
Различия между алгоритмом и программой
Хотя их можно спутать, поскольку они оба представляют собой набор инструкций, они представляют собой два совершенно разных понятия. Алгоритм больше похож на идею, способ решения задачи, тогда как программа больше связана с выполнением одной или нескольких задач компьютером.
Программа может реализовать один или несколько алгоритмов, или она может быть настолько простой, что нам не нужно использовать алгоритм.
Задача разработчика обычно начинается с разработки алгоритмов для решения проблем, а затем их реализации и включения в программу.
Когда мы говорим о программе , всегда возникает мысль, что ее будет выполнять компьютер, а алгоритм может выполнить человек.
А программа написан на машинном языке или, по крайней мере, на языке, который может быть скомпилирован или интерпретирован какой-либо машиной (иногда виртуальной машиной).
Работа компьютера >>
Что такое алгоритм?
В этом уроке мы узнаем, что такое алгоритмы, на примерах.
В терминах компьютерного программирования алгоритм представляет собой набор четко определенных инструкций для решения конкретной задачи. Он принимает набор входных данных и производит желаемый результат. Например,
Алгоритм сложения двух чисел:
Ввести два числа
Добавление номеров с помощью оператора +
Показать результат
Качества хорошего алгоритма
- Вход и выход должны быть точно определены.
- Каждый шаг алгоритма должен быть четким и однозначным.
- Алгоритмы должны быть наиболее эффективными среди многих различных способов решения проблемы.
- Алгоритм не должен включать компьютерный код. Вместо этого алгоритм должен быть написан таким образом, чтобы его можно было использовать на разных языках программирования.
Примеры алгоритмов
Алгоритм сложения двух чисел
Алгоритм нахождения наибольшего из трех чисел
Алгоритм нахождения всех корней квадратного уравнения
Алгоритм нахождения факториала
Алгоритм проверки простого числа Алгоритм Фибоначчи ряд
Алгоритм 1: добавить два числа, введенные пользователем
Шаг 1: Начните Шаг 2: Объявите переменные num1, num2 и sum. Шаг 3: Считайте значения num1 и num2. Шаг 4: Добавьте num1 и num2 и присвойте результат сумме. сумма ← число1+число2 Шаг 5: Показать сумму Шаг 6: Остановитесь
Алгоритм 2.
Найдите наибольшее число среди трех чиселШаг 1: Начните Шаг 2: Объявите переменные a, b и c. Шаг 3: Считайте переменные a, b и c. Шаг 4: Если а > б Если а > с Отображение а — это наибольшее число. Еще Отображение c — это наибольшее число. Еще Если б > с Отображение b — это наибольшее число. Еще Отображение c — наибольшее число. Шаг 5: Остановитесь
Алгоритм 3. Поиск корней квадратного уравнения ax
2 + bx + c = 0Шаг 1: Начните Шаг 2: Объявить переменные a, b, c, D, x1, x2, rp и ip; Шаг 3: вычислить дискриминант D ← b2-4ac Шаг 4: Если D ≥ 0 r1 ← (-b+√D)/2a r2 ← (-b-√D)/2a Отобразите r1 и r2 как корни. Еще Вычислить действительную часть и мнимую часть рп ← -б/2а ip ← √(-D)/2a Отображать rp+j(ip) и rp-j(ip) как корни Шаг 5: Остановитесь
Алгоритм 4: найти факториал числа
Шаг 1: Начните Шаг 2: Объявите переменные n, factorial и i. Шаг 3: Инициализируйте переменные факториал ← 1 я ← 1 Шаг 4: Чтение значения n Шаг 5: Повторяйте шаги, пока i = n 5.1: факториал ← факториал*i 5.2: я ← я+1 Шаг 6: Показать факториал Шаг 7: Остановитесь
Алгоритм 5: Проверка, является ли число простым
Шаг 1: Начните Шаг 2: Объявите переменные n, i, flag. Шаг 3: Инициализируйте переменные флаг ← 1 я ← 2 Шаг 4: Прочитайте от пользователя. Шаг 5: Повторяйте шаги, пока i=(n/2) 5.1 Если остаток от n÷i равен 0 флаг ← 0 Перейти к шагу 6 5.2 я ← я+1 Шаг 6: Если флаг = 0 Показать n не простое число еще Показать n простое число Шаг 7: Остановитесь
Алгоритм 6: Нахождение ряда Фибоначчи до срока менее 1000
Шаг 1: Начните Шаг 2: Объявите переменные first_term, second_term и temp. Шаг 3: Инициализируйте переменные first_term ← 0 second_term ← 1 Шаг 4: Отобразите first_term и second_term Шаг 5: Повторяйте шаги до тех пор, пока значение second_term не станет меньше 1000.