Уроки Pascal ABC - Введение Паскаль (англ. Pascal) - это язык программирования, имеющий текстовую среду. Является основой многих языков программирования. Паскаль бывает полезен для начинающих. Преподаётся в школах и ВУЗах. Пример программы, написанной на паскале: Код: Program umnogenie; var a, b: integer; begin writeln ('Введите переменные '); readln (a, b); a:= a*b; writeln ('Результат ', a); end. Эта простая программка умножает число a на число b. Уроки Pascal ABC - Урок №1 Первые знания, операторы, структура. Сегодня мы начинаем уроки по изучению Pascal. В этом уроке мы обсудим структуру программы, написанной на pascal, основные операторы, типы переменных. Вся программа состоит из: 1) Описание переменных 2) Основной программы: а) Ввод данных, диалог с пользователем б) Основной блок - выполнение поставленных задач в) Вывод данных, диалог с пользователем В виде алгоритма это получается так: - Вводим переменные а и б которые являются численными (действительными целыми числами); - начало программы; - ввод данных; - работа программы; - вывод данных; - конец программы. А как это делается в программе? Код: 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." указывает, на завершение программы в конце всегда ставится точка. Уроки Pascal ABC - Урок №2 Сегодня я расскажу про основные операторы, с помощью которых можно написать вашу первую программу. 1)Оператор присваивания Без этого оператора мы не сможем обойтись дальше. Его функция - это присваивания значения переменной. Допустим x - это переменная, пусть она будет равна 2, в программе это будет выглядеть так: Код: {ввод данных} x:=2; {вывод данных} Я думаю, что Вы уже заметили, что на деле она выглядит, как двоеточие со знаком равно (:=). 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. 3)Операторы деления Операторов деления - три, и все они работают по разному и соответственно выполняют разные действия. а)Простое деление Простое деление выполняется с помощью оператора вида "/" (без кавычек), он делит одно число на другое. Данный оператор работает только с типом чисел real, о котором я писал в прошлом уроке. Код: {ввод данных} x:=22; y:=5; x:=x/y; {вывод данных} В примере мы x присвоили 4,4. В следствии деления 22(x) на 5(y). б)Целочисленное деление Данное действие делит число только на цело, при таком способе деления невозможно получить десятичную или периодическую дробь. В программе пишется, как "div" (без кавычек). Данный оператор работает только с типом integer. Код: {ввод данных} x:=22; y:=5; x:=x div y; {вывод данных} В данном примере 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. //заканчиваем программу Уроки 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. Уроки 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. // Конец программы. ////////////////////////////////////////////////////////////////////// Немного потренируемся Раньше мы создавали калькулятор без возможности выбора действий, на основе изученных в последнем уроке операторов условий (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. //конец программы 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. 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)); // Вывод значения функции