Уроки Pascal ABC

Если Вы не нашли подходящего раздела, для вопроса связанного с web строительством, то Вам сюда.
digger

Уроки Pascal ABC

#1

Сообщение digger » Пт дек 07, 2012 1:11 am

Уроки Pascal ABC - Введение
Паскаль (англ. Pascal) - это язык программирования, имеющий текстовую среду. Является основой многих языков программирования. Паскаль бывает полезен для начинающих. Преподаётся в школах и ВУЗах. Пример программы, написанной на паскале:

Код: Выделить всё

Program umnogenie;
   var a, b: integer;
   begin      
      writeln ('Введите переменные ');  
      readln (a, b);
      a:= a*b; 
      writeln ('Результат ', a);
   end.
Эта простая программка умножает число a на число b.
Для работы с языком потребуется программа. Я буду вести уроки на наиболее удобной программе - Pascal ABC.NET.
Скачать её можно здесь: http://pascalabc.net/

В самое ближайшее время я напишу первый урок, ссылку на него я добавлю в этой теме.

Реклама
digger

Re: Уроки Pascal ABC

#2

Сообщение digger » Пт дек 07, 2012 3:54 pm

Уроки Pascal ABC - Урок №1
Первые знания, операторы, структура.
Сегодня мы начинаем уроки по изучению Pascal. В этом уроке мы обсудим структуру программы, написанной на pascal, основные операторы, типы переменных.
Вся программа состоит из:
  1. Описание переменных
  2. Основной программы:
    1. Ввод данных, диалог с пользователем
    2. Основной блок - выполнение поставленных задач
    3. Вывод данных, диалог с пользователем
В виде алгоритма это получается так:
  • Вводим еременные а и б которые являются численными (действительными целыми числами);
  • начало программы;
  • ввод данных;
  • работа программы;
  • вывод данных;
  • конец программы.
А как это делается в программе?

Код: Выделить всё

