На главную


Некоторые материалы были позаимствованы с моих любимых сайтов:
][akep.ru
][ackzona.ru
Другие мои сайты:
CooL
Паскаль - Введение

Постараюсь не вдаваться в историю языка, а рассказать на примерах что к чему, но всё же краткую историю языка знать нужно.
Паскаль - это язык высокого уровня, созданный швецарским учёным - Никлаусом Виртом.
Язык высокого уровня отличается от языка низкого уровня тем, что языки высокого уровня отличаются от языка низкого уровня тем, что языки высокого уровня более лёгкие, на них быстрее пишутся программы.
Примером языка программирования (далее ЯП) высокого уровня считаются С\С++, паскаль, делфи, и другие.
А языки низкого уровня более требовательны к програмисту, сложны в освоении, проги имеют длинный исходник, и требуют от програмёра знания архитектуры компьютера. Но программы на языке высокого уровня отличаются малым весом (размером) и высокой производительностью. Примером яп низкого уровня является асамблер.
Паскаль считается хорошим языком для обучения програмированию, и на нём тоже можно писать вирусы. Простейшие операции с файлами юзера становятся доступны менее чем через неделю после начала обучения (тут всё зависит от твоих мозгов). А если ты уже знаком с программированием, то с изучением паскаля у тебя вообще не должно возникнуть проблем.
Конечно, ДОСовские проги наврятли кто-нибудь будит юзать, но на начальном этапе обучения с их помощью можно поприкалыватся над ламером. А, также зная паскаль тебе будит легче изучать делфи, и писать проги под винду. Потому что делфи - это потомок паскаля. Вообще все языки похожи, но эти два особенно!
Итак, начнём:
Твоя первая прога будит выводить сообщение "Привет Вася", вот её исходник:

begin
Writeln('Привет Вася!');
Readln;
end.

Совсем не сложно!
В любой проге на паскале имеется 2 раздела: раздел описаний, и раздел операторов. Раздел описаний содержит описание используемых операторов. После оператора begin можно размещать любые команды, по завершении которых нужно вызвать оператор end. Обрати внимание, после end. ставится точка, если этим оператором объявляется конец программы. Этот же оператор используется для обозначения конца функции, в этом случае после end ставится две точки.
В данном примере в разделе описания операторов содержится два оператора Writeln('Привет Вася"); сообщает компилятору, что ему нужно вывести на экран сообщение "Привет Вася". А идущий за нм readln; указывает на то, что перед выполнением следующей команды нужно ждать от юзера нажатия кнопы.
Рассмотрим ещё один пример: Прога считывает имя юзера, и выводит его на экран, если имя юзера - Вася, то вместо приветствия вводим сообщение Вася ламер!
исходник:

var nameu:string;
begin
Writeln('Привет, как тебя зовут?');
Readln(nameu);
if nameu='Вася' then
Writeln('Вася ламер!');
if nameu<>'Вася' then
Writeln('Привет ', nameu);
Readln;
end.

При объявлении переменной надо указывать её тип, в данном случае var name:string;
Переменная name имеет тип string то есть это строка.
Оператор writeln(name) говорит что надо считать то, что ввёл юзер в переменную name. Далее юзается оператор if здесь я не стал писать else, чтобы показать вам новый знак <>. Условие оператора if выполняется если его параметр истинен в данном случае выполняется если переменная name имеет значение Вася. Знак <> означает не разно т.е условие выполняется если name не равно Вася. Теперь ждём от юзера нажатия кнопы с помощью readln; и завершаем прогу - end.


Разберём пример, в котором нам надо подсчитать кол-во предложений, вот исходник:

var S:string;
i,z,d:integer;
begin
writeln('Введите текст:');
readln(s);
d:=length(s);
for i:=1 to d do begin
if s[i]='.' then inc(z);
end;
Writeln('Введенная строка содержит ',z,' предложений.');
readln;
end.

Как мы знаем, переменные используются для хранения каких - либо значений.
В данном случае используются переменные:
S - для хранения самой строки, которую введёт юзер,
i - для идиинтефикации текущей буквы в операторе for
d - для хранения длины строки S
z - для хранения количества запятых в тексте

Функция length() - возвращает длину того, что находится в параметрах
Разберём оператор for. Вот его синтаксис: for переменная1:= начальное значение to конечное значение do Условие оператора for выполняется до тех пор, переменная1 не примет значение - конечное значение вот более простой пример использование оператора for:

for a:=1 to 10 do begin
Writeln(a);
end;

Этот пример выводит значения от 1 до 10.
Мы можем обращаться к конкретным символам строки например нам нужно узнать из строки S значение первой буквы. Для этого мы воспользовались конструкцией: x:=s[1];
Она объявляет что х = первому символу из строки s. Здесь переменная х должна иметь тип char
В данном примере с помощью оператора for мы перебираем все символы строки в поисках точки. Если мы находим точку то увеличиваем значение переменной z на 1. Для этого не обязательно писать z:=z+1; а можно воспользоваться оператором inc(x) который увеличивает значение параметра на 1.
Далее в этом примере мы выводим значение z которое содержит кол-во точек.

Масивы
Массивы как и циклы - величайшее изобретение человечества!
Массивы приходят на помощь, когда приходится иметь дело с наборами однотипных данных. Такой набор, имеющий общее для всех элементов имя называется массивом.
К каждом элементу массива можно обращаться указывая его индекс.
Массив харатерезуется прежде всего общим типом его элементов.
Програмёры называют количество индексов массива его размерностью, а количество допустимых значений каждого индекса - его диапазоном.
Массив нужно описывать в разделе объявления переменных, либо в разделе констант. Вот пример объявления массива:
var mas:array [1..20] of real;
Здесь мы объявили, что переменная mas - это массив состоящий из 20 элементов типа real.
Для того чтобы указать что какой либо элемент массива равен чему - то нужно написать
mas[элемент]:=значение;
А для того чтобы получить значение какого – ни будь элемента -
x:=mas[элемент];
Здесь мы сохраняем в переменную х значение элемента, который указан в параметре.
Разберём пример: нам нужно создать массив, элементы которого вводит юзер, затем прога вычисляет наибольший, и наименьший элементы массива.
исходник:
program Arrayprog;
Uses Crt;
Type Mas=Array[1..50] of Real;
Var A :Mas;
min,max:real;
c,d:Integer;
begin
min:=10000;
ClrScr;
Writeln('Поиск в массиве наибольшего элемента');
writeln('Введите количество элементов:');
readln(d);
for c:=1 to d do
begin
writeln('Введите значение элемента: ', c,' .');
readln(A[c]);
if A[c]>max then max:=A[c];
if A[c]<min then min:=A[c];
end;
ClrScr;
Writeln('Наибольший элемент массива = ', round(max));
Writeln('Наименьший элемент массива = ', round(min));

Readln;
end.


Для этой программы нам потребуется вызвать дополнительный модуль - crt. Модули обьявляются в разделе описаний словом uses имя_модуля;
Строкой Type Mas=Array[1..50] of Real; мы объявили что mas равен массиву, но мы использовали вместо var type. С помощью type мы объявляем константы. Константа - это такая переменная, значение которой изменять не возможно. Один раз объявил и всё!
Далее мы объявили переменные min - будит хранить минимальный элемент массива, max - максимальный, с - используется для оператора for, d - хранит длину массива.
Изначально мы устанавливаем что min = 10000, потому что далее мы пишем если текущий элемент меньше чем min то min = текущему элементу. А если к примеру наименьшим элементом будит положительное число?
Далее с помощю функции ClrScr; мы очещаем экран.
Потом с помощью for мы вводим в масив значение всех его элементов, но перед этим нам надо узнать сколько всего будит элементов. А сам процесс нахождения наибольшего\наименьшего элементов выполняется всё том же цикле for. Строка if A[c]>max then max:=A[c]; означает что если текущий элемент больше чем максимальное число, то наибольшим числом будит является текущий элемент.
То же самое и с минимальным элементом. С помощью round() мы округляем оба элемента, и затем выводм результат.
Если этот материал тебя заинтересовал, то можешь скачать обучала по паскалю с моего сайта
Присоединится к WebKillGroup | Про сайт | Про автора
Автор сайта - Царько Михаил
Сайт управляется системой uCoz