Смекни!
smekni.com

Информатика Базовый курс (стр. 176 из 188)

Паскаль:

type TMyArray = array[0..99] of integer; type TMyRecord = record

Iteml: integer; Item2: string; end;

var MyArray: TMyArray; var R: TMyRecord;

Глава 20. Основы программирования

Си++:

typedef struct name1

{ - .

int i; float x;

} TNewStruct;

TNewStruct NewStruct;
Разделение операторов

Если записать подряд несколько операторов и не указать, где кончается один и начинается другой, то в процессе компиляции возникнет множество проблем с выделением отдельных операторов. Поэтому операторы в Паскале и Си++ отделяются друг от друга точкой с запятой «;» (каждый оператор в этих языках должен заканчиваться таким символом), а в Бейсике — двоеточием «:» или переходом на новую строку.
Блок операторов

Часто в программе возникает необходимость выполнить группу операторов (например, в зависимости от какого-либо условия). Такая группа объединяется в блок с помощью специальных скобок начала и конца блока, называемых логическими скобками.

В Бейсике явного понятия «блок операторов» нет, в Паскале для этого используются ключевые слова begin и end, а в Си++ — фигурные скобки «{» и «}».

Область действия переменных

Команды описания переменных могут встречаться в разных местах программы. При этом считается, что объявленные в них переменные являются локальными и их область действия — текущий блок, в котором они описаны. Как только встречается логическая скобка, закрывающая блок (например,«}»), соответствующая переменная перестает существовать, а выделенная для нее память освобождается.

Некоторые переменные описываются вне блоков и доступны из любого места программы.

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

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

Сам оператор присваивания записывается знаком «=» в Бейсике и Си++ и комбинацией двух знаков «:=» в Паскале (пробел между ними не допускается).

Например:

Result = 5.

20.3. Алгоритмическое (модульное) программирование

В переменную Result запишется число 5. Знак «=» означает именно присваивание, а не сравнение, которое может использоваться только в логических выражениях.

Другой пример: X - X + 1

Сначала вычисляется значение выражения Х+1, и затем оно заносится в переменную X, Допустима и такая запись:

X = X = X

Прежде всего выполняется сравнение в правой части (X = X), его значение всегда будет true, и значением переменной X, соответственно, тоже станет true. Для повышения наглядности оператора присваивания в Паскале принята специальная форма его записи:

Комментарии

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

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

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

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

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

Глава 20. Основы программирования Синтаксис комментария

это комментарий языка Паскаль

(* а это вложенный комментарий *)

Условный оператор (условные вычисления)} • • • • • • • •

С помощью одного оператора присваивания можно создавать достаточно сложные расчетные программы, однако реализовать абсолютное большинство алгоритмов, просто последовательно выполняя операторы присваивания, невозможно. Постоянно приходится изменять порядок выполнения последовательности вычислений в зависимости от определенных условий. Эти условия записываются в виде логических выражений и всегда принимают одно из двух значений — true или false (истинно или ложно). При этом происходит разветвление программы — выполнение в дальнейшем может продолжиться с разных операторов.

Синтаксис условного оператора примерно одинаков во всех языках программирования — он представляет собой конструкцию:

если условие истинно то выполнить оператор-1 иначе выполнить оператор-2

После ключевого слова IF (если) следует условие, и если оно истинно, то выполняется оператор или блок операторов, следующих за ключевым словом THEN (то); если же оно ложно, то выполняется оператор или блок операторов, следующих за
ключевым словом ELSEБейсик Синтаксис условного Паскаль (иначе). оператора Си++
IF условие THEN оператор-1 ELSE оператор-2 END IF
if условие then оператор-1 else оператор-2;
if( условие ) оператор-1 else оператор-2;

20.3. Алгоритмическое (модульное) программирование 5 9 5

Повторяющиеся вычисления (операторы цикла)

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


Глава 20. Основы программирования

дому элементу начальное значение) вручную набирать тысячу операторов присваивания крайне тяжело.

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

Каждый оператор цикла состоит из заголовка цикла, определяющего число повторений, и тела цикла — повторяемого оператора или блока операторов.

Первый вид оператора цикла

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

Заголовок такого оператора состоит из трех частей — инициализации переменнойсчетчика или параметра цикла (присваивания ей начального значения), определения конечного значения счетчика, по достижении которого тело цикла надо выполнить в последний раз, и приращения счетчика, определяющего, на сколько будет меняться значение счетчика после каждого выполнения тела цикла.

Синтаксис оператора цикла

Бейсик FOR счетчик = началы-юе_значение ТО конечное_значение STEP приращение тело_цикла группа_операторов NEXT Если приращение не указывать, то считается, что оно равно 1
Паскаль for счетчик := начальное_значение to конечное_значение do оператор или блок операторов; Приращение всегда равно 1

Си++ for( счетчик = начальное_значение; условие_завершения; счетчик = счетчик + приращение)