Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Характеристика и особенности языка 1 страница

Читайте также:
  1. 1 страница
  2. 1 страница
  3. 1 страница
  4. 1 страница
  5. 1 страница
  6. 1 страница
  7. 1 страница

Существует ряд объективных причин, обусловивших выдающийся успех языка Pascal. Среди них в первую очередь необходимо указать следующие:

· Язык в естественной и элегантной форме отразил важнейшие современные концепции технологии разработки программ: развитая система типов, ориентация на принципы структурного программирования, поддержка процесса пошаговой разработки.

· Благодаря своей компактности, концептуальной целостности и ортогональности понятий, а также удачному первоначальному описанию, предложенному автором языка, Pascal оказался весьма легок для изучения и освоения

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

· Pascal весьма технологичен для реализации практически для всех, в том числе и
нетрадиционных, машинных архитектур.

Язык Pascal стандартизован во многих странах. В 1983 году был принят международный стандарт (ISO 7185:1983).

Основные особенности языка Pascal

1) Pascal является традиционным алгоритмическим языком программирования, продолжающим линию Algol-60. Это означает, что программа на языке Pascal представляет собой специально организованную последовательность шагов по преобразованию данных, приводящую к решению некоторой задачи.

2) Язык Pascal содержит удобные средства для представления данных. Развитая система типов позволяет адекватно описывать данные, подлежащие обработке, и конструировать структуры данных произвольной сложности. Pascal является типизированным языком, что означает фиксацию типов переменных при их описании, а также строгий контроль преобразований типов и контроль доступа к данным в соответствии с их типом (как на этапе компиляции, так и при исполнении программ).

3) Набор операторов языка Pascal отражает принципы структурного программирования и позволяет записывать достаточно сложные алгоритмы в компактной и элегантной форме.

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

4) Синтаксис языка достаточно несложен. Программы записываются в свободном формате, что позволяет сделать их наглядными и удобными для изучения.

TURBO PASCAL

Язык Turbo Pascal - мощное расширение американского стандарта (ANSI Pascal), учитывающее архитектурные особенности операционной обстановки (MS-DOS) и снабженное внушительными по объему и разнообразию пакетами стандартных процедур.

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

Компилятор входного языка системы Turbo Pascal работает по однопроходной схеме, реализует функции редактирования связей, формируя на выходе готовый к исполнению объектный код. Компилятор может осуществлять широкий набор локальных оптимизаций (свертывание констант, исключение неиспользуемого кода и лишних данных, оптимизация операций и т.д.), что способствует высокой эффективности результирующих программ.

Система Turbo Pascal является интегрированной средой, включающей ряд компонент, в совокупности поддерживающих все виды работ по созданию программ. Система содержит универсальный текстовый редактор, компилятор входного языка, редактор связей и встроенный символьный отладчик. Многооконный интерфейс с развитой системой меню обеспечивает высокую производительность труда программиста.

III. Программирование на языках программирования высокого уровня

1. Структура программы в Паскале

Программа на языке Pascal состоит из разделов:

  Название программы Program <Имя программы>;
  раздел описания меток Label <описание меток>;
  раздел описания констант Const <описание констант>;
  раздел описания типов Туре <описание типов>;
  Раздел подключения модулей Uses <название модуля>;
  раздел описания переменных Var <описание переменных>;
  раздел описания процедур и функций Procedure (Function) <описание подпрограмм>;
  раздел операторов Begin
<раздел операторов>;
  Конец программы End.

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

2. Правила написания имен в Паскале

1. Все имена пишутся на латинице.

2. Длина имени может быть до 256 символов.

3. Имя нельзя начинать с цифры.

4. В именах нельзя использовать знаки пунктуации.

5. В именах вместо пробела используется нижнее подчеркивание _.

6. В именах можно использовать цифры.


3. Стандартные модули в Паскале

Turbo Pascal имеет восемь стандартных модулей. Зарезервированное слово uses дает возможность подключать к программе библиотечные модули.

Программные ресурсы, сосредоточенные в стандартных модулях, образуют мощные пакеты системных средств, которые обеспечивают высокую эффективность и широкий спектр применений системы Turbo Pascal.

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

· System

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

· Dos

Модуль Dos содержит средства доступа к операционной системе и по существу является программным представлени­ем системного интерфейса MS-DOS.

· Crt

Модуль Crt обеспечивает практически полный спектр возможностей для доступа к экрану дисплея в текстовом ре­жиме. Кроме того, в данный модуль включены средства чте­ния информации с клавиатуры (включая расширенные коды клавиш) и простейшего управления звуком.

В модуле Crt находится процедура ClrScr, которая используется для очистки экрана (подключается в теле программы).

· Printer

Модуль Printer содержит единственный интерфейсный злемент – переменную Lst стандартного типа text, системно связанную с логическим устройством PRN (то есть с печатающим устройством, если оно имеется в конфигурации). Использование этой переменной в стандартных процедурах Write и WriteLn приводит к выводу информации на печать.

· Overlay

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

· Graph

Модуль Graph объединяет многочисленные программные средства управления графическим режимом работы дисплея. Данный модуль обеспечивает использование всех возможностей наиболее распространенных типов дисплейных адаптеров CGA, EGA, VGA, Hercules и т.п. как для монохромных, так и для цветных дисплеев и позволяет создавать разнообразные и эффективные графические программы.

Модули Turbo3 и Graph3 обеспечивают совместимость с данной версией системы Turbo Pascal тех программ, которые были разработаны для ранней версии 3.0.

Пример

Program moduli;

Uses crt; {Подключение модуля crt}

var <описание переменных>;

begin

clrscr; {Процедура очистки экрана}

<инструкции>;

end.


4. Типы переменных в Паскале

Тип Диапазон Объем памяти
Целые типы
Shortint -128..127 8 бит
Integer -32768..32767 16 бит
Longint -2147483648..2147483647 32 бит
Byte 0..255 8 бит
Word 0..65535 16 бит
Логический тип
Boolean False, True 1 бит
Символьный тип
Char Символы из расширенного набора символов кода ASCII 1 байт
Вещественные типы
Real -1,7*1038..-2,9*10-39; 2,9*10-39..1,7*1038 6 байт
Single -3,4*1038..-1,5*10-45; 1,5*10-45..3,4*1038 7 байт
Double -1,7*10308..-5,0*10-324; 5,0*10-324..1,7*10308 8 байт
Extended -1,1*104932..-1,9*10-4951; 1,9*10-4951..1,1*104932 10 байт
Comp -263+1..263-1 8 байт

5. Операции в Паскале

a) Арифметические операции бывают унарными и бинарными. К унарным относится операция изменения знака.

В следующей таблице представлены бинарные арифметические операции Паскаля. А и В обозначают операнды, для типов величин использованы обозначения: I — целый, R — вещественный.

Выражение Типы операндов Тип рез-та Операция
А + В R, R R Сложение
  I,I I  
  I, R R, I R  
А - В R,R R Вычитание
  I,I I  
  1, R R, I R  
А * В R, R R Умножение
  I,I I  
  I, R R, I R  
А/В R, R R Вещественное
  I,I R деление
  I,R R, I R  
A div В I,I I Целое деление
A mod В I,I I Остаток от целого деления

b) Стандартные математические функции Паскаля представ­лены в следующей таблице:

I – integer – целый тип; R – real – вещественный тип.

Обращение Тип аргумента Тип рез-та Функция
abs (х) I, R I, R Модуль аргумента
arctan (х) I, R R Арктангенс(радианы)
cos (х) I, R R Косинус (х в радианах)
ехр(х) I, R R ех — экспонента
ln(x) 1, R R Натуральный логарифм
random   R Псевдослучайное число в интервале [0, 1 ]
random (х) I I Псевдослучайное число в интервале [0,х]
sin(x) I, R R Синус (х — в радианах)
sqr(x) I, R R Квадрат х
sqrt(x) 1, R R Корень квадратный

 

Старшинство операций

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

Порядок выполнения операций определяется их старшинством, или приорите­том. В следующей таблице приведены приоритеты операций. Первый уровень приоритетов является наивысшим, а четвертый — низшим.

Операция Приоритет
not Первый
*, /, div, mod, and, shl, shr Второй
+, -, or, xor Третий
-, o, <, >,<=, >=, in Четвертый

При определении порядка выполнения операций следует учитывать следующее:

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

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

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

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

c) Дополнительные функции в Паскале

· Inc (Dec)

Функции Inc и Dec используются для увеличения и уменьшения значения аргумента на единицу.

Пример

Inc(7) = 8;

Dec(7) = 6;

· Odd

Логическая функция Odd из модуля System принимает значение «истина» только в том случае, когда аргумент — нечетное число.

Пример

Odd(7) = true;

Odd(6) = false;

· Trunc

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

Пример

Trunc(7,2856) = 7;

Trunc(4,99) = 4;

· Round

Функция Round преобразует вещественное значение в ближайшее к нему значение типа LongInt, т. е. округляет аргумент до целого числа.

Пример

Round(7,2856) = 7;

Round(4,99) = 5;

· Int

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

Пример

Int(7,2856) = 7,0000;

· Frac

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

Пример

Frac(7,2856) = 0,2856;


6. Линейное программирование на языке Pascal

a) Начало программы

Тело программы, или раздел инструкций, начинается со служебного слова begin, на алгоритмическом языке оно обозначается словом начало, блок-схема же выглядит как овал:

После слова begin никогда не ставится точка с запятой.

b) Конец программы

Слово begin в программе автоматически подразумевает, что после выполнения некоторых действий будет употреблено служебное слово end. End с точкой после него означает конец всей программы.

На алгоритмическом языке end обозначается словом конец, а в блок-схемах – овалом, как и begin.

c) Команда вывода данных на экран

Для вывода информации на экран используются две команды: Write (вывод данных на экран) и WriteLn (вывод данных на экран, начиная с новой строки).

Окончание -Ln означает переход в новую строку.

Эти команды позволяют выводить на экран текст: write('текст'); writeln('текст') (пользователь увидит на экране надпись, заключенную в одиночные кавычки, в данном случае слово текст). Если использовать эти команды без одиночных кавычек: write(x), writeln(x), на экран выведется значение переменной x.

На алгоритмическом языке команда записывается: вывести, а блок-схема выглядит следующим образом:

 

 

d) Команда ввода данных

Здесь также используются две команды: Read (загрузка введенных пользователем данных в переменную) и ReadLn (загрузка введенных пользователем данных в переменную и перевод каретки в новую строку).

Пример Read(x); readln(x) - переменная x приобретет значение, введенное пользователем с клавиатуры.

На алгоритмическом языке команда обозначается словом ввести (ввод), а в блок-схемах – параллелограммом.

e) Математическое действие

Присваивание переменной некоторого вычисляемого значения обозначается следующей записью: <перем.1> := F (переменная 1 задается некоторой формулой, которая может быть как арифметическим выражением, так и функцией от других переменных соответствующего типа).

Математическое действие на алгоритмическом языке записывается так же, как и на языке программирования, а в блок-схеме обозначается прямоугольником:

Пример

Найдем сумму некоторых натуральных чисел a и b.

Решение задачи оформим в виде блок-схемы, на алгоритмическом языке и на Паскале.


Алгоритм

Алгоритм: сумма;

Целые:a, b, s;

Начало

Ввести: a, b;

s:=a+b;

Вывести: s;

Конец.


Блок-схема


Pascal

Program summa;

Uses crt;

Var a,b,s: integer;

Begin

clrscr;

Writeln(‘введите числа’);

Read(a,b);

s:=a+b;

writeln(‘сумма равна ‘,s);

end.


Комментарии

· Вводим переменные целого типа.

· Надпись «введите числа» пользователь увидит на экране.

· Числа a и b вводятся с клавиатуры


Вопросы для самостоятельной работы

1. Какие служебные слова обязательно содержатся в программе?

2. Какие из следующих заголовков можно использовать в Паскале в качестве имен программы: «Задача», «Zadacha1», «1zadacha», «zadacha 1», «zaDAcha_1», «zadacha1: summa»

3. Что входит в состав модуля?

4. Что нужно сделать, чтобы включить в программу процедуру очистки экрана?

5. Какой тип включает в себя наибольший диапазон вещественных значений?

6. Чем отличаются функции div и mod?

7. Расставьте функции в порядке убывания их приоритета: xor, div, in, not.

8. Какая функция могла быть использована в выражении: f(18,759)=1,70000000000E+1

9. Чем отличаются команды write и writeln; read и readln?

10. В каком элементе блок-схемы содержалась бы запись: «inc(n)»?

 

Задачи

Уровень A

1. Даны числа x и y. Вычислить их разность, произведение и частное.

2. Написать программу вычисления площади прямоугольника со сторонами a и b.

3. Написать программу вычисления объема прямоугольного параллелепипеда по трем его измерениям.

4. Написать программу вычисления площадь поверхности куба по длине ребра.

5. Написать программу вычисления объема цилиндра по радиусу основания и высоте.

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

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

8. Вычислить длину окружности и площадь круга радиусом r.

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

10. Дано действительное число x. Написать программу вычисления значения выражения 2 x 4 – 3 x 3 + 4 x 2 – 5 x + 6.

Уровень B

11. Вычислить расстояние между точками с координатами (x 1, y 1) и (x 2, y 2).

12. Найти произведение цифр заданного четырехзначного числа.

13. Найти площадь кольца, ограниченного окружностями радиусами R и r (R > r).

14. Вычислить корни квадратного уравнения ax 2 + bx + c = 0, заданного коэффициентами a, b, c (a ≠ 0 и D >0).

15. Написать программу, которая преобразует введенное с клавиатуры дробное число в денежный формат. Например, число 12,5 должно быть преобразовано к виду 12 руб. 50 коп.

16. Написать программу пересчета величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах.

Уровень С

17. Найти сумму первых n членов арифметической прогрессии, если известны ее первый член и знаменатель.

18. Найти площадь равнобедренной трапеции с основаниями a и b и углами при основании u (в радианах).

19. Написать программу вычисления величины дохода по вкладу. Процентная ставка (в процентах годовых) и время хранения (в днях) задаются во время работы программы.

20. Написать программу, которая вычисляет площадь треугольника, если известны координаты его вершин.


7. Ветвящиеся алгоритмы

a) Оператор условия

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

Если <условие>, тогда <действие 1>, иначе <действие 2>

На языке Pascal эта конструкция записывается аналогично:

If <условие> then <действие 1> else <действие 2>;

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

Иногда под каждой ветвью алгоритма нужно провести несколько действий:

В таком случае конструкция в Паскале остается прежней, но блоки действий ограничиваются служебными словами begin и end, причем перед командой else слово end употребляется без точки с запятой:

If <условие> then begin

<действие k1>;

<действие kn>;

end

else begin

<действие m1>;

<действие kn>;

end;

Запись на алгоритмическом языке остается неизменной:

Если <условие>, тогда <действие k1>;

<действие kn>,

иначе <действие m1>;

<действие kn>;

Неполное ветвление

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

Если <условие>, тогда <действие 1>

Подразумевается, что иначе никакие действия не производятся. Блок-схема тоже несколько упрощается.

Аналогично и на языке Паскаль мы просто отбрасываем часть конструкции (else…) и получаем:

If <условие> then <действие 1>

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

If <условие> then begin

<действие k1>;

<действие kn>;

end;

Пример

Определить, является ли треугольник со сторонами a, b, c равносторонним.


Решение

Алгоритм: треугольник;

Целые:a, b, c;

Начало

Ввести: a, b, c;

Если a=b=c, то вывод ‘да’, иначе вывод ‘нет’

Конец.

Program treugolnik;

Uses crt;

Var a,b,s: integer;

Begin

clrscr;

Writeln(‘введите стороны’);

Read(a,b,c);

if (a=b) and (b=c) then writeln(‘равносторонний‘) else writeln(‘неравносторонний’);

end.

b) Оператор выбора

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

case Выражение of

Константа 1: begin

<Инструкции 1>;

end;

Константа 2: begin

<Инструкции 2>;

end;

Константа N: begin

<Инструкции N >;

end;

end;

Если это не так, то выполняются инструкции, следующие после else:

case Выражение of

Константа 1: begin

<Инструкции 1>;

end;

Константа 2: begin

<Инструкции 2>;

end;

Константа N: begin

<Инструкции N >;

end

else <Инструкции>;

end;

Пример

По номеру дня недели определить его название.

Решение

Program dni_nedeli;

uses crt;

var k: integer;

begin

clrscr;

writeln(‘введите номер’);

read(k);

case k of

1: writeln(‘понедельник’);

2: writeln(‘вторник’);

3: writeln(‘среда’);

4: writeln(‘четверг’);

5: writeln(‘пятница’);

6: writeln(‘суббота’);

7: writeln(‘воскресенье’)

else writeln(‘не существует’);

end;

Вопросы для самостоятельной работы

1. Для чего используются ветвящиеся алгоритмы?

2. Сколько ветвей может быть у условного алгоритма? Что такое неполное ветвление?

3. Как записывается на языке Pascal оператор условия с двумя ветвями, под каждой из которых выполняется одно действие; несколько действий?

4. Как записывается на языке Pascal оператор условия с неполным ветвлением? (2 варианта)

5. Как можно включить в алгоритм несколько условий одновременно?

6. В чем отличие применения оператора выбора от оператора условия?

7. Как записывается на языке Pascal оператор выбора? Какие варианты существуют в записи?

8. Как обозначается сложное условие в блок-схеме? На алгоритмическом языке?

9. В каком случае знак препинания после слова end не ставится?

Задачи

Уровень A

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


Дата добавления: 2015-11-14; просмотров: 43 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
I. Рекомендации по использованию методического пособия| Характеристика и особенности языка 2 страница

mybiblioteka.su - 2015-2024 год. (0.059 сек.)