Реферат: Пример настоящей программы для компьютера на языке Лого 16 > Последовательность работы программиста на компьютере 17 > Основные приемы программирования 18 Глава. 2 Устройство и работа компьютера 21





для школьников,

студентов

и начинающих

1999

С,Н.Лукин




__________________________________________________________


Все права защищены

©



Глава .0
Оглавление


Предисловие 5

0.1. Кому нужна эта книга? 5

0.2. Почему Паскаль? 5

0.3. Какой из Паскалей? 6

0.4. Краткое содержание с рекомендациями 6

Часть I. Необходимые сведения о компьютере и программе 8

Глава .0 Первое представление о компьютере и программе 9

0.1. Что умеет делать компьютер 9

0.2. Что такое компьютер. Первое представление о программе. 9

0.3. Как человек общается с компьютером 11

Глава .1 Программа и программирование 12

1.1. Список команд. Командный и программный режимы 12

1.2. Что важно знать о программе 13

1.3. Понятие о процедуре. Может ли робот поумнеть? 13

1.4. Программа для компьютера на машинном языке 14

1.5. Языки программирования 15

1.6. Пример настоящей программы для компьютера на языке Лого 16

1.7. Последовательность работы программиста на компьютере 17

1.8. Основные приемы программирования 18

Глава .2 Устройство и работа компьютера 21

2.1. Как устроен и работает компьютер 21

2.2. Устройство и размеры оперативной памяти 23

2.3. Взаимодействие программ в памяти 23

2.4. Внешние устройства компьютера 24

2.5. Кодирование информации в компьютере 27

Часть II. Программирование на Паскале – первый уровень 29

Глава .0 Простые (линейные) программы. Операторы ввода-вывода. Переменные величины 30

0.1. Процедура вывода Write 30

0.2. Первая программа на Паскале 31

0.3. Выполняем первую программу на компьютере 32

0.4. Процедура вывода WriteLn. Курсор 33

0.5. Переменные величины. Оператор присваивания 34

0.6. Описания переменных (VAR) 35

0.7. Что делает оператор присваивания с памятью 36

0.8. Имена переменных 37

0.9. Математика. Запись арифметических выражений 38

0.10. Вещественные числа в Паскале 40

0.11. Порядок составления простой программы 41

0.12. Операторы ввода данных ReadLn и Read. 42

0.13. Интерфейс пользователя 43

0.14. Строковые переменные 44

0.15. Диалог с компьютером 45

0.16. Константы 45

Глава .1 Разветвляющиеся программы 46

1.1. Условный оператор IF или как компьютер делает выбор 46

1.2. Правила записи оператора IF 48

1.3. Составной оператор 49

1.4. Ступенчатая запись программы 50

1.5. Вложенные операторы if. Сложное условие в операторе if. Логические операции 50

1.6. Символьный тип данных Char 53

1.7. Оператор варианта case 53

Глава .2 Циклические программы 56

2.1. Оператор перехода GOTO. Цикл. Метки 56

2.2. Выход из цикла с помощью if 58

2.3. Оператор цикла repeat 59

2.4. Оператор цикла while 60

2.5. Отличия операторов repeat и while 61

2.6. Оператор цикла for 61

Глава .3 Типичные маленькие программы 64

3.1. Вычислительная циклическая программа 64

3.2. Роль ошибок 65

3.3. Счетчики 65

3.4. Сумматоры 67

3.5. Вложение циклов в разветвления и наоборот 68

3.6. Вложенные циклы 68

3.7. Поиск максимального из чисел 69

Глава .4 Процедуры 71

4.1. Компьютер звучит 71

4.2. Простейшие процедуры 72

4.3. Процедуры и операторы 75

4.4. Стандартные процедуры Halt и Exit 75

Глава .5 Графика 77

5.1. Стандартные модули 77

5.2. Стандартный модуль Graph, текстовый и графический режимы 77

5.3. Рисуем простейшие фигуры 78

5.4. Работа с цветом. Заливка. Стиль линий и заливки 81

5.5. Используем в рисовании переменные величины 83

5.6. Использование случайных величин при рисовании 84

5.7. Движение картинок по экрану 85

Глава .6 Создаем первую большую программу 87

6.1. Постановка задачи 87

6.2. Программирование по методу “сверху-вниз” 87

6.3. Сначала – работа над структурой программы 89

6.4. Зачем переменные вместо чисел 91

6.5. Записываем программу целиком 92

6.6. Порядок описания переменных, процедур и других конструкций Паскаля 95

