Уроки для начинающих программистов
Выпуск #2
Понедельник, 10 июля 2000 г.
Количество подписчиков - 270
Автор рассылки Эдуард Дмитриев
Здравствуйте, уважаемые подписчики!


В этом выпуске:
  1. О выпуске
  2. Системы счисления - Что это такое?
  3. HTML - язык или нет? Основные возможности. Начало.
  4. Основы программирования на Паскале.

1. О выпуске



Немного о выпуске

Я получил от вас довольно много писем, в основном с пожеланиями к рассылке. Кто-то из вас хочет изучать Паскаль, кто-то Си, кто-то хочет учить HTML. Есть и более подготовленные подписчики, которые желают заняться системным программированием или программированием под Windows. Поэтому готовя этот выпуск и думая, на что же мне сделать упор, я так и не решил, чего нужно больше, а чего меньше. Но так как прибегать к чему-нибудь конкретному еще рано, необходимо еще немного теории, я решил остановиться на трех вещах. Это Системы счисления, Изучение HTML и изучение Паскаля. Вот это основные вещи, которые мы с вами будем пока проходить. Пока я буду держать баланс между этими разделами, преподнося информацию равномерно, но мне интересно, что вас интересует больше всего. Что вы хотели бы изучать? Направляю вам этот вопрос и прошу ответить мне на него по e-mail. Мой e-mail: ed1@mailru.com - пишите письма, рассказывайте, что вас больше всего интересует и на что мне делать упор. Это поможет мне сделать рассылку более полезной и интересной для вас.

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

Чтож, пока все. Как вы поняли, выпуски будут состоять из трех частей, о которых я рассказал выше. Теперь я заканчиваю вступление и начинаю основную часть...

2. Системы счисления - что это такое?


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

Система счисления - что она из себя представляет? На практике существует некое стандартное определение системы счисления:
Система счисления - это совокупность приемов и правил изображения чисел цифровыми знаками.
Если проще - то система счисления это то, каким образом изображается конкретное число. Также можно разделить системы счисления на позиционные и непозиционные, где:
  • Позиционные - это те системы счисления, в которых значение символа зависит от его места в ряду цифр, изображающих число. Примером таких систем может служить десятичная система, которой мы все с успехом пользуемся. Т.е. если разобрать число 564 согласно этому правилу, то получается, что 5 - это сотни, 6 - десятки, а 4 - единицы. Выходит, что каждая цифра соответствует своему разряду и зависит от своего места в ряду цифр. Эта зависимость особо становиться понятна, если предположить, что мы поменяли местами цифры 6 и 4. Четверка сразу же стала десятками, а 6-ка единицами.

  • Непозиционные - это системы счисления, числа в которых не зависят от своего местонахождения в ряду цифр и число изображается не цифрами, а специальными значками, которые отображают свое значение через сложение или вычитание друг друга. Примером такой системы может служить Римская. В этой системе можно определить следующее правило:
    Каждый меньший знак, стоящий справа от большего, прибавляется к его значению, а слева - вычитается из него.
    Поясню на примере:
    IV = V - I - Римское Число 4. Единица, стоящая слева от пятерки вычтается из нее, образует четыре.
    XI = X + I - Римское Число 11. Единица, стоящая справа от десятки прибавляется к ней, образуя 11.
В общем, мы разобрались, что такое система счисления и какие виды систем бывают. Но это еще не все, что необходимо про них знать. На практике также существует такое понятие, как Основание системы счисления. Сразу скажу, что основание можно рассматривать только у позиционных систем, далее сами поймете почему.

Так вот, что же такое Основание? Опять, существует стандартное определение:

Основание позиционной системы счисления - это количество знаков или символов, используемых в разрядах для изображения числа в даннoй системе счисления.
Объясню проще.
Вот, например, возьмем нашу с вами, десятичную систему счисления. Сколько знаков в разрядах числа используется в ней для изображения числа? Десять. То есть это 10 цифр от 0 до 9. Я имею в виду, что кроме цифр 0-9 мы не пользуемся больше ничем - и этими десятью цифрами мы можем изобразить любое число. По определению выходит, что количество знаков или символов, используемых в разрядах для изображения числа в 10-чной системе счисления явл. 10. То есть основание десятичной системы - десять. Вот и все определение основания системы счисления.

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

  1. Понятие системы счисления;
  2. Что такое позицоинные и непозиционные системы счисления;
  3. Понятие основания системы счисления;

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


