Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основы программирования на языке Pascal (ИСТОРИЯ И ОСОБЕННОСТИ ОПЕРАЦИЙ)

Содержание:

ВВЕДЕНИЕ

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

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

Такую программу называют ассемблером (assembler - сборочное устройство, транслятор, ассемблер). Программы стали гораздо нагляднее, но решение практических задач требовало написания очень длинных программ (например, файловый менеджер Volkov Commander имеет размер около 64000 байт). Тогда появились языки программирования высокого уровня. При их создании использовали то обстоятельство, что в программе часто встречаются участки одинакового кода, выполняющие какое либо одно действие: вывод строки, запись в файл, вычисление математической функции и т.д.

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

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

Один из таких языков – Паскаль, который из наиболее известных языков программирования, широко применяется в промышленном программировании, обучении программированию в высшей школе. Цель выполнение курсовой работы в ходе изучения языков программирования направлено на формирование у студентов твердых теоретических и практических навыков по алгоритмизации и программирования процессов обработки данных на ЭВМ.

Сформировать навыки разработки и отладки программ сложной структуры.

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

Программа для ЭВМ состоит из двух важных частей: описания действий, которые необходимо выполнить для достижения желаемого результата, и описания данных, с которыми оперируют упомянутые действия. Действия в программе на языке Паскаль описываются с помощью операторов, а данные – с помощью описаний, или объявлений (declaration), и определений (definition).

Программа на языке Паскаль состоит из заголовка и «тела» программы, которое называется блоком. В заголовке программе дается имя и могут перечисляться ее параметры – входные и выходные файлы (по крайней мере, так обстоит дело для стандарта языка Паскаль).

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

ГЛАВА.1 ЯЗЫК PASCAL: ИСТОРИЯ И ОСОБЕННОСТИ ОПЕРАЦИЙ

1.1.Подготовка к работе.

Можно научиться программировать и начать с языка наиболее для этого подходящего – Pascal. Для начала работы вы должны приобрести (скачать) компилятор. 

А что же собственно, такое, этот «компилятор»? Это специальная программа, которая считывает код программы, а затем переводит его на язык машинных кодов. То есть, по сути, все языки программирования – это способ «общения» с компьютером, а компилятор помогает перевести нашу «речь» на понятную ему. 

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

1.2.Начало работы.

Что ж, перед нами открыто окно компилятора. Здесь и будут появляться на свет наши первые программы. Перед началом работы следует запомнить, что язык Pascal – это совокупность трёх составляющих: алфавита, синтаксиса (правил написания объектов языка) и семантики (правил использования этих объектов).

Алфавит Pascal состоит из:

  1. Прописных и строчных букв латиницы: A...Z, a…z;
  2. Цифр: 0...9;
  3. Специальных символов: + — * / = < >.,:; ‘ # ( ) { } [ ] и их комбинаций: «>=» «

Задача же синтаксиса и семантики состоит в том чтобы, правильно написать раздел программы и правильно составить ее структуру, в противном же случае наша программа будет работать неправильно (или же не работать вовсе).

Структура программы выглядит так:

Program «имя программы»; — заголовок программы;
(Примечание: в конце строки ставится точка с запятой, не во всех, но в большинстве) 

Uses (название библиотеки); здесь подключаются библиотеки, которые дают дополнительные возможности при создании программ;

Label (имя метки); здесь, если необходимо, прописываются метки, позволяющие переходить в разные места программы (о них позже);

Const тут указываем переменные с постоянной величиной, например, p = 3.14;

Var тут через запятую перечисляем все переменные, а затем, указываем тип данных (Пример: Var: K, L, M: integer; N, O: real; (если несколько типов));

Begin (здесь без точки с запятой).

Дальше следует основной блок программы;
end. – конец программы (обязательно после «end» точка, если только это конец программы, а не операторные скобки).

1.3.Создание первых программ.

Следует заметить, что из вышеперечисленных разделов обязательными есть только «Var», «Begin» и «end», остальные же могут применяться, если это требуется в ходе выполнения поставленной задачи. 

Откройте окно компилятора, и введите следующие строки:

program Programma1;

begin

end.

Нажмите кнопку «Выполнить»(«Run»). Ничего не происходит? Так и есть, ведь наша программа «пустая», мы не указали что она должна делать, потому ничего и не произошло. Обычно принцип работы программы написанной на языке Pascal состоит из трёх этапов: ввод данных – обработка данных – вывод даннных. Теперь познакомимся с оператором “write”. Он служит для как раз для вывода данных без перехода на новую строку. Попробуем его применить, тем самым сделав нашу программу чуть сложнее и интереснее:

program Programma1;

begin

write(' Pascal ');

end.

Собственно, так он и применяется. Между апострофами мы можем ввести любой текст, на любой раскладке, и после выполнения программы он появится в окне вывода (или в командной строке, смотря какой у вас компилятор). В данном случае, должно появиться слово «Pascal».

1.4.Операторы write, writeln, read, readln.

Теперь поговорим о вводе данных. Мы уже познакомились с оператором write, но существуют также и другие. Writeln, к примеру, используется для вывода данных с переходом на новую строку. Зачем? Ну, например чтобы дать какой-нибудь переменной значение:

program Programma1;

var A:integer;

begin

writeln('A= '); read(A); {ввести значение и «прикрепить» его к переменной A}

write(A); {Вывести значение переменной A}

end.

Это называется комментарий. В дальнейшем я также буду использовать их для объяснений. 

В этом примере для присваивания к переменной значения, введенного с клавиатуры используется оператор read. Мы видим, что при выполнении он прочитал строку в переменную А. А другой оператор, readln работает по другому. Используя его, мы можем сразу ввести нужную строку, и она прочитается в переменную:

program Programma1;

var A:integer;

begin

readln(A);

write('A= ', A); {строка будет выглядеть так: «А= ' введенное значение А ' „}

end.

1.5.Типы данных в Pascal.

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

•Целые типы данных (для целых чисел):

— byte 

Объем памяти значений этого типа составляет 1 байт. Диапазон значений для данного типа: от 0 до 255.

— word

Значения этого типа занимают уже 2 байта памяти, а диапазон значений уже побольше: от 0 до 65535.

— integer (уже нам знакомый)

Значения также занимают 2 байта памяти, диапазон такого же размера, но включает уже и отрицательные числа: -32786…32787.

— LongInt

Объем памяти, занимаемый значением типа равняется 4 байтам. Диапазон значений же полностью соответствует названию типа данных: от -2147483648 до 2147483647 

— ShortInt

Значение типа потребляет 1 байт памяти, диапазон относительно небольшой: -128…127.

•Вещественные типы данных (для чисел с дробной частью):

— Real

Занимаемая значением типа память – 6 байт. Число значащих цифр – 11-12. (значащие цифры – это точные цифры, т.е. не округленные). Диапазон значений типа: от 2.9*10-39 до 1.7*1038.

— Double

Размер значения типа – 8 байт. Число значащих цифр – 15-16. Диапазон: 5.0*10324…1.7*10308.

— Extended 

Занимает 10 байт. Число значущих цифр – 19-20. Диапазон: 3.4*10-4932…1.1*104932.

Помимо этих, существуют также символьный тип данных (char) и даже логический тип данных (boolean), переменные которого могут принимать значения только true или false.

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

1.6.Обработка данных. Математические операции. Условия. Логические операции.

Первое, и самое главное, что нам пригодится в этом деле – оператор присваивания. Выражается он вот так: «:=», и используется для присваивания значения переменной. Примеры: A:=1.5; B:=2+A. Теперь, когда мы знакомы с оператором присваивания, можем рассмотреть математические операции Pascal:

  1. Сложение (+);
  2. Вычитание (-);
  3. Умножение (*);
  4. Деление (/);
  5. Целочисленное деление (div) – возвращает целую часть от деления (Пример: 10 div 3 = 3);
  6. Остаток от деления (mod) – возвращает только остаток от деления (Пример: 5 mod 2 = 1).

Помимо приведенных, существуют еще такие операции и функции для работы с числами:

abs(x) – возвращает модуль от x;

sin(x) – синус угла x (в радианах);

cos(x) – косинус угла x (в радианах);

int(x) – возвращает целую часть от x;

random(число) – случайное число от 0 до заданного;

sqr(x) – квадрат x;

sqrt(x) – квадратный корень x;

inc(x) – увеличить x на 1;

dec(x) – уменьшить x на 1.

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

if (условие 1) then (действие 1 — основное) else (действие 2 — альтернативное) (if – если, then – то, else – иначе)

При построении условия пользуются логическими операциями and, not, or, xor:

• and – операнд, объединяющий несколько условий в одно. Действие будет выполняться, только если все перечисленные условия будут верны. 

program Usloviya;

var a:integer;

begin

readln(a);

if (2*2=4) and (3+2=5) then a:=a+1 else a:=a-1;

write(a);

end.

Все условия, перечисленные через and верны, потому выполнялось только первое действие, идущее через than. Если хотя бы одно условие не было верно, тогда выполнилось бы второе действие:

• not – логическое действие с условием из одной части. Если условие неверно, то будет выполняться основное действие (первое), если верно – то альтернативное (второе);

program Usloviya;

var b:integer;

begin

readln (b);

if not 5=4 then b:=b+1 else b:=b-1;

write (b);

end.

Условие 5=4 неверно, следовательно, будет выполняться первое действие. 

• or (или) – логический оператор для условия из нескольких частей. Основное действие будет выполняться, если верно хотя бы одно условие;

program Usloviya;

var d:integer;

begin

readln (d);

if (5=4+1) or (5=4) then d:=d+1 else d:=d-1;

write(d);

end. 

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

• xor – с этим оператором основное действие выполняется, если верно только одно условие. Если верны несколько условий, или же ни одного, то выполнится альтернативное действие.

program Usloviya;

var n:integer;

begin

readln(n);

if (6=4) xor (3=5-2) then n:=n+1 else n:=n-1;

write (n);

end.

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

1.7.Процедуры и функции для управления программой.

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

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

program Metka;

label 1,2;

var A, B:integer;

begin

readln (A);

2: if A=5 then goto 1; {2: — действие после перехода на соответствующую метку,}

A:=A+1; {goto — переход на метку}
goto 2;

1: write (A);

end.

На данном примере, программа увеличивает на 1 введенное число, пока оно не станет равным пяти. Тут мы и можем проследить действие метки.

•Delay(время) – остановка программы с задержкой, время в кавычках указывается в миллисекундах.

•Readkey – остановка программы до нажатия клавиши, значение функции – код нажатой клавиши.

•Exit – досрочное завершение процедуры.

Следует заметить, что для работы delay, readkey, и exit необходимо подключить модуль crt (uses crt).

ГЛАВА.2 ОСНОНЫЕ ПРИНЦИПЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ PASCAL

2.1.Входная информация и принятые обозначения.

Процедура подготовки и решения задачи на ЭВМ – достаточно сложный и трудоемкий процесс, состоящий из следующих этапов:

1. Постановка задачи (задача, которую предстоит решать на ЭВМ, формулируется пользователем или получается в виде задания). Задача формулируется на уровне понятий проблемной области, к которой она относится, и должна быть понятна исполнителю (пользователю).

2. Математическая формулировка задачи (формализация задачи). Формализация задачи фактически представляет разработку математической модели решаемой задачи и включает в себя:

1) описание задачи с помощью формул;

2) определение перечней исходных данных и получаемых результатов;

3) задание начальных условий и точности вычислений.

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

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

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

В курсовой работе необходимо определить тип запись, задать массив из элементов типа определенного ранее, заполнить массив данными, предусмотреть обработку и выборку данных в соответствии с полученным заданием: «Магазин игрушек».

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

Дополнительно: вывести стоимость самой дорогой игрушки и ее наименование.

2.2.Описание алгоритма.

Создать тип запись с именем Magazin, содержащий поля: порядковый номер (n), Наименование (Naimenowanie), цена (bakss), количество на складе (shtuk), возрастная категория(let).

Объявить массив с элементами типа Magazin (5 элементов)

Заполнить массив 5-ю записями.

Вывести всю информацию на экран

Просмотреть весь массив и сделав сравнение вывести на экран самую дорогостоящую игрушку.

Анализ программы:

2 строка – подключение стандартного модуля crt «Отдельная таблица»;

3-9 строка – создание типа Magazin c полями – порядковый номер (n), Наименование (Naimenowanie), цена (bakss), количество на складе (shtuk), возрастная категория(let).

9-11 строка объявление переменных, А – массив 5 элементов типа Magazin, i, k и stoimost – переменные счетчика.

13 строка – вывод на экран подсказки о необходимости ввода 5 элементов массива.

14-26 строка – ввод 5 элементов массива;

27 строка – процедура очистки экрана;

28 строка – на экран выводится строка рамки (верхняя граница будущей таблицы);

29 строка – вывод на экран заголовков будущей таблицы;

30 строка – переход курсора на новую строку;

31-37 строка – с помощью цикла выводится на экран содержимое массива (причем вывод форматированный, на каждый элемент массива отводится определенное число позиций, для того чтобы соответствующие элементы находились друг под другом);

38 строка – нижняя граница таблицы;

39 строка – вывод на экран подсказки о необходимости ввода массива;

40 строка - действие, которое должен выполнить оператор;

42 строка - очистка экрана;

43 строка – верхней границы таблицы;

44 строка - вывод на экран заголовков будущей таблицы;

49-51 строка – сравнивание массива цены с переменной счетчика;

52 строка - записи наибольшего массива;

55 строка - вывод с пояснением, на индивидуальный элемент массива исходя из дополнительного задания

56 строка – нижней границы таблицы;

2.3.Распечатка программы.

Листинг программы:

1 program Primer;

2 uses crt;

3 type Magazin=record /Тип названия записать /

4 n:integer; /запасать как целое число/

5 Naimenowanie:string;/ Записать как строковый/

6 bakss:real; / не целое /

7 shtuk:string;

8 Let:string;

9 end;

10 var/Переменная для файла/

mas:array [1..5] of Magazin; /переменная для типизированного файла/

i,k:integer;

11 stoimost:real;

12 begin/начало/

13 writeln(' Ассортимент магазина игрушек');

14 for i:=1 to 5 do/ для «» увеличить «» выполнить/

15 begin

16 writeln(' Введите порядковый номер ');

17 readln(mas[i].n);

18 writeln(' Наименование игрушки ' );

19 readln(mas[i].Naimenowanie);

20 writeln(' Цена ');

21 readln(mas[i].bakss);

22 writeln(' Количество на складе ');

23 readln(mas[i].shtuk);

24 writeln(' Возрастная категория ');

25 readln(mas[i].let);

26 end;

27 clrscr;/очистка экрана/

28 writeln(>+< < >+< >+< >+< >+< >+< >+< >+< >+< >+< >+< );

29 write(№ наименование товара, Цена, Кол-во на складе, Возрастная категория);

30 writeln;

31 k:=0;

32 for i:=1 to 5 do

33 begin

34 k:=k+1;

35 write(k,mas[i].Naimenowanie:11,mas[i].bakss:18:2,'Руб',

mas[i].shtuk:13,'Шт.', mas[i].let:14);

36 writeln;

37 end;

38 writeln(>+< >+< >+< >+< >+< >+< >+< >+< >+< >+< >+< );

39 writeln(Продолжим!!!!);

40 writeln(Ведите ввод);

41 readln;

42 clrscr;

43 writeln('********************************************');

44 write(Наименование товара Стоимость игрушки);

45 writeln;

46 stoimost:=0;

47 for i:=1 to 5 do

48 begin

49 if mas[i].bakss>stoimost then

50 begin

51 stoimost:=mas[i].bakss;

52 k:=i;

53 end;

54 end;

55 writeln(Самая дорогая игрушка, mas[k].Naimenowanie:15,

mas[k].bakss:28:2,'Руб');

56 writeln('**************************************');

57 end

2.4.Распечатка контрольных примеров, демонстрирующих работу программы.

Результат программы:

Рисунок 1. - Вывод на экран всех элементов массива

После очистки экрана выводиться на экран «Самая дорогая игрушка» среди всех пяти массивов (рисунок 2).

Рисунок 2

ЗАКЛЮЧЕНИЕ

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

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

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

Считаю одним из достоинств Pascal это наличие компилятора во многих операционных системах.

Прямая работа с памятью компьютера. Использование понятных английских слов таких как begin, end, program и т. д хотя и не помешал бы и русский интерфейс команд.

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

Некоторые высказывания о языке вообще и языке программирования в частности:

Б.Л. Ворф – «Язык формирует наш способ мышления и определяет, о чем мы можем мыслить».

Брайан Керниган – «Единственный способ изучить новый язык программирования – писать на нем программы».

СПИСОК ЛИТЕРАТУРЫ

1. Стариков А. В. Основы программирования на языке Паскаль.

2. http://kftt.karelia.ru/~ivk/new2/Inflect/PascalFiles/Pascal.htm

3. Абрамов С. А., Зима Е. В. Начала программирования на языке Паскаль. - М.: Наука. Гл. ред. физ.-мат. лит., 2015. - 112 с.

4. Паранинцева Ж. Ю. Методические указания к выполнению курсовых работ по дисциплине «Программирование и основы алгоритмизации»

5.http://ru.wikipedia.org/wiki/Pascal

6. Трухин Н. А., Кудаева М. В. Программирование на языках высокого уровня «Основы программирования в среде Turbo Pascal»