6.7. Управление компьютером с клавиатуры. Функции ReadKey и KeyPressed 96

6.8. Буфер клавиатуры 97

6.9. Гетерархия. Задание на игру “Торпедная атака” 100

Часть III. Программирование на Паскале – второй уровень 103

Глава .0 Алфавит и ключевые слова Паскаля 104

0.1. Алфавит 104

0.2. Ключевые слова 104

0.3. Использование пробела 105

Глава .1 Работа с разными типами данных Паскаля 106

1.1. Список типов 106

1.2. Числовые типы 107

1.3. Массивы 108

1.4. Определения констант 111

1.5. Типизированные константы 112

1.6. Придумываем типы данных 112

1.7. Логический тип Boolean 113

1.8. Перечислимые типы 113

1.9. Ограниченный тип (диапазон) 114

1.10. Действия над порядковыми типами 115

1.11. Символьный тип Char. Работа с символами 116

1.12. Строковый тип String. Работа со строками 117

1.13. Записи 118

1.14. Множества 120

1.15. Расположение информации в оперативной памяти. Адреса 122

1.16. Ссылки 123

Глава .2 Процедуры и функции с параметрами 125

2.1. Процедуры с параметрами 125

2.2. Функции 127

2.3. Подпрограммы. Локальные и глобальные переменные 128

2.4. Массивы как параметры 129

2.5. Параметры-значения и параметры-переменные 130

2.6. Индукция. Рекурсия. Стек 131

2.7. Сортировка 132

Глава .3 Строгости Паскаля 135

3.1. Структура программы 135

3.2. Структура процедур и функций 136

3.3. Выражения 137

3.4. Совместимость типов 137

3.5. Форматы вывода данных 138

3.6. Переполнение ячеек памяти 139

3.7. Дерево типов 139

3.8. Синтаксисические диаграммы Паскаля 140

Глава .4 Другие возможности Паскаля 147

4.1. Работа с файлами данных 147

4.2. Вставка в программу фрагментов из других программных файлов 149

4.3. Модули программиста 150

4.4. Дополнительные процедуры и функции модуля Graph 152

4.5. Копирование и движение областей экрана 152

4.6. Вывод текста в графическом режиме 154

4.7. Управление цветом в текстовом режиме (модуль CRT) 154

4.8. Работа с датами и временем (модуль DOS) 155

4.9. Нерассмотренные возможности Паскаля 156

4.10. Миг между прошлым и будущим 157

Часть IV. Работа в Паскале на компьютере 159

Что нужно знать и уметь к моменту выполнения первой программы? 159

Порядок работы в Паскале 159

(1) Запуск Паскаля 159

(2) Начало работы. Ввод программы. Выход из Паскаля 161

(3) Сохранение программы на диске. Загрузка программы с диска 162

(4) Выполнение программы 163

(5) Исправление ошибок. Отладка программы. 164

Работа с несколькими окнами. 169

Копирование и перемещение фрагментов текста 170

Обзор популярных команд меню 170

Создание исполнимых файлов (exe) 171

Приложения. Справочный материал 172

П1. Как вводить программу в компьютер или работа с текстом в текстовом редакторе 172

П2. Файловая система магнитного диска 175

П3. Список некоторых операций, процедур и функций Паскаля 177

П4. Произношение английских слов 179

П5. Решения заданий 182

П6. Список литературы 208

П7. Предметный указатель 209



От автора


Хочу выразить искреннюю признательность Алексею Михайловичу Епанешникову, внимательно прочитавшему рукопись и сделашему по ее содержанию больше сотни замечаний и нашедшему множество ошибок, одну из которых мне не хочется вспоминать.

Также хочу поблагодарить Алексея Яковлевича Архангельского, просмотревшего рукопись и сделавшего существенные предложения по направленности ее содержания.

Предисловие


Сначала о терминологии. Везде в дальнейшем я буду:

для краткости вместо термина «Турбо-Паскаль» употреблять термин «Паскаль».

также везде, где это не вызовет путаницы, словом Паскаль я буду называть не только сам язык Паскаль, но и компилятор, и среду разработки программ:

пользоваться термином «объект» в его общечеловеческом смысле, несмотря на то, что в языках программирования он имеет специальное значение.
^ 0.1.Кому нужна эта книга?
Это самоучитель. То есть написана книга с расчетом на то, что, изучив ее без посторонней помощи, вы сможете без посторонней помощи писать программы на Паскале и выполнять их на компьютере тоже без посторонней помощи. Материал книги я в течение трех лет проверял на учениках-энтузиастах 6-11 классов 345 московской школы. Проверка, как мне кажется, закончилась нормально - вопросов в процессе изучения ребята задавали немного, а программировать научились. Ответы же на их вопросы я включил в книгу.