3. HTML - язык или нет? Основные возможности.


Итак, мы с вами начинаем изучать HTML. Что же это такое? Многие не знают о нем ничего, кроме того, что на этом языке составляются страницы для Интернет. Многие также думают, что на этом языке пишутся базы данных, даже игры. В этом выпуске я расскажу об основных сферах применения HTML и том, что он может и чего не может. Также я расскажу в чем и как пишутся программы на нем.


Определение докумнета HTML

HTML - расшифровывается как HyperText MarkUp language, что значит ГиперТекстовый язык разметки.

На этом языке составляются гипертекстовые документы, которые отображаются броузером в виде гипертекстовых страниц. Чтоже представляет собой программа на HTML? Программа HTML - это обыкновенный текстовый файл, имеющий расширение .HTM или .HTML Он должен открываться в броузере - программе, позволяющей отобращать HTML документы. Броузеры бывают различными, самые распространенные из них это Internet Explorer и Netscape Navigator.
На самом деле программа на HTML - это вовсе и не программа. По большей части это простой текст, разделенный специальными командами, которые называются "тэгами" (tags - кое-кто называет их "тагами"). Тэг - это не процедура и не функция, а посто указание броузеру каким-либо образом отобразить выводимый текст, метод его отображения. В общем, тэг - это команда HTML.
Работу тэгов можно хорошо увидеть, посмотрев на выделенный жирным шрифт. Вот вам пример: Жирный шрифт. Чтобы выделить предыдущий шрифт жирным, я использовал определенные тэги, которые сообщили вашей программе отобразить его именно так.
Весь гипертекстовый документ разделен этими тэгами, которые и выводят текст так, как вы его видите в окне броузера. В большинстве случаев автор документа HTML создает его в том виде, в котором его увидят все, кто обращается к этому документу. Иногда он может показываться по разному - в зависимости от типа броузера. Например, Netscape Navigator не поддерживает некоторые возможности Internet Explorer и наоборот.

Итак, документ HTML состоит из текста и тэгов, разделяющих его и определяющих его внешний вид. Что же можно сделать с помощью этих тэгов? Практически все, что касается текста и его размещения на экране. Тэги HTML позволяют изменять размер и вид шрифта (причем делать это в любом месте документа: Пример), рисовать таблицы, линии, оформлять гипертекстовые ссылки, с помощью которых вы перемещаетесь от одного документа к другому.
Также есть специальные тэги, которые позволяют управлять не текстом, отображаемым в данный момент, а общим видом документа. Например, задать цвет фона всего документа, установить рисунок фона (подложку или обои), установить поле отступа от краев окна броузера (похоже на известную особенность редактора Word) или сделать пометку на автора это документа (copyright). Следовательно, все тэги можно разделить на две категории:

  1. Тэги, определяющие вид конкретных данных, отобращаемых броузером;
  2. Тэги, описывающие общие свойства документа в целом, такие как изображение фона документа или его заголовок.


Возможности HTML

Мы определились, что документ HTML состоит из тэгов и текста. Текст это непосредсвенно отображаемые симоволы, а тэги это команды, определяющие как эти символы будут выглядеть. Может на данный момент это разделение довольно прозрачно, но поверьте мне, что возможности представления текста практически безграничны. Вот где воистину проявляется творческий подход к программированию и проявляются все таланты художника.
Но на различном представлении текста возможности HTML заканчиваются. То есть кроме того, чтобы делать странички HTML не умеет ничего. В нем нет ни переменных, ни процедур, ни функций. Вы не можете с его помощью открыть файл и записать в него данные, прочитать их или поступить как-нибудь еще. HTML - это всего лишь текстовый файл, который отправляется сервером броузеру и отображается пользователю. Он никак не выполняется, всего лишь интерпретируется - читается и печетается так, как было задумано его автором. Возможность использования тэгов для посторонних действий позволяет вставить в него рисунки и сделать ссылки на другие документы - больше ничего. Естественно, что этого больше чем достаточно для создания сайта - вы можете сделать например, какую-нибудь библиотеку следующим образом:

  1. Сделать документ, который будет главной страницей и будет содержать ссылки на другие страницы (разделы вашего сайта).
  2. Для каждого отдельного раздела вы сделаете еще по странице, где проставите, скажем, ссылки на книги (например, ZIP архивы) с небольшим описанием к каждой.

