Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
11
Добавлен:
09.04.2015
Размер:
232.96 Кб
Скачать

Регистровые переменные

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

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

В заключение обсудим, какой же класс памяти лучше всего применять? Ответ на вопрос почти всегда один: «автоматический». Задумайтесь, почему этот класс памяти выбран по умолчанию? На первый взгляд использование внешних переменных соблазнительно. Опишем все переменные как внешние, и у нас не будет забот с передачей параметров между функциями в прямом и обратном направлении! Все данные предоставлены в общее пользование – вроде бы это справедливо и очень удобно! Но при этом возникают проблемы, когда одна функция изменяет данные в другой, что не входит в ее планы. Неоспоримый многолетний совокупный опыт программистов свидетельствует о том, что такие проблемы значительно перевешивают кажущуюся привлекательность широкого использования внешних переменных.

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

4.Элементы структурного программирования

Программирование можно определить как процесс проектирования, кодирования и тестирования программы. Добавляя слово «структурное» можно сказать, что структурное программирование – это процесс проектирования, кодирования и тестирования программы в соответствии с заранее определенной дисциплиной. В структурном программировании важнаформа и дисциплина. Раньше хорошими программистами считали тех, кто писал весьма хитроумные программы, которые занимали минимум оперативной памяти и выполнялись за кратчайшее время. Это было естественно, потому что в «старое доброе время» размер оперативной памяти был ограничен, а машины намного медленнее, чем сегодня. Результатом хитроумного кодирования оказывались программы, которых совершенно было невозможно понять другим лицам. Программисты зачастую сами признавали, что свою собственную программу они с трудом понимают уже через полгода, а то и через месяц. Фактически каждая написанная программа впоследствии модифицируется при изменении внешних требований или ликвидации ошибок. Изменения, вносимые в запутанную программу, еще больше усложняют ее понимание.

Можно выделить две главные цели структурного программирования:

  • избавиться от плохой структуры программы,

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

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

Методология структурного программирования зародилась в семидесятые годы прошлого века. Один из основоположников структурного программирования – профессор Э. В. Дейкстра считал, что семидесятые годы завершатся тем, что “мы окажемся способны проектировать и реализовывать такие системы, которые в настоящее время требуют напряжения всех наших способностей … и, кроме того, эти системы будут фактически свободны от ошибок”. И действительно, на наших глазах произошли коренные изменения в методах программирования, была разработана методология объектно–ориентированного программирования, появились мощные системы автоматизированного проектирования программ, изменилась технология программирования, но утверждать сейчас, через 30 лет, что создаваемые системы свободны от ошибок, мы, к сожалению, не можем! Не зря ведь появилась молитва программиста “Господи! Перезагрузи этот Мир!”. Многие читатели наверняка уже имеют определенный опыт общения с современными компьютерами. Вспомните, как часто приходилось вам использовать три клавиши: “Ctrl-Alt-Del”, вызывающие перезагрузку самых современных систем, при работе которых произошло “зависание” компьютера. На наш взгляд, в человеко-машинных системах (а именно таковыми являются все системы программирования) всегда существует вероятность возникновения ошибки. Наша же задача сделать так, чтобы вероятность возникновения ошибки была как можно меньше, а исправить ошибку было как можно проще. Современные компьютерные технологии хорошо справляются с рутинной работой, но не способны к творческому мышлению. Эту часть работы (пока ?) может сделать только человек. А вот методология структурного программирования способствует “правильному” развитию такого мышления при разработке программ. Поэтому сейчас мы познакомимся с методологией“нисходящего структурного программирования”,состоящей из трех частей:

  • Нисходящая разработка,

  • Типовые (основные) структуры, пошаговая детализация,

  • Сквозной структурный контроль.

Соседние файлы в папке attachments_05-09-2012_18-55-54