Основи інформаційних технологій та програмування (Delphi)

Автор работы: Пользователь скрыл имя, 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

Прикрепленные файлы: 1 файл

курсовая.docx

— 100.56 Кб (Скачать документ)

В качестве примера рассмотрим вычисление суммы  первых 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,100,100);

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

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]. Результатом строкового выражения является строка символов. Для строк можно применять операцию +, выполняющую соединение (конкатенацию) двух строк.

     Для работы со строками имеются следующие функции:

  • Length (S):Integer – определение длины строки S;
  • Copy (S; Index, Count:Integer):String – выделение из строки S подстроки длиной Count символов, начиная с символа позиции Index;
  • Concat(S1[,S2,…,Sn]: String): String – соединениестрок S1 … Sn .
  • Pos (Substr:String; S:String):Integer - определение позиции (номера) символа, начиная с которого подстрока Substr входит в строку S,если подстрока не найдена то возвращается 0.

     И процедуры:

    • Insert (Source: String; var S: String; Index: Integer) -вставкастрокиSourceвстроку S,начинаяспозицииIndex;
    • Delete(var S:String;Index, Count:Integer) - удаление из строки S подстроки символов длиной Count, начиная с позиции индекс;
    • Val (S;var V; varCode:Integer) - преобразование S в число V,  тип которого зависит от представления числа в строке, параметр Code возвращает код результата операции (ноль, если операция выполнена успешно);
    • Str(X[:Width[:decimals]];var S) – преобразование значения численного выражения X в строку S.

     Кроме перечисленных подпрограмм, большое количество процедур и функций для работы со строками содержится в модуле SysUtils. Отметим следующие функции:

- StrToFloat (constS:String):Extended - преобразование значения строки S в вещественное число;

  • IntToStr( Value; integer) String – преобразование значения целочисленного выражения Value в стоку;
  • StrToInt(coust S:String )  : Integer – преобразование строки S в целое число
  • FloatToStr (Value:Exteuded) :String – преобразования значения вещественного выражения Value в строку;

- DateToStr (Date:TDateTime):String – преобразование значения даты в выражении Date в строку;

- TimeToStr (Time:TDateTime):String - преобразование значения времени значения Time в строку;

- StrToDateTime(constS:String):TDateTime - преобразование строки S в дату и время;

- 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 - к вещественному.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод:

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

1. Ершова  Н.М., Скрипник В.П., Цибрий Л.В., Шибко  О.Н. Лабораторный практикум по  программированию на алгоритмическом  языке Турбо Паскаль. - Днепропетровск, 2001. - 23 с.

2. ФароновВ.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие, - М.: Ноллидж, 1997, - 616 с.

3. Фаронов  В.В. Турбо Паскаль 7.0. Практика  программирования. Учебное пособие.  – М.: «Ноллидж», 1997. – 432 с.

4. Руденко  В.Д., Макарчук О.М., Патланжоглу М.О.  Практичный курс информатики  /За ред. В.М.Мадзігона. - К: Фенікс, 1997.

5.Delphi 7. Основы программирования. Решение  типовых задач: Л.М.Климова –  Санкт-Петербург, КУДИЦ-Образ, 2006 г.- 480 с.

 

 

 

 

X:=X+0.5


Конец

Информация о работе Основи інформаційних технологій та програмування (Delphi)