Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

Все программы, как уже говорилось, должны иметь следующий вид:

 

 
program Name; 

 
              {Раздел описаний} 

 
begin 

 
              {Раздел операторов} 

 
end. 

 

 

В нашем Pascal ABC.NET раздел описаний, вообще говоря, не обязателен в некоторых случаях (это далеко не во ВСЕХ случаях). Для создания элементарной программы, которая просто "складывает два числа" этот раздел писать необязательно, но несмотря на это описывать переменные НЕОБХОДИМО все-равно. В некоторых языках программирования описывать переменные необязательно (например очень популярный язык PHP), но из-за этого могут возникнуть очень серьезные и при этом труднонаходимые ошибки. Например:

<?php 

 
              //Получаем данные и записываем их в переменную 

 
              $data=$_POST['Personal']; 

 
              //Вывожу на экран Надпись типа "Приветствую, Вас, - Имя пользователя" 

 
              echo 'Приветствую, Вас, - '.$dats; 

 
?>

Из-за того, что переменные описывать в языке PHP не нужно (В Pascal ABC.NET это нужно делать обязательно), то данный код будет выполнен без ошибок, однако привыводе строки программа просто-напросто создаст новую пустую переменную (из-за ошибки припечати создастся новая переменная "$dats", хотя нужно вывести переменную "$data") и ее выведет. А если рассмотреть очень крупные проекты, то, в случае чего, найти ошибку будет очень трудно.

Но вернемся к Pascal. Для создания программы Вам, наверняка, потребуются переменные (Мы уже рассмотрели константы. А переменные что-то типо констант, только их значения можно изменить в любой момент). Для того, чтобы описать переменную нужно указать ключевое слово "var", а за ним указать имя переменной и ее тип (можно сразу указать ее начальное значение). Например:

var i:integer:=5; 

 
begin 

 
              writeln(i); 

 
end.

В данном примере в секции описания (хоть слова program нету (По секрету сказать, во времени сборки программы оно все равно будет добавлено), но секция описания все равно есть) мы создали переменную "i" с типом "integer" (целочисленные данные) и присвоили ей значение "5". Для того, чтобы Вам было более понятно, прилагаю таблицу со специальными символами языка и их значениями.

Вообще язык программирования Pascal ABC.NET разрабатывается под современные требования программистов, поэтому в него внедряются всё, что необходимо программистам высшего уровня. А в современном программировании есть признак "Хорошего тона" у программистов. Одним из таких признаков - это принцип локальности (о нем чуть позже, но он состоит в том, чтобы все необходимые переменные описывать только тогда, когда они в первый раз потребуются). И в данном языке он реализован, как я сказал ранее, поэтому можно воспользоваться слудующим кодом, являющимся полным аналогом предыдущего:

begin 

 
              var i:integer:=5; 

 
              writeln(i); 

 
end.

Как я говорил уже, Pascal ABC.NET - это язык программирования для современных программистов, а современным программистам (часто) лень указывать тип данных, поэтому в данном языке есть автоматический выбор типа данного. То есть следующий код тоже абсолютно эквивалентен предыдущим:

begin 

 
              var i:=5; 

 
              writeln(i); 

 
end.

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

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

Теперь перейдем к типам данних. В Паскале выделяют слудующие тривиальные типы данных:

Основные:

Integer - целочисленные знаковые данные. Под них отводится 4 байта. Также есть и беззнаковые. Их Вы можете посмотреть в таблице ниже

Real - вещественные данные (все числовые данные, в которых есть целая часть и дробная часть). Под них отводится 8 байт в памяти.

Char - символ. Под него выделяется 2 байта по таблице Unicode (о ней я говорил в типовых примерах к инфорации и ее кодировании)

String - строка или набор символов. Память, отводимая под строку = кол-во символов в строке* 2 байта

Boolean - логический тип (с основой логики Мы познакомимся чуть позже). Под него выделяется 1 байт и он принимает два значения True(истина) и False(ложь).

Все остальные основные типы данных:

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

Например:

var 

 
              a1:=17; // целый тип 

 
              a2:=3.14; //вещественный 

 
              a3:='a'; //символ 

 
              a4:='aaa'; //строка 

 
              a5:=false; //логический 

 