^ Если вы хотите научиться программировать, но никогда в жизни не написали ни одной программы и плохо представляете, как компьютер устроен, читайте эту книгу с начала до конца – вы и программировать научитесь, и об устройстве компьютера узнаете все необходимые сведения.

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

^ Если вы опытный программист, но хотите изучить еще и Паскаль, вам эта книга не нужна - изложение рассчитано на начинающих.

Если у вас под рукой нет компьютера, не очень огорчайтесь. Книга снабжена достаточным количеством заданий и решений к ним. Сверяя свои программы с приведенными в ответе, вы всегда сможете сказать, на правильном ли вы пути.

Если вы хотите узнать ^ Паскаль в полном объеме, то имейте в виду, что данная книга для этого не предназначена. Во-первых, потому, что Паскаль настолько велик, что в полном объеме во всем мире мало кому нужен. Во-вторых, потому, что для полного его изложения понадобились бы тысячи страниц текста. Цель данной книги не в полноте охвата, а в том, чтобы вы научились программировать и использовать основные средства Паскаля.

Книга учит не только писать программы на листе бумаги, но и выполнять программы на компьютере. Все, что вам нужно знать заранее, это как включать компьютер и как запускать Паскаль. Все остальное в книге объяснено.
^ 0.2.Почему Паскаль?
Этот вопрос стоит перед новичками, которые не знают, с какого языка начать. Вот краткий обзор возможных вариантов.

Прежде всего, для полезного, занимательного и веселого изучения основных идей программирования существуют специальные учебные языки, рассчитанные на детей и новичков. Это «Кенгуренок», «Пылесосик», Лого. Кстати, Лого - язык достаточно богатый, чтобы программировать на нем и несложные игры. Но, к сожалению, эти языки мало распространены в России и по ним почти нет литературы. Так что вопрос о них отпадает. Перейдем к рассмотрению профессиональных взрослых языков. Сейчас наиболее известны Бэйсик, Паскаль, Си, Ява в их самых разных версиях.

Но Ява применяется в основном только в сети.

Си – высокопрофессиональный язык, в среде программистов он распространен очень широко, но слишком сложен для восприятия новичком и с него лучше не начинать. Если вам очень хочется программировать на Си, рекомендую начать с Бэйсика или Паскаля. После них освоение Си пойдет гораздо легче.

В качестве языков для обучения студентов и школьников наиболее широко используются Паскаль и Бэйсик. Причина в том, что их современные версии (Borland Pascal for Windows, Delphi, Visual Basic и др.) достаточно широко распространены во всем мире для разработки профессиональных программ, а сами языки, тем не менее, весьма просты и понятны.

При сравнении Паскаля и Бэйсика нужно помнить, что паскалей и бэйсиков на самом деле много (Pascal, TurboPascal, Borland Pascal, Borland Pascal for Windows, Basic, QBasic, Quick Basic, Visual Basic, Visual Basic .NET и пр.). Оба языка постоянно развиваются и каждой версии присущи свои преимущества и недостатки. Нельзя сказать, что вообще Бэйсик лучше Паскаля, или наоборот, иначе бы на свете остался только один из этих языков. Нельзя с уверенностью предсказать, что кто-то из них в будущем победит. Можно только сказать, что пока каждый силен в своей области и более поздняя версия языка всегда богаче и мощнее более ранней версии.

Исходя из этого, я сравню не Паскаль вообще и Бэйсик вообще, а их версии, наиболее распространенные в российских школах и институтах, а именно TurboPascal 7.0 и QBasic. Если сравнивать их, то на Бэйсике хорошо писать маленькие программы (до 25-50 строк). Они получаются короче и проще, чем на Паскале. Но большие программы на таком Бэйсике из-за плохой структурированности языка получаются труднообозримыми. К тому же Паскаль гораздо богаче, быстрее и мощнее (это естественно, так как он по размеру в десятки раз больше, чем Бэйсик). Паскаль строг и придирчив, изящен и красив.
^ 0.3.Какой из Паскалей?
Любая программа, которую вы встретите в этой книге, является правильной программой в версиях Паскаля TurboPascal 5.5, TurboPascal 6.0, TurboPascal 7.0 и Borland Pascal для DOS, а абсолютное большинство программ - и в более ранних версиях. Это естественно, так как основа языка едина для всех версий. Таким образом, вы можете считать эту книгу учебником по программированию на любой из версий Паскаля. Лично я при написании этой книги использовал TurboPascal 7.0.

