русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ОПЕРАТОР ПРИСВАИВАНИЯ


Дата добавления: 2013-12-23; просмотров: 2700; Нарушение авторских прав


Writeln;

True

True

Readln;

END.

BEGIN

END.

BEGIN

End;

End;

РАЗДЕЛ ОПИСАНИЯ ПРОЦЕДУР И ФУНКЦИЙ

Интервальный тип

 

Интервальный тип позволяет задавать две константы, определяющие границы диапазона значений для данной переменной. Для каждой операции с переменной интервального типа автоматически выполняется проверка: остается ли значение переменной внутри установленного для нее диапазона. Обе константы должны принадлежать одному из стандартных типов (тип real недопустим). Значение первой константы обязательно должно быть меньше значения второй.

Объявление интервальноготипа происходит следующим образом:

Формат:

type <имя типа> = <константа1>..< константа2>;

var <имя переменной > : <имя типа>;

 

Пример:

type Chahmat = ‘A’..’H’;

varIgra: Chahmat;

Благодаря диапазонным типам появляется возможность экономить память и проводить во время выполнения программы контроль присваиваний.

 

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

Именно в разделе описания процедур и функций размещаются тела подпрограмм.

Подпрограмма – программная единица (часть программы), имеющая имя, по которому она может быть вызвана из других частей программы.



 

В языке Паскаль подпрограммы делятся на процедуры и функции, которые бывают стандартными и определенными пользователем. Стандартные процедуры и функции являются частью языка и вызываются без предварительного описания. Описание процедур и функций пользователя выполняется в специальном разделе программы. В общем случае подпрограмма имеет ту же структуру, что и программа.

Процедурой называется часть программы, предназначенная для решения определенной задачи или подзадачи. Для описания процедуры используется зарезервированное слово procedure.

Объявление процедуры:

procedure <имя процедуры > {<параметры>};

<разделы описаний>

<раздел операторов>

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

Например: Procedure Summa (a, b: real; n: integer);

 

Подпрограмма-функция предназначена для вычисления какого-либо параметра. Структура функции такая же как и у процедуры. Для описания функции используется зарезервированное словоfunction.

Объявление функции:

function <имя функции> {<параметры>}:<тип результата>;

<разделы описаний>

<раздел операторов>

Например: Function Summa (a, b: real): real;

 

2.5.4 Блок операторов

 

В программе на Паскале этот блок является самым основным, т.к. именно здесь с предварительно описанными величинами выполняются действия, позволяющие получить результат, ради которого составлялась вся программа. Раздел операторов начинается зарезервированным словом BEGIN затем следуют операторы, отделенные друг от друга точкой с запятой завершает раздел зарезервированное слово ENDсточкой. Слова BEGIN и END – аналог открывающей и закрывающей скобок в арифметических выражениях.

Основной блок программы состоит из последовательности операторов, причем работа программы начинается именно с первого оператора основного блока программы. Операторы выполняются строго последовательно в том порядке, в котором они записаны в соответствии с синтаксисом и правилами пунктуации.

Формат:

<оператор 1>;

<оператор 2>;

…...…………;

<оператор n>;

Необходимо обратить внимание на наличие точки после служебного слова END.После последнего оператора END всегда ставится точка, что означает окончание текста программы.

 

КОММЕНТАРИИ

 

В программе на Паскале также может быть использован комментарий — выделенная в фигурные скобки информация для пояснения, которая не исполняется программой.

Комментарии можно записать в любом месте программы, где разрешен пробел. Кроме фигурных скобок { }, могут использоваться также пары символов (* и *) слева и справа от комментария соответственно.

Текст комментария может содержать любые комбинации латинских и русских букв, цифр и других символов алфавита. Ограничений на длину нет, он может занимать несколько строк. В ограничителях (* и *) пробелы запрещены между звездочкой и скобкой. Ограничители { }, (* *) удобно использовать при отладке программы, т.к. с их помощью можно временно исключить выполнение какой-либо части программы.

Программы с подробными пояснительными комментариями значительно легче отладить, так как они содержат дополнительную информацию для работы с программой.

 

Рассмотрев основные блоки программы на языке Паскаль, структуру программыможно представить в следующем виде:

Program имя программы;

uses список модулей;

label метки;

const объявление констант;

type определение типов данных;

var объявление переменных;

procedure имя;

function имя;

тело программы (операторы)

 

Контрольные вопросы

 

1. Укажите буквы, символы, составные символы:

Y, !, ^, 1, *, <=, S, д, +

2. Что в списке можно рассматривать как идентификаторы:

Summa, 25_dney, GOD_R, 453, Курс, Nomer.GR

3. Сколько в списке зарезервированных слов:

begin, read, cos, then, summa, произведение

4. В каких случаях надо использовать переменные:

- если в программе используются выражения?

- если в вычислениях какой-либо операнд постоянно меняет свое значение?

- если в программе используется какое-то число?

5. Для чего используется указание типа данных величины?

6. Какие типы данных относятся к скалярным?

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

8. Какие результаты выполнения выражений неправильны:

12/3=4 ?

12 div 3 = 3 ?

15 +21 mod 7 = 18 ?

2 div 3 =1 ?

9. Какие стандартные функции определены для целых чисел?

10. Если необходимы вещественные числа из диапазона [a, b], каким образом применить функцию random?

11. Чем отличаются вещественные числа от целых?

12. Какие из следующих соотношений неправильны:

6.17Е+03 =617 ?

0.12Е05=12000 ?

14Е-02=0.14 ?

1200Е+03 = 12000.0 ?

13. Где применяется булевский тип данных?

14. Чему равен результат выражения:

61>91

10>-7

208>175

15. Какой тип подходит для данного диапазона :

6 . . 90

-40 . . 45

10 . . 65000

100,0 . . 10000,0

16. Определить тип выражения :

1+0.0

sqrt(16)

20/4

sin(0)

sqr(4)

trunc(-3.14)

17. Если y – вещественная переменная, а n – целая, то какие из следующих операторов присваивания правильны, а какие – нет:

y:=n+1;

n:=y-1;

n:=4.0;

y:=trunc(y);

y:= n div 2;

y:= y div 2;

n:= n/2;

n:= sqr(sqrt(n));

18. Какие результаты выполнения выражения неправильны :

Not (22<12) = False ?

(12<45) or (24>100)= True ?

(23<17) and (40>213) = True ?

47>>14 = True ?

19. Что такое выражение, операнд, операция ? Какие операции в языке Паскаль вы знаете?

20. Чем отличаются следующие выражения и каким будет результат их выполнения:

10+6*2/2

(10+6)*2/2

(10+6*2)/2

10+6*(2/2)

21. Какая структура программы правильна:

Program MyProg; Program MyFirst;
begin begin
Writeln(‘ Привет ‘); X:=Y+100;
end. end.

22. Какой из перечисленных разделов обязателен в программе:

раздел var ?

раздел const ?

раздел type ?

раздел begin … end ?

раздел program ?

23. Какие из комментариев неправильны :

{Программа для вычисления}

(* Это тоже комментарий *)

{{ Комментарий в комментарии }}

(* { Другой вариант }*)

{ (* Следующий вариант *) }

(* (* Возможный вариант *) *)

24. Для чего используется слово uses ?

1) такого слова нет в языке Паскаль

2) это пользовательский идентификатор

3) с его помощью подключают стандартные модули

4) это стандартная константа

5) это описание процедуры

25. В разделе процедур и функций описываются :

1) только стандартные процедуры

2) только пользовательские процедуры

3) и стандартные, и пользовательские

4) такого раздела в программе не может быть

26. Наберите и откомпилируйте простейшую программу :

Program MyProg;

begin

Writeln (5*6);

Writeln(‘ Привет ‘);

end.

Каков будет результат ее выполнения ?

27. Где ошибки (их три) в следующей программе ?

Program Ошибки;

begin

Summa := 6+8;

end;

28. Где ошибки (их три) в следующей программе ?

Program Ошибки1;

{{ Программа с ошибками }}

begin

var X: integer;

X:= 6+8;

Write (X);

end.

29. Где ошибка в следующей программе ?

Program Oshibka;

uses ;

{(* Программа с ошибкой *)}

begin

end.

30. Где ошибка в следующей программе ?

Program Summa;

var X, Y, Сумма : integer;

begin

Writeln(‘ Введите Х ‘);

Readln (X);

Writeln(‘ Введите Y ‘);

Readln (Y);

Сумма:=Х+Y;

Writeln(Сумма);

end.

 


 

ГЛАВА 3

 

Операторы языка ПАСКАЛЬ

 

 

3.1 ВВОД-ВЫВОД ДАННЫХ

 

Часто первыми действиями, выполняемыми программой, являются действия по вводу и выводу данных.

Ввод данных – передача информации от внешнего носителя в оперативную память для обработки.

 

Основные устройства ввода - клавиатура и дисковый файл. Программа получает входные данные из файла Input и помещает результат обработки в файл Output. Стандартно файлу Input назначена клавиатура, файлу Output – экран терминала.

Для ввода и вывода данных в языке Паскаль предусмотрены следующие процедуры ввода-вывода: Read, Readln, Write, Writeln. Часто эти процедуры называют операторами.

 

 

3.1.1 Процедура чтения Read

 

Обеспечивает ввод числовых данных, символов, строк для их последующей обработки.

Формат:

Read (а1, а2, а3, …,аn) ;

Readln (а1, а2, а3, …,аn) ;

где а1, а2, а3, …,аn – переменные допустимых типов данных integer, real, char, string.

Третий оператор эквивалентен первым двум, выполненным последовательно. Значения набираются на клавиатуре через пробел и высвечиваются на экране. После набора данных для одной процедуры нажимается Enter.

Значения переменных должны вводиться в строгом соответствии с синтаксисом языка Паскаль. Если элемент ввода типа integer, а набирается с клавиатуры значение типа char – возникает ошибка ввода-вывода.

Пример:

Var x : integer;

y : real;

z : boolean;

.....

Read (x, y, z) ;

 

С клавиатуры можно ввести

 

Типовые ошибки при вводе:

3.2 -1.8 true {В качестве х введено действительное значение}

х = 32 {В качестве х введено символьное значение}

32 -1,8 true {В качестве у введено символьное значение}

В случае несоответствия типа введенных данных типу переменной, значение которой вводится с клавиатуры, программа завершает работу и на экране выводится сообщение об ошибке ввода-вывода. Если программа запущена из среды Turbo Pascal – Error 106 Invalid numeric format (Неверный числовой формат).

 

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

Например,

Read (x, y);

Read (z);

С клавиатуры можно ввести данные через пробел на одной строке

 

Процедура чтения Readln аналогична Read. Единственное отличие состоит в том, что если в программе несколько процедур Readln, то после считывания значений переменных для одной процедуры Readln, данные для следующей процедуры будут считываться с начала новой строки.

Например,

Readln(x, y);

Read(z);

С клавиатуры ввели данные через пробел на одной строке

32 -1.8 true{Значение переменной z считываться не будет}

 

Инструкция Readln при вводе с клавиатуры предпочтительней Read, т.к. полностью освобождает буфер клавиатуры – рабочую область памяти, в которой временно хранятся введенные с клавиатуры символы. Инструкция Read оставляет в буфере клавиатуры код клавиши Enter, которой завершает процесс.

Процедура Readln без переменных обычно записывается в конце программы и служит для создания паузы, которая длится до нажатия клавиши Enter. В противном случае по окончании программы окно с текстом программы закроет экран с полученным результатом.

 

 

3.1.2 Процедура записи Write

 

Вывод данных – передача информации после обработки из оперативной памяти на внешнее устройство (экран, принтер, файл на диске).

Обеспечивает вывод числовых данных, символов, строк и булевских значений.

Формат:

Write (а1, а2, а3, …,аn) ;

Writeln (а1, а2, а3, …,аn) ;

где а1, а2, а3, …,аn – выражение типа integer, byte, real, char, boolean.

Инструкции Write и Writeln предназначены для вывода констант различных типов, значений переменных или выражений. Число параметров – произвольное. Данные выводятся на экран.

Из констант наиболее часто выводятся строки текста (строковые константы заключаются в апострофы). Если в конструкции вывода записано выражение, оно сначала будет вычислено, а затем выполнен вывод полученного результата.

Процедура Writeln аналогична Write, отличие заключается в том, что после вывода последней переменной из списка, курсор автоматически переходит в начало новой строки. Инструкция Writeln без параметров переводит курсор в начало следующей строки, что позволяет, например, отделять результаты работы программы друг от друга пустыми строками.

 

ФОРМАТ ВЫВОДА

 

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

Write(y1:n:m, y2:n:m, …);

Writeln(y1:n:m, y2:n:m, …);

где y1, y2,…- выражение, переменная или константа;

n– определяет общую ширину поля вывода;

m – определяет место под дробную часть.

Если заданное n мало, при выводе ширина поля будет увеличена, если мало m – то производится округление.

Кроме того, в операторах вывода можно задавать количество пробелов. Для этого необходимо записать оператор вывода в виде:

Write (‘ ‘ : q);

гдеq — константа целого типа, указывающая число пробелов.

Примеры:

· x - целое число

х– выводится десятичное представление величины х, начиная с позиции расположения курсора

Значение x Выражение Результат
Write(x)
Write(x,x)

 

х : n – выводится десятичное представление величины х в крайние правые позиции поля шириной n

Значение x Выражение Результат
Write(x:5) _ _ 123
Write(x*х:7) _ _ _ _ _16

 

· R вещественное число

R – в поле шириной 16 символов выводится десятичное представление величины R в формате с плавающей точкой:

± #.# # # # # # # # # # E ± # #

Значение R Выражение Результат
123.432 Write(R) _ 1.2343200000Е+02
-0.25 Write(R) - 2.5000000000Е-01
Write(R/2) _ 1.0000000000Е+02

R : n– в крайние правые позиции поля шириной n символов выводится десятичное представление величины R в формате с плавающей точкой (минимальная длина поля вывода 8 символов для отрицательного значения и 7 символов для положительного значения R, после десятичной точки выводится по крайней мере одна цифра):

