Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование для начинающих 2011-09-02.pdf
Скачиваний:
45
Добавлен:
09.06.2015
Размер:
576.39 Кб
Скачать

Оглавление

 

Программирование для начинающих....................................................................................................

2

Введение..............................................................................................................................................

2

Выбор среды программирования.................................................................................................

4

1. Линейные программы: арифметические операторы, стандартные функции и ввод/вывод в

текстовом режиме...............................................................................................................................

6

1.1. Алгоритмы...............................................................................................................................

6

1.2. Переменные и их типы...........................................................................................................

6

1.3. Операторы...............................................................................................................................

8

1.4. Стандартные функции............................................................................................................

9

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

9

1.6. Ввод/вывод в текстовом режиме.........................................................................................

10

1.7. Задачи на составление арифметических выражений........................................................

12

Контрольная работа №1..............................................................................................................

14

Задание 1: Линейные программы, арифметические операторы..............................................

15

2. Логические выражения и условный оператор...........................................................................

17

2.1. Переменная логического типа.............................................................................................

17

2.2. Операторы сравнения...........................................................................................................

17

2.3. Логические операторы.........................................................................................................

18

2.4. Задачи на составление логических выражений.................................................................

19

2.5. Условный оператор...............................................................................................................

21

2.6. Оформление текста программ.............................................................................................

22

Контрольная работа №2..............................................................................................................

25

Задание 2: Составление логических выражений, условный оператор...................................

26

3. Цикл for..........................................................................................................................................

28

3.1. Цикл с параметром (for).......................................................................................................

28

4.2. Прием накопления суммы....................................................................................................

31

4.3. Прием накопления произведения........................................................................................

31

4.4. Комбинация обоих приемов................................................................................................

32

4.5. Цикл с downto........................................................................................................................

32

4.6. Операторы break и continue..................................................................................................

33

Контрольная работа №3..............................................................................................................

33

Задание 3. Цикл for. Приемы накопления суммы и произведения.........................................

34

4. Вычисления с помощью рекуррентных соотношений.............................................................

36

4.1. Рекуррентные соотношения: основные понятия...............................................................

36

4.2. Задачи на составление рекуррентных соотношений.........................................................

37

4.3. Многомерные рекуррентные соотношения........................................................................

38

Контрольная работа №4..............................................................................................................

39

Контрольная работа №5..............................................................................................................

40

Задание 4. Вычисления с помощью рекуррентных соотношений..........................................

41

5. Вложенные циклы........................................................................................................................

42

5.1. Вложенные циклы: теория...................................................................................................

42

Контрольная работа №6..............................................................................................................

44

Задание 5. Вложенные циклы.....................................................................................................

45

6. Задачи на перебор вариантов......................................................................................................

47

6.1. Перебор вариантов: теория..................................................................................................

47

Задание 6. Задачи на перебор вариантов...................................................................................

51

7. Пепременные – флаги..................................................................................................................

52

7.1. Переменные – флаги: теория...............................................................................................

52

Задание 7. Переменные-флаги....................................................................................................

55

8. Переменная – счетчик событий...................................................................................................

56

1

8.1. Переменные – счетчики.......................................................................................................

56

Задание 8. Переменная – счетчик событий...............................................................................

57

9. Циклы while и repeat.....................................................................................................................

58

9.1. Циклы while и repeat.............................................................................................................

58

9.2. Зацикливание.........................................................................................................................

59

9.3. Цикл, управляемый меткой..................................................................................................

60

9.4. Вычисление номера шага.....................................................................................................

60

9.5. Вычисления с заданной точностью.....................................................................................

61

Контрольная работа №7..............................................................................................................

62

Задание 9. Циклы while и repeat.................................................................................................

63

10. Массивы.......................................................................................................................................

65

10.1. Структурные типы данных................................................................................................

65

10.2. Массивы...............................................................................................................................

65

10.3. Вычислимость индексов....................................................................................................

67

10.4. Примеры программ, работающих с массивами...............................................................

67

10.5. Сортировка массивов.........................................................................................................

70

10.6. Хороший стиль при решении задач на массивы..............................................................

70

Контрольная работа №8..............................................................................................................

