Уроки для начинающих программистов
Выпуск N 17
Четверг, 18 января 2000 г.
Ведущий рассылки Эдуард Дмитриев
Библиотека программиста (http://prog.agava.ru)
Здравствуйте, уважаемые подписчики!
Это письмо желательно читать в броузере или развернуть на весь экран, тогда легче ориентироваться и приятнее читать!

В этом выпуске:
  1. Новым подписчикам.
  2. Программирование на Паскале - свои процедуры и функции
  3. HTML - таблицы
  4. Ваши вопросы: Паскаль
  5. Ваши вопросы: HTML

КЛУБ НАЧИНАЮЩИХ ПРОГРАММИСТОВ

Многие спрашивают, когда же начнет работу проект "Клуб начинающих программистов"? Скоро. Вы знаете, что он уже довольно долгое время в проекте и работы, которые велись по его созданию все сводились к проработке структуры. Но сейчас работа идет полным ходом. Пока я не хочу делать преждевременных заявлений, скажу только, что идет работа по оформлению дизайна, набирается несколько команд по работе над теми или иными разделами. В первую очередь набирается команда по работе над создаваемой системой помощи - уже изместной вам как "ВАШИ ВОПРОСЫ" - иначе говоря системы FAQ. Сегодня система помощи уже работает, но пока не хватает консультантов.
Всвязи с этим я приглашаю всех желающих отвечать на вопросы по следующим темам:
  1. HTML - ed1@mailru.com?subject=faq-html
  2. PASCAL - ed1@mailru.com?subject=faq-pascal
  3. Cи, Си++ - ed1@mailru.com?subject=faq-c
  4. DELPHI - ed1@mailru.com?subject=faq-delphi
  5. WINDOWS - ed1@mailru.com?subject=faq-windows
  6. DOS - ed1@mailru.com?subject=faq-dos
  7. LINUX - ed1@mailru.com?subject=faq-linux
  8. Общие вопросы программирования - ed1@mailru.com?subject=faq-prog
  9. Любые другие, самые разные темы, которые вы можете предложить:
    ed1@mailru.com?subject=faq-xxx

Присоединяйтесь! Остальные подробности в моем ответе на ваше письмо.

ВАШИ ВОПРОСЫ

  1. HTML - пишите на ed1@mailru.com?subject=help-html
    (в теме письма обязательно указывать help-html)

  2. Паскаль - пишите на ed1@mailru.com?subject=help-pascal
    (в теме письма обязательно указывать help-pascal)

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

ИСХОДНЫЕ ТЕКСТЫ

В прошлом выпуске было задано несколько заданий по Паскалю. Сегодня они, как и было обещано, выложены на сайте http://prog.agava.ru, в разделе рассылки - "Уроки для начинающих программистов >> Домашние задания".

Кроме того, хочу обратить ваше внимание на работы подписчиков, которыми пополнился раздел "Исходные тексты". Сегодня он пополнен тремя замечательными программами, написанными на Паскале:
  • Игра Igra Dig. Довольно забавная игра, созданная в текстовом режиме. Смысл игры - избегать столкновения с противником(звездочка), двигаясь по лабиринту.Игра предназначена для одного игрока. Имеет встроенный редактор уровней.
    Автор: Александр Циликин.

  • Модуль для работы с файлами формата DBF (базы данных).
    Автор: Андрей Р. Сирвутис

  • Программа для начинающих вебдизайнеров: помогает очень удобно и наглядно переводить номера цветов из 10й в 16ю систему, необходимую для HTML;
    Автор: Mustang

Хочу обратиться к авторам - если вы написали программу и хотите показать ее другим - присылайте мне по адресу: ed1@mailru.com?subject=programming. Ведь очень часто начинающие (и не очень) программисты пишут для себя, не имея возможности показать свои работы массам.
Обратите внимание - наш проект это отличная площадка для размещения ваших творений! Ваши работы смогут увидеть и оценить тысячи подписчиков!

Напоминаю, если вы не имеете доступа к Интернету, но хотите получать новые поступления на сайт и задания, приводимые, но не публикуемые в рассылке, пишите мне письмо с темой offline: ed1@mailru.com?subject=offline. Ваш адрес будет добавлен в базу и вы будете получать приложение к рассылке по почте - это программы, ДЗ, а также интересные, публикуемые на сайте иходники и информацию.

 

1. Новым подписчикам.

Если Вы недавно подписались и Вам что-то непонятно, пожалуйста, перед тем, как спрашивать у меня, просмотрите предыдущие выпуски рассылки. Возможно, там есть ответы на ваш вопрос.

Сайт рассылки: Библиотека программиста, http://prog.agava.ru.

В разделе сайта, посвященном рассылке вы найдете:

  • Архив рассылки
  • Домашние задания
  • Исходные тексты
  • Гостевую книгу
  • Форум сайта
  • Систему голосования
  • и другое.
Уважаемые подписчики! Форум, имеющийся на сайте, создан специально для вас. Помните, что вы всегда сможете задавать на нем свои вопросы, обсуждать проблемы, отвечать на вопросы других и т.д. Убедительная просьба воспользоваться этой возможностью, давайте вместе создавать полезный и интересный форум, в котором можно было бы реально найти решение своих проблем.

»  К содержанию

 

2. Программирование на Паскале - свои процедуры и функции

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

Для начала попробуем поставить себе задачу. Пусть необходимо написать программу, в которой будет определенная, часто повторяющаяся, последовательность действий. К примеру, сложение двух чисел.
Давайте теперь сформулируем задачу следующим образом: написать программу, которая будет складывать два числа. Далее спрашивает, стоит ли повторить. Если ответ утвердительный, то повторяет сначала. Обратите внимание, складывать числа мы будем не один раз, возможно два-три раза или больше. Здесь было бы очень удобно оформить тот кусок программы, который отвечает за сложение и вызывать его каждый раз при необходимости - то есть не писать его все время заново. Здесь мы и подходим к определению процедуры (подпрограммы) языка Паскаль.
Что же такое подпрограмма? Подпрограмма (процедура, функция) - это оформленная обособленно часть программы, к которой потом можно обратиться из любого места основной программы (вызвать ее). Написать и использовать подпрограмму очень просто. При этом она будет обладать следующими свойствами:
  • Подпрограмма - это фактически отдельная программа. Она может иметь свои переменные, метки, константы, равно как и вложенные подпрограммы.
  • Она может использовать переменные, общие для всей программы (глобальные переменные), с учетом того, что они были описаны в основной программе до самой подпрограммы.
  • Если подпрограмма - функция, она может использоваться внутри стандартных конструкций, в качестве параметра для процедур, присваиваться переменным и т.д., то есть обладает всеми возможностями функций.
Это основное, что касается использования данных в подпрограммах. Теперь давайте посмотрим, как они описываются в программе. Начнем с процедур.

  Составление своих процедур

Создаваемая процедура в Паскале имеет следующие элементы:
  • Служебное слово Procedure;
  • Собственное имя, по которому она будет использоваться в программе. Оно идет после служебного слова Procedure
  • Параметры, передаваемые программе (необязательно).
  • Свои разделы var, const, label (необязательно).
  • Собственный раздел begin - end, причем end - это конец подпрограммы. После него всегда ставиться точка с запятой: ";"
  • Внутри этой конструкции - любые элементы языка: циклы, сравнения, дополнительные блоки begin - end.
Примера ради давайте напишем указанную выше программу (сложение двух чисел). Действовать будет по следующему принципу:
  1. До основной программы составим процедуру, в качестве параметров которой будет передаваться два числа. В этой процедуре будет:
    1. Числа, переданные как параметры складываются друг с другом;
    2. Получившееся значение выводиться на экран;
  2. Сделаем цикл repeat - until. Внутри след. действия:
    1. Запрашиваем 1-е число;
    2. Запрашиваем 2-е число;
    3. Вызываем нашу процедуру, передав ей в качестве параметров эти два числа;
    4. Спрашиваем - повторить?
  3. Цикл повторяется, пока ответ "ДА".
Вот такая вот простая программка. Исходный код:



Program P1;

uses Crt;



Procedure Add(a, b: Integer);

var

  C: Integer;



begin

  C := A + B;

  Write(C);

end;



var

  N1, N2: Integer;

  C: Char;



begin

  repeat

{ Очищаем экран }

    ClrScr;



{ Читаем переменные }

    Write('Введите число N1: ');

    Readln(N1);

    Write('Введите число N2: ');

    Readln(N2);

    Writeln;



{ Вызываем нашу процедуру  }

    Add(N1, N2);



{ Спрашиваем - Выйти?  }

    Writeln;

    Write('Выйти? (Y/N): ');

    Readln(C);

  until UpCase(C) = 'Y';

end.

Теперь давайте разберемся, как создается процедура.

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

список_переменных: тип

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

    Procedure Add;

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

    Procedure Add(A,B: Integer; C: Word; B: Boolean; S: String);

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

Оформление процедуры

Procedure имя_процедуры (список_параметров: тип);

const

список_констант_процедуры;

var

список_переменных_процедуры: тип;

begin
... тело_процедуры ...
end;

Как видите, все очень просто. Теперь давайте посмортим, как можно написать функцию. Для этого модифицируем нашу программу и поставим задачу следующим образом:

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

  Составление функций

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



Program P2;

uses Crt;



Function Add(a, b: Integer): Integer;

var

  C: Integer;



begin

  Add := A + B;

end;



var

  N1, N2: Integer;

  C: Char;



begin

  repeat

{ Очищаем экран }

    ClrScr;



{ Читаем переменные }

    Write('Введите число N1: ');

    Readln(N1);

    Write('Введите число N2: ');

    Readln(N2);

    Writeln;



{ Вызываем нашу процедуру  }

    Write(Add(N1, N2));



{ Спрашиваем - Выйти?  }

    Writeln;

    Write('Выйти? (Y/N): ');

    Readln(C);

  until UpCase(C) = 'Y';

end.

Обратите внимание на три главных момента в использовании функций.
1. Функция при описании должна получать свой тип, то есть указывается тип возвращаемого ей значения. Это значит, что если мы задали функции тип Integer, то ей может быть присвоено только целое число, кроме того - при использовании функции в программе мы можем использовать ее только в ситуациях, позволяющих манипулировать с типом Integer.
2. Возвращаемое значение задается простым присваиванием значения имени функции внутри ее.
3. Как и стандартные функции Паскаля, собственные могут быть использованы внутри процедур:

Write(Add(N1, N2)); - печатаем значение, возвращаемое функцией Add;

Так и внутри стандартных конструкций:

If Add(N1, N2) > 100 then Write('Сумма больше 100!');

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

До встречи!

»  К содержанию

 

3. HTML - таблицы

Таблицы - это краеугольный камень всего HTML дизайна. Из таблиц составляется практически все, что можно оформить более-менее сложным образом. Безусловно, основное направление таблиц - это представлять табличную информацию, такую, как например разбитую на ячейки (подобно Excel) ведомость учета рабочего времени или самую что ни на есть таблицу, с двумя столбцами - в одном из которых фамилии, а в другом - телефонные номера к ним...
Но практически всегда таблицы нужны больше для чего угодно, только не для этого. Такие данные редко присутсвуют на домашних страницах и персональных сайтах, зато на них можно оформлять интересный дизайн, где интенсивно учавствуют все те же таблицы. Вот, к примеру - было много вопросов про то, как устроить на странице разбитую на две колонки структуру - где первая колонка это содержание сайта, а вторая - непосредственно информация. Это все таблицы.
К примеру, посмотрите на http://prog.agava.ru. Видите, главная страница содержит три колонки, причем в средней - информационной части - находиться еще несколько полос. Это все и есть взаимодействие таблиц, в создании дизайна в большей степени учавствуют они. Продолжу пример с Библиотекой программиста. Обратите еще раз внимание на структуру столбцов. В первом - ссылки на разные разделы, в среднем - информация, в последнем - содержание. Сама страница довольно длинна вниз и требует для полного просмотра полосы скроллинга. Это все - одна таблица. Она является главной, как бы каркасом, внутри которого уже и построены остальные элементы. Повторюсь - это всего лишь одна таблица, с невидимыми краями и белым фоном.
Итак, для того, чтобы сделать сайт я создал эту самую таблицу, которая имеет одну строку и три столбца. Вы ведь знаете, что таблицы состоят из строк и столбцов? Так вот, после того, как была создана эта основная таблица, началось наполнение ее содержимым. В качестве такового выступили в большей степени все теже таблицы. К примеру гляньте на заголовок "Библиотека программиста":

 БИБЛИОТЕКА ПРОГРАММИСТА

и подобные ей. Это - одна табличка, содержащая три строки и один столбец. Всмотритесь:
  1. Строка 1 - серого цвета, содержащая непосредственно текст.
  2. Строка 2 - темно-синего, отчеркивающая сам заголовок информационного блока, для четкости и дополняющая общий дизайн;
  3. Строка 3 - высотой в 1 пиксел, серого цвета (сама по себе не очень хорошо заметна, но служит для более плавного перехода с темно-синего на вновь белый цвет фона).

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

»  К содержанию

  Свойства таблиц

Таблица, как известно состоит из строк и столбцов, образуя ячейки. В HTML она может изменяться довольно кардинальным образом. С самого начала вам нужно усвоить, что внутри ячеек таблицы могут содержаться любые другие элементы: тэги, текст, рисунки, другие таблицы. Также давайте рассмотрим основные свойства таблиц, на которые в первую очередь обращает внимание дизайнер:
  • Таблица может иметь поля (границы) любой толшины и цвета. Примеры (к сожалению, только для подписчиков на HTML версию):

    Можно иметь такие границы

    А можно и такие

    Или такие

    Вот еще один пример

    Большая (но не максимальная) граница

  • Ячейки таблицы могут иметь любые цвета фона:

    Ячейка 1 Ячейка 2 Ячейка 3

  • Ячейки могут иметь любую высоту и ширину и содержать в себе что угодно:

     БИБЛИОТЕКА ПРОГРАММИСТА         http://prog.agava.ru

  • Данные в ячейках могут быть выравнены по любому краю и основанию, например:

    По центру:
      http://prog.agava.ru

    По правому краю:
      http://prog.agava.ru

    что может задаваться не тэгами выравнивания, а свойствами самой ячейки.

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

  Тэги описания таблицы

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

Теперь вам известен процесс создания таблицы и мы идем дальше. Разберем в указанном выше порядке все необходимые тэги и их параметры. Кстати, многие вам будут известны: например, bgcolor, background или align.
  • Тэги описания таблицы: <TABLE> - </TABLE>.
    Внутри этих тэгов содержаться описания строк и ячеек.

  • Тэги описания строки таблицы: <TR> - </TR>.
    Внутри этих тэгов содержаться описания ячеек.

  • Тэги описания ячеек: <TD> - </TD>.
    Внутри этих тэгов содержиться вся информация, помещаемая в таблицу.

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


Тэг <TABLE>
Имеющиеся параметры:

<TABLE align="" border="" bgcolor="" background="" cellpadding="" cellspacing="" width="" height="">

Теперь о каждом параметре в отдельности.
  • align="center, right, left" - выравнивание самой таблицы относительно HTML документа. Использование align в тэге TABLE выравняет таблицу:
    • align=center - по центру;
    • align=right - по правому краю окна броузера;
    • align=left - по левому краю (вариант по умолчанию);

  • border="0, 1, 2, 3, ..." - ширина (толщина) обрамления таблицы, то есть линии, ее ограничивающей. При указании значение border=0 видимого обрамления у таблицы не будет.

  • bgcolor="константа цвета (black, blue и т.п.) или номер цвета (#FFAF98, #E0E905 и т.п.)" - цвет фона ячеек таблицы по умолчанию.
    Здесь хотелось бы уточнить некоторую деталь.
    К примеру, вы создаете таблицу, где будет три строки по пять столбиков в каждой (пятнадцать ячеек). Десять ячеек будут иметь цвет фона lightblue (светло-голубой), а пять - #CCCCCC (серый). Соответсвенно, лучше задать цвет ячеек по умолчанию как lightblue, и только у серых ячеек уже изменять цвет на соответсвующий. Т.о. ваша таблица будет содержать меньше кода, что уменьшит размер документа. Я уверен, что вы и сами очень скоро это поймете, когда будете делать разноцветные таблицы.

  • background="url рисунка" - фоновый рисунок таблицы. Очень похоже на параметр background тэга BODY, имеет теже свойста и т.п., только рисунок будет использван в качестве фона таблицы, а не документа.

  • cellpadding="0, 1, 2, 3, ..." - высота отсупа от краев таблицы сверху и снизу. Указывается в пикселах.

  • cellspacing="0, 1, 2, 3, ..." - ширина отсупа от краев таблицы слева и справа. Указывается в пикселах. Чтобы понять, как работают и где используются эти два параметра, попробуйте применить и на практике.

  • width="" - ширина таблицы. Может указываться в пикселах (width="100") или в процентах от ширины экрана (width="50%"). Последний параметр гораздо более предпочтителен, так как таблица будет выглядеть практически одинаково в разных разрешениях экрана. При указании ширины в пикселах, она будет смотрется в разных экранных разрешениях по-разному.

  • height="" - высота таблицы. Также как и ширина может указываться в пикселах и в процентах. То же самое: последний вариант предпочтительнее. Хотя все зависит от определенных условий.

На этом все с имеющимися у тэга TABLE параметрами. Переходим к тэгу TR - оформление строк таблицы.


Тэг <TR>
Имеющиеся параметры:

<TR align="" valign="" bgcolor="">

Отдельно о каждом из параметров:
  • align="center, justify, left, right". Как видите, значений у этого параметра имеется довольно много. Разберем все в отдельности:
    • align="center" - это значит, что данных во всех ячейках, которые будут описаны в данной строке будут выравнены по центру.
    • align="justify" - выравнивание по обоим краям.
    • align="left" - выравнивание по левому краю (по умолчанию).
    • align="right" - выравнивание по правому краю.

  • valign="bottom, middle, top". Вертикальный способ выравнивания. Указывает, как будут расположены данные относительно вертикального их расположения. Варианты:
    • valign="bottom" - выравнивание по нижнему краю.
    • valign="bottom" - вертикальное выравнивание по центру (по умолчанию).
    • valign="top" - выравнивание по верхнему краю.

  • bgcolor="". Этот параметр определяет цвет по умолчанию всех ячеек, которые будут созданы в данной строке. Как всегда, bgcolor может иметь как константу (white, blue, red ....) так и число в шестнадцатеричной системе счисления: #FFFAFA, #00FE03, #121212.

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


Тэг <TD>
Имеющиеся параметры:

<TD align="" background="" bgcolor="" height="" width="" valign="">

Как видите, он имеет довольно много общих параметров с тэгами TR и TABLE. Разберем все по отдельности:
  • align="" - выравнивание данных внутри ячейки. Значения аналогичны значениям параметра align тэга TR.

  • background="url рисунка" - определяет адрес рисунка, который будет использоваться в качестве фона для данной ячейки. То же самое, что и background тэга TABLE или тэга BODY.

  • bgcolor="" - фоновый цвет данной ячейки. Это конечный вариант определения цвета, если ранее цвет был определен в тэге TABLE или TR, то для данной ячейки он переопределиться. Значения как всегда - либо константа, либо число.

  • height="" - высота ячейки. Также как и в случае с тэгом table, может быть указана в писелах и в процентах. Но имеется и одно отличие - высота, указываемая в процентах будет соответсвенно самой таблицы, а не документа.

  • width="" - ширина ячейки. Тоже самое - ширина, указываемая в процентах будет соответсвенно самой таблицы, а не документа.

  • valign="bottom, middle, top" - вертикальное выравнивание данных внутри ячейки. Возможные значения:
    • valign="bottom" - выравнивание по нижнему краю;
    • valign="middle" - выравнивание по цетру (используется по умолчанию)
    • valign="top" - выравнивание по верхнему краю;

Вот и все. Это все параметры, которые могут иметь тэги таблицы. Теперь для вас самое главное - это научиться их использовать, манипулировать ими так, как вам требуется. В этом выпуске мы на примерах резберем несколько вариантов создания таблицы - стандартной таблицы с данными и таблицы-заголовка, такой, какие используются на http://prog.agava.ru. Также, в следующем выпуске я покажу как использовать таблицу в качестве оформления структуры сайта и как наполнить ее содержимым, которое образует общий дизайн.

  Примеры таблиц

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

Книги по Паскалю

Номер Описание Размер
1 Borland Pascal 7.0 - РУКОВОДСТВО ПО ЯЗЫКУ
Данное руководство включает в себя четыре части:
  1. Грамматика языка
  2. Библиотеки
  3. Вопросы продвинутого программирования
  4. Использование Borland Pascal с языком Ассемблера
240 кбт
2 Borland Pascal 7.0 - Справочное руководство программиста
Эта книга содержит материалы для программистов, уже имеющих некоторый опыт работы. Руководство представляет собой справочник, который во время программирования следует держать под рукой.
200 кбт
3 Turbo Pascal - РУКОВОДСТВО ПО ЯЗЫКУ
Это руководство содержит материалы для опытного программиста. Если Вы уже знаете, как надо программировать на Паскале или другом языке, то это руководство для Вас. Оно обеспечивает описание языка, информацию по стандартным библиотекам и информацию по управлению памятью, объектами, плавающей точкой, оверлеями, видеофункциями, интерфейс с языком Ассемблера, а также сообщения об ошибках времени выполнения и времени компиляции.
205 кбт

Я думаю для примера хватит. Теперь осталось разобраться, как же я составляю такую таблицу. Здесь сразу выявяться многие нюансы - относительно шрифтов, выравниваний, ширины и т.п., на которые я настоятельно советую обратить внимание.

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



<HTML>

<HEAD>

 <TITLE>Список книг по Паскалю</TITLE>

</HEAD>



<BODY bgcolor=#ffffff>



<!-- небольшой заголовок  -->

<p align=center>

<b>Книги по Паскалю</b>

</p>



<!-- определяем общие свойста, начинаем таблицу  -->

<table align=center width="80%" cellpadding=0 cellspacing=1 border=1>



<!-- шапка таблицы  -->

<tr>

 <td align=center width="15%" bgcolor=#E0E0C6>

<font face=arial size=2><b>Номер

 </td>

 <td align=center width="70%" bgcolor=#E0E0C6>

<font face=arial size=2><b>Описание

 </td>

 <td align=center width="15%" bgcolor=#E0E0C6>

<font face=arial size=2><b>Размер

 </td>

</tr>



<!-- новая книга  -->

<tr>

 <td align=center bgcolor=#FAFAFA>

<font face=arial size=2><b>1

 </td>

 <td bgcolor=#FAFAFA>

<font face=arial size=2><b>

Borland Pascal 7.0 - РУКОВОДСТВО ПО ЯЗЫКУ

</b><br>

Данное руководство включает в себя четыре части:

<ol><li>Грамматика языка

<li>Библиотеки

<li>Вопросы продвинутого программирования

<li>Использование Borland Pascal с языком Ассемблера

</ol>

 </td>

 <td align=center bgcolor=#FAFAFA>

<font face=arial size=2>240 кбт

 </td>



</tr>



<!-- новая книга  -->

<tr>

 <td align=center bgcolor=#FAFAFA>

<font face=arial size=2><b>2

 </td>

 <td bgcolor=#FAFAFA>

<font face=arial size=2><b>

Borland Pascal 7.0 - Справочное руководство программиста

</b><br>

Эта книга содержит материалы для программистов,

уже имеющих некоторый опыт работы.

Руководство представляет собой справочник,

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

держать под рукой.

 </td>

 <td align=center bgcolor=#FAFAFA>

<font face=arial size=2>200 кбт

 </td>



</tr>



<!-- новая книга  -->

<tr>

 <td align=center bgcolor=#FAFAFA>

<font face=arial size=2><b>3

 </td>

 <td bgcolor=#FAFAFA>

<font face=arial size=2><b>

Turbo Pascal - РУКОВОДСТВО ПО ЯЗЫКУ

</b><br>

Это руководство содержит материалы

для опытного программиста. Если Вы

уже знаете, как надо программировать

на Паскале или другом языке, то это

руководство для Вас. Оно обеспечивает

описание языка, информацию по стандартным

библиотекам и информацию по управлению

памятью, объектами, плавающей точкой,

оверлеями, видеофункциями, интерфейс

с языком Ассемблера, а также сообщения

об ошибках времени выполнения и времени компиляции.

 </td>

 <td align=center bgcolor=#FAFAFA>

<font face=arial size=2>205 кбт

 </td>



</tr>

</table>



</BODY>

</HTML>

Создав такой код, мы получим именно ту таблицу, которую вы видите выше. Собственно, все тэги, связанное с самой таблицей должны быть понятны. Обращу внимание на следующие моменты:
  • При определении новой ячейки я каждый раз задаю в ней вид шрифта. Это делается затем, что таблица использует внутри своих ячеек не шрифт, указанный до таблицы и используемый внутри документа для общих элементов, а собственный вид шрифта, указанный в броузере по умолчанию. Кроме того, при указании вида шрифта внутри одной ячейки, дейсвтие тэгов FONT, B и т.д. в этой ячейке и заканчивается. Подобные тэги даже не нужно закрывать - чтобы не увеличивать размер документа. Вывод: для каждой ячейки задавайте требуемый шрифт: его толщину, вид, размер и т.д. При этом не используйте закрывающих тэгов - </FONT>, </B>, </I>. Они лишние. Для того, чтобы задать шрифт в таблице по умолчанию есть несколько методов, но о них в следующих выпусках.

  • Напомню, каждая ячейка таблицы имеет свои, принадлежащие только ей свойста. Будь то выравнивание, цвет фона и т.д. Не забывайте указывать их для каждой ячейки либо строки отдельно!

  • Ширина ячеек может (и должна) задаваться только в первой строке (см. пример). Дело в том, что в таблице все ячейки в столбцах имеют одну ширину и указывая ее только в первой ячейке (фактически, в верхней ячейке столбца) мы зададим ширину всего столбца. Это относиться и к высоте: достаточно указать ее в первой ячейке строки и она будет соблюдена во всех ячейках данной строки:

    
    
    <table>
    
       <tr>
    
          <td height="10%">Текст 1</td>
    
          <td>Текст 2</td>
    
          <td>Текст 3</td>
    
          <!-- ОБРАТИТЕ ВНИМАНИЕ: высота ячеек в строке задается только в первой ячейке -->
    
       </tr>
    
    </table>
    
    

Здесь можно и не понять сразу, что я имею в виду. Однако попробуйте это на практике, вам сразу станет ясно. Не забывайте про такие вещи, они позволяет серьезно оптимизировать HTML документы, что зачастую крайне немаловажно.

  • Два параметра, указывающих отсуп то границ таблицы - cellpadding и cellspacing - указывают отступ не только внутри таблицы, но и снаружи. То есть отсуп влияет как на данные, содержащиеся внутри ячеек, так и на данные за пределами таблицы. При определенной практике и в следующем примере вы поймете значимость этих параметров.
  • Пока это все, что нужно знать для успешного манипулирования с таблицами. Однако знать и применять на практике - далеко не одно и тоже. Есть куча нюансов, тонкостей и особенностей при работе с таблицами, которые всплывают лишь при интенсивной работе с ними. Я, конечно, постараюсь рассказывать о них в выпусках - но уточнить все моменты просто не в моих силах. Так что здесь самый ценный совет - практикуйтесь самостоятельно. И еще - в Windows существует такая папка, Temporary Internet Files. В ней содержиться большинство страниц, которые вы посещали при своих странствиях по Сети. Не примените заглянуть туда при необходимости: иногда очень полезно посмореть, как реализуются те или иные особенности.

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

     БИБЛИОТЕКА ПРОГРАММИСТА         http://prog.agava.ru

    Теперь давайте создадим такую табличку. В первую очередь определимся с ее структурой.

    Я уже говорил выше, что эта таблица имеет: один столбец и три строки. При этом первая строка содержит текст, две другие - чисто оформительского характера. Итак, напишем код:

    Назад

    Hosted by uCoz