Program vvod i vivod 
var a :integer;
begin
readln (a);
writeln ('вы ввели число ', a);
end. 
А теперь я объясню, что это всё значит. Первая сторока (Program vvod i vivod;) означает название программы. Иы просто пишем "Program", затем пишем название нашей новой программы, какое сами захотим (я написал vvod i ivod). Ограничением является то, что название должно содержать только английские буквы, цифры или знак "_". После каждой строчки пишется точка с запятой. Во второй строке мы перечисляем переменные, в нашей програмке она всего одна - "а". "var" - это служебное слово которое задаёт переменные. Мы просто пишем слово "var", затем переменные которые будут учавствать в нашей программе через запятую, после переменных всегда ставится двоеточие, оно не ставится лишь в некоторых случаях, в каких я расскажу потом, далее идёт вид переменных (integer - целые числа (1,6,48,4859) и real - дрбные числа (1,376 или например 8,45) в конце как и в первой строчке пишется точка с запятой. "begin" означает начало (запуск) программы. "readln" означает ввод данных. Во время работы программы нам необходимо будет ввести значение переменной в нашем случае необходимо ввести значение переменной "а". Поскольку у нас переменные вида "integer" мы можем ввести любое целое число. Если программе необходимо ввесто или вывести информацию то используются закруглённые скобки (то что написано в скобках мы увидим на экране во время работы программы). "writeln" - это наоборот вывод данных. В скобках после этой команды мы пишем то, что хотим чтобы показал компьютер. Если хотим, чтобы он показал не просто числа, а какой-нибудь текст, то в скобках мы ставим одинарные кавычки. То что написано в одинарных кавычках будет выведено на экран в чистом виде. Последняя строчка - "end." указывает, на завершение программы в конце всегда ставится точка.

Если вам что-то непонятно пишите в личку, объясню. Не пугайтесь, это первый урок, всё новое, дальше будет намного легче.

digger

Re: Уроки Pascal ABC

#3

Сообщение digger » Вс дек 09, 2012 10:37 pm

Уроки Pascal ABC - Урок №2
Сегодня я расскажу про основные операторы, с помощью которых можно написать вашу первую программу.
Оператор присваивания
Без этого оператора мы не сможем обойтись дальше. Его функция - это присваивания значения переменной.
Допустим x - это переменная, пусть она будет равна 2, в программе это будет выглядеть так:

Код: Выделить всё

{ввод данных}
x:=2;
{вывод данных}
Я думаю, что Вы уже заметили, что на деле она выглядит, как двоеточие со знаком равно (:=).

Операторы сложения, вычитания и умножения Сложение
С помощью данного оператора мы можем сложить два числа, в программе он пишется, как "+" (без кавычек). Допустим у нас есть переменные x, y и z. Мы можем присвоить переменной x значение 4, а переменной у значение 3.

Код: Выделить всё

{ввод данных}
x:=4;
y:=3;
z:=x+y;
{вывод данных}
При данном сложении мы получим 7, само собой можно самому придумать другие значения переменным x и y. В таком случае переменная z изменит своё значение на другое.

Операторы сложения, вычитания и умножения Вычитание
В этом операторе тоже ничего сложного нет, он выполняет вычитание двух чисел. В программе обозначается, как "-" (без кавычек):

Код: Выделить всё

{ввод данных}
x:=8;
y:=3;
z:=x-y;
{вывод данных}
Выше мы x присвоили 8, а у присвоили значение 3. В итоге z у нас становится 5.

Операторы сложения, вычитания и умножения Умножение
Этот оператор умножает два числа друг на друга, обозначается, как "*" (также без кавычек):

Код: Выделить всё

{ввод данных}
x:=8;
y:=2;
z:=8*2;
{вывод данных}
Здесь переменная z в следствии умножения приобретёт значение 16.
Операторы деления
Операторов деления - три, и все они работают по разному и соответственно выполняют разные действия.

Простое деление
Простое деление выполняется с помощью оператора вида "/" (без кавычек), он делит одно число на другое. Данный оператор работает только с типом чисел real, о котором я писал в прошлом уроке.

Код: Выделить всё

{ввод данных}
x:=22;
y:=5;
x:=x/y;
{вывод данных}
В примере мы x присвоили 4,4. В следствии деления 22(x) на 5(y).
б)Целочисленное деление
Данное действие делит число только на цело, при таком способе деления невозможно получить десятичную или периодическую дробь. В программе пишется, как "div" (без кавычек). Данный оператор работает только с типом integer.

Код: Выделить всё

{ввод данных}
x:=22;
y:=5;
x:=xdivy;
{вывод данных}
В данном примере z будет равно 4, а не 4,4, как при обычном делении.

Получение остатка
Данный способ позволяет получить не само число, которое должно получится, а его остаток. Допустим при делении 22 на 5 мы получим 2, при этом способе деления. В программе обозначается, как "mod" без кавычек:

Код: Выделить всё

{ввод данных}
x:=48 mod 5;
{вывод данных}
Простейший калькулятор.
Давайте попробуем написать простейший калькулятор, который выполняет с нашими двумя числами все действия, которые мы сегодня выучили, сразу.

program calc; //вводим название программы

Код: Выделить всё

var a, b, sum, raz, pro, c: integer; del: real; //вводим переменные
begin //начинаем программу
  readln (a, b); // вводим в программу два числа
  sum:=a+b; // складываем числа
  raz:= a-b; // вычитаем
  pro:=a*b; // умножаем
  del:=a/b; // выполняем простое деление
  c:=a div b; //делаем целочисленное деление
  a:= a mod b; // находим остаток, при этом меняем значение a
  writeln ('сумма - ', sum); // выводим на экран сумму
  writeln ('разность - ', raz); // выводим на экран разность
  writeln ('произведение - ', pro); // выводим на экран произведение
  writeln ('простое деление - ', del); // выводим на экран обычное деление
  writeln ('целочисленное деление - ', c); // выводим на экран результат целочисленного деления
  writeln ('остаток - ', a); // выводим на экран остаток
end. //заканчиваем программу      

digger

Re: Уроки Pascal ABC

#4