Теперь – о работе на компьютере. Каждая версия Паскаля предлагает свой способ работы на компьютере (каждая следующая версия - все более удобный и мощный). В широком смысле этот способ называется средой программирования. Как я уже говорил, среды программирования версий TurboPascal 6.0, TurboPascal 7.0 и Borland Pascal для DOS очень близки между собой в тех рамках, которыми я ограничиваюсь в книге. Я буду учить работать именно в этих средах. Все, что я буду говорить, относится к любой из них. Редкие случаи различий я буду полностью оговаривать. Если же на вашем компьютере установлена другая версия, не очень огорчайтесь, так как основные приемы работы в среде Паскаля одинаковы во всех версиях, а большинство остальных приемов - похожи. Различаются лишь подробности, которые нужны не часто.
^ 0.4.Краткое содержание с рекомендациями
Книга состоит из четырех частей и приложения:


Часть I. Необходимые сведения о компьютере и программе. В этой части Паскалю мы не учимся. Она - для начинающих и для тех более опытных, кто имеет пробелы в знаниях основ компьютера и программирования. В этой части вы узнаете следующее:


что такое компьютер, программа, цикл, ветвление, процедура, и какая от них выгода;

что такое языки программирования;

принцип действия компьютера и его устройств: оперативной памяти, принтера, винчестера и других;

взаимодействие устройств во время работы компьютера;

принципы кодирования информации в разных устройствах компьютера.


^ Часть II. Программирование на Паскале – первый уровень. Цель этой части – провести вас от создания самых простых программ до сложных. Здесь вы учитесь программировать на Паскале самым простым способом - на примерах, то есть по принципу “делай, как я”. Вы научитесь создавать небольшие программы, включающие циклы, ветвления, процедуры и использующие графику и звук. Заканчивается часть созданием и заданием на создание солидной программы. Предполагается, что после выполнения этого задания у вас должно возникнуть ощущение всесильности, то есть вы должны почувствовать, что теперь вам по плечу программа любого размера, и что вам может понадобиться в будущем, так это сведения о работе с теми или иными данными.


^ Часть III. Программирование на Паскале – второй уровень. Цели этой части:

Снабдить вас этими самыми сведениями. Вы познакомитесь с действиями над массивами, символами, строками, записями, множествами, файлами и другими типами данных. Вы изучите процедуры и функции с параметрами, модули, расширите свои возможности работы с графикой

Навести строгость и порядок в ваших знаниях о Паскале. Используемый мной способ изложения на примерах - самый легкий для понимания, но не строгий, а это значит, что если вы сделаете грамматическую ошибку в программе, то иногда не будете знать, в чем эта ошибка. Чтобы иметь оружие на этот случай, в данной части Паскаль излагается более систематически, а самое главное – приводятся в виде синтаксических диаграмм строгие правила записи всех нужных вам конструкций Паскаля.



^ Часть IV. Работа в Паскале на компьютере. Она описывает работу в среде программирования TurboPascal 7.0. Вы научитесь вводить программу в компьютер, запускать ее на выполнение, отлаживать с использованием отладчика, сохранять и загружать с диска. В полном объеме среда программирования рассмотрена не будет, но все ее средства, необходимые для уверенной работе на компьютере, будут изложены исчерпывающе.


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

^ Часть I. Необходимые сведения о компьютере и программе
Вы можете не читать эту часть, если в общих чертах знаете следующие вещи:

Что такое программа, цикл, ветвление, процедура, и какая от них выгода.

Принцип действия компьютера и его устройств: оперативной памяти, принтера, винчестера и других.

Взаимодействие устройств во время работы компьютера.

Принципы кодирования информации в разных устройствах компьютера.



В этой части мы не будем программировать на Паскале. А будем знакомиться с перечисленными выше вещами, без которых сознательное программирование невозможно.

^ Глава .0Первое представление о компьютере и программе 0.1.Что умеет делать компьютер
Все вы видели компьютер - если не рядом с собой, то хотя бы по телевизору. Обычно он и сам напоминает телевизор, к которому присоединили клавиатуру от пишущей машинки. Только телевизор здесь особый и называется монитором или дисплеем.


Что же умеет делать компьютер:


Играть с вами в разные игры.