Выйдет настоящий сайт. Вполне работоспособный и при хорошей подборке дизайна будет пользоваться популярностью. Здесь HTML справиться безо всяких проблем. (Не подумайте, что я забегаю вперед и призываю вас уже создавать сайты. Я пока просто описываю возможности HTML). Но вот если вы захотите создать себе Гостевую книгу - то про HTML придется забыть. Здесь уже не обойтись гипертекстовым языком, придется прибегать к другим языкам программирования, писать программу и, опять же, ставить ссылку на нее в документе.

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


Как создается документ HTML

Для того, чтобы создать гипертекстовый документ, не нужно иметь ничего специального. Документ можно писать в любом, самом простом текстовом редакторе - например, Блокноте. Существует также множество программ, автоматически генерирующих HTML код. Это, например, FrontPage Express или даже редактор Word. Они позволяют делать документы визуально, т.е. просто писать документ, менять шрифты таким методом, как это делается в Word'е, также менять их размер и цвет, выравнивание, делать их жирными или наклонными. Можно автоматически построить таблицу, задав количество строк и ячеек, далее по ходу дела добавляя в нее свои данные - просто впечатывая их, как делается, например в Excel'е.
Но у этих программ существует ряд недостатков. Во-первых, они часто не создают полноценно работающий код, то есть броузер показывает документ не так, как вы его задумали. Все вроде бы нормально - в программе сделано так, как хочется, а в броузере показывает иначе. В таких случаях часто приходиться редактировать код HTML вручную.
Да в них иногда и просто невозможно сделать то, что вы задумали. Например, такая ситуация - если вы решили разделить текст пустой таблицей, не имеющей строк - т.е. практически превратить ее в линию. В программе FrontPage Express такое не выйдет. Дело в том, что в этой программе (как и в большинстве других мне известных) минимальная высота таблицы - это высота шрифта. Т.е. таблица не может быть пустой - в ней всегда будет целая строка (как бы заполненная пробелами).
Да много таких ситуаций, можно просто сделать вывод, что полноценные более-менее профессионально сделанные HTML-документы могут быть созданы только вручную. Поэтому мой вам совет - не ленитесь изучать HTML. Это совершенно не сложный язык, с очень большими возможностями и поистине потрясающим вкусом к творчеству. Кроме того, создавая гипертекстовые документы вручную вы вырабатываете одну из главных черт дизайнера - чувство, которое позволяет ощутить, что стоит за данными, то есть "видеть" как выглядит готовый вариант в броузере, в то время как вы всего лишь пишите его.


Итак, мы разобрались, что существуют программы для генерации гипертекстовых документов. А как же нам в ручную создать HTML документ? Для этого понадобиться любой текстовый редактор. Существуют также специальные редакторы для HTML-документов, лично я пользуюсь и многу вам рекомендовать CuteHTML. Он входит в состав программы CuteFTP, поэтому в отдельности его нет. Но я постараюсь его отделить от этой программы, тогда обязательно выложу на свой сайт (откуда я предлагал скачивать Turbo Pascal) и предложу вам его. А кроме этого существует огромное множество программ для редактирования HTML-файлов.

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


4. Основы программирования на Паскале.


Паскаль - это один из самых простых языков, но далеко не один самых слабых. Изучать мы с вами будем Turbo Pascal 7.0 - так вот на нем можно написать любую программу, которая придет в голову. По возможностям он не уступает ни СИ, ни какому другому. На Паскале можно написать программкую оболочку (типа Norton Commander), игрушку (типа Quake) или операционную систему (типа MS-DOS). Программы на Turbo Pascal пишутся только лдя платформы MS-DOS, но никак не зависят от конфигурации компьютера. Главным требованием к компьютеру является только лишь то, чтобы он был IBM PC-совместимый, что естественно, если на нем установлен MS-DOS.

