LibKing » Книги » comp-programming » Ирина Козлова - Программирование

Ирина Козлова - Программирование

Тут можно читать онлайн Ирина Козлова - Программирование - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство Конспекты, шпаргалки, учебники «ЭКСМО»b4455b31-6e46-102c-b0cc-edc40df1930e, год 2008. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Ирина Козлова - Программирование
  • Название:
    Программирование
  • Автор:
  • Жанр:
  • Издательство:
    Конспекты, шпаргалки, учебники «ЭКСМО»b4455b31-6e46-102c-b0cc-edc40df1930e
  • Год:
    2008
  • ISBN:
    978-5-699-26658-6
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Ирина Козлова - Программирование краткое содержание

Программирование - описание и краткое содержание, автор Ирина Козлова, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Информативные ответы на все вопросы курса «Программирование» в соответствии с Государственным образовательным стандартом.

Программирование - читать онлайн бесплатно ознакомительный отрывок

Программирование - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Ирина Козлова
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

Директива #define применяется для замены часто использующихся констант, ключевых слов, операторов или выражений определенными идентификаторами. Идентификаторы, которые заменяют текстовые или числовые константы, называются именованными константами. Идентификаторы, которые заменяют фрагменты программ, называют макроопределениями, при этом макроопределения могут иметь аргументы.

Директива #define может быть записана в двух синтаксических формах:

#define идентификатор текст

#define идентификатор (список параметров) текст

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

18. Применение директив

Рассмотрим пример:

#define WIDTH 80

#define LENGTH (WIDTH+10)

Данные директивы заменят в тексте программы каж дое слово WIDTH на число 80 и любое слово LENGTH н выражение (80+10) вместе с окружающими его скобками

Скобки, которые содержатся в макроопределении дают возможность избежать недоразумений, связан ных с порядком вычисления операций. К примеру, есл1 в скобках выражение t = LENGTH*7 будет преобразова но в выражение t = 80 + 10*7, а не в выражение t = (80 – + 10)*7, как это получается, если есть скобки, в резуль тате будем иметь 780, а не 630.

Во второй синтаксической форме в директиве #define присутствует список формальных параметров, которы может включать в себя один или несколько идентифика торов, которые разделены запятыми. Формальные пара метры в тексте макроопределения отмечают позиции на которые должны быть подставлены фактические ар гументы макровызова. Любой формальный параметр способен появиться в тексте макроопределения несколь ко раз.

При макровызове за идентификатором следует спи сок фактических аргументов, количество которых сле дует сделать совпадающим с количеством формальны параметров.

Пример:

#define MAX(x,y) ((x) > (y))?(x): (y)

Приведенная директива заменит фрагмент t = = MAX(i,s[i]) на выражение t = ((i) > (s[i])?(i): (s[i]).

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

Например, если есть скобки, фрагмент

t = MAX(i&j, s[i]||j) будет заменен выражением

t = ((i&j) > (s[i]||j)?(i&j): (s[i]||j); а если скобок нет – фрагментом

t = (i&j>s[i]||j)?i&j: s[i]||j;

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

Директива #undef применяется для отмены действия директивы #define. Синтаксис данной директивы следующий: #undef идентификатор.

Директива отменяет операцию текущего определения #define для определенного идентификатора.

19. Рекурсия

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

Прямая (непосредственная) рекурсия – это вызов функции внутри тела этой функции.

int a()

{…..a()…..}

Косвенная рекурсия – это рекурсия, которая осуществляет рекурсивный вызов функции через цепочку вызова других функций. Все функции, которые входят в цепочку, тоже являются рекурсивными. Рассмотрим пример:

a(){…..b()…..}

b(){…..c()…..}

c(){…..a()…..}.

Все представленные функции a, b, c считаются рекурсивными, так как в случае вызова одной из них производится вызов других и самой себя.

Последовательность вызовов процедуры tn, если m = 3, можно проиллюстрировать древовидной структурой (рис. 2). Всякий раз при вызове процедуры tn под параметры n, i, j, w определяется память и запоминается место возврата. В случае возврата из процедуры tn память, которая выделяется под параметры n, i, j, w, освобождается и становится доступной память, которая выделена под параметры n, i, j, w предыдущим вызовом, а управление передается в место возврата.

Рис Последовательность вызовов процедуры tn Очень часто рекурсивные функции - фото 1

Рис. Последовательность вызовов процедуры tn

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

20. Знакомство с языком СИ++

Рассмотрим ряд программ и частей программ на C++.

Прежде всего, рассмотрим программу, которая выводит строку выдачи:

#include

main()

{

cout << «Hello, world\n»; }

Строка #include дает знать компилятору, что он включил обычные возможности потока ввода и вывода, которые находятся в файле stream.h. Без таких описаний выражение cout << «Hello, world\n» не имело бы смысла. Операция << («поместить в») следует написать первый аргумент во второй (в нашем случае строку «Hello, world\n» в стандартный поток вывода cout). Строка представляет собой последовательность символов, которые заключены в двойные кавычки. В строке символ обратной косой \, после которого идет другой символ, обозначает один специальный символ; в рассмотренном случае \n служит символом новой строки. Получаем, что выводимые символы состоят из Hello, world и перевода строки. Остальная часть программы

main() {… }

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

Откуда появились выходной поток cout и код, который реализует операцию вывода, были показаны в stream.h, т. е. были определены их типы, но не было дано каких-либо подробностей относительно их реализации. В стандартную библиотеку входит спецификация пространства и инициализирующий код для cout. Команда компиляции в C++ чаще всего называется CC. Она применяется так же, как команда cc для программ на C. Пусть программа с «Hello, world» находится в файле с именем hello.c, тогда можно ее скомпилировать и запустить приблизительно так ($ – системное приглашение):

$ CC hello.c $ a.out Hello,world

$

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

$ CC hello.c – o hello

$ hello Hello,world

$

21. Комментарии в СИ++

Часто бывает необходимо вставлять в программу текст, который используется в качестве комментария только для читающего программу человека и не учитывается компилятором в программе. В C++ это возможно осуществить одним из двух способов. Символы /* начинают комментарий, который заканчивается символами */. Вся данная последовательность символов эквивалентна символу пропуска. Это очень полезно для многострочных комментариев и изъятия частей программы в процессе редактирования, но стоит учитывать, что комментарии /* */ не могут быть вложенными.

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Ирина Козлова читать все книги автора по порядку

Ирина Козлова - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Программирование отзывы


Отзывы читателей о книге Программирование, автор: Ирина Козлова. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img