Разработка программ на языке Pascal
Аннотация
pascal программирование файловый массив
Данная курсовая работа посвящена разработке программ на языке Pascal с
примерами обработки символьных, файловых данных, работа с массивами.
Также рассмотрены правила записи, способы ввода и вывода, использование
функции обработки символьных данных; получены навыки алгоритмизации и
программирования файловых структур данных, проектирования структуры файла,
вывода данных в файл, чтения данных из файла; ознакомлены с работой данных
массива, с его созданием.
Содержание
Введение
.
Теоретическая часть
. Постановка
задач
. Руководство
пользователя
. Руководство
программиста
. Анализ
работы
Заключение
Список
использованной литературы
Приложения
Введение
Язык Турбо Паскаль - это один из самых распространённых языков
программирования микрокомпьютеров. Он разработан фирмой "Борланд" как
диалект стандартного языка Паскаль, но благодаря своей популярности сам стал
стандартом языка программирования 8- и 16-разрядных микрокомпьютеров.
К важнейшим достоинствам языка Турбо Паскаль относятся небольшой размер
компилятора, высокая степень соответствия стандартному Паскалю, очень быстрая
компиляция программ, объединение компилятора с интерактивным экранным
редактором, предупреждение об ошибках на уровне исходной программы, обширная
библиотека подпрограмм и полезные расширения, упрощающие системное
программирование.
Одной из основных проблем, с которой сталкиваются в процессе
программирования, является написание программы, не содержащей ошибок. Ошибку
наиболее полно можно определить, как расхождение поведения программы с
ожиданиями пользователя. Сюда входит как несоответствие результат исходных
данных, так и другие, порой более опасные эффекты: зацикливание, аварийная
остановка программ и т.п.
Наиболее явно наблюдаемыми историческими тенденциями в программировании
являются непрерывный рост пользовательских требований, лавинообразное
усложнение функциональности программы и, как следствие, - усложнение её
разработки. В связи с увеличением трудоёмкости программных средств возникла необходимость
выработки интеллектуальных инструментов, позволяющих разработчикам справляться
с возросшей сложностью своего труда.
В настоящий момент можно утверждать, что практически каждая программа
составляется с применением той или иной технологии программирования.
1. Теоретическая часть
Алфавит языка Паскаль составляют следующие символы:
) буквы латинского алфавита A, B, C…;
) буквы русского алфавита А, Б, В,…Я (кроме Ъ);
) цифры 1,2,3,4,5,6,7,8,9;
) знаки арифметических операций:
+ - сложение;
- вычитание;
*- умножение;
/ - деление;
) специальные символы:
. - точка;
, − запятая;
; − точка с запятой;
: − двоеточие;
’ - апостроф;
( ) - круглые скобки;
[ ] - квадратные скобки;
_ −пробел;
{ } - фигурные скобки;
) знаки операций:
> - больше;
< - меньше;
>= - больше или равно;
<= - меньше или равно;
= - равно;
<> - не равно;
:= - присвоить.
Из символов
алфавита строят более сложные конструкции - слова, словосочетания, предложения.
В языке Паскаль под словом понимают число, строку, имя. Минимальная конструкция
языка, представляющая собой законченную мысль, есть предложение. Предложение
либо задает полное описание некоторого действия, которое необходимо выполнить,
и называется оператором, либо описывает структуру и организацию данных -
объектов языка, над которыми эти действия производятся, и называется описанием.
Совокупность описаний и операторов образует программу. Для того, чтобы
научиться писать программы, необходимо изучить синтаксис языка (правила записи
его конструкций) и его семантику (смысл и правила использования этих
конструкций). В языке Паскаль существует некоторый набор служебных слов,
назначение которых строго определено (зарезервировано) и которые не могут быть
использованы с другой целью. Служебные слова используются, например, для
обозначения операторов.
Массив - это упорядоченная совокупность значений одинакового типа,
объединенная одним именем. Для того чтобы иметь возможность работать с каждым
элементом массива, необходимо задать координаты этого элементам в общей
структуре массива.
Если массив одномерный рис. 1 а, б, то для определения положения элемента
достаточно задания номера ячейки. Выделенные ячейки имеют номера 3, 5, 7, а
соответствующие элементы массива, если массив в целом обозначить буквой А,
обозначаются соответственно, как A[3], A[5], A[7]. Одномерные массивы часто
называют векторами.
Если массив двумерный, то для определения положения какого-либо элемента
достаточно задания номера строки и столбца, на пересечении которых находиться
рассматриваемый элемент. Так выделенные на рис. 1 в элементы массива имеют
следующие обозначения B[1,1], B[1,4], B[5,2].
Файл представляет собой совокупность данных, в которой все данные должны
быть одного типа. Необходимость в файлах возникает тогда, когда память (ОЗУ)
мала для данных, и когда данные нужно сохранить. На первый взгляд файл похож на
массив. Однако между массивом и файлом существует четкое различие. Одним из
таких различий является то, что у массива с помощью индекса можно указать любой
элемент. У файла же вызвать желаемые данные таким способом нельзя. Нагляднее
всего файл представить в виде бумажного рулона, на котором одно за другим
записаны данные. Читать данные, записанные таким образом можно только с начала,
и по мере чтения следует перемещаться последовательно с одной записи на другую.
Таким образом, после каждого обращения к файлу указатель файла автоматически
смещается на следующую позицию (окно).
Файловый тип определяется в программе с помощью соответствующего
описания:
<имя типа> = FILE <тип элемента>
Например, определение типов
MAX = 80;
TYPE M=1. . MAX;= ARRAY [M] OF CHAR;
FF = FILE OF F;
задает файл FF, элементами которого являются массивы символов длинной M.
Файловый тип можно определить и в разделе переменных:
<имя файла>: FILE OF <тип элементов>;
Переменная, имеющая смысл файла, описывается в разделе переменных. Над
файлами можно выполнять некоторые действия: запись (создание и пополнение
файла) и чтение.
Операция записи добавляет к файлу новую компоненту. Новые элементы могут
добавляться только к концу файла.
Рассмотрим некоторые процедуры, которые можно выполнять над файлами:
) связь программного имени файла с дисковым именем файла
ASSIGN (F, ‘A: FILE. EXE’);
F- программное имя файла;имя диска;.EXE- дисковое имя и расширение (с
этим расширением хранится на диске созданный файл).
) открытие существующего файла на диске для чтение (файловое окно
установится на начало файла)
(F);
) открытие нового файла на диске для записи (файловое окно
устанавливается на начало файла)
(F);
(F, V);
-имя переменной.
Через текущее окно считывается компоненты файла в переменную V. V имеет
тип компоненты файла.
) запись в файл
WRITE (F, V);
Записывается значение V в компоненту файла.
) открытие файла и установка окна для добавления символов
в конец существующего файла
(F);
) закрытие файла.
(F);
Тип STRING (строка) в Паскале широко используется для обработки текстов.
Он во многом похож на одномерный массив символов ARRAY [O . . N] OF CHAR,
однако, в отличии от последнего, количество символов в строке - переменной
может меняться от О до N, где N - максимальное количество символов в строке.
Значение N определяется объявлением типа STRING [N] и может быть любой
константой порядкового типа, но не более 255, например:
Const N = 25;Stroka = String [n];S: Stroka;: String [50];:
String [230];: String [270]; ¬ Ошибка, 270>255
Разрешается не указывать N. В этом случае длина строки принимается
максимально возможной, а именно N=255. Т.о. согласно описания
Var A: String; B: String [255];
переменные А и В могут содержать до 255 символов каждая.
. Постановка задачи
Задание 1.
Разработать блок-схему и программу для вычисления переменной r, используя
для ввода данных, операторы READ и READLN. Вывести значения исходных данных,
подобрав к ним форматы по операторам WRITE и WRITELN. Значение переменной r
вывести в стандартной форме.
b=-3=5,6
Задание 2.
Поменять в каждом столбце элементы главной и неглавной диагоналей
Задание
3.
Создать файл S, компонентами которого являются элементы массива T.
Записать в файл X первые пять компонент файла S и сумму всех остальных.
Прочитать файл X.
=(0,2; 0,4; 6,1; 5,8; 4,9; 9,8; 7,1; 2,4;).
Задание 4.
Дан текст из букв и цифр. Определить, равна ли длина текста сумме
числовых значений цифр, входящих в текст.
. Руководство пользователя
Задание 1. Запускается программа program1. Вводятся значения b, c, k.
После нажатия на Enter программа считает и выводит результат работы программы
(рисунок В.1).
Задание 2. Запускается программа program2. С клавиатуры вводятся элементы
матрицы А. Далее программа меняет местами элементы главной и побочной
диагоналей и выводит результат на экран (рисунок В.2).
Задание 3. Запускается программа program3. Программа создаёт файл S,
компонентами которого являются элементы массива Т.Далее программа создаёт файл
Х в который заносит первые пять компонентов файла S и сумму остальных. Читает
файл Х (рисунок В.3).
Задание 4.Запускается программа program4. Вводится предложение содержащее
цифры. Программа считает количество символов и сравнивает их с суммой цифр в
предложении (рисунок В.4).
. Руководство программиста
Задание 1. Организация линейной программы.
В данной программе используются входные переменные b, c, k, промежуточные
p, x, o и выходная r.
В таблице 1 приведены арифметические операции и функции, используемые в
программе.
Таблица 1 - Арифметические операции и функции
Запись на языке Паскаль
|
Выполняемые функции
|
ABS(X)
|
| X |
|
COS(X)
|
COS X
|
EXP(X)
|
ex
|
LN(X)
|
Ln x
|
Задание 2. Массивы.
Входными параметрами являются элементы исходного массива А[i, j].
Выходными - элементы измененного массива. Выходной массив изменен путём замены
в нем элементов главной и побочной диагоналей.
Задание
3. Обработка файловых структур данных.
Входные
параметры: элементы массива Т, записанные в файл S.Исходным параметром является
файл Х, элементами которого являются первые пять компонентов файла S и сумма
всех остальных.
Для
работы с файлами используются следующие основные процедуры и функции:(y, ‘Y’) -
связывает внешний файл, с файловой переменной.(y) - открывает существующий файл
для чтения.(y) - создает и открывает новый файл.(y) - закрывает открытый файл.
Так
же используется функция:- возвращает состояние конца файла.
Задание
4. Строки в паскале.
В
данной программе используется входная переменная s. Вводим произвольное
предложение, содержащее цифры. Программа считает количество символов и
сравнивает его с суммой цифр содержащихся в предложении.
Так
же используются функции:- возвращает в качестве значения длину строки.-
возвращает порядковое значение выражения перечисляемого типа.- увеличивает
число на определенное значение.
.
Анализ работы
Задание
1.
1. Даны значения b=-3, c=5.6, k=0.14 и формулы для расчета переменных
p, x и o.
2. Найти по выше приведенным формулам переменную r.
Полученный
результат совпал с результатом программы (рисунок В.1).
Задание
2.
Дана
исходная матрица А:
1. Произведём замену элементов главной диагонали на элементы побочной
диагонали:
Задание 3.
1. Создается файл S, компонентами которого являются элементы массива Т:
2. Записываются в файл Х первые пять компонентов файла S и сумма
всех остальных. Х=(0.2, 0.4, 6.1, 5.8, 4.9, 19.3)
Полученный результат совпал с результатом программы (рисунок В.3).
Задание 4.
Вводим произвольное предложение, содержащее цифры. Программа считает
количество символов и сравнивает его с суммой цифр содержащихся в
предложении:содержит 7 символов и цифру 7. Количество символов равно сумме цифр
значит условие выполняется.
Полученный результат совпал с результатом программы (Рисунок В.4).
Заключение
В
данной курсовой работе были рассмотрены символьные, линейные, файловые
структуры данных и массивы, их ввод, обработка на языке Pascal.
Согласно
условиям поставленных задач в данной курсовой работе подробно разработаны
руководство пользователя и руководство программиста.
Также
были проанализированы результаты работы программы. Задачи, поставленные перед
программистом, были успешно выполнены.
Разработка
блок-схем решения поставленных задач осуществлена в приложении А.
Листинг
программ приведен в приложении Б.
В
приложении В представлены результаты работы программ.
Список
использованной литературы
1. Абрамов
В.Г., Трифонов Н.П. Введение в язык Паскаль. - М.: Наука 1988. - 320 с.
2. Абрамов
С.А., Зима Е.В. Начала программирования на языке Паскаль. - М.: Наука, 1987. -
112 с.
3. Алтухов
А.В., Жукова Т.А. Основы алгоритмизации и программирования - Шымкент: ЮКГИ им.
М. Сапарбаева, 2007 г.
. Бутомо
И.Д., Самочадин А.В., Усанова Д.В. Программирование на алгоритмическом языке
Паскаль. - Л.: Издательство Ленинградского университета, 1985. - 216 с.
5. Грэхем Р.
Практический курс языка Паскаль. - М.: Радио и связь. 1986 - 200 с.
. Йенсен К.,
Вирт Н. Руководство для пользователя и описание языка. - М., 1982. 151 с.
7. Пильщиков
В.Н. Сборник упражнений по языку Паскаль. - М.: Наука, 1989. - 160 с.
8.
ru.wikipedia.org/wiki/PascalABC.
Приложения
Приложение А (обязательное)
Блок-схемы
Рисунок А.1 - Блок-схема алгоритма программы (задание 1)
Рисунок А.2 - Блок-схема программы (задание 2)
Рисунок А.4 - Блок-схема программы (задание 3)
Рисунок А.5 - Блок-схема программы (задание 3)
Рисунок А.6 - Блок-схема программы (задание 3)
Рисунок А.7 - Блок-схема программы (задание 4)
Приложение Б (обязательное)
Листинг программ
Задание 1
Program ZADANIE1;crt;PI=3.14;r,o,p,x,b,c,k:real;;('Введите b=');(b);('Введите c=');(c);('Введите
k=');(k);:=14.38E3+exp(1/3*ln(k-lg(ABS(k))));:=b+c;:=cos(2*PI/3*b);:=(o+p)/(x+exp(2*x)+18E3);('Промежуточные');('p=',p:3:3);('х=',p:3:3);('о=',p:3:3);('Результат');('r=',r:3:3);;.
Задание
2
Zadanie2;A:array[1..4,1..4] of real;,j:integer;:real;i:=1 to
4 doj:=1 to 4 do('vvedite element A[',i,',',j,']:');(A[i,j]);;i:=1 to 4
do:=A[i,i];[i,i]:=A[i,4-i+1];[i,4-i+1]:=N;;i:=1 to 4 doj:=1 to 4 do(A[i,j],'
');;;;;.
Задание
3
Zadanie3;X,S:file of real;:integer;:real;:array[1..8] of
real;(X,'I:X.doc');(S,'I:S.doc');(S);i:=1 to 8 do('vvedite element
T[',i,']:');(T[i]);(S,T[i]);;(S);(X);
B:=0;
for i:=1 to 5 do(S,T[i]);(X,T[i]);;not eof(S)
do(S,T[i]);:=B+T[i];;(X,B);(X);('sodergimoe faila X');not eof(X)
do(X,T[i]);(T[i]);;(X);(S);.
Задание
4
laba4;s:string;,sum,k:integer;('Text: ');readln(s);i:=1 to
length(s) dos[i] in ['0'..'9'] then:=sum+ord(s[i])-ord('0');(k);;sum=length(s)
then writeln('Yslovie vupolnyaetsya')writeln('Yslovie ne vupolnyaetsya');
readln;.
Результаты работы программ
Рисунок В.1 - Результат работы программы (задание 1)
Рисунок В.2 - Результат работы программы (задание 2)
Рисунок В.3 - Вывод работы программы на экран (задание 3)
Рисунок В.4 - Вывод результата работы программы (задание 4)