Выполнять сложные научные расчеты. Например, он может вычислить траекторию полета космического корабля на Марс.

Служить хранилищем самых разных сведений и одновременно справочной системой, из которой эти сведения легко и быстро добыть. Например, на любом вокзале Москвы можно подойти к висящему на стене монитору и нажав на клавиатуре несколько клавиш, прочитать на экране сведения о том, есть ли билеты на нужный вам поезд, отправляющийся, скажем, через две недели.

Выполнять вместо человека несложную, но скучную и утомительную вычислительную и печатную работу. Рассмотрим, например, работу банка. Каждый день в любой банк стекаются со всех сторон тысячи денежных сумм, а другие тысячи денежных сумм забираются из банка. Директор банка должен каждый день точно знать, сколько денег находится у него в банке. Для этого каждый день приходится выполнять тысячи сложений и вычитаний, чтобы сложить все деньги, которые пришли в банк, и вычесть из них все деньги, которые ушли из банка. Кроме этого ежедневно приходится печатать тысячи бумаг, в которых проставляются суммы денег, вложенных в банк и взятых из банка. Ото всех этих обязанностей человека освобождает компьютер.

Управлять различными машинами и аппаратами там, где человек этого делать не может или не хочет. Например, беспилотным космическим кораблем, подлетающим к Сатурну, управляет компьютер, находящийся на борту аппарата. А, скажем, на заводе компьютер управляет роботом, выполняющим скучную работу по навинчиванию гаек на винты.

Выполнять обязанности советчика. Например, если в компьютер вложить знания по медицине, а затем сообщить ему, какая у больного температура, анализ крови и пр., он может высказать свое мнение, чем болен пациент, и посоветовать лекарства.

В самое последнее время компьютер все шире используется, как средство связи со всем миром, гораздо лучшее, чем телефон.

А еще компьютер помогает инженеру конструировать дома, самолеты, машины, позволяет вам рисовать и делать собственные мультфильмы, он сочиняет стихи и музыку, умеет играть в шахматы на уровне гроссмейстера, может разговаривать человеческим голосом и исполнять музыкальные произведения, предсказывает погоду и делает многое другое.
^ 0.2.Что такое компьютер. Первое представление о программе.
Откуда в компьютере умение делать все описанные выше вещи? Нужно сказать, что когда-то компьютеры ничего такого делать не умели. И их приходилось учить. Как учат компьютер? Примерно так же, как учат людей, рассказывая им, как делать то-то и то-то. Пусть, например, вы живете на 17 этаже многоэтажного дома и к вам в гости приехал человек, никогда не бывавший в городе. Предположим, вы хотите научить его спускаться во двор на прогулку. Для этого вы даете ему такую инструкцию, состоящую из шести команд:


Выйти из квартиры

Подойти к двери лифта

Нажать на кнопку

Когда дверь откроется, войти

Нажать на кнопку с цифрой 1

Когда лифт спустится и дверь откроется, выйти во двор


Если ваш гость умеет ходить и нажимать на кнопки, то помня эту инструкцию, он отныне сможет самостоятельно спускаться во двор.

А как же научить сделать что-нибудь не человека, а компьютер? Например, вы хотите, чтобы компьютер нарисовал на экране монитора синюю тележку. Для этого вы даете ему на специальном, понятном для него языке инструкцию примерно такого содержания:


Нарисовать в таком-то месте экрана одно колесо.

Нарисовать в таком-то месте экрана другое колесо.

Нарисовать в таком-то месте экрана корпус тележки.

Покрасить корпус в синий цвет.


Если компьютер умеет рисовать колеса, корпуса и красить их, то он поймет эту инструкцию.

О том, что это за специальный язык, мы поговорим позже. Сейчас же мы скажем, что

инструкция для компьютера по выполнению задания, написанная на специальном, предназначенном для него языке, называется программой,

если же она написана на обычном русском или другом человеческом языке в расчете на то, чтобы ее понял не компьютер, а человек, то она называется алгоритмом. Таким образом, мы только что написали алгоритм из четырех команд1.

Поскольку у многих компьютеров нет ушей-микрофона (а если и есть, то компьютер неважно разбирает устную речь), программу вы ему не рассказываете вслух, а печатаете ее текст на клавиатуре (по-другому говоря - вводите с клавиатуры), откуда она тут же сама собой попадает внутрь компьютера. Отныне компьютер по первому вашему приказу сможет эту тележку рисовать.

