Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Информатика и программирование : алгоритмизация -от проблемы к программе

Покупка
Артикул: 753114.01.99
Доступ онлайн
2 000 ₽
В корзину
В курсе лекций представлены особенности вычислительного процесса в компьютере, способы кодирования информации, принципы описания алгоритмов, а также примеры построения алгоритмов типовых задач. Переход от алгоритмов к программам осуществлен на современном алгоритмическом языке Visual Basic. Приобретение навыков программирования обеспечивается подробным описанием процедуры алгоритмизации и перехода к текстам программ. Закрепление указанных навыков обеспечивается постепенным переходом от простых задач к более сложным. Примеры программ, приведенные в курсе лекций, должны способствовать развитию алгоритмического мышления, необходимого для овладения специальными дисциплинами направлений 230700 «Прикладная информатика», 230400 «Информационные системы и технологии», 230100 «Информатика и вычислительная техника».
Смирнов, А. П. Информатика и программирование : алгоритмизация -от проблемы к программе : курс лекций / А. П. Смирнов. - Москва : Изд. Дом МИСиС, 2014. - 59 с. - ISBN 978-5-87623-780-4. - Текст : электронный. - URL: https://znanium.com/catalog/product/1232704 (дата обращения: 23.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ 

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ  
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ  
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС» 

 

 
 
 

 

 

 

 
 

 

№ 2336 

Кафедра автоматизированных систем управления

А.П. Смирнов 
 
 

Информатика и программирование

Алгоритмизация – от проблемы к программе 

Курс лекций 

Рекомендовано редакционно-издательским 
советом университета 

Москва  2014 

УДК 004 
 
C50 

Р е ц е н з е н т  
канд. экон. наук, доц., проф. Ю.Ю. Костюхин 

Смирнов, А.П. 
С50  
Информатика и программирование : алгоритмизация – от 
проблемы к программе : курс лекций / А.П. Смирнов. – М. : 
Изд. Дом МИСиС, 2014. – 59 с. 
ISBN 978-5-87623-780-4 

В курсе лекций представлены особенности вычислительного процесса 
в компьютере, способы кодирования информации, принципы описания алгоритмов, а также примеры построения алгоритмов  типовых задач. Переход 
от алгоритмов к программам осуществлен на современном алгоритмическом 
языке Visual Basic. Приобретение навыков программирования обеспечивается подробным описанием процедуры алгоритмизации и перехода к текстам 
программ. Закрепление указанных навыков обеспечивается постепенным переходом от простых задач к более сложным.  
Примеры программ, приведенные в курсе лекций, должны способствовать развитию алгоритмического мышления, необходимого для овладения 
специальными дисциплинами направлений 230700 «Прикладная информатика», 230400 «Информационные системы и технологии», 230100 «Информатика и вычислительная техника». 
 

УДК 004 

ISBN 978-5-87623-780-4 
© А.П. Смирнов, 2014 

ОГЛАВЛЕНИЕ 

Введение...................................................................................................................4 
1. Особенности вычислительного процесса в компьютере.....................................5 
1.1. Двоичная система счисления........................................................................5 
1.2. Кодирование информации............................................................................6 
2. Основы построения алгоритмов ..........................................................................9 
2.1. Принципы описания алгоритмов..................................................................9 
2.2. Примеры построения алгоритмов типовых задач......................................10 
3. Алгоритмический язык Visual Basic. Основные сведения ................................17 
3.1. Историческая справка.................................................................................17 
3.2. Среда программирования Visual Basic 6.0..................................................18 
3.3. Основные конструкции языка ....................................................................19 
3.3.1. Алфавит ............................................................................................................19 
3.3.2. Переменные .....................................................................................................20 
3.3.3. Константы ........................................................................................................20 
3.4. Типы переменных.......................................................................................21 
3.4.1. Характеристики переменных.......................................................................21 
3.4.2. Способы задания типа ...................................................................................22 
3.5. Основные функциональные операторы .....................................................23 
3.5.1. Оператор присваивания.................................................................................23 
3.5.2. Оператор условного перехода......................................................................23 
3.5.3. Операторы цикла ............................................................................................25 
3.6. Операторы ввода и вывода информации....................................................27 
3.6.1. Операторы ввода значений переменных с клавиатуры..........................27 
3.6.2. Операторы вывода значений переменных на экран................................29 
3.7. Примеры типовых программ......................................................................31 
4. Алгоритмический язык Visual Basic. Более сложные структуры......................35 
4.1. Файловый ввод и вывод..............................................................................35 
4.2. Подпрограммы и их использование для написания сложных программ....38 
4.2.1. Назначение подпрограмм..............................................................................38 
4.2.2. Типы подпрограмм.........................................................................................38 
4.2.3. Локальные переменные формы...................................................................42 
5. Операторы и функции, работающие с символьными данными........................44 
5.1. Ввод символов с целью управления действиями.......................................44 
5.2. Функции, работающие с таблицей ASCII-кодов........................................45 
5.3. Функции, работающие со строкой символов.............................................45 
6. Графика...............................................................................................................50 
6.1. Воспроизведение цвета...............................................................................50 
6.2. Операторы (Методы) изображения стандартных фигур............................51 
Библиографический список...................................................................................58 
 