Особой теории по этому языку нет, чтобы хорошо им овладеть (тем более если это ваш первый язык программирования) необходимо больше практики. Этим мы и начнем заниматься уже в этом выпуске. При этом вам понадобиться интерпритатор Turbo Pascal 7.0 фирмы Borland - я говорил где его можно достать в предыдущем выпуске. Те, кто скачал его с моего сайта (а скачало на данный момент 73 человека) или достал где-нибудь еще, уже смогут попрактиковаться.
Если вы подписались на рассылку после выхода 1-го выпуска, то специально для вас я повторюсь: Turbo Pascal 7.0 можно скачать с моего сайта - http://www.prog.f2s.com/. Там специально для подписчиков есть ссылка на главной странице.
При этом я обойду стандартный подход к изучению языков программирования, при котором сначала начинают изучать типы данных, используемые в языке, структуру пограммы и все такое, а начну непосредственно с написания программы, максимально при этом пытаясь объяснять понятно каждый свой ход. В этом разделе уже будет программирование и кое в чем вам придется поразбираться, поэтому если хоть что-нибудь будет непонятно, пишите, буду отвечать индивидуально.
Итак, поехали...


Ваша первая программа на Паскале.

Чтож, начнем с минимума. Предположим, что вам понадобилось написать программу, реализующую сложение двух чисел. Короче, надо сделать C = A + B;

Теперь по шагам определим, что необходимо для создания этой программы.

1. Нам необходимо в некоторое число C занести значение, которое будет равно сумме чисел А и В. Для таких целей в Паскале существует понятие переменной. (Это вроде икса в математике). Переменная служит для хранения какого-либо значения и имеет собственное имя. Это имя ей необходимо назначить - оно может состоять только из:

  1. латинских букв (A..Z);
  2. цифр (0..9) (!!! но не может начинаться с цифры !!!);
  3. символов подчеркивая "_" ;

И не может содержать:

  1. Русских букв;
  2. Любых знаков препинания, таких как точка, запятая, восклиц. знак;
  3. Специальных символов, которые находятся над цифрами на клавиатуре. Это "~", "#", "$", "%" и другие.

Вот вам прмеры имен переменных:
primer1; _primer; Primer; _pr_; my_name_is_Edik;
Еще уточнение - имя переменной может быть любой длины, не превышающей 250 символов. Также не учитывается регистр букв, то есть переменные с именами Primer и pRiMeR будут рассматриваться как одна.

Что у нас выходит? Что нам необходимо завести переменные С, А, В. (Не забывайте, все буквы латинские). Ясно, переменные мы заведем и назначим им имя (как мы это сделаем, смотрите ниже). Что теперь? А теперь мы подходим к понятию типа переменной.

Тип переменной определяет, что с этой переменной можно сделать, и из чего она состоит (что в ней содержится). Для каждой переменной определяется ее тип.
Зачем нам нужно определять тип переменной? Например, нам нужно, чтобы переменная содержала строку символов, к примеру "Здравствуйте!", которую мы хотим вывести на экран в качестве приветсвия. И кроме нее мы имеем переменную, содержащую число, которое мы собираемся увеличивать. Понятно, что мы не сможем сложить число со строкой, так как цифры с символами складывать невозможно. Поэтому мы определяем тип этой переменной как числовой, после чего определяем тип переменной, содержащей строку как строковой. Тогда Паскаль будет знать, что с какой переменной можно сделать, и при произведении каких-либо действий с переменными определять их тип, после чего либо производить действия, либо нет, если их произвести невозможно.

В общем, я сказал, что у каждой переменной есть свой тип. Но как его назначить? Для этого существуют разные обозначения. Например, тип "число" обозначается как Integer, что по-английски означает "число". Зная это, мы в программе указываем, что переменная у нас типа Integer и можем ее складывать с другими, вычитать или умножать. (О других типах я расскажу позже).

2. Итак, с типами переменных мы определились и теперь возвращаемся к нашей с вами программе. Что у нас там? Мы собираемся прибавить к переменной A переменную B и поместить результат в переменную С.
Так как я сказал, что складывать можно только переменные типа Integer, то нам необходимо определить тип всех трех переменных как Integer. Сделав это, мы получим возможность манипулировать ими как числами.

Исходя из всего этого напишем программу, в которой реализуем следующие шаги:

  1. Напишем название программы;
  2. Заведем переменные, т.е. A, B, C; и зададим им тип;
  3. Выполним сложение и пометим результат в С;

Программа будет выглядеть следующим образом:

Program First;

var
   A, B, C: Integer;

begin
   C := A + B;
end.

