Песни о Паскале - [17]

Шрифт
Интервал


>S:= S + ’ – чемпион!’;


предыдущее значение переменной S взято для формирования её нового значения. Теперь там окажется строка «Спартак минус чемпион!». Не обижайтесь, спартаковцы, – пошутил. Обязательно проверьте эту программу!

Типизированные константы

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


>const Pele = ’Эдсон Арантес ду Насименту’; <– это строка (string)

>      Number = 12;             <– это число


Здесь тип сам собой определяется тем значением, что дано константе.

Но существует и другая разновидность констант – типизированные константы, которые объявляются с явным указанием типа:


>const Pele : string = ’Эдсон Арантес ду Насименту’; <– это строка (string)

>      Number : integer = 12;       <– это число (integer)


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

В Delphi разрешено инициализировать переменные при объявлении:


>var Pele : string = ’Эдсон Арантес ду Насименту’;


Но этот способ не совместим с Borland Pascal, и в данной книге не применяется.

Итоги

• В одном операторе можно объявить несколько переменных одного типа.

• Процедура Writeln способна напечатать в одной строке несколько параметров. Параметры в списке разделяются запятыми.

• Операция присваивания «:=» помещает в переменную данные, представленные константой, переменной, или их комбинацией – выражением.

• Конкатенация – это объединение нескольких строк в одну.

• Для инициализации переменной необходимо либо ввести в неё данные процедурой Readln, либо заполнить оператором присваивания.

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

А слабо?

А) Что напечатает следующая программа?


>const Pele = ’Эдсон Арантес ду Насименту’;

>begin

>Writeln(’Pele = ’ + Pele); Readln;

>end.


Б) А эта программа что напечатает?


>var A, B : string;

>begin

>A:=’123’; B:=’456’;

>Writeln(’A+B= ’ + A + B); Readln;

>end.


В) Является ли следующий оператор оператором присваивания?


>const Pele = ’Эдсон Арантес ду Насименту’;


Г) Пусть ваша программа запросит у пользователя его адрес, а именно: город, улицу, номер дома и номер квартиры. А затем напечатает адрес одной строкой в таком виде:


>Город: ГГГ Улица: УУУ Дом: ДДД Квартира: ККК


Сделайте два варианта программы: один – с печатью нескольких параметров оператором Writeln, другой – с объединением строк.

Д) Какие из следующих операторов забракует компилятор?


>const

>      Pele = ’Эдсон Арантес ду Насименту’;

>      ABBA : string = ’Музыкальный шедевр из Швеции’;

>var

>      Moscow : string;

>begin

>      Pele := ’Лучший футболист мира’;

>      ABBA := ’Распевают частушки’;

>      Moscow:= ’Столица олимпиады’;

>end.

Глава 10

Условный оператор



Согласитесь, наши последние программы слегка поумнели, догнав по интеллекту попугая. Но негоже на лаврах почивать, – научим компьютер принимать осмысленные решения.

Стой! Кто идет?

Вот секретное учреждение, вход в него строго ограничен. А вы – часовой, и пропускаете лишь тех, кто назовет пароль – слово «pascal». Наскучив на посту, вы задумали приспособить вместо себя компьютер. Ваша новая программа «P_10_1» должна запросить у пользователя пароль и решить, пропускать ли этого человека.

Вопрос ребром

Что проще должности часового? Пускать или не пускать? Подобные вопросы решаются поминутно: свернуть направо или налево? орел или решка? быть или не быть? От полученного ответа зависят дальнейшие действия.

Обычно мы рассуждаем так: ЕСЛИ некоторое утверждение верно, ТО делаем одно, а ИНАЧЕ делаем другое. Например, ЕСЛИ на улице жарко, ТО наденем футболку, а ИНАЧЕ – свитер. Выделенные мною слова – ключевые в этом рассуждении. Переведя их на английский, получим условный оператор языка Паскаль.

Существуют два варианта условного оператора – полный и неполный. Полный оператор выражается тремя ключевыми словами: IF – «если», THEN – «то» и ELSE – «иначе», и записывается он так:

>IF <условие> THEN <Оператор_1> ELSE <Оператор_2>

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

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


>      if S = ’pascal’ then Writeln(’Проходите!’) else Writeln (’Стойте!’)


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


>if ’pascal’ = S

>      then Writeln(’Проходите!’)

>      else Writeln (’Стойте!’)


Теперь переменная S и константа «pascal» поменялись местами, и это никак не сказалось на условном операторе, поскольку знак равенства в логических выражениях означает сравнение (а не присваивание!).


Рекомендуем почитать
Патруль Миров

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


Одиночество

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


Это элементарно, Ватсон, или Шерлок Холмс в 22 веке

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


Эффект пристутствия

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


Между Мирами

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


Иосиф Рюрикович-Дракула

Сталин, Иван Грозный и Дракула — что между ними общего? Все эти люди вошли в историю Европы как самые одиозные и кровожадные правители, поработители народов и тираны. Но не только! Они были родственниками! В книге на основе анализа секретных архивных документов и исторических изысканий приводятся убедительные тому доказательства! Сталин был потомком двух самых жестоких и беспринципных политиков человечества, что и стало роковым для истории России фактором!