ВВЕДЕНИЕ 

Современные компьютерные технологии нередко слишком сложны для начинающих программистов. Поэтому на начальном этапе 
изучения программирования целесообразно использовать относительно простые языки программирования. 
Программа, как правило, является инструментом для решения некоторой проблемы, сформулированной вначале на некотором обычном языке. Например, это может быть математическая задача. 
Наиболее сложным, как правило, является переход от текстового описания проблемы к алгоритму, т.е. к описанию порядка действий, приводящих к желаемому результату. Эти действия должны 
быть представлены на языке некоторых элементарных операций. 
Следующим этапом является переход от алгоритма к программе, 
т.е. к описанию алгоритма на определенном языке, который воспринимается компьютером. 
В настоящее время имеется большое разнообразие языков программирования, каждый из которых имеет свои достоинства. Однако 
далеко не все языки приспособлены к восприятию начинающими 
программистами. Самым простым способом облегчить это восприятие является реализация алгоритма на так называемом алгоритмическом языке. Название это связано с тем, что действия (операции), 
представленные в алгоритме, возможно напрямую перевести в последовательность операторов программы.  
Переход от алгоритма к программе наиболее прост на алгоритмическом языке серии Basic. 
В данном курсе лекций в качестве инструмента для реализации алгоритмов в виде программ выбран современный язык Visual Basic, операционная среда которого является достаточно простой для работы, предоставляя в то же время широкие возможности для пользователя.  

1. ОСОБЕННОСТИ ВЫЧИСЛИТЕЛЬНОГО 
ПРОЦЕССА В КОМПЬЮТЕРЕ 

1.1. Двоичная система счисления 

Компьютер является вычислительной машиной, которая работает 
в двоичной системе счисления. Форма представления числа зависит 
от основания системы. В привычной для нас десятичной системе 
счисления основанием является число 10. Любое число в десятичной 
системе счисления представляется последовательностью цифр от 0 
до 9. Они располагаются по так называемым разрядам, каждый 
из которых соответствует определенной степени основания. Например, десятичное число 271 означает следующую сумму: 

 
271 = 2 ∗ 102 + 7 ∗ 101 + 1 ∗ 100. 

Здесь и в дальнейшем звездочкой отмечена операция умножения. 
В двоичной системе счисления основанием является цифра 2. Соответственно число в этой системе изображается последовательностью цифр 0 или 1. В качестве примера представим число 271 в двоичной системе в виде следующей суммы: 

271 = 1 ∗ 28 + 0 ∗ 27 + 0 ∗ 26 + 0 ∗ 25 + 0 ∗ 24 + 1 ∗ 23 + 1 ∗ 22 + 1 ∗ 21 + 1 ∗ 20. 

Таким образом, в позиционной форме это число имеет следующий вид: 

 
100001111. 

Преобразование из десятичной системы счисления в двоичную 
систему, как это видно из примера, производится следующим образом. Сначала определяется максимальная степень числа 2, результат 
возведения в которую меньше заданного десятичного числа. Эта степень определяет номер максимального разряда двоичного числа, 
в который записывается цифра 1. Затем число 2 возводится в эту степень. Полученное десятичное число вычитается из заданного числа. 
После этого опять вычисляется максимальная степень числа 2, результат возведения в которую меньше полученного остатка. В разряд, равный этой степени, записывается единица. Все остальные разряды до него заполняются нулями. Процедура продолжается до тех 
пор, пока остаток не станет равным 0. Тогда и все последние разряды 
(включая нулевой разряд) заполняются нулями. В частном случае 

(см. приведенный выше пример) остаток может стать равным нулю 
только при записи единицы в нулевой разряд. 
Двоичная система счисления в компьютере выбрана исходя 
из возможности электронной реализации представления чисел и элементарных операций. Представьте себе, что нужно реализовать десятичную систему счисления. Тогда нужно иметь по крайней мере 
электронную схему, которая может находиться в одном из десяти 
устойчивых состояний (каждое состояние соответствует одной цифре). Такую схему в принципе можно придумать. Но она не будет технологичной и ее размер не позволит создать компактный компьютер 
даже при современном состоянии электронной техники. Зато устройство с двумя устойчивыми состояниями известно очень давно. Это 
электромагнитное реле. Первая вычислительная машина была реализована именно на электромагнитных реле. Произошло это еще 
до внедрения в технику электронной лампы. С появлением электронных ламп был изобретен так называемый триггер – электронная схема с двумя лампами, имеющая два устойчивых состояния.  
Переход из одного состояния в другое в такой схеме происходил 
под воздействием электрического импульса на сетке одной из ламп. 
С развитием электроники сначала лампы были заменены полупроводниковыми приборами, а затем появились интегральные схемы, 
включающие в себя современную модификацию триггеров.  

