Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Программирование на Паскаль.doc
Скачиваний:
18
Добавлен:
26.04.2019
Размер:
1.18 Mб
Скачать

Оптимизация программ

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

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

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

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

Например, ясно, что из двух эквивалентных кусков

k:= 0;

for i:= 1 to b*100 do

k:= k+i+1000*b+100*(b div 2);

и

a:= 1000*b+100*(b div 2);

k:= 0;

for i:= 1 to b*100 do k:= k+i+a;

второй является и более быстрым (особенно если b = 10000), и более компактным, чем первый.

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

Успехов вам в написании красивых и полезных программ!

Учебники к курсу

  1. Андреева Т.А. Программирование на языке Pascal Интернет-университет информационных технологий - ИНТУИТ.ру, 2006

  2. Зыков С. В. Введение в теорию программирования Интернет-университет информационных технологий - ИНТУИТ.ру, 2004

  3. Анисимов А.Е., Пупышев В.В. Сборник заданий по основаниям программирования БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру, 2006

  4. Терехов А.Н. Технология программирования БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру, 2007

  5. Вирт Н. Алгоритмы и структуры данных М.: Мир,1989

  6. Кнут Д. Искусство программирования для ЭВМ. В 3 т., любое издание http://lib.ru/CTOTOR/KNUT, http://pascal.sources.ru/docs/knuth3.htm

  7. Рейнгольд Э., Нивергельд Ю., Део Н. Комбинаторные алгоритмы: теория и практика М.: Мир, 1980

  8. Дейкстра Э. Дисциплина программирования М.: Мир, 1978. http://lib.ru/CTOTOR/DEJKSTRA

  9. Майерс Г. Искусство тестирования программ М., Финансы и статистика, 1980

  10. Майерс Г. Надежность программного обеспечения М.: Мир, 1980

  11. Поттосин И.В. О критериях добротности программ. - В сб.: Системная информатика Новосибирск, 1998

  12. Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль М.: Наука, 1987

  13. Алкок Д. Язык Паскаль в иллюстрациях/Пер. с англ М.: Мир, 1991

  14. Зуев Е.А. Язык программирования Turbo Pascal 6.0 М.: Унитех, 1992

  15. Фаронов В.В. Турбо Паскаль. В 3-х кн. Кн. 1. Основы Турбо Паскаля М.: МВТУ - ФЕСТО ДИДАКТИК, 1992

  16. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс М.: Нолидж, 1997. http://pascal.dax.ru/files/books/TurboPascal.zip

  17. Белецкий Я. Турбо Паскаль с графикой для персональных компьютеров М.: Машиностроение, 1991

  18. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0 М.: ДИАЛОГ-МИФИ, 1996

  19. Фаронов В.В. Паскаль и Windows М.: МВТУ - ФЕСТО ДИДАКТИК, 1992

  20.  Фаронов В.В. Практика программирования М.: МВТУ - ФЕСТО ДИДАКТИК, 1993. http://borlpasc.narod.ru/docym/farpract/oglav.htm

  21.  Фаронов В.В Турбо Паскаль. В 3-х кн. Кн. 2. Библиотека Turbo Vision М.: МВТУ - ФЕСТО ДИДАКТИК, 1992

  22.  Зубов В.С. Программирование на языке Turbo Pascal (версии 6.0 и 7.0). Справочник по процедурам, функциям, диагностическим сообщениям М., 1997

  23.  И.И.Дериев, С.В.Токарь Справочник по процедурам и функциям Borland Pascal with Objects 7.0 К.: Диалектика, 1993