71

Контрольная работа №9..............................................................................................................

72

Задание 10. Массивы...................................................................................................................

73

11. Процедуры и функции...............................................................................................................

76

11.1. Простейшая процедура.......................................................................................................

76

11.2. Локальные переменные......................................................................................................

77

11.3. Параметры процедур..........................................................................................................

78

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

79

11.5. Программирование сверху вниз........................................................................................

81

11.6. Передача массивов в качестве параметров......................................................................

82

11.7. Функции...............................................................................................................................

84

11.8. Опережающее описание.....................................................................................................

85

11.9. Процедурные типы.............................................................................................................

86

11.10. Пример: Интегрирование методом трапеций................................................................

87

11.11. Правильное составление заголовков процедур и функций..........................................

88

11.12. Модули...............................................................................................................................

93

11.13. Хороший стиль при написании процедур и функций...................................................

95

Контрольная работа №10............................................................................................................

96

Задание 11: Процедуры и функции..........................................................................................

100

12. Двумерные массивы.................................................................................................................

102

12.1. Двумерные массивы: теория............................................................................................

102

Задание 12: Двумерные массивы..............................................................................................

102

13. Графика в Паскале....................................................................................................................

104

13.1. Введение............................................................................................................................

104

13.2. Инициализация графического режима...........................................................................

104

Программирование для начинающих

Введение

Данное пособие представляет собой начальный курс программирования для студентов 1-го курса Кафедры динамического моделирования и биомедицинской инженерии факультета нано- и биомедицинских технологий СГУ. Основным отличием от большинства других книг для начинающих является упор не на язык

2

программирования (изложением которого многие такие книжки и ограничиваются), а на выделение различных алгоритмических приемов.

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

В качестве языка программирования используется старый добрый Паскаль. На хорошо знакомую критику, что данный язык устарел и следует изучать популярные Java, C++ и т.п. отвечаем, что главной целью данного курса является выработка навыков алгоритмического мышления и хорошего стиля при процедурном программировании. Специфические именно для языка Паскаль вещи занимают в данном пособии совершенно незначительное место. Упомянутые навыки мы считаем необходимой базой, без которой невозможен переход к изучению объектно-ориентированных языков и других современных технологий программирования.

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

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

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

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

3

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

Выбор среды программирования

Для написания программ на языке Паскаль можно использовать несколько различных сред программирования. При выполнения заданий из данного учебного пособия мы рекомендуем использовать среду PascalABC.NET. Скачать ее можно по адресу http://pascalabc.net/ssyilki-dlya-skachivaniya.html.

Это современная бесплатная среда, разработанная на факультете математики, механики и компьютерных наук Южного федерального университета специально для целей обучения. К достоинствам можно отнести:

Простой интерфейс (ничего лишнего, что не потребуется при начальном обучении).

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

Хорошая выверенность. За 2 года использования на кафедре, ошибки в ней практически не встречались. Те, что все же были, исправлены в новых версиях. Это важное качество при обучении – можно быть уверенным, что когда что-то не работает, ошибка именно ваша, а не разработчиков среды.

Совместимость с современным языком Delphi.

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

1. Borland Pascal 7.0

Классическая среда, часто используемая при обучении в школах и университетах. К достоинствам можно отнести выверенность – если что-то не работает, можно быть на 100% уверенным, что виноват программист, а не глюки среды.

Основной недостаток – устаревший интерфейс (последняя версия выпущена в 1993 году). Привыкшие к традиционным для Windows интерфейсам студенты, поначалу испытывают определенные трудности с самыми простыми операциями (сохранение/загрузка, копирование/вставка, навигация между закладками и т.п.) Да и желтый текст на синем фоне способен отпугнуть впечатлительные натуры.

2. Delphi

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

3. Free Pascal и Lazarus

Бесплатные аналоги Borland Pascal и Delphi. Достоинств, на наш взгляд, не имеют, так как даже при первом знакомстве поразили обилием глюков и сбоев в

4

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

Дальнейшее изложение будет вестись с ориентацией на среду PascalABC.NET, однако при наличии отличий от Borland Pascal 7.0 будут даваться соответствующие пояснения.

5