Сообщение digger » Пт дек 14, 2012 2:03 am

Уроки Pascal ABC - Урок №3
Сегодня предлагаю рассмотреть операторы квадрата, корня и модуля.
1. Оператор квадрата
Этот оператор возводит в квадрат заданное число или переменную. Выглядит, как "sqr" (без кавычек). В программе пишется как sqr(a), где a - любая переменная или число.

Код: Выделить всё

var a, c:integer;
begin
  writeln ('Введите число');
  readln (a);
  c:=sqr(a);
  writeln ('Квадрат равен ',c);
end.
2. Оператор корня
Этот оператор находит корень из переменной или числа. Выглядит, как "sqrt" , (без кавычек). В программе пишется как sqrt(a), где a - любая переменная или число.

Код: Выделить всё

var a, c:real;
begin
  writeln ('Введите число');
  readln (a);
  c:=sqrt(a);
  writeln ('Корень равен ',c);
end.
3. Оператор модуля
Данный оператор переводит число из обычного в число по модулю, то есть меняет знак этого числа на всегда положительный. Обозначается, как "abs" без кавычек, в программе пишется, как abs(a), где a - любое число или переменная.

Код: Выделить всё

var a, c:real;
begin
  writeln ('Введите число');
  readln (a);
  c:=abs(a);
  writeln ('Модуль равен ',c);
end.

digger

Re: Уроки Pascal ABC

#5

Сообщение digger » Вс дек 16, 2012 1:07 am

Уроки Pascal ABC - Урок №4
Сегодня мы будем рассматривать оператор условия. Он работает по принципу: Если (условие), то (команда 1), иначе (команда 2).
Слово если выполняет команда IF, слово тогда - then, а иначе - else. На деле этот цикл выглядит так:

Код: Выделить всё

//////////////////////////////////////////////////////////////////////////////////////////////////// 
Program sravnenie; // Название программы.
var a,b,c,d: integer; // Вводим переменные.
begin // Начало программы.
readln(a); // Ввести значение a.
readln(c); // Ввести значение c.
if a < с then // Если а меньше с, то
b:=с // b будет равно с.
writeln(b); // Вывести значенние b на экран.
else a:=d; // В противном случае а равно d.
writeln(d); // Вывести значенние d на экран.
end. // Конец программы.
////////////////////////////////////////////////////////////////////////////////////////////////////   

digger

Re: Уроки Pascal ABC

#6

Сообщение digger » Вт дек 18, 2012 12:12 pm

Немного потренируемся
Раньше мы создавали калькулятор без возможности выбора действий, на основе изученных в последнем уроке операторов условий (if, then и else), мы можем составить калькулятор с выбором действий (свой первый калькулятор я составлял сам и ушло на него у меня 2 часа).
Исходник калькулятора для паскаля, который умеет:
- складывать;
- вычитать;
- умножать;
- находить корень;
- находить квадрат;
- делить в обычном и привычном для нас виде;
- делить в целых числах
- делить с остатком.
Использованы операторы sqrt, sqr, mod и div, +, -, /, *.

Код: Выделить всё

Program calc2;
var a, b, sum, raz, pro, c, n: integer; // Задаём переменные, их типы
del: real;