Теперь разберем эту программу по строкам:

  1. Program First; - это заголовок программы. Совсем необязательный, программисты просто пишут его для того, чтобы как-то озаглавить программу. Его хорошо использовать для маркировки, т.е. чтобы по нему определять, что это за программа. Всегда находится в первой строчке программы, если его разместить где-нибудь в другом месте, то это вызовет ошибку.

  2. var
       A, B, C: Integer;

    var - Это и есть раздел описания переменных. Выше я говорил, что надо заводить необходимые переменные и придавать им определенный тип. Вот здесь это и реализуется. После служебного слова var, сообщающего Паскалю, что начался раздел объявления переменных, надо расставить все переменные, и через двоеточие указать их тип. Я говорил, что числа указываются словом Integer. Вот мы и написали: A,B,C: Integer;

  3. begin - это служебное слово означает, что начался раздел действий. Именно после него программа начинает свое выполнение. По-английски "begin" - значит "начало". Когда Паскаль встречает это слово, он начинает выполнение программы. У слова begin есть завершающая пара - end. Его вы можете увидеть в самом конце программы. Это слово совершенно противоположное по значению - то есть оно означает, что выполнение программы закончилось. Именно пара begin - end. и есть главной в программе, между ней находятся все действия.

  4. C := A + B; Это и есть то, что нам необходимо было сделать. Здесь все ясно, но думаю синтаксис этого выражения требует пояснений. Но это все далее, смотрите...


Синтаксис выражений.

Самое главное правило - после каждой команды или выражения ставиться точка с запятой - ";" Посмотрите на программу - каждая строка имеет свое завершение этим знаком. Исключение составляют только слова var и begin - это служебные слова, которые не являются процедурами или функциями. Они определяют начало какого-либо раздела программы, в частности var - начало раздела объявления переменных, а begin - раздела выполнения. Кроме этих служебных слов есть и другие, которые оглавляют разделы, например начало раздела констант, но об этом позже. Завершение имеет только раздел begin словом end, после которого ставиться точка. Точка означает конец программы, ее завершение и полную остановку выполнения.
Кроме того, присваивание в Паскале обозначается знаком ":="; Именно двоеточие и равно, а не просто равно. То есть, если мы хотим присвоить какой-либо переменной значение, то мы пишет эту переменную, ставим ":=" и пишем новое ее значение. Вот вам еще примеры присваиваний, как дополнение к программе:

C := 15;
A := 15 + 3;
A := A + C + 3 - 12;

Отсюда имеет несколько правил синтаксиса, которые сведем в список:

  1. После выражений ставиться ";"
  2. Служебные слова, означающие начало раздела программы, не оканчиваются знаком ";"
  3. Присваивание значения переменной обозначается знаком ":="


Тестирование программы

Теперь вернемся к программе. Запустите Turbo Pascal и напечатайте ее, соблюдая все знаки и порядок строк. После того, как вы ее напечатали, надо попробовать ее запустить. Это реализуется нажатием клавиш Ctrl+F9. Если вы все правильно набрали, то окно редактора чуть-чуть мигнет (или нет, если у вас быстрый компьютер и вы просто не успеваете этого заметить).
Если вы в чем-то ошиблись, то Паскаль не выполнит программу, а остановиться, переместив курсор в строку, где совершена ошибка, и написав, что конкретно за ошибка произошла. К примеру, таким сообщением может быть:
Error 85: ";" expected.
Эта ошибка означает, что вы где-то забыли поставить ";". Но пока я не советую вам самостоятельно разбираться в ошибках, просто перепечатайте программу в том виде, в каком она есть и все. Далее мы будем этим заниматься (разбором ошибок) - но это уже потом.


Что теперь

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

Также в этом выпуске я не задаю вам серьезные задания по Паскалю. Разберитесь во всем, что я рассказал, постарайтесь понять это все до конца, если что не понятно, пишите (e-mail: ed1@mailru.com - для подписчиков в текстовом формате).

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

  1. Вам необходимо полностью разобраться в каждой строчке написанной программы;
  2. Усвоить основные правила синтаксиса (";", :=, begin-end, var и т.д.);
  3. Понять, что необхоимо заводить переменные и как это делать;
  4. Понять, что такое тип переменной, как ее сделать числом и зачем это нужно;
  5. Обратить внимание на то, как мы запустили программу (Ctrl+F9);
    (Далее я буду подробнее рассказывать о таких клавишах)

Ну вот, теперь действительно все. Повторюсь, что если что непонятно, пишите.

На этом я с вами прощаюсь, до следующего выпуска!


Автор рассылки Эдуард Дмитриев (E-mail: ed1@mailru.com)

Назад

Hosted by uCoz