Программа для рисования тележки очень простая и короткая. Если же вы хотите научить ваш компьютер делать что-нибудь более сложное, например, играть в шашки, то программу для этого должны будете придумать тоже, конечно, очень сложную и длинную. В этой программе будут встречаться команды такого примерно смысла: если противник сходил так-то, ходи так-то; если твоя шашка попала на последнюю горизонталь, обращай ее в дамку; если шашку противника можно брать, то бери и т.д. Как только вы напишете такую программу и введете ее в компьютер, он сразу же сможет играть в шашки, причем ровно настолько хорошо, насколько хороша ваша программа.

Итак, вы должны запомнить, что

для того, чтобы компьютер что-нибудь умел, он должен иметь внутри себя программу этого умения

И наоборот, если компьютер что-нибудь умеет, это значит, что кто-то когда-то придумал программу этого умения и ввел ее в компьютер. Следовательно, если ваш компьютер умеет играть в игру «Quake», это значит, что внутри него находится программа этой игры, которую кто-то туда ввел. Разучится ваш компьютер играть в «Quake» только тогда, когда вы удалите программу этой игры из компьютера (или нечаянно, или чтобы освободить в компьютере место для других программ).

^ Таким образом, мы можем определить компьютер, как устройство, предназначенное для выполнения широкого круга заданий и вообще для обработки самой разной информации по программе.

Именно работа по программе отличает компьютер от простого карманного калькулятора, который работает только по нажатию клавиш. (Правда, существуют так называемые программируемые калькуляторы, которые могут работать по программе, но раз так, то это уже не совсем калькуляторы, а немножко и компьютеры тоже.)

Вернемся к игре в шашки. Вот, например, ваш компьютер в шашки играть умеет. Как теперь научить играть в шашки другие компьютеры? Можно, конечно, в каждый компьютер ввести упомянутую программу с клавиатуры. Но это долго и утомительно, да и опечаток понаделаешь. Есть способы быстро и безошибочно переносить программы с одного компьютера на другой. Самый популярный из них - использование дискеты - маленькой круглой покрытой магнитным веществом пластиковой пластинки в пластмассовом или бумажном футляре, при помощи которой программы переносятся с одного компьютера на другой точно так же, как при помощи магнитофонной кассеты с одного магнитофона на другой переносятся песни.

Когда новенький компьютер выходит с завода, он почти ничего не умеет. Покупатель этого компьютера, чтобы научить его тому, что ему нужно, покупает или берет где-нибудь на время дискеты с программами нужных ему умений и переписывает с них эти программы в свой компьютер. Если нужная программа не существует в природе или просто дискету нигде достать не удалось, то программу приходится придумывать самому и вводить с клавиатуры.

Есть еще два пути, при помощи которых программы могут попасть в ваш компьютер:

Вы можете купить компакт-диски с готовыми программами и, если ваш компьютер снабжен «проигрывателем» компакт-дисков, то вы вставляете в него компакт-диск и вводите программу в компьютер.

Если ваш компьютер связан с другими компьютерами при помощи так называемого модема или другими способами, то вы можете «перекачивать» программы с других компьютеров на ваш по линии связи.
^ 0.3.Как человек общается с компьютером
Как я уже говорил, информацию, которую человек хочет сообщить компьютеру, он обычно вводит с клавиатуры, дискеты, компакт-диска или по линии связи. Есть и другие способы ввода информации, но о них позже.

Если же, наоборот, компьютер хочет сообщить человеку какую-то информацию, то он обычно показывает ее на экране монитора. Такой информацией могут быть числа, слова, тексты, картинки, мультипликация, видео. По желанию человека компьютер может печатать информацию на бумаге при помощи печатающего устройства, которое называется принтером. Кроме этого компьютер может исполнять музыкальные мелодии и даже разговаривать, правда не все компьютеры разговаривают разборчиво. Все это он умеет делать, напоминаем, не сам по себе, от рождения, а только по написанным человеком программам.


Что же обычно делает человек, сидя за компьютером? Все зависит от того, что ему от компьютера нужно. А нужно ему в большинстве случаев вот что:


Переписать программу с дискеты в компьютер или наоборот - с компьютера на дискету. В этом случае человек просто вставляет дискету в компьютер и нажимает на клавиатуре несколько определенных клавиш.

Ввести придуманную программу в компьютер с клавиатуры. В этом случае человеку достаточно набрать весь текст программы на клавиатуре.