begin
  writeln (' Введите требуемое действие:' ); // Диалог с пользователем
  writeln (' 1 - сложение, 2 - вычитание, 3 - умножение, 4 - простое деление, 5 - деление с остатком, 6 - квадрат, 7 - кв. корень');  
  readln (n); // считывание действия
  writeln ('Введите числа для операции, если корень или квадрат, то второе число - любое');
  readln (a, b); // считываем два числа
    if n = 1 then begin // Если n = 1 (сложение), то начало д.
    sum:=a+b; // складываем числа
    writeln ('сумма - ', sum); // выводим сумму
    end; //конец д.
          if n = 2 then begin // Если n = 2 ( вычитание), то начало д.
          raz:= a-b; //вычитаем
          writeln ('разность - ', raz); // выводим разность
          end; // конец д.
                if n = 3 then begin // Если n = 3 (умножение), то начало д.
                pro:=a*b; // умножаем
                writeln ('произведение - ', pro); // выводим произведение
                end; // конец действия.
                {Дальше комментарии к оператору if отсутствуют, т.к. они почти теже}
                      if n = 4 then begin
                      del:=a/b; // выполняем простое деление
                      writeln ('простое деление - ', del); // выводим обычное деление
                      end;
                            if n = 5 then begin
                            c:=a div b; //делаем целочисленное деление
                            a:= a mod b; // находим остаток, при этом меняем значение a
                            writeln ('целочисленное деление - ', c); // выводим результат целочисленного деления
                            writeln ('остаток - ', a); // выводим остаток
                            end;
                               if n = 6 then begin 
                               pro:= sqr (a); // находим квадрат первого числа
                               writeln ('Квадрат a равен ', pro); // выводим квадрат перового числа 
                               end;
                                 if n = 7 then begin
                                  del:= sqrt (a); // Находим квадратный корень первого числа
                                  writeln ('Кв. корень равен ',del); // Выводим кв. корень
                                  end; //
end. //конец программы 

digger

Re: Уроки Pascal ABC

#7

Сообщение digger » Сб дек 22, 2012 1:47 am

Pascal ABC - Урок 5
Сегодня мы рассмотрим цикл в программировании и узнаем о трех типах циклов в языке программирования Pascal.
Циклы делятся на две группы - это циклы с условием и цикл с параметром (FOR). Циклы с условием делятся на циклы с предусловием (WHILE) и постусловием (REPEAT). То есть цикл с параметром задает параметр (условие выполнения цикла) сразу, цикл с предусловием проверяет работу цикла в начале, с постусловием - в конце.
Цикл позволяет зациклить программу, а точнее её часть до выполнения нужного действия или получения требуемого результата.
В следующем уроке мы разберём каждый из операторов цикла по отдельности.

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

digger

Re: Уроки Pascal ABC

#8

Сообщение digger » Чт дек 27, 2012 1:46 am

Pascal ABC - Урок 6
Мы будем разбирать цикл while с предусловием.
1. Цикл с параметром в Паскале - FOR
Цикл FOR задает определённое условие по которому программа будет работать определённое количество раз, допустим нам нужно 5 (или n) раз зациклить программу, это легко сделать с помощью данного цикла. У цикла FOR есть характерная черта - счетчик который обычно обозначается буквой i или j.
Внешний вид цикла с параметром в паскале:

Код: Выделить всё

for i:= 1 to n do // присваиваем i сначала одному, потом двум, трем, ..., n 
После 1-го прохода переменной i присваиваем 1, после второго присваиваем 2 и так до тех пор, пока не дойдем до n. to - это до .. в порядке возрастания, также есть downto - до .. в порядке убывания.
2. Цикл с предусловием в Паскале - WHILE
Оператор цикла с предусловием выполняет действия заранее неизвестное число раз. Выход из цикла осуществляется, если какое-либо логическое выражение или его результат окажется ложным. Так как верность логического выражения проверяется в самом начале, то тело цикла может не выполнится ни одного разу.
Структура цикла с предусловием:

Код: Выделить всё

WHILE  <условие> DO
        begin
                <тело цикла>
        end; 
Порядок выполнения цикла:
- логическое выражение, истинность которого проверяется вначале выполнения циклического оператора;
- любые выполняемые операторы языка.
Пока условие истинно выполняется тело цикла. Как только условие становится ложно выполнение цикла прекращается.
Примечание: в прямоугольных блоках показано любое действие, которое выполняется в цикле или после него (шаг цикла), в овалах - начало или конец всей программы или её части. Главную роль в данной блок - схеме играет её центральная часть.
Пример:
Задача: вычислить сумму ряда 1+1.5+2+2.5+3+3.5+ .. + 30

Код: Выделить всё

program example-while;
var
   sum:real;
   n:real;
BEGIN
   sum:=0;
   n:=1;
   while n < =30 do
        begin
           sum:=sum+n;
           n:=n+0.5;
        end;
   writeln('Сумма равна: ',sum);
