..

Сайт города Попасная.
 

 

 

Интернет издания:

ПОПАСНЯНСКАЯ ПРАВДА

 



 

 

 

 

1. ВВЕДЕНИЕ

1.1. Первая программа

Начнем с программы, которая вычисляет значение суммы двух целых чисел, назовем их а и b, и выводит полученный результат на экран.

Программа 1.1.

Var a,b,c: Integer;
Begin
a:=5;
b:=15;
c:=a+b;
Write(c);
End.

Выполняемая часть программы начинается с зарезервированного (служебного) слова Begin. Сначала переменной а присваиваем значение 5, а переменной b - значение 15. Программа складывает эти числа и записывает сумму в переменную с. Если в окне редактирования системы TurboPascal ввести этот текст и дать команду выполнить программу (Ctrl+F9), на экран будет выведено число 20. Чтобы его увидеть, надо подать команду показать окно DOS (Alt+F5). Для возврата в окно редактирования достаточно нажать любую клавишу. В приведенной программе а, b, и с называются именами или идентификаторами переменных. Каждой из переменных соответствует область памяти, в которую записывается одно число. Однако использовать в программе адреса памяти не только неудобно, но и, по ряду причин, невозможно. Поэтому вместо адресов введены их условные обозначения, которые дает программист - имена переменных. Мы назвали переменные первыми буквами латинского алфавита а, b, и с. Самая первая строка программы 1.1 предназначена для того, чтобы объявить имена используемых переменных. Она начинается с зарезервированного слова Var, которое является сокращением английского слова Variable, то есть переменная. Непосредственно за ним, после пробела, перечисляются имена использующихся в программе переменных. Они отделяются друг от друга запятыми. За последним именем, после двоеточия, указывается идентификатор типа, к которому относятся переменные. В приведенной программе все переменные отнесены к стандартному целому типу Integer и помещены в один список. Переменные этого типа могут содержать только целые числа в диапазоне от -32768 до +32767. Для хранения каждого числа в памяти отводится по 2 байта. Вторая строка программы содержит зарезервированное слово Begin. С него начинается часть программы, называемая разделом операторов, которая содержит операторы, выполняющие действия над переменными. В следующих двух строках присваиваются значения переменным а и b. Сначала в область памяти, связанную с переменной а, записывается число 5, а затем в область памяти, связанную с переменной b - число 15. После этого числа, содержащиеся в переменных а и b, складываются. Полученный результат записывается в область памяти, связанную с переменной с. Далее, для сокращения, мы будем творить., что число записывается в переменную. Предпоследняя строка программы содержит оператор, выводящий значение переменной, имя которой указано в круглых скобках после слова Write, на экран монитора. Поскольку в переменную с записан результат сложения переменных а и b, на экран будет выведено число 20. Последняя строка программы содержит зарезервированное слово End, завершающее раздел операторов, следующая за ним точке - признак окончания программы. Так должна заканчиваться любая программа. Программы, которые мы рассмотрим дальше, будут реализовывать более сложные алгоритмы, однако общая структура у них будет такая же. Сначала объявляются переменные, а затем записываются операторы. Часть программы, в которой объявляются переменные, называется разделом описаний. Операторы располагаются в разделе операторов. Этот раздел начинается с зарезервированного слова Begin и заканчивается зарезервированным словом End. Следующая за окончанием раздела операторов точка является признаком окончания программы. Каждый оператор в разделе операторов и каждая группа переменных в разделе описания заканчиваются символом «точка с запятой». Операторы можно размещать друг за другом в единой строке, но для удобства восприятия текста программы рекомендуется каждый оператор помещать в отдельной строке.

Задание:
Составьте программу, вычисляющую сумму и разность двух чисел.
(Вычитание выполняется с помощью операции "-".)

1.2. Имена переменных

В программе 1.1. для хранения целых чисел использовались переменные с именами a, b и с. Эти имена составлены в соответствии с правилами, принятыми в языке Pascal. Имена (идентификаторы) переменных могут состоять из прописных и строчных букв латинского алфавита А .. Z, а .. z, цифр 0 .. 9 и знака подчеркивания «_». Начинаться идентификатор может с любого из этих символов, кроме цифры. Цифры не могут занимать первую позицию в идентификаторе. Длина идентификатора, то есть число символов, из которых он состоит, не ограничивается, однако учитываются только первые 63 символа. Поэтому идентификаторы, у которых первые 63 символа не отличаются, будут считаться одинаковыми Любые другие символы в идентификаторе не допускаются. Все следующие идентификаторы: S, a1, stroke, _st1, Mas_205, _11 - написаны правильно. Идентификаторы elem 5, 1st, Numbtr#4, Mas.1, элемент1 – СОСТАВЛЕНЫ НЕ ВЕРНО. Некоторые имена используются для записи операторов и формирования структуры программы. Они образуют группу зарезервированных (служебных) слов. В программе 1.1. такими словами являются Var, Begin и End. Служебные слова нельзя использовать в качестве идентификаторов. При написании программы необходимо учитывать, что прописные и строчные буквы в идентификаторах и служебных словах не различаются. Таким образом, идентификаторы first_nmb, First_nmb и FIRST_nmb рассматриваются как имена одной и той же переменной, a BeGiN и Begin - как одно и то же служебное слово. Поэтому следующая программа написана правильно и выполняет те же действия, что и программа 1.1. Различие состоит лишь в том, что в программе 1.2 использованы другие идентификаторы, и в разных ее местах они написаны по-разному.

Программа 1.2.

VAR First_NMB,sec_NMB,rESULT: INTeger;
begin
FiRst_NmB:=5;
seC_NMb:=15;
RESult:=FIRST_nmb+SEC_nmb;
WRITE('Сумма= ', RESULT);
END.

Хотя программа 1.2 и проста, разбираться в ней сложнее, чем в приведенной ниже программе 1.3, в которой все имена написаны в одном стиле. Соблюдать единый стиль идентификаторов не обязательно, однако это очень упрощает составление и отладку программы. Написанный между символами «апостроф» текст, в данном случае «Сумма=», выводится на экран перед значением переменной Result, что удобно для понимания смысла выведенного значения. Все элементы списка вывода, количество которых не регламентируется, разделяются запятыми и помещаются в круглые скобки.

Программа 1.3.

Var First_Nmb,Sec_Nmn,Result: Integer; ,
Begin
First_Nmb:=5;
Sec_Nmb:=15;
Result:=First_Nmb+Sec_Nmb;
Write('Сумма= ', Result); End.

Задание:

Найдите ошибки в указанных идентификаторах переменных: Раrаm(1), сумма, 1___, a*b.

1.3. Ввод и вывод информации в программе

Программа 1.1 выводила на экран полученный результат с помощью стандартной процедуры Write. Ее можно использовать и для того, чтобы вывести необходимые пояснения, например "Сумма = " Для этого надо лишь добавить к списку параметров процедуры необходимый текст, заключенный в апострофы, например Write('CyMMa = ',с). Процедура вывода Write выводит на экран значения всех перечисленных в нем параметров, начиная с текущего положения курсора Список вывода - перечень параметров, отделенных друг от друга запятыми, - указывается в круглых скобках. В списке вывода программ 1.2 и 1.3 указаны два параметра: первый - заключенная в апострофы строка "Сумма = ", а второй - имя переменной с. Значением первого параметра является заключенная в апострофы последовательность символов, которая и будет выведена на экран. Значением второго параметра, то есть переменной с, является число, записанное в область памяти, связанную с этой переменной. В нашем случае это 20. Поэтому вслед за надписью "Сумма=" на экран будет выведено число 20. В языке Pascal используется две процедуры вывода - Write и Writeln. Они отличаются тем, что после выполнения процедуры Writeln курсор переместится в начало следующей строки, а после выполнения процедуры Write останется в позиции экрана, следующей за последним выведенным символом. Поэтому информация, выводимая двумя процедурами Write, например:
Write('Ввод'); Write('Вывод');
размещается в одной строке:
ВводВывод
Если те же слова вывести с помощью процедур Writeln, то они разместятся на отдельных строках:
Ввод
Вывод

Недостатком программ 1.1 - 1.3, и весьма существенным, является то, что складываемые числа определяются в самой программе. Чтобы иметь возможность выполнять операции над произвольными числами, не внося изменений в текст программы, надо обеспечить ввод чисел с клавиатуры ПК. Для записи вводимых с клавиатуры чисел в переменные используется стандартная процедура ввода Readln. В список ввода (параметры) этой процедуры может включать только идентификаторы переменных, значения для которых необходимо ввести с клавиатуры. Таким образом, ввести значения переменных а и b можно с помощью оператора, который выглядит так: Readln(a,b). После того как мы введем с клавиатуры два целых числа, первое будет записано в переменную а, а второе в переменную b. Вводить числа можно следующим образом: вводится первое число, нажимается клавиша Enter, затем вводится второе число и опять нажимается клавиша Enter. После ввода первого числа в данном случае можно нажать клавишу "Пробел" вместо клавиши Enter. Если в программах 1.1 - 1.3 заменить первые два оператора на один оператор, в котором используется приведенная выше процедура ввода, то с ее помощью можно складывать различные числа. Однако при вводе надо помнить о том, сколько чисел надо ввести. Очень удобно непосредственно перед вводом выводить на экран сообщение, поясняющее пользователю программы, какую информацию необходимо ввести. Это можно сделать с помощью процедуры вывода, помещенной в программу непосредственно перед процедурой ввода. Ниже приведена программа 1.4, предназначенная для ввода двух целых чисел, их сложения и вывода на экран результата. Перед вводом на экран будет выведено сообщение о том, что надо ввести два числа.

Программа 1.4.

Var a,b,c: Integer; Begin
writeln('Введите два числа1);
Readln(a,b)I
с:=а+Ь;
Writeln('Сумма = ',с); End.

Допустим, мы хотим найти сумму чисел 5 и -8. Тогда в процессе выполнения программы на экран будут выведены следующие сообщения:
Введите два числа
5
-8
Сумма = -3

В приведенных примерах в каждой строке программы записывался только один оператор, обязательно заканчивающийся символом «;». В языке Pascal допускается записывать в одной строке сколько угодно операторов, однако это рекомендуется делать в исключительных случаях, поскольку усложняется понимание структуры и алгоритма программы.

Задания:

1. Составьте программу, выводящую на экран фрагмент текста, например, название этого раздела.
2. Получите и выведите на экран значения суммы и произведения двух целых чисел. Числа-операнды, над которыми выполняются операции, вводятся с клавиатуры.

Вариант решения: воспользуемся программой 1.4, которая подробно описана в этом разделе. Для того чтобы создать программу в соответствии с требованиями задания, можно дополнить уже имеющуюся оператором, выполняющим операцию умножения. Для решения поставленного задания программа 1.4 годится целиком. Заметим, что переменные а и b, содержащие введенные числа, не изменяются после того, как получена и выведена на экран их сумма. Поэтому мы их сможем использовать снова. После того как найденная сумма выведена на экран, она уже больше не нужна. Поэтому в переменную с теперь можно записать произведение. Поместим строку с:=а*Ь; в конце программы, перед End. Произведение чисел а и b найдено. Для того чтобы вывести его на экран, можно воспользоваться последним оператором программы 1.4, скопировав его и поместив после оператора, вычисляющего произведение. Изменим выводимый текст на «Произведение =». Программа получена:

Var a,b,c:Integer;
Begin
writeln('Введите два числа');
Readln(a,b);
c:=a+b;
Writeln('Сумма = ',c);
c:=a*b;
Writeln('Произведение = ', с) ; End.

3. Выведите значения суммы, разности и произведения двух целых чисел (умножение выполняется с помощью операции «*»). Значения операндов задаются в тексте программы.

Ниже приведен вариант решения для целых чисел 10 и 2. Обратите внимание, что в программе не использована специальная переменная для хранения результата операции. Это возможно потому, что в качестве параметра процедуры вывода можно использовать не только переменные и текст (более правильно будет сказать текстовые константы), но и арифметические выражения.

Var a,b: Integer; Begin
а:=1О;
b:=2;
Writeln('Сумма = ',a+b);
Writeln('Разность = ',a-b);
Writeln('Произведение = ‘,a*b); End.

4. Составьте программу, обеспечивающую ввод двух чисел и выводящую их сумму, разность и произведение.
5. Введите 3 числа, выведите все возможные суммы и произведения пар введенных чисел.

 
Popasnaya.com.ua Web-Source 2003 - 2004 / babelyuk jr / All Rights Reserved