Выполнить программу, уже имеющуюся внутри компьютера. Конечно, это нужно человеку чаще всего. Внутри компьютера (если только он не вчера куплен) обычно уже имеется очень много программ, поэтому человек сначала выбирает, какая программа ему нужна. Так, если ему нужна программа, показывающая мультфильмы, то он нажатием нескольких клавиш на клавиатуре выбирает именно ее и приказывает компьютеру ее выполнить (другими словами - запускает программу на выполнение). Компьютер выполняет программу, послушно делая все то, что в программе приказано, в результате чего на экране появляется мультик.

Отвечать на вопросы компьютера. Это происходит только тогда, когда в программе содержится команда компьютеру задать человеку какой-нибудь вопрос. Как видите, без программы компьютер не только ничего не делает, но даже и вопросов не задает. Обычно программа приказывает задать такой вопрос, без ответа на который компьютер не может дальше выполнять задание, данное ему человеком. Например, если компьютер вычисляет траекторию полета к Марсу, то где-то в начале счета он может задать вам вопрос, который вы увидите на мониторе: "Каков стартовый вес ракеты в тоннах?" В ответ вам нужно набрать на клавиатуре правильное число, скажем 2500. Если же вы с компьютером играете, то вам часто приходится отвечать на вопросы типа "Будете ли вы продолжать игру?" и т.п.

Очень часто в процессе работы с компьютером вам приходится отдавать ему приказы. Например, если вы играете с компьютером в воздушный бой, то нажатием на одну какую-то клавишу вы приказываете самолету выпустить ракету, нажатием на другую - совершить посадку и т.п.



Будем называть человека, профессия которого состоит главным образом в написании программ, программистом, а человека, который в основном сидит за компьютером и пользуется готовыми программами, - пользователем.
^ Глава .1Программа и программирование 1.1.Список команд. Командный и программный режимы
А теперь подробнее рассмотрим, что такое программа. Чтобы лучше это понять, давайте на время забудем о компьютерах. Предположим, в вашем распоряжении находится не компьютер, а настоящий робот. Робот этот умеет понимать и выполнять команды только из следующего списка и никаких других:


Список команд робота:

^ ШАГ ВПЕРЕД

НАЛЕВО

НАПРАВО

ВОЗЬМИ ПРЕДМЕТ

ОПУСТИ ПРЕДМЕТ

ПОВТОРИ несколько РАЗ выполнение одной из этих команд

СЛУШАЙ ПРОГРАММУ

^ ВЫПОЛНЯЙ ПРОГРАММУ


Запомните, что робот не умеет делать ничего, кроме того, что упомянуто в списке его команд.

Пусть ваш робот стоит в коридоре и вам нужно, чтобы он переставил стул в комнате на новое место.



Но в списке команд робота нет такой команды "Переставить стул в комнате".Что же делать? Можно идти рядом с роботом и в нужные моменты времени приказывать ему: ШАГ ВПЕРЕД, ШАГ ВПЕРЕД,..., НАЛЕВО,..., ВОЗЬМИ ПРЕДМЕТ... и так далее. В результате стул будет переставлен. Этот режим управления роботом (как, впрочем, и компьютером) называется командным режимом. Однако, совсем не обязательно сопровождать робота на каждом шагу. Пусть вы заранее измерили все необходимые расстояния. Тогда достаточно в тот момент, когда робот находится в исходной позиции, сообщить ему инструкцию по выполнению задания, то есть задать точный порядок его действий, приводящих к перестановке стула, а затем приказать выполнить ее. Конечно, инструкция должна состоять только из команд, которые робот понимает и умеет выполнять. Вы уже знаете, что называется такая инструкция программой. Вот она:



Программа для робота

Пояснения для нас с вами

^ 1. ПОВТОРИ 5 РАЗ ШАГ ВПЕРЕД

Робот идет по коридору до дверей

2. НАЛЕВО

Робот поворачивается лицом к дверям

^ 3. ПОВТОРИ 3 РАЗА ШАГ ВПЕРЕД

Робот подходит к стулу

4. ВОЗЬМИ ПРЕДМЕТ

Робот берет стул

5. НАПРАВО

Робот поворачивается к новому месту стула

^ 6. ШАГ ВПЕРЕД

Робот подносит стул к новому месту

7. ОПУСТИ ПРЕДМЕТ

Робот ставит стул на новое место


Очевидно, работая по этой программе, робот правильно переставит стул.

Итак, если вы решили не сопровождать робота на каждом шагу, а заставить его работать по программе, вы совершаете следующие действия:


Последовательность работы человека с роботом

Придумываете программу, что не всегда легко, так как нужно хотя бы знать расположение мебели, количество шагов до дверей и т.п.

Подходите к роботу, стоящему в исходном положении, и отдаете ему команду СЛУШАЙ ПРОГРАММУ

Сообщаете ему программу

Отдаете роботу команду ВЫПОЛНЯЙ ПРОГРАММУ


После этого робот работает по программе, то есть выполняет одну за другой команды, из которых составлена программа, в том порядке, в котором он их услышал, в результате чего задание оказывается выполненым, а вы, пока программа выполняется, можете и отдохнуть, чего не могли позволить себе в командном режиме .

Этот режим управления роботом называется программным режимом.
^ 1.2.Что важно знать о программе
Чем хороша программа? Ее великое значение в том, что она заставляет робота делать вещи гораздо более сложные, чем те, которые перечислены в списке его команд. По программе робот делает то, что без программы делать не умеет.

Спрашивается, можно ли написать программу для гораздо более сложной задачи, например для перестановки всей мебели на этаже? Разумеется, можно, только программа для этого будет достаточно длинной.

Что требует от нас программа? Она требует абсолютной точности при ее составлении. Если, например, мы в первой команде самую чуточку ошибемся и скажем ПОВТОРИ 6 РАЗ ШАГ ВПЕРЕД (вместо 5 раз), робот проскочит мимо двери, на второй команде повернется и, добросовестно выполняя программу, на третьей команде проломит стену. Если мы перепутаем местами команды 6 и 7, то робот сначала поставит стул, а потом об него же и споткнется.

Запомните, что после того, как вы отдали роботу команду ВЫПОЛНЯЙ ПРОГРАММУ и робот начал ее выполнять, вы не можете программу изменить, пока он не закончил работу. Даже если вы увидите, что робот по вашей программе делает что-то не то, бесполезно кричать на него, хватать его за руку и т.п. Он на вас не обратит внимания. Максимум, что вы можете, это - подбежать к нему и выключить его. После этого вы должны отвести его в исходное положение и только затем можете сообщить ему измененную программу.

Сообщать роботу команды мы обязаны только теми словами, которые приведены в списке команд, потому что робот понимает только их. Если мы вместо команды ВОЗЬМИ ПРЕДМЕТ дадим команду БЕРИ ПРЕДМЕТ, робот нас не поймет и команду не выполнит.

Задание 1: Напишите программу, по которой робот сходит в комнату за стулом и вернется с ним в коридор в исходное положение.
^ 1.3.Понятие о процедуре. Может ли робот поумнеть?
Умен ли наш робот? Судя по его реакции на ошибки в программе, весьма глуп. Умный робот не стал бы проламывать стенку. Однако, наш робот не виноват в своей глупости. Ведь его умственные возможности исчерпываются списком его команд. А список этот очень бедный. Чем он беден?

Первое. В этом списке нет сложных команд, таких как "Наведи порядок в комнате", "Перенеси мебель к другой стенке" и даже такой сравнительно простой, как "Переставь стул". Можете ли вы дополнить список команд робота нужными вам командами? Можете, робот для этого приспособлен. Пусть вы хотите, чтобы робот выполнял команду на перестановку стула. Для этого вы придумываете программу перестановки стула (мы ее уже придумали в п.1.1), затем придумываете, как будет звучать сама новая команда, например ПЕРЕСТАВЬ СТУЛ, и наконец сообщаете роботу программу и говорите ему, что отныне он должен ее выполнять по команде ПЕРЕСТАВЬ СТУЛ. Такая программа называется процедурой, а новая команда ПЕРЕСТАВЬ СТУЛ – обращением к процедуре или вызовом процедуры.

Итак, мы дополнили список команд робота новой командой. Можно ли считать, что робот поумнел? Конечно. Но не очень. И вот почему. Пусть стул находится от дверей не в трех шагах, а в двух. Тогда наш робот, выполняя процедуру ПЕРЕСТАВЬ СТУЛ, как она написана в п.1.1, споткнется об него, а это, конечно, не говорит о его уме. Чтобы переставить стул, где бы он ни был в комнате, робот должен сначала его найти, но команды на поиск нет в списке его команд, а составить из команд этого списка процедуру поиска невозможно. Мы начинаем видеть, чем еще беден список команд робота:

Второе. Он беден не только количеством команд, но и их содержанием. Все его команды касаются только ходьбы и переноса предметов. Фактически, наш робот очень мало
еще рефераты
Еще работы по разное