END. 
3. Цикл с постусловием - Repeat - until.
Этот оператор аналогичен оператору цикла с предусловием, но отличается тем, что проверка условия производится после выполнения тела (действий) цикла. Это обеспечивает его выполнение хотя бы один раз в отличие от ранее разобранных циклов.
Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, то есть можно выполнять несколько действий, поэтому служебные слова Begin и End не нужны.
Последовательность операторов, входящих в тело цикла выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом Until. Если условие не соблюдается, тогда цикл завершается. В противном случае - тело цикла повторяется ещё раз, после чего снова проверяется соблюдение условия.
Формат записи, структура цикла:

Код: Выделить всё

REPEAT
<тело цикла>
UNTIL  <условие>; 
Пример:

Код: Выделить всё

Program test2;
Var b:Real;
Begin
b:=100;
Repeat b:=b/2;
Until b<10;
Writeln(b:0:2);
End.

digger

Re: Уроки Pascal ABC

#9

Сообщение digger » Чт янв 10, 2013 9:43 pm

Pascal ABC - Урок 7
Сегодня мы узнаем о понятии "Подпрограмма" в Паскаль, узнаем о её двух видах, познакомимся со способом задания параметров.
Подпрограмма - специальным образом оформленный блок программы, для дальнейшего его многократного использования в её теле.
Подпрограммы бывают двух видов:
1) Функции
2) Процедуры
Функция - это подпрограмма, которая возвращает какое-либо значение
Процедура - это подпрограмма, которая сразу изменяет значения и выполняет операции с числами, операторами и т.д.
У функций и процедур существуют параметры (переменные, которые передают какое - либо значение). Они тоже бывают двух видов:
1) Формальные - те, которые находятся в описании подпрограммы
2) Фактические - те, которые передаются из основной программы в функцию или процедуру
Также у подпрограммы существую переменные. с которыми она в дальнейшем работает. Они делятся опять же на два типа:
1) Глобальные переменные, то есть действующие во всей программе
2) Локальные - те, которые действуют только в процедуре или функции
В следующем уроке мы конкретно рассмотрим процедуры и функции.

digger

Re: Уроки Pascal ABC

#10

Сообщение digger » Сб янв 19, 2013 12:13 am

Pascal ABC - Урок 8
В прошлом уроке мы разобрали общее понятие подпрограммы в Паскале, сегодня лучше познакомимся с подпрограммами типа Функции. Узнаем о том, как она вызывается в основной части, как описывается, как выглядит и т.п. Подробнее дальше.
Функции - подпрограммы, которые возвращают значение, то есть не изменяют переменные в основной программе, а выполняет действие, которое в дальнейшем можно использовать многократно.
Предлагаю рассмотреть структуру функции на примере:

Код: Выделить всё

Function Prim(a, b, c:integer):integer; //Задание переменных в функцию из программы
var M:integer; //Описание локальной/ных переменных 
begin
A:=B+C; //Складывание чисел
M:=A/B; //Присваивание локальной переменной значение А/В
A:=A*C*B*M; //Перемножение
Prim:=A; //Возвращение значения
end; //Конец функции 
Данная функция выполняет простые операции с числами, в предпоследней строчке мы видим, как происходит возвращение значения. Передаваться значения могут как по ссылке, так и по значению.
Как вызвать функцию в программе?
Для того, чтобы вызвать функцию, мы должны либо присвоить её значение какой-либо переменной, либо совершить с ней какую-то операцию, либо вывести с помощью write/writeln. Вызывается она следующим образом: (переменные, которые требуется передать в функцию);
Пример вызова для нашей вышеописанной функции:

Код: Выделить всё

k:= Prim(a, b, c); // Присваивание значения функции переменной, где k-любая переменная, описанная в программе
k:=Prim (a,b,c)+365 // Совершение операции с функцией, к значению функции прибавляем 365
write (Prim(a,b,c)); // Вывод значения функции 

Ответить Пред. темаСлед. тема

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей