Автор работы: Пользователь скрыл имя, 15 Декабря 2013 в 16:56, курсовая работа
Проект под названием Delphi начинается с 1993 года. В 1995 году Borland возродила свою версию Паскаль, тогда было принято решение представить среду быстрой разработки приложений визуального программирования – Дельфи для языка Паскаль. Результатом такого решения было создание базы данных инструментов, и подключения центральной части нового продукта Паскаль. В наше время проект Delphi одним из ведущих в сфере программирования. И умение пользоваться данным языком программирования важное качество для любого представителя точных наук. В наше время значение основ программирования – один из признаков образованности человека.
Вступление… … … … … … … … … … … … … … … … … … … … … .… … … 3
Теоритическая часть… … … … … … … … … …… … … … … … … . … … … 5
1.1 Основные понятия языка Delphi… … … … … … … … … …… …. … .… … 5
1.1.1. Алфавит языка… … … … … … … … … …… … … … … … … … … … 5
1.1.2. Словарь языка… … … … … … … … … …… … … … … … … … … … 5
1.1.3. Структура программы… … … … … … … … … …… … … … … … …6
1.1.4. Комментарии… … … … … … … … … … … … … … … …… … … … 10
1.1.5. Типы данных… … … … … … … … … …… … … … … … …… … … …11
1.1.6. Инструкции… … … … … … … … … …… … … … … … … … … … …12
1.1.7. Директивы компилятора… … … … … …… … … … … … … … … …12
1.1.8. Консольное приложение… … … … … …… … … … … … … … … …13
1.2 Простые типы данных… … … … … … … … … … … … … … … … … … 15
1.2.1. Основные понятия… … … … … … … … … … … … … … … … … … 15
1.2.2. Целочисленные типы… … … … … … … … … … … … … … … …… 16
1.2.3. Литерные типы… … … … … … … … … … … … … … … … … …… 16
1.2.4. Логические типы… … … … … … … … … … … … … … … … … … …17
1.2.5. Перечислимые типы… … … … … … … … … … … … … … … … ……17
1.2.6. Интервальные типы… … … … … … … … … … … … … … … … … 18
1.2.7. Вещественные типы… … … … … … … … … … … … … … … … … 19
1.3 Выражения… … … … … … … …… … … … … … … …… … … … … … … 20
1.3.1. Основные понятия… … … … … …… … … … … …… … … … … … 20
1.3.2.Арифметические выражения…… … … … … …… …… … … … … … 21
1.3.3. Логические выражения…… … … … … …… …… … … … … …… … 24
1.4. Простые инструкции…… … … … … …… …… … … … … …… …… … …26
1.5. Структурированные инструкции…… … … … … …… …… … … … … …28
1.6 Структурные типы данных…… … … … … …… …… … … … … …… … 35
1.6.1. Массивы…… … ……… … … … … …… …… … … … … … … … …… 35
1.6.2. Строки…… … … … … …… …… … … … … …… …… … … … … … 37
Практическая часть…… … … … … …… …… … … … … …… …… … … … 41
2.1. Задача №1…… … … … … …… …… … … … … …… …… … … … … …… 41
2.2. Задача №2…… … … … … …… …… … … … … …… …… … … … … …… 44
2.3. Задача №3…… … … … … …… …… … … … … …… …… … … … … …… 47
2.4. Задача №4…… … … … … …… …… … … … … …… …… … … … … …… 50
Вывод…… … … … … …… …… … … … … …… …… … … … … …… …… … … … …54
Список литературы…… … … … … …… …… … … … … …… …… … … … … …… 55
В качестве примера рассмотрим вычисление суммы первых 10 членов последовательности х,,= - = -:
n+1
Var n:integer; s:real;
n:=1;
S:=0;
Repeat
s:=s+(n+1)/(n*n+1);
n:=n+1;
until(n>10);
Инструкция цикла с предусловием целесообразно использовать в случаях, когда число повторений тела цикла заранее неизвестно и тело цикла может ни разу не выполняться. Эта инструкция похожа на инструкцию repeat…until, но Условие здесь проверяется в начале инструкции. Формат инструкции цикла с предусловием:
while<Условие>do<Инструкция>;
Инструкция тела цикла выполняется до тех пор, пока логическое выражение Условие не примет значение False, т.е. в отличие от цикла с постусловием, данный цикл выполняется при значении логического выражения True.
Если перед первым выполнением цикла условие не удовлетворяется (значение логического выражения УСЛОВИЕ равно false), то тело цикла не выполниться ни разу, и происходит переход на инструкцию, следующую за инструкцией цикла.
В качестве примера рассмотрим вычисление суммы первых 10 членов последовательности x = - = -:
n+1
Var n:integer; s:real;
n:=1;
s:=0;
While n<=10 do begin
s:=s+(n+1)/(n*n+1);
n:=n+1;
End;
Инструкция доступа служит для удобной и быстрой работы с составными частями объектов, в том числе с полями записей. Для обращения к полю записи необходимо указывать имя записи и имя этого поля, разделенные точкой. Аналогично образуется имя составной части какого-либо объекта, например, формы или кнопки. Инструкция доступа имеет следующий основной формат:
with<Имя объекта >do<Инструкция >;
В инструкции, расположенной после слова do, для обращения к составной части объекта можно не указывать имя этого объекта, которое уже задано после слова with.
Рассмотрим 2 варианта обращения к составным частям объекта:
Form1.Canvas.Peu.Color:=clRed;
Form1.Canvas.Pen.Width:=5;
Form1.Canvas.Rectangle(10,10,
with Form1.Canvas do
begin
Pen.Color:=clRed;
Pen.Width:=5;
Rectangle(10.10.100.100);
End;
В обоих вариантах в форме красным карандашом толщиной 5 пикселей рисуется прямоугольник. Для обращения к свойствам и методам (процедуре) поверхности рисования формы удобно использовать инструкцию доступа.
В инструкции доступа допускается указывать несколько имен объектов:
with<Имя
обьекта1>,…,<Имя объекта n>do<
Такой формат эквивалентен следующей конструкции:
with<Имя объекта1>dowith<Имя объекта2>dowith<Имя объекта N>do<Инструкция >;
В этом случае для составной части в имени объекта, если возможно, применяется Имя объекта n, иначе имя объекта (n-1) и так далее до имя объекта 1.
1.6. Структурные типы данных
Структурные типы объединяют в себе один или несколько других типов, в том числе структурных. К структурным типам относятся:
1.6.1. Массивы
Массивом называется упорядоченная индексированная совокупность однотипных элементов, имеющих общее имя.Элементами массива могут быть данные различных типов, включая структурные. Каждый элемент массива однозначно определяется именем массива и индексом (номером этого элемента в массиве) или индексами, если массив многомерный. Для обращения к отдельному элементу массива указывается имя этого массива и индекс (индексы) элемента, заключённый в квадратные скобки, например: a221[3,35], a221[3][35],a222[7] .
Количество индексных позиций определяется размерностью массива (одномерный, двумерный, и т.д.) при этом размерность не ограничивается. В математике аналогом одномерного массива является вектор, а двумерного - матрица. Индексы элементов массива должны принадлежать порядковому типу. Разные индексы одного и того же массива могут иметь различные типы. Чаще всего индексы имеют целочисленный тип. Различают статические и динамические массивы. Статический массив представляет собой массив, границы индексов и, соответственно, размеры которого задаются при объявлении, то есть неизвестны до компиляции программы.
Формат описания типа статического массива:
Array [<Тип индексов>]of{<Тип элементов>]
Например:
Type (m=array[1…10,1…100] of real);
Var arr1, arr2:tm;
arr3: array [20..100] of char;
arr4: array[‘a’…’z’] of integer;
Переменные arr1 и arr2 являются одномерными массивами по 1000 элементов(10 строк на 100 столбцов). Каждый элемент этих массивом представляет собой число типа real. Для объявления массивов arr1 и arr2 введен специальный тип tm. Переменные arr3 и arr4 являются одномерными массивами длиной в 81 символ и 26 целых чисел соответственно. Динамический массив представляет собой массив, для которого при объявлении указывается только тип его элементов,а размер массива определяется при выполнении программы.
Формат описания типа динамического массива:Arrayof<тип элементов>;
Во время выполнения программы размер динамического массива задается процедурой Setlength (varS; NewLength: integer), которая для динамического массива S устанавливает новый размер, равный NewLength. Выполнять операции с динамическим массивом и его элементами можно только после задания размеров этого массива. После задания размеров динамического массива для определения его длины, а так же минимального и максимального номеров элементов используются функции: Length, Low , High соответственно. Нумерация элементов динамического массива начинается с нуля,по этому функция Low для него всегда возвращает значение 0.
Рассмотрим пример использования динамического массива:
Var n: integer; m:array of real;
Setlength (m,100);
For n:=0 to 99 do m[n]:=n;
Setlength (m,200);
Здесь после описания динамического массива, содержащего вещественные числа, определяется его размер, равный 100. Каждому элементу присваивается значение, равное номеру этого элемента в массиве. Так как нумерация элементов массива начинается с 0, то номер последнего из них равен не 100, а 99. После завершения числа размер массивов увеличивается до 200. Для описания типа многомерного динамического массива, например двумерного, используется конструкция Array of array of<тип элементов >; Для многомерного, в частности двумерного, динамического массива установка новых размеров выполняется для всех индексов, с помощью процедуры Setlength (var S, newLength1, newlength2:integer).
Действия над массивами, в том числе и операции ввода/вывода, обычно производятся поэлементно. Поэлементная обработка массивов выполняется, как правило, с помощью циклов. Массив в целом, то есть как единый объект, может участвовать только в операциях отношения и инструкции присваивания,причем массивы должны быть полностью идентичными по структуре, то есть иметь одинаковые типы индексов и одинаковые типы элементов.
1.6.2. Строки
Строки (строковые типы) представлены в Delphi 4 типами:
- ShortString
- AnsiString
- WideString
- String.
Тип ShotStrig представляет собой строку, которая фактически является массивом из 256 символов, каждый из которых занимает 1 байт. Нулевой байт этого массива указывает длину строки. Язык Delphiподдерживает также подтипы типа ShotString, максимальная длина изменяется в диапазоне от 0 до 255 символов. Они обозначаются целым числом в квадратных скобках, указываемым справа от ключевого слова string.
Например, записи:
Var str50: string[50]
Type CStr50 = string [50]
Var str50:Cstr50;
Обеспечивают объявление строковой переменной с именем str50, максимальная длина которой составляет 51 символ, т.е. столько, сколько требует описание типа, плюс 1 байт. В случае использования предопределенного типа Shotstring израсходовалось бы 256 байт памяти. Типы AnsiString иWideStringпредставляют собой динамические массивы, максимальная длина которых фактически ограничена размером основной памяти компьютера. В типе AnsiString для символов используется кодировка ANSI, а в типеWideString – кодировка Unicode. Тип String может соответствовать как типу ShortString, так и типу AnsiString, что определяется директивой компилятора $Н. По умолчанию используется {$Н+}, и тип String равен типу AnsiString. Так как строки фактически являются массивами символов, для обращения к отдельному символу строки достаточно указать имя строковой переменной и номер (позицию) этого символа в квадратных скобках,например, strName[1]. Результатом строкового выражения является строка символов. Для строк можно применять операцию +, выполняющую соединение (конкатенацию) двух строк.
Для работы со строками имеются следующие функции:
И процедуры:
Кроме перечисленных подпрограмм, большое количество процедур и функций для работы со строками содержится в модуле SysUtils. Отметим следующие функции:
- StrToFloat (constS:String):Extended - преобразование значения строки S в вещественное число;
- DateToStr (Date:TDateTime):String – преобразование значения даты в выражении Date в строку;
- TimeToStr (Time:TDateTime):String - преобразование значения времени значения Time в строку;
- StrToDateTime(constS:String):
- StrToDate (const:String):TDateTime - преобразование строки S в дату;
- StrToTime (const S: String):TDateTime –преобразование строки Sвовремя;
- UpperCase (const S: String):String -переводсимволов Sвверхнийрегистр;
- LowerCase (constS:String):String - перевод символов строки S в нижний регистр;
- Trim(const S:String):String - удаление пробелов и управляющих символов в начале и в конце строки S;
- TrimLeft (constS:String):String - удаление пробелов и управляющих символов в начале строки S;
- TrimRight (const S:String):String - удаление пробелов и управляющих символов в конце строки s
Для работы с датой и временем используется тип TDateTime, а так же функции NOW() DATE () TIME(), возвращающие текущие значения даты и времени.
Примеры строковых выражений:
|abcdk|+s;
’сумма равна’ + FloatToStr(x)
Здесь переменная s принадлежит к строковому типу, а x - к вещественному.
Вывод:
При выполнении курсовой
Список литературы
1. Ершова
Н.М., Скрипник В.П., Цибрий Л.В., Шибко
О.Н. Лабораторный практикум
2. ФароновВ.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие, - М.: Ноллидж, 1997, - 616 с.
3. Фаронов В.В. Турбо Паскаль 7.0. Практика программирования. Учебное пособие. – М.: «Ноллидж», 1997. – 432 с.
4. Руденко В.Д., Макарчук О.М., Патланжоглу М.О. Практичный курс информатики /За ред. В.М.Мадзігона. - К: Фенікс, 1997.
5.Delphi 7. Основы программирования. Решение типовых задач: Л.М.Климова – Санкт-Петербург, КУДИЦ-Образ, 2006 г.- 480 с.
X:=X+0.5
Конец
Информация о работе Основи інформаційних технологій та програмування (Delphi)