begin 

 
end.

Хоть мы и не указывали типы данных, но и нам, и программе вполне понятно, какого типа та или иная переменная.

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

Комментарии бывают двух типов: однострочные и многострочные. Однострочные комментарии удобно использовать при пояснении какого-либо действия в программе. Для их написания нужно поставить два слеша "//", за ними располагается Ваш комментарий. Если Вы "откроете" однострочный комментарий, то он будет идти до конца данной строки ( а поскольку в Паскале строки бесконечные, то до перехода на новую строку). Почти во всех предыдущих примерах я использовал только однострочные комментарии. (Если хотите посмотреть синтаксис однострочного комментария, то пролистните страницу чуть выше, где я показывал пример с автовыбором типа).

А есть многострочные комментарии. Они должны начинаться с "{" и идут они до тех пор, пока не будет встречен символ "}". Их очень удобно использовать для описания сути работы программи, привидения логов работы программы (то, что выдает пользователю программа на экран).

При всем этом делать двойное вложение комментария НЕЛЬЗЯ. (То есть не допустимо "{...{...}...}". Компилятор Вас не поймет и выдаст ошибку.

Типы данных:

1) набор значений

2) операции над типом

3) внутреннее представление (реализация)

Так что типы данных определяют операции, которые с ними можно делать, и функции, которые к данному типу можно применить. Например, в Паскале есть процедура Delete, которая из строки удаляет необходимое количество символов (с этой процедурой познакомимся чуть позже в разделе "Строки и Символы"). Можно ли ее применить к числам? Понятно, что применить данную процедуру к типу, например, integer (целые знаковые числа) не получиться. Да и логически это выполнить невозможно (Предположим, что у нас нет типов и нам нужно удалить из строки первые 32 символа, а из-за ошибки этой программе дали число типа byte (целое беззнаковое), в котором только 3 символа. Очень интересный вопрос: что в данном случае делать программе? А если данное число дали по ошибке программиста и оно должно быть использовано чуть далше, то это вообще непонятно что получиться). Вообще, да, языки программирования без типов данных (PHP, Lua ...) очень удобные, но только в том случае, если Ты понимаешь, что твориться и как правильно запрограммировать данную программу. Именно по этой причине желательно начинать свое обучение программированию с типового языка программирования (Хотя я начинал с PHP. И по своему опыту говорю, что лучше начинать с языка программирования типа Pascal ABC.NET. Поскольку я около месяца разбирался с тем, как в данном языке работать с разными типами, да и нужно точно понимать под каким типом находится в данной строке та или иная переменная. Если не понимать, то у Вас может получиться что-то типа этого:

<?php 

 
              $i=1; //Присваиваем переменной i 0 - ую степень двойки 

 
              while ($i<1024) { // Пока i меньше 1024 (10 - ой степени двойки) делаем следующее 

 
                            echo $i."\r"; //Выводим на экран значение переменной i 

 
                            $i.='2'; //К значению переменной дописываем справа 2 

 
              } 

 
?>

Вот пример, творящий непонятно что. Прочитав комментарии к коду, Вы, наверное, поняли в чем состоит ошибка: переменную i, вначале считают, что она является типом целых чисел, а в конце считают, что она имеет тип строк. И да. Это программа будет выполнена без каких-либо проблем, однако, то, что будет напечатано в итоге, будет полностью не соответствовать задумке. Если бы данный код написали на "типовом" языке, то ошибка бы обнаружилась на этапе сборки (компиляции) и программа Вас бы об этом предупредила и даже показала бы строку, где допущена ошибка, а в "безтиповых" языках все сработало без проблем (Все зависит от языка программирования. Например, в Lua программа выдала бы ошибку на этапе выполнения (то есть после сборки программы, в момент ее запуска). А в PHP никакой ошибки не было бы, поскольку в данном языке преобразования между типами происходит без проблем). А поскольку новички, обычно не полностью владеют типами, да и у них не достаточно обыта, чтобы уследить за каждой переменной, то для новичков лучше начинать с такого языка программирования, как Pascal ABC.NET. Что мы и будем делать.