Программирование в среде Pascal

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    18,99 Кб
  • Опубликовано:
    2013-11-17
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программирование в среде Pascal















Программирование в среде Pascal

Введение

Пакет Паскаль был разработан в 70-х, 80-х годах 20 века. Изначально создавался как язык с помощью которого планировалось обучать студентов принципом программирования алгоритмическим языком программирования в течении 20 лет этот язык развевался и был принят за основу для многих платформ. Pascal-относится к процедурно-ориентированному программированию.

Целью работы: научиться решать простейшие задачи средствами языка программирования Pascal. При решении каждой задачи необходимо составить блок-схему, написать программу и распечатать (переписать) результат выполнения программы. В случаи, если программа выполняет расчет по формуле, тогда необходимо самостоятельно рассчитать искомое значения и сравнить со значением, полученным в результате выполнения вашей программы. Это необходимо выполнить для контроля правильности выполнения расчетов.

1. История развития программы

Язык программирования ПАСКАЛЬ (PASCAL) получил свое название не от сокращения каких-то слов, как другие языки: он назван так в честь великого французского математика и физика Блеза Паскаля, который в 1642 г. изобрел счетную машину для арифметических операций - паскалево колесо, как назвали её современники.

История создания языка начинается с 1965 г., когда Международная федерация по обработке информации (IFIP) предложила нескольким специалистам в области информатики принять участие в разработке нового языка программирования - преемника АЛГОЛа-60. Среди них был швейцарский ученый, работавший в то время доцентом на факультете информатики Стэнфордского университета Никалаус Вирт, который принял участие в разработке проекта языка под названием АЛГОЛ-W.

И хотя IFIP отклонила этот проект (был принят проект АЛГОЛ-68 - автор Аад ван Вейнгаартен), Никалаус Вирт по возвращению в Швейцарию в 1967 г. не прекратил работу по созданию нового языка. В результате этой работы в конце 1968 г. профессор Вирт и его сотрудники из Швейцарского федерального института технологии (ETH) в Цюрихе разработали первую версию ПАСКАЛЯ, а спустя два года - первый вариант компилятора. В 1971 г. Н. Вирт выпустил описание своего языка. В связи с появившимся интересом у широкого круга пользователей, а также с учетом первых оценок и апробаций 1974 г. разработана новая версия языка ПАСКАЛЬ. В следующем году опубликовано руководство для пользователей ПАСКАЛЯ, которое по словам Н. Вирта, вполне можно рассматривать как стандартное определение языка.

Создавая ПАСКАЛЬ, Н. Вирт преследовал две цели: во-первых, разработать язык, пригодный для обучения программированию как систематической дисциплине; во-вторых, реализация языка должна быть эффективной и надежной на существующих вычислительных машинах.

Как и всякий преемник, ПАСКАЛЬ наследовал многие черты основного предшественника и некоторых других. Как и АЛГОЛ-60, он имеет блочную структуру, т.е. программы составляются из блоков, которые начинаются и оканчиваются словами BEGIN и END соответственно. Операторы языка ПАСКАЛЬ, как и в АЛГОЛе-60, разделяются между собой точкой с запятой. Аналогично АЛГОЛу и ФОРТРАНу в языке имеется оператор перехода, а оператор варианта выполняет те же функции, что и переключатель в АЛГОЛе или вычисляемый оператор перехода в ФОРТРАНе. Простые и гибкие операторы цикла WHILE и REPEAT и оператор варианта CASE, отмечает Вирт, обладают переработанной версией оператора цикла FOR (также заимствованным из АЛГОЛа) они позволяют программисту выразить все, что ему нужно путем использования вложенных иерархических структур, представляющих композиции этих операторов.

Одним из достоинств языка ПАСКАЛЬ является то, что он воплотил в себе идею структурного программирования, суть которой заключается в том, что с помощью нескольких конструкций можно выразить в принципе любые алгоритмы. «Структурное программирование нацелено на алгоритмический аспект написания программ», - пишет К. Кристиан.

Другие достоинства языка были предопределены двумя основополагающими статьями профессора Ч. Хоара, опубликованными на рубеже 60-70-х годов: «О структурной организации данных» и «Аксиоматическая основа программирования для вычислительных машин».

Суть первой состоит в том, что «данные прежде всего представляют собой абстракции реальных объектов и их предпочтительно рассматривать как некоторые абстрактные образования со структурами, не обязательно предусмотренными в общераспространенных языках программирования». Язык ПАСКАЛЬ, воплотивший концепции данной статьи, содержат богатый набор различных типов данных и является первым языком, имеющим в этом наборе не числовой тип данных - тип перечисления.

Во второй статье показано, что» программы поддаются точному анализу, основанному на строгих математических рассуждениях». В 1973 г. Хоар и Вирт создали аксиоматическое описание для большей части семантически языка ПАСКАЛЬ. Следуя аксиоматической системе Хоара, язык ПАСКАЛЬ, очевидно, явился первым языком, для которого имеются программные средства, позволяющие доказывать правильность написанных программ.

Краткость языка (некоторые называют его «спартанским» языком программирования), легкость программирования на нем, мобильность написанных программ, возможность эффективной реализации и пригодность с точки зрения формальных методов отладки программ обеспечили ПАСКАЛЮ успех в тех делах, для которых он предназначался.

При создании и совершенствовании языка ПАСКАЛЬ Н. Вирт ввел много новшеств, в частности: изобрел синтаксические диаграммы, с помощью которых удобно представлять конструкции языка; ввел, очевидно, первый в алфавит языка квадратные скобки; высказал идею решения проблемы переносимости программ в виде пи-систем (P-system), которая заключается в том, что написанные на ПАСКАЛЕ программы транслируются в пи-код (p-code) - в машинный язык некоторой идеальной машины а затем интерпретируется на реальных машинных языках.

Опыт использования языка ПАСКАЛЬ выявил ряд недостатков. В языке отсутствовали многие известные конструкции, такие, как: динамические массивы; возможность задания локальных переменных; понятие отдельно транслируемого модуля, затруднившие тем самым создание больших программ; операция возведения в степень; возможность включения в программу участков, написанных на машинном языке, и т.д. Одни программисты могли продолжить список недостатков ПАСКАЛЯ, другие возразить, что некоторые недостатки в их реализации отсутствуют.

Такой разнобой мнений, как пишет О. Перминов, свидетельствует о том, что долгое время отсутствовал документ, который бы точно фиксировал состав и правила выполнения и правила выполнения языка. Такой документ появился только в 1982 г. - международный стандарт ISO на язык ПАСКАЛЬ. Этот стандарт соответствует авторскому «стандартному определению» язык, изложенному в книге Йенсена и Вирта «ПАСКАЛЬ. Руководство для пользователя и описание языка», но дает более полное и строгое описание некоторых деталей, опущенных в руководстве.

Первый компилятор с языка ПАСКАЛЬ был реализован в ЕТН для ЭВМ семейства CDC-6000. В дальнейшем появились компиляторы ПАСКАЛЯ для других типов ЭВМ, и к начале 80-х годов число этих типов (зарубежных и отечественных) достигло сотни.

Кроме авторской версии, стали появляться различные его расширения и диалекты, среди которых можно отметить такие, как УКСД-ПАСКАЛЬ, Эппл-ПАСКАЛЬ, ПАСКАЛЬ-80, Турбо-ПАСКАЛЬ, Квик-ПАСКАЛЬ.

УКСД-ПАСКАЛЬ (UCSD-PACKAL; UCSD-Universiti of California, San Diego) был разработан сотрудником Калифорнийского университета в Сан-Диего К. Бауэлсом УКСД-ПАСКАЛЬ является расширением стандартного определения языка и предназначен главным образом для мини- и микро-ЭВМ.

Эппл-ПАСКАЛЬ (Apple-PASCAL), разработанный для персональных компьютеров «Apple», по существу, является модификацией УКСД-ПАСКАЛЯ, однако в нем имеются дополнительные средства, в частности средства для графического отображения.

Компилятор ПАСКАЛЬ-80 разработан фирмой Microsoft для операционной системы СР/М-80, используемой В 8-разрядных персональных компьютерах. Этот компилятор допускает раздельную компиляцию файлов и использование программных модулей, созданных и откомпилированных в других системах программирования (ФОРТРАН, СН и др.)

Особую популярность на микро-ЭВМ и персональных ЭВМ в настоящие время получило семейство ПАСКАЛЬ-систем, названное Турбо-ПАСКАЛЬ (Turbo-PASCAL) и разработанное фирмой Borland. Данное семейство, работающее с операционными системами СР/М-80, MS DOS, MSX DOS, имеет высокую производительность (используется ускоренная однопроходная процедура компиляции) и широко применяется пользователями персональных ЭВМ IBM PC XT/AT и совместными с ними компьютерами. Фирма Borland создала несколько версий Турбо-ПАСКАЛЯ, среди последних версия НО, которая включает пакет стандартной графики, позволяющий работать с различными графическими адаптерами IBM PC, и Турбо-ПАСКАЛЬ версий 5.0 и 5.5, назначением которых является объектно-ориентированное программирование.

Одновременно с появлением пятой версии Турбо-ПАСКАЛЯ конкурирующая фирма Microsoft выпустила версию 1.0 языка Квик-ПАСКАЛЬ (Quick-PASCAL-» быстрый» ПАСКАЛЬ), полностью совместимою с Турбо-ПАСКАЛЕМ, и, как заявляют сотрудники фирмы, в полтора раза дешевле последнего.

Известны аппаратные реализации языка ПАСКАЛЬ. Так, в 1983 г. инженеры японской фирмы Mitsubishi разработали аппаратный компилятор, состоящий из четырех однокристальных блоков и устройства управления шиной. Как утверждают создатели компилятора, язык ПАСКАЛЬ выбран потому, что его «регулярная структура делает возможной строго последовательную компиляцию, т.е. компиляцию, не требующую опережающего просмотра для обработки текущего предложения». ПАСКАЛЬ стал прародителем более поздних языков программирования. Через 10 лет после ПАСКАЛЯ Никалаус Вирт создал язык МОДУЛА-2, который основал на многих концепциях, введенных в ПАСКАЛЕ, хотя особое внимание в нем уделяется построению программы как набора независимых модулей. На ПАСКАЛЬ все четыре языка, принятые в конце 70-х годов министерством обороны США для разработки своего универсального высокоуровневого языка, который в дальнейшем получил название АДА. Хотя язык АДА в значительной степени отличается от ПАСКАЛЯ, в нем сохранено много удачных черт последнего.

В заключение хотелось бы привести некоторые высказывания о языке ПАСКАЛЬ. Надо отметить, что среди восторженных иногда встречаются и довольно резкие суждения.

Итак, вот что писали в 1977 г. ч. Хоар и другие:» В настоящие время язык ПАСКАЛЬ является лучшим языком программирования общего назначения для целей системного программирования и реализации программного обеспечения. Открытие того, что преимущества языка программирования высокого уровня могут быть скомбинированы таким простым и элегантным способом, как это сделано в языке ПАСКАЛЬ, явилось откровением, заслуживающим названия крупнейшего открытия. Следствием необычайного успеха языка программирования ПАСКАЛЬ, который на много превзошел все ожидания его автора, явилось то, что оценка языков программирования высокого уровня теперь производится на совершенно ином, намного высоком уровне».

А несколько лет спустя Н. Дейтел написал следующие: «Некоторые научные школы по информатике стали постепенно освобождаться от чар «изворотливой смекалистости», заложенной в обученных ПАСКАЛЮ студентов. Для некоторых приложений язык настолько скуден, что пользователи вынуждены встраивать возможности, общедоступные на других языках».

Типы переменных

Существуют типы переменных

Integer

Char

Переменные

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

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

Хорошим стилем является осмысленное именование переменных. Имя переменной может содержать от одного до 32 символов. Разрешается использовать строчные и прописные буквы, цифры и символ подчёркивания, который в Си считается буквой. Первым символом обязательно должна быть буква. Имя переменной не может совпадать с зарезервированными словами.

Boolean = (False, True); {встроенный тип}

Описание собственных Boolean представляет логические значения, т.е. он может только предположить два значения True и False (которые предопределенных констант).

В соответствии с Boolean определено в ISO 7185 Pascal и поддерживаются все известные варианты Паскаль.

Пример

program BooleanDemo;: Boolean;:= True;(a)

end.

r - является самым экономным типом. Тип char может быть знаковым и беззнаковым. Обозначается, соответственно, как «signed char» (знаковый тип) и «unsigned char» (беззнаковый тип). Знаковый тип может хранить значения в диапазоне от -128 до +127. Беззнаковый - от 0 до 255. Под переменную типа char отводится 1 байт памяти (8 бит).

Тип int

Целочисленная величина int может быть short (короткой) или long (длинной).

Ключевое слово (модификатор) short ставится после ключевых слов signed или unsigned. Таким образом, различают следующие типы: signed short int, unsigned short int, signed long int, unsigned long int.

Переменная типа signed short int (знаковая короткая целая) может принимать значения от -32768 до +32767, unsigned short int (беззнаковая короткая целая) - от 0 до 65535. Под каждую из них отводится ровно по два байта памяти (16 бит).

Переменная любого типа может быть объявлена как немодифицируемая. Это достигается добавлением ключевого слова const к спецификатору типа. Переменные с типом const представляют собой данные, используемые только для чтения, то есть этой переменной не может быть присвоено новое значение. Если после слова const отсутствует спецификатор типа, то константы рассматриваются как величины со знаком, и им присваивается тип int или long int в соответствии со значением константы: если константа меньше 32768, то ей присваивается тип int, в противном случае long int.

Пример:

const long int k = 25;m = -50; // подразумевается const int m=-50n = 100000; // подразумевается const long int n=100000

Для присваивания в Си служит знак «=». Выражение, стоящее справа от знака присваивания, вычисляется, и полученное значение присваивается переменной, стоящей слева от знака присваивания. При этом предыдущее значение, хранящееся в переменной, стирается и заменяется на новое.

Оператор «=» не следует понимать как равенство.

Например, выражение a = 5; следует читать как «присвоить переменной a значение 5».

Примеры:

x = 5 + 3; // сложить значения 5 и 3,

// результат присвоить переменной x (записать в переменную x)= a + 4; // прибавить 4 к значению, хранящемуся в переменной a,

// полученный результат присвоить переменной b (записать в переменную b)= b + 2; // прибавить 2 к значению, хранящемуся в переменной b,

// полученный результат присвоить переменной b (записать в переменную b)

Описание программысостоит из двух частей:

. Описательная

. Исполнительная

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

Исполнительная часть используется для составления самой программы исполняемая часть выделяется операторами скобками. Begin ///End

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

Принцип действия оператора, Оператор выводит информацию на экран.

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

Операторы ввода

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

М

Операторы цикла

8

2

С параметром (FOR)

Предусловием (WHILE)

Постусловием (REPEAT)




S=



Program WHILE_DO;

var R, M, S, step: real;(‘M=’); readln(M);(‘step=’); readln(step);:=0.0;:=1.0;R<=M do:=S+1/8*(cos(R) - 3.14)/sqr(R);:=R+step;;(‘S=’, S:9: 3);;.

М=8=2=-0.403.

Значение переменной для прекращения вычислений

Расчетная формула

11

Y= j<11; j-3 j>11; (3+j/√j-10)

IF_Then;j, Y: real;start, finish;

start: writeln (‘j=’); readln(j);j=11 then goto finish;j<11 then Y:=j-3;S:=(3+j)/(sqrt j-10);(‘S= ‘, S:9:3);start;:writeln(‘finish’);.=11=2=0.000=5=0.000

J=5=8.593

Использование операторов цикла

Задание: Программа должна обеспечить возможность ввода значения М-конца цикла и произвести вычисления по расчётной формуле в соответствии с вашим вариантом. Значения результата расчета выведите, используя форматированный вывод.

(WHILE) (REPEAT)

S=

WHILE_DO;R, M, S, step: real;(‘M=’); readln(M);(‘step=’); readln(step);:=0.0;:=1.0;R<=M do:=S+1/8*(cos(R) - 3.14)/sqr(R);:=R+step;;(‘S=’, S:9: 3);

readln;.

паскаль переменная цикл программа

Ответ: полученное число -0.325

Использование процедур и функций

Задание: Программа должна обеспечить возможность ввода значений элементов массива с клавиатуры, имя и размер которого выбирается в соответствии с вашим вариантом, и выполнить расчёт по формуле. При отображении значения результата расчёта необходимо использовать форматированный вывод.

Имя массива

Количество

Осуществить ввод значений элемента массива

Расчетная формула

Расчетная формула функции


строк

столбцов




N

4

2

Процедуре

S=

-

Procedure_Funcsion;

type TypeMas=array [1..4, 1..2] of real;N: TypeMas;, j:integer;:real;InputDataMas (var Mas: TypeMas);i:=1 to 4 doj:=1 to 2 do('N[', i:4,', ', j:2,']=');(N[i, j]);;;;funS (var Mas: TypeMas; Poz: integer): real;S: real;:=0.0;j:=1 to 2 do S:=S+Mas [Poz, j];:=S;;(N);:=0.0;i:=1 to 4 do S:=S+funS (N, i);('S=', S:9:3);;

END.

Ответ: полученное число 36.000

Выводы

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

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

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

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

Список литературы

1.   Е.А. Зуев. Программирование на языке Turbo Pascal 6.0, 7.0, М.:Веста, Радио и связь, 1993, - С. 376,

2.       Грогоно П. Программирование на языке Паскаль. - М.: Мир, 1982. - С. 384

3.   Хершель Рудольф. Турбо Паскаль / 2-у издание, перебаб. - Вологда: МП «МИК», 1991. - 342 с

4.       Бартків А.Б., Гринтишин Я.Т., Ломакович А.М., Ромський Ю.С. TURBO PASCAL:

.        АЛГОРИТМИ І ПРОГРАМИ: Чисельни методи в фізиці та математиці: Навчальний посібник. - К.: Вища шк. 1992. - 247 с.


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!