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

Object programming world

  Все выпуски  

Object programming world #2


Рассылка сайта

Выпуск № 2.


Сегоднешняя тема:
Основы Pascal



Стандартные типы данных в Pascal.


В природе есть еще типизированные константы.

Им задается начальное значение еще в коде. До запуска программы.
Синтаксис:
Const <идентификатор переменной>: <ее тип> = <ее значение>;

Можно в паскале использовать еще и типы пользователя.

Синтаксис такого чуда:
Type <идентификатор переменной> = (<идентификатор константы 1, … , идент. конст N>);
Var <идентификатор переменной>: <идентификатор типа>;
Пример:
Type Month = (jan, feb, march, april, may, june, july, august, September, October, november, december).
Var My_Month: Month;
Причем в рядке type, там где в скобках началось перечисление месяцев, так там, внутри, все идет по цифрам, в нашем случае jan = 0, feb = 1, December = 11. Вот так вот.
Есть такие вот простенькие функции, для работы с этим делом.
Succ(<переменная>) => Succ(1) = 1+1; Succ(12) = 12+1; Она просто плюсует на 1.
Ord(<переменная>) => она возвращает порядковый номер значения вашей переменной.
Например:
Возьмем тот же Month: Ord(june) = 5; Ord(december) = 11.
Ord() можно так же использовать для символов. Ord(‘A’) = 65;
Есть интервальный тип, его мне пояснять впадлу. Все его отличие в том, что его значения можно задать диапазоном:
Type letters = ‘A’ .. ‘Z’;
Var S: letters;
В этом примере S может принимать значения только от A до Z.
Простые арифметические функции.
“+” плюсует a и b: a + b;
“-“ подумайте что оно делает: a – b;
“*” здесь тоже подумайте: a * b;
“/” а вот тут уже сложней. Это деление, но оно будет работать токо с типами Real,
var a, b, c: Real;
begin
с := a / b;
end;
Для целочисленных типов есть такая вещь как div:
var a, b, c: Integer;
begin
с := a div b;
end;
div – это челая часть от деления двух чисел.
Mod – остаток от деления 2-х чисел, принимает значение 0 и 1. С Mod удобно узнавать парное число или нет.
var a, b, c: Integer;
begin
if a mod 2 = 0 then
(* Парное *) с := a + b;
if a mod 2 = 1 then
(*Не парное*)c := a div b;
end;
Если вы не понимаете этих кодов, то глядите дальше. Я щас это распишу. Кароче, будем считать что вы уже все знаете!

Перейдем-ка мы к условиям и циклам.

Условие, я думаю вы понимаете что это такое. В паскале это выглядит как:
if <условие> then
<что-то делаем> else
<делаем что-то другое>;
Пример:
var a, c: Integer;
begin
if a mod 2 = 0 then
(* Парное *) с := a + b else
c := a div b;
end;
Так вот. Перевожу на русский:
Var a, b, c: Integer;
Начало
Если A mod 2 = 0 то
С присваивается а + b если не так, то
С := a div b
Конец;
Условия можно делать любой сложности. Любой вложенности, токо главное самому не запутаться. Есть еще условие типа Case, вещь эта весьма удобная. Она имеет такой синтаксис
:Case <условие> of
<вариант 1>: <действие 1>;
...
<вариант N>: <действие N>
else <действие, если условие не исполнилось>;
End;
Я думаю вам понятно, что это звучит как:
В Случае <ставим условие> из
<Вариант1>: <выполняем действие>
else <Условие не сбылось, выполняем еще что-то>;
конец;

Пример:
Var a, b, c: Integer;
begin
case A mod 2 of (*в случае остатка от деления A на 2*)
0: С := а + b; (*Если нуль, то С := а + b*);
1: C := a div b (*Если 1, то С := а div b *);
End;

Теперь циклы.

Я знаю 3 оператора цикла. Это такие великие вещи, как:
For, while, repeat. Теперь подробно о каждом из них.
Цикл for, это такая вещь, которая будет повторять заданное число раз. Синтаксис ее таков:
For <переменная цикла> := <начальное значение> to <конечное значение> do <оператор>.
Если у вас нету более подходящих идей, то пользуйтесь ею как весь мир программистов, переменную цикла принято брать «i», она должна быть целая, т.е. integer. И вместо начального и конечного значений возьмем числа.
Var i: Integer;
For i := 1 to 20 do
Begin
WriteLn(i);
End;
Итак, значит оно следующее. Цикл повторяется пока число “i” меньше 20, при этом цикл идёт так:
1-й круг: I = 1;
2-й круг: I = 2;
и так далее. Короче прогрессия с шагом 1. Это очень удобный цикл. Но есть и другие.
Цикл while.
While <условие> do <оператор>;
Этот цикл могёт «повиснуть», зациклиться. Короче надо в его операторах рассчитать чтоб хоть когда – то условие выполнялось. Вот так вот будет выглядеть цикл for через while:
Var i: Integer;
Begin
i := 1;
while i <= 20 do begin
WriteLn(i);
i := i + 1;
End;
Как можно увидеть звучит это так:
Пока “i” меньше или равно 20, делает:
Начало
Написать строку(i);
Переменной “i” присваиваем значение i+1, и надеемся что когда-то “i” будет равно 20, а то ваша программа зависнет.
Конец;
Надеюсь что и с этим понятно.
Последний из циклов, это repeat:
В этом цикле сначала выполняются операторы, а потом уже идет проверка условия, цикл while действовал наоборот. Сначала проверка условия, а потом уже выполняются операторы. Но цикл repeat тоже может «зависнуть», подобно while.
Repeat<операторы тела цикла>
until <условие>;
пример:
Var i: Integer;
repeat
WriteLn(i);
i := i + 1;
Until (i >= 20);
Повторять
Пишем строку, со значением «i»;
Переменной “i” присваиваем значение i+1, и надеемся что когда-то “i” будет равно 20, а то ваша программа зависнет;
До того как, “i” >= 20;

Если чего не ясно, то заходите на сайт группы разроботчиков O.P.W. Group http://www.programming.byethost31.com. Или ждите следующей статьи. На нашем сайте есть не менее интерессные статьи. А на форуме вам всегда помогут.


Если у вас возникли вопросы по рассылке, то обращайтесь ко мне:
FokeeWolf[@]yandex.ru
Тему письма обязательно пишите "Subscription" иначе письмо будет удалено спам-ботом.

В избранное