
- •Информатика
- •Введение
- •1. Особенности вычислительного процесса в компьютере
- •1.1. Двоичная система счисления
- •1.2. Кодирование информации
- •2. Основы построения алгоритмов
- •2.1. Принципы описания алгоритмов
- •2.2. Примеры построения алгоритмов типовых задач
- •3. Вывод значений X и y
- •Конец цикла 2
- •3. Алгоритмический язык Visual Basic – основные сведения
- •3.1. Историческая справка
- •3.2. Среда программирования Visual Basic 6.0
- •3.3. Основные конструкции языка
- •3.3.1. Алфавит
- •3.3.2. Переменные
- •3.3.3. Константы
- •3.4. Типы переменных
- •3.4.1. Характеристики переменных
- •3.4.2. Способы задания типа
- •3.5. Основные функциональные операторы
- •3.5.1. Оператор присваивания.
- •3.5.2. Оператор условного перехода.
- •3.5.3. Операторы цикла.
- •3.6. Операторы ввода и вывода информации
- •3.6.1. Операторы ввода значений переменных с клавиатуры.
- •3.6.2. Операторы вывода значений переменных на экран.
- •3.7. Примеры типовых программ
- •4. Алгоритмический язык Visual Basic – более сложные структуры
- •4.1. Файловый ввод и вывод - общие сведения
- •4.2. Организация работы с файлом.
- •4.3. Подпрограммы и их использование для написания сложных программ
- •4.3.1. Назначение подпрограмм
- •4.3.2. Типы подпрограмм
- •4.3.3. Локальные переменные формы
- •5. Операторы и функции, работающие с символьными данными
- •5.1. Ввод символов с целью управления действиями
- •5.2. Функции, работающие с таблицей ascii-кодов
- •5.3. Функции, работающие со строкой символов
- •6. Графика
- •6.1. Воспроизведение цвета
- •6.2. Операторы (Методы) изображения стандартных фигур
- •6.3. Программирование движения фигур на экране.
- •9. Математические вычисления и встроенные функции.
2. Основы построения алгоритмов
2.1. Принципы описания алгоритмов
Для того чтобы решить сложную задачу на компьютере, необходимо ее представить в виде последовательности относительно простых операций, каждая из которых может быть переведена на язык двоичных кодов - элементарных инструкций. Такая последовательность называется алгоритмом решения задачи. Уровень простоты операций зависит от используемого в дальнейшем языка программирования. Чем выше уровень языка, тем более сложные операции могут быть содержанием алгоритма. Таким образом, форма алгоритма зависит от языка программирования. Однако, существуют некоторые общие принципы построения алгоритмов, мало зависящие от языка. Это принципы описания элементов алгоритма и его основных структур.
Основными элементами описания алгоритма являются переменная и символы операций. Переменная это изменяемый числовой объект с фиксированным именем, которому соответствует определенная ячейка памяти компьютера. Форма имени зависит от языка программирования. Переменной можно присвоить численное значение или значение другой переменной. Например, a=5 или a=b. Справа от знака равенства может стоять не только число или имя переменной, но и арифметическая операция. Например, можно записать: a=b+c. Последнее означает в терминах элементарных инструкций: взять число по адресу А1 (это значение переменной b), взять число по адресу А2 (это значение переменной c), сложить их и записать результат по адресу А3 (переменная a). Можно записать также: a=a+c. Это означает: взять число по адресу А1 (это значение переменной a), взять число по адресу А2 (это значение переменной c), сложить их и записать результат по адресу А1 (вместо адреса А3). Таким образом, в ячейке памяти, соответствующей переменной a старое значение заменится новым.
Вместо знака «+» может стоять знак любой другой арифметической операции. Изменение знака переменной на противоположный знак, соответствующее операции
b=(-1) • b, условимся записывать в виде: b= -b.
Основными структурными элементами алгоритма являются цикл и передача управления. Цикл - это элемент, обеспечивающий многократное повторение одинаковой последовательности операций. Передача управления - это элемент, позволяющий продолжить выполнение операций с любого места в их последовательности. Форма соответствующих операторов также зависит от языка программирования. Передача управления может быть либо условным переходом (при выполнении некоторого условия), либо безусловным переходом (без всякого условия). Для указания, куда нужно сделать переход, может быть использована так называемая метка. Это некоторый знак рядом со строкой, где записана необходимая операция. Языки программирования высокого уровня обычно имеют такие формы операторов передачи управления, которые не требуют меток. Причиной, побудившей разработчиков программного обеспечения избегать меток, является усложнение программы в машинных (то есть двоичных) кодах при наличии меток.
2.2. Примеры построения алгоритмов типовых задач
Пример 2.1. Составить алгоритм вычисления произведения k=nm без использования операции умножения.
Решение. Умножение, как известно из курса арифметики, есть последовательное сложение. Кстати говоря, операция умножения, включенная в число элементарных операций компьютера, сделана также последовательным сложением. Как мы видели выше, операция добавления нового числа в некоторую ячейку памяти есть одна из операций присваивания. В нашем случае нужно m раз сложить число n и записать в переменную k. Следовательно, нужно использовать присваивание k=k+n. Если мы сделаем начальное значение k равным нулю и повторим указанную операцию присваивания ровно m раз, мы достигнем искомого результата. Для того чтобы посчитать, сколько раз эта операция уже повторена, нужно поставить так называемый счетчик. Введем для этого переменную i, присвоим ей значение ноль вначале, а затем будем повторять операцию i=i+1 (то есть добавлять единицу) всякий раз, когда выполняется операция добавления числа n в переменную k. Нам осталось только поставить операцию сравнения значения i с числом m, чтобы закончить цикл. Итак, имеем следующий алгоритм:
1. Ввод значений n и m
2. k=0
3. i=0
4. k=k+n
5. i=i+1
6. если i<m, идти к 4, иначе идти к 7
7. Вывод значения k
В 6-й строке алгоритма слово «иначе» означает переход при невыполнении условия, указанного после слова «если». Это переход к следующей по порядку строке, представляющий собой так называемую «естественную последовательность операций». Этот переход во всех языках программирования делается без принудительной ссылки «идти к». Поэтому в следующих алгоритмах такую ссылку будем опускать. Обычно алгоритм проверяется на тестовом примере. Пусть n=5, m=3. Проследим действия алгоритма. При первом обращении к строке 4 переменная k=5. Из строки 5 следует i=1. Поскольку условие в строке 6 выполнено, снова выполняются строки 4 и 5. В результате k=10, i=2. Условие в строке 6 снова выполнено. Выполняются строки 4 и 5. В результате k=15, i=3. При этом условие в строке 6 (то есть i<3) не выполнено и действие переходит к строке 7, которая и завершает работу алгоритма.
В полученном алгоритме имеется цикл: повторение 4-й строки. Начальная операция цикла - это строка 3: присваивание переменной счетчика i начального значения. Другими элементами цикла являются: сам счетчик (строка 5) и конечная операция цикла, представляющая собой условный переход (строка 6). Указанные элементы структуры цикла являются типовыми и поэтому их можно объединить с целью сокращения записи алгоритма. Заметим, что начальное значение переменной счетчика может быть сделано равным 1. Тогда в операции условного перехода нужно заменить знак условия «меньше» на «меньше или равно». Заметим также, что имена всех переменных совершенно произвольные. Тогда можно ввести следующие условные операции, организующие цикл. В начале цикла будем ставить строку: цикл i=1,m. Будем подразумевать, что в этой строке объединены все три упомянутые выше элемента структуры цикла: присваивание начального значения переменной счетчика, сам счетчик, сравнение значения переменной счетчика с числом m и условный переход. По окончании блока операций цикла будем ставить строку: конец цикла i. Блок операций, повторяющихся в цикле, обычно называют телом цикла. Будем выделять тело цикла жирным шрифтом. С учетом введенных обозначений алгоритм вычисления произведения k=nm будет выглядеть следующим образом:
1, Ввод значений n и m
2. k=0
3. Цикл i=1,m (в этом операторе содержится счетчик i=i+1
4. k=k+n и цикл будет закончен, когда i=m+1)
5. Конец цикла i (этот оператор переводит действие на начало цикла, если im)
6. Вывод значения k
В операции обновления переменной счетчика i=i+1 единица называется шагом счетчика. Будем полагать, что если в цикле не задан другой шаг, то он автоматически равен единице. В противном случае в строке начала цикла будем указывать нужный шаг счетчика. Кстати сказать, в этом случае сам термин «счетчик» теряет смысл. Ниже показан пример алгоритма с шагом, отличным от единицы.
Пример 2.2. Составить алгоритм для вычисления значения функции y=x2 для значений x в пределах от -2 до +3 с шагом 0.2.
Решение. Поскольку возведение в степень не является элементарной операцией, заменим ее умножением. Многократное вычисление значения функции поставим в цикл. В тело цикла должен также входить вывод значений аргумента и функции. Получим следующий алгоритм:
1. Цикл x=-2, +3 шаг 0.2
2. y=x•x