Песни о Паскале - [13]
В этом определении угадывается что-то знакомое, не так ли? Ещё бы! То и дело мы получаем указания: сделай то, да сделай это. За что ни возьмись, надо выполнять некий алгоритм. Так, например, одеваясь на улицу, вы соображаете, что и за чем следует напялить на себя: сначала белье, затем рубашку, брюки, носки и ботинки. Даже при ходьбе выполняем простейший алгоритм: левой, правой, левой, правой…
Разбивая сложное действие на ряд простых шагов, вы создаете алгоритм. Алгоритм нашей программы состоит из шагов, выполняемых друг за другом, последовательно. Линейная последовательность – это одна из трех базовых управляющих структур, на которых строится вся гигантски сложная архитектура современных программ (о двух других базовых управляющих структурах я расскажу позднее).
Как видите, с алгоритмами связан любой из нас, а не только программисты. Создание напичканных компьютерами сложных систем – заводов, электростанций и тому подобного – требует согласованных усилий специалистов разных профессий. Они объясняют программистам требования к создаваемым системам. Иными словами, эти специалисты заказывают алгоритмы. Увы, не все они владеют программированием. Как быть?
Кто-то догадался изображать алгоритмы графическими схемами, картинками. Этот прием оказался наглядным и понятным даже людям, далеким от программирования. Блок-схемы – так называют эти картинки – стали средством общения между специалистами разных профессий с одной стороны, и программистами с другой.
Впрочем, программисты и между собой общаются посредством блок-схем. Эти схемы помогают обнаружить ошибки в программах. В чем отличие блок-схемы программы от её текста? Текст показывает то, что фактически делает программа, а блок-схема – то, что она должна делать. Сравнивая одно с другим, можно найти ошибки в программном воплощении алгоритма.
Перед вами блок-схемы трех созданных нами программ (рис. 21).
Скругленные прямоугольники означают начало и конец алгоритма, – они соответствуют ключевым словам BEGIN и END. Исполняемые операторы – это прямоугольники с пояснениями внутри, а стрелки показывают порядок выполнения операторов. Все просто! Скоро мы изучим другие базовые управляющие структуры, и вы увидите их блок-схемы.
• Наименьшая смысловая часть программы называется оператором. Процедура печати Writeln и процедура ввода Readln – это операторы.
• Программа – это последовательность ключевых слов и операторов.
• Для разделения операторов используют точку с запятой.
• Точное предписание порядка выполняемых действий называется алгоритмом.
• Линейная последовательность – это один из трех базовых алгоритмов.
• Алгоритм может быть представлен словесным описанием, рисунком (блок-схемой), или текстом программы.
А) В нашей программе остался маленький изъян. Со временем вы забудете о том, что для завершения программы надо нажать клавишу Enter. Пусть программа сама напомнит об этом, печатая после приветствия напоминание:
>Для завершения программы нажмите Enter
Внесите это изменение в программу. Или слабо?
Б) Измените программу так, чтобы в каждой строке разместилось по два оператора. Откомпилируйте и проверьте программу в действии. Изменилось ли что-то в её поведении?
В) Нарисуйте две блок-схемы, поясняющие, как вы обычно проводите свой будний и выходной день.
Глава 8
Постоянные и переменные
Знаком ли вам Эдсон Арантес ду Насименту? Неужто не слышали о великом Пеле? Ведь оба имени принадлежат одному человеку! В Бразилии полно отменных футболистов, и у всех – пышные имена. Но от футбольных комментаторов вы их не услышите. Бразильцы – а все они фанаты – дали своим любимцам короткие клички. Так на весь мир прославились Пеле, Зико, Ривалдо…
Придумка бразильских фанатов напомнила решение сходной проблемы программистами. В разных частях программы нередко попадаются одни и те же данные – строчки текста или числа. Взять хотя бы предыдущую программу, где в начале и в конце приветствия печатаются две горизонтальные черты. Если в этих операторах задать линии разной длины, то красота слегка пострадает. Пустяки? Конечно. Но в иных случаях ошибочка обойдется втридорога, например, в программе управления ракетой.
Предположим, что в расчете полета ракеты учитывается масса её полезной нагрузки, и это число разбросано по всем частям программы. Вы должны указать его везде одинаково, без ошибки, иначе ракета улетит «за бугор». А если переделка ракеты повлечет изменение этого числа? Тогда доведется тщательно «прочесать» программу в поисках всех исправляемых операторов.
Проблема очевидна, но Паскаль даёт средство её решения – это символические константы. «Константа» в переводе на русский означает «постоянный», «неизменный». Константа подобна кличке бразильского футболиста: любому элементу данных – числу или строке – вы можете назначить удобное имя, а затем подставлять это имя вместо самих данных. Покажем это на примере нашей программы.
Прежде, чем применить символическую константу, её надо объявить, то есть дать ей имя и значение. Для объявления используют ключевое слово CONST, за которым следует нечто, похожее на простую формулу.
Софья устраивается на работу в банке, а там шеф - блондин неписанной красоты. И сразу в нее влюбился, просто как вампир в гематогенку! Однако девушка воспитана в строгих моральных принципах, ей бабушка с парнями встречаться не велит, уж тем более с красавцем банкиром, у которого и так налицо гарем из сотрудниц. Но тут случилась беда: лучшую подругу похитили при жутких обстоятельствах. Потом и на Соню тоже напали, увезли непонятно куда: в глухие леса, на базу отдыха и рыболовства. Вокруг - волки воют! А на носу - Новый год!.
Осмелься мне вчера кто-нибудь сказать, что в один день я потеряю любимую работу, любимого мужчину и такой привычный, родной мир, — я бы посмеялась над этим не самым умным человеком. А сейчас, оказавшись в месте, где живут маги и рыцари, мне стало совсем не до смеха… Особенно если учесть, чтобы вернуться в свое привычное русло я смогу только, если сама возьмусь за свое выживание. Сама сдам вступительные испытания в аз-Зайтун, где меня никто не ждет с распростертыми объятиями и чашечкой ароматного кофе.
Все решили за нее. Ей суждено стать инкатором — безжалостным олицетворением королевского правосудия. Занять должность, одно название которой вызывает у людей суеверный трепет. Но сперва ее наставникам нужно полностью изменить ее взгляды на жизнь, привить ей новые идеалы и принципы. Жизнь доброй и впечатлительной девочки превращается в кромешный ад, в котором зверские пытки и убийства — повседневность, а любовь и дружба — строжайшие табу. Все, что ей дорого, немедленно уничтожается ее учителем, ведь инкатор, имеющий привязанности — слабый инкатор.
Рассказы, которые с 2008 по 2010 г., Александр Чубарьян (также известный как Саша Чубарьян и как Sanych) выкладывал в сети, на своём блоге: sanych74.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Каждый месяц на Arzamas выходила новая глава из книги историка Ильи Венявкина «Чернильница хозяина: советский писатель внутри Большого террора». Книга посвящена Александру Афиногенову — самому популярному советскому драматургу 1930-х годов. Наблюдать за процессом создания исторического нон-фикшена можно было практически в реальном времени. *** Судьба Афиногенова была так тесно вплетена в непостоянную художественную конъюнктуру его времени, что сквозь биографию драматурга можно увидеть трагедию мира, в котором он творил и жил.