Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
933 Кб
Скачать
☆

Вопросы для самопроверки и контроля Вопросы для самопроверки

1. Что такое блок?

2. Есть ли в языке Basic главная процедура?

3. В каком языке не определено понятие подпрограммы?

4. Что такое указатель на функцию?

5. Чем должны являться выходные скалярные параметры в языке C?

6. Что передается в процедуру, если аргумент – имя массива?

Контрольные вопросы

1. Чем отличается статическое и динамическое распределение памяти?

2. Что является минимальным элементом структуры в языке C?

3. Зачем нужны процедуры?

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

5. Перечислите различия в инструкциях возврата значения функции в языках Basic и C.

6. Является ли возвращаемое значение функции выходным параметром?

7. Что такое делегат и для чего он нужен?

8. Препроцессор

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

8.1. Определение символических констант

Символической (именованной) константой называют имя в тексте программы, которое должно быть заменено на конкретное постоянное значение до трансляции. Их применение позволяет сократить текст программы и сделать ее более ясной. Обычно это некоторые общеупотребительные константы, такие как: , e и т.п., а также константы, которые могут измениться при модификации программы.

Пример.

PI=3.141593 TAB_SIZE=100

Признаком директивы является префикс #. Стиль записи: принято записывать символические константы прописными буквами. Область действия директивы: от места ее определения до конца файла исходного кода или отменяющей директивы препроцессора (здесь не рассматривается).

С

Формат директивы определения символической константы:

#define <имя> <постоянное выражение>

Пример.

#define PI 3.141593

#define EOF (-1)

#define PI2 (2*PI)

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

Пример.

а) #define E (5+10)

б) #define E 5+10

Подстановка 2*E в случае б) даст ошибку.

Некоторые определения.

Макроопределение – определение имени с помощью директивы #define.

Макроподстановка – замена имени в тексте программы на значение соответствующей константы.

Макровызов – появление имени символической константы в тексте.

Макросредства или макросы – средства, реализующие макроподстановки.

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

#define SIZE 30

...............

float matrix(int m, float a[ ][SIZE], float x[ ], float y[ ]){

…………..

}

Basic

Здесь также существует директива, выполняющая аналогичные функции. Ее формат:

#Const <имя>=<постоянное выражение>

Пример.

#Const PI=3.141593

#Const LEN_A=300

#Const LEN_B=300

#Const LEN_C=( LEN_A+ LEN_B)