1.2. Кодирование информации 

На уровне процессора компьютер не может воспринимать информацию в другой форме, кроме двоичного кода. Выше было рассмотрено, как можно представить числа в двоичном коде. Очевидно, что 
в этом же коде нужно представить и необходимые операции с числами. Ввиду особенностей процессов в электронных схемах, реализующих вычисления, можно закодировать и осуществить только некоторые элементарные операции. Все они перечислены ниже. 
1. Арифметические операции: сложение, вычитание, умножение, 
деление. 
2. Логические операции: «или», «и», «не». 
3. Операции сравнения: «больше», «меньше», «равно», «не равно». 
Единовременно процессор производит только одну операцию. 
Соответствующая команда дается в кодовой форме. Это так называемая элементарная инструкция. Она схематически представлена на рис. 1.1. 

Рис. 1.1. Форма элементарной инструкции 

Элементарная инструкция представляет собой строку двоичных 
символов (1 или 0). В начале строки стоит код операции (КОП). Затем идут три адреса ячеек памяти, где находятся данные для указанной операции. Элементарная инструкция означает: взять число 
по адресу А1, взять число по адресу А2, произвести с ними указанную операцию, записать результат по адресу А3. При этом адрес А3 
может совпадать с А1 или с А2. 
Если требуется решить некоторую задачу, ее надо представить в виде 
последовательности элементарных инструкций. Результат такого представления называется программой. Немногим больше полувека назад не 
существовало другого языка для компьютера, кроме элементарных инструкций. Каждая инструкция пробивалась на отдельной перфокарте (дырка – 1, отсутствие дырки – 0). Пачка перфокарт помещалась в устройство 
ввода, где фотоэлемент обеспечивал электрический импульс на месте 
дырки. Вероятность ошибок в написании программы была крайне велика. 
Серьезные программы отлаживались годами. 
Неудобство такого программирования привело к созданию специальных языков. Первым появился так называемый ассемблер. Его 
инструкции состояли из десятичных кодов и букв. Для ввода программы была создана простейшая клавиатура. Инструкции на ассемблере переводились в элементарные инструкции (в двоичных кодах) специальной программой – транслятором (написанным, естественно, в двоичных кодах). Затем появились так называемые алгоритмические языки высокого уровня. В них инструкции стали называться операторами. Операторы состояли из слов человеческого языка 
и обозначений элементарных операций. Однако процессор компьютера воспринимает программу только в виде элементарных инструкций. Поэтому используется программа-транслятор, которая переводит операторы алгоритмического языка в двоичные коды. 
С появлением клавиатуры возникла необходимость не только кодировать числа и элементарные операции, но и присваивать коды 
клавишам. В связи с этим был создан международный стандарт кодов, в качестве которого принята американская система кодирования 
ASCII (American Standard Coding for Information Interchange).  
Единицей хранения информации в памяти компьютера является 
бит (bit – binary digit). Для удобства операций биты объединены 

КОП
А1
А2
А3

в байты (bite). Байт состоит из восьми битов. Таким образом, байт дает 
возможность представить 28 различных комбинаций нулей и единиц, 
т.е. 256 различных кодов. В таблице кодов ASCII строки 0–127 составляют интернациональный стандарт, а строки 128–255 содержат национальный стандарт (в том числе национальный алфавит). Следует отметить, что стандарт ASCII используется в программах, работающих 
под управлением дисковой операционной системы MS-DOS. Появление системы Windows привело к появлению других стандартов кодирования. Однако стандарт ASCII продолжают использовать во многих 
приложениях. 
Для представления чисел в двоичных кодах используется комбинация из двух байтов – так называемое слово. В одном слове может быть 
закодировано целое число, не превышающее 216. Если учесть, что один 
двоичный разряд нужен для знака («+» или «–»), то максимальное целое число есть 215 = 32 768. При использовании комбинации из двух 
слов максимальное по абсолютной величине число (с учетом одного 
разряда на знак) составит 231 = 2 147 483 648. Вещественные числа 
(т.е. числа с дробной частью) кодируются, по меньшей мере, двумя 
словами (4 байта). При этом в представлении числа имеются две части: мантисса – значащие цифры, и порядок – степень числа 10. Под 
порядок и знак отводится один байт. 

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 

Доступ онлайн
2 000 ₽
В корзину