Значение R Выражение Результат
123.432 Write(R:12) 1.234320Е+02
-0.25 Write(R:9) -2.50Е-01

 

R : n: m– в крайние правые позиции поля шириной n символов выводится десятичное представление величины R в формате с фиксированной точкой, после десятичной точки выводится m цифр, представляющих дробную часть. Если m=0, ни десятичная точка, ни дробная часть не выводятся.

Значение R Выражение Результат
123.432 Write(R:8:4) 123.4320
-0.25 Write(R:7:1) _ _ _- 0.3
Write(R:3:0)

 

· Ch – выражение символьного типа

Ch – начиная с ткущей позиции курсора выводится значение Ch

Значение Ch Выражение Результат
‘123’ Write(Ch)
‘No’ Write(Ch) No
‘?!’ Write(Ch, Ch) ?!?!

 

Ch : n– в крайние правые позиции поля шириной n символов выводится значение Ch

Значение Ch Выражение Результат
‘123’ Write(Ch:5) _ _ 123
‘?!’ Write(Ch:3, Ch:5) _ ?! _ _ _?!

 

· S – выражение строкового типа

S– начиная с позиции расположения курсора выводится значение S

Значение S Выражение Результат
‘DAY NEDELY’ Write(S) DAY NEDELY
‘No’ Write(S, S) NoNo

 

S : n– в крайние правые позиции поля шириной n символов выводится значение S

Значение S Выражение Результат
‘DAY NEDELY’’ Write(S:12) _ _DAY NEDELY
‘No’ Write(S:3, S:5) _No _ _ _ No

· В – выражение логического типа

В – начиная с текущей позиции курсора значение В выводится True или False

Значение В Выражение Результат
True Write(В) True
False Write(В, not В) FalseTrue

В : n– в крайние правые позиции поля шириной n символов выводится результат True или False булевского выражения В

Значение В Выражение Результат
True Write(В:5) _ True
False Write(В:6, not В:5) _ False_ True  

 

Пример программы с использованием Write:

Var A: integer;

B, C, D: real;

begin

А:=2; В:=5.8;

Write(A:3,’ ’:2); Writeln(B:4:2);

C:=A+B;

D:=A*B;

Writeln;

Writeln(‘Сумма ‘, ‘ C=‘, C:3:1);

Writeln(‘Произведение ‘, ‘ D=‘, D);

end.

 

Результат выполнения:

_ _ 2_ _5.80

 

Сумма C=5.8

Произведение D=1.1600000000Е+01

 

3.2 ОПЕРАТОРЫ

 

Основная часть программы на языке Паскаль представляет собой последовательность операторов, разделенных точкой с запятой.

Оператором называется предложение языка программирования, задающее полное описание некоторого действия, которое необходимо выполнить.

 

Операторы языка Паскаль можно разделить на простые и структурные.

Операторы, не содержащие никаких других операторов, называются простыми:

· оператор присваивания

· оператор безусловного перехода

· оператор вызова процедуры

· пустой оператор

Структурные (сложные) – представляют собой конструкции, содержащие простые операторы.

 

3.2.1 Простые операторы

 

 

Оператор присваивания можно считать основным оператором языка Паскаль, т. к. именно в нем выполняются практически все действия по обработке данных.

Оператор присваивания используется для изменения значений переменных, в том числе и для вычислений по формулам — оператор предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, стоящей в левой части.

Формат:

идентификатор := выражение;

 

Знак := читается как "присвоить значение". Частным случаем выражения, стоящего в правой части, являются переменные и константы.

Примеры:

c := 12.34;

у := х;

х := х+1;

name := 'модель!';

Следует знать:

· Тип результата, полученного при вычислении выражения, находящегося в правой части инструкции присваивания, должен быть совместим по типу с переменной, которой он присваивается, для того чтобы исключить возможность какого-либо искажения при присваивании; при нарушении соответствия выводится сообщение об ошибке: Туре mismatch (Несоответствие типов).

 

Пример:

Var x: integer; у:real;

begin

……

х := у; {в правой части — действительное число, и его не разместить в ячейке из двух байтов, которая была определена для хранения значения целочисленной переменной х. В этом случае вещественную переменную у необходимо преобразовать к целому типу.}

Замечание: переменной вещественного типа можно присваивать значение целочисленного выражения.

 

· В языке Паскаль нельзя с помощью одного оператора присваивания присвоить нескольким переменным одно и то же значение.

Пример:

Var x: integer; у:real;

begin

х:=у:=0; {необходимо использовать два оператора: х:=0; у:=0;}



<== предыдущая лекция | следующая лекция ==>
Перечисляемый тип | ПУСТОЙ ОПЕРАТОР


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.017 сек.