Отправляет email-рассылки с помощью сервиса Sendsay

Pascal с нуля by [CPM]

  Все выпуски  

Pascal с нуля by [CPM]


Информационный Канал Subscribe.Ru


Рассылка "Pascal с нуля" by [CPM]. Выпуск №3

Рассылка "Pascal с нуля" by [CPM]. Выпуск №3


MedL[CPM]


Доброе время суток дорогие подписчики!

Сегодня мы, наконец, подошли к первым мыслям о программировании. Сначала, возможно, что-то получаться не будет, но это не так плачевно, как могло казаться.
Итак... Начнем!!

  1. Запускаем Паскаль (куда уж без него 8)

  2. Как видим, автоматически создалось новое окно (ет тоже радует)

  3. Самое интересное, приступаем непосредственно к программированию :

Теория(Часть Первая):
Все проги, которые вы пишете, должны иметь в себе 2 магических слова : begin и end. (begin - начало; end. - конец проги) Прошу заметить!! Именно end. , а не просто энд. Означает оно, что прога закончилась. Дальше её просто нет. Можете хоть нецензурщину писать - Паскаль Вам уже ничегошеньки не скажет. Если Вы написали на синем экране,

begin
end.


то это значит, что у вас уже есть первая программа. Просто она ничего не будет делать : (. Почему?? Потому, что весь код записан между этими словами. Вот почему они магические.
Вопрос номер 2: зачем нам программа, которая ничего не умеет делать?? Для того, чтоб её усовершенствовать.
Между бегином и эндом записали "вечную" команду

write('_____');

Как не трудно догадаться, команда выводит на экран то, что написано между ' и ' (буква "э" на русском языке, нажимать без шифта). Почему это я вдруг написал точку с запятой в конце?? Привыкайте, у Паскаля почти все команды такие. Она должна выглядеть где-то так:

write('Hello world');
write('Vasya vas hear');
write('Vostok - delo tonkoe; vot tak - to!!');


v> Такой фишкой будут отмечены места, где я (v()v@#[CPM]) буду вносить свои комментарии или просто что-либо писать не в своём блоке, а это блок MedL'a. В общем тут есть ошибочка:
write('Hello world');
write('Vasya vas hear'); {hear - слушать, а автор имел ввиду here - тут)


Напишем первую из них - бессмертную программу, с которой начинали писать, наверное, половина программистов. Теперь - давайте её запустим - Ctr+F9. Паскаль помигал, и бросил. Дело в том, что прога запустилась, и сразу закрылась. Поэтому мы ничего и не увидели.


v> Видимо автор имел в виду великую прогу "Hello world", вот её код:

begin
write('Hello World!!!');
end.


Пишем перед бегином uses crt; - подключаемый модуль, в котором записано еще несколько команд. Перед end. прописываем его команду - readkey; - и теперь Паск смирно дожидается нажатия клавиши. Но написана ещё куча всякой мишуры. Поэтому подписываем после begin команду clrscr; - теперь первым стирается весь экран, а потом пишутся заветные слова. Запустилась?? Ели нет, проверьте ошибки, а если да, то тогда Вы написали свою первую прогу!! Поздравляю!! Поздравляю от всей души!!


v> Ну можно и так сказать. Пара уточнений:
Uses crt; - модуль, в котором описаны дополнительные функции для ввода данных с клавиатуры, вывода на экран, работа со строками.
Вместо readkey; можно написать readln;


Писаться слова будут с того места, где был оставлен курсор. Так как экран стёрся, курсор перешел в точку в верхнем левом углу (1,1). Так уж заведено, что координата ширины Х, а высоты Y. Для того, чтобы перескочить в нужное место экрана существует команда
gotoxy(X, Y);
где X и Y в скобках, через запятую означают координаты курсора. То есть в первом случае курсор автоматически перешел в точку (1,1). Экран в режиме МС-ДОС равняется ровно 80 символов по горизонтали и 25 по вертикали. Напишите больше этих значений, тогда экран начнет "скакать".


v> Вот опять я. Во-первых, разрешение экрана (в данном случае 80х25) в режиме МС-ДОС не всегда равно 80х25, это зависит от видеорежима, о чём мы поговорим позже. Для большей ясности принципа работы gotoxy(X, Y); приведу вам рисунок:

 ^y
 |
 |
 |
 |          экран
 |
 |
 |
 |
 |                            x
 ----------------------------->
 

Самые глазастые заметят, что после написания слова, курсор останется после слова. Если хочется написать с новой строчки что-либо, то тогда понадобится команда
writeln('_____');

Все осталось тем - же, только теперь при написании слова курсор автоматом перескочит на строку вниз, но при этом X=1.

Теория(Часть Вторая):

Вы уже умеете "скакать" по экрану, по-разному выводить текст, но он остался черно-белым. МС-ДОС поддерживает 16 цветов, если у вас не черно-белый дисплей, поэтому цвет самого текста и его подложки можно менять.
textcolor(); - изменить цвет текста;
textbackground(); - изменить цвет подложки;
Нормальные цвета - это 1 - 16, дальше идут извращения. Нужное число мы вписываем между скобок.


v> ERROR!! Опять же кол-во поддерживаемых цветов зависит от видеорежима, то есть если режим - монохромный, никакого цветного текста вы не получите. Теперь навороченная таблица цветов:
Код цвета Цвет
0 Чёрный
1 Синий
2 Зелёный
3 Голубой
4 Красный
5 Фиолетовый
6 Коричневый
7 Светло-серый
8 Тёмно-серый
9 Светло-синий
10 Светло-зелёный
11 Светло-голубой
12 Розовый
13 Светло-фиолетовый
14 Жёлтый
15 Белый
цвет + 128 Мерцание символа
Может, цвета подобраны не идеально, но я старался.


В конце занятия у вас должно быть написано что-то вроде:

uses crt;
begin
clrscr;
gotoxy(29,12);
textcolor(6);
textbackground(4);
writeln('Do not copy my programm');
readkey;
end.



Вам задание: напишите свой адрес, имя, фамилию, отчество и оформите их так, чтобы :
  1. Текст располагался на 5 шажков от верхнего левого угла

  2. Текст располагался по центру экрана

  3. Текст располагался на 5 шажков от нижнего правого угла

Задание не сложное, но подумать все же надо. И помните - не получается у того, кто ничего не делает, так что экспериментируйте!! До встречи!!


  1. Автор >>>v()v@#[CPM] (это я). ISQ: 88880172

  2. Дизайн и верстка >>>Ustas[CPM] больше помешан на дизайне и прочей фигне, но иногда и он будет писать что-нибудь в рассылку

  3. MedL[CPM] человек, который любит помогать другим и обожает Паскаль. ISQ:88883515

  4. @mor[CPM] в общем программер, который, как и все остальные, хочет помочь вам в освоении Паскаля. ISQ:88884978



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное