Основы программирования на языке Delphi

Основы языка Object Pascal. Примеры простейших программ на языке Delphi с использованием: линейных, разветвляющихся и циклических алгоритмов, массивов, подпрограмм и модулей. Способы организации ветвящихся и циклических вычислительных процессов.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 03.09.2013
Размер файла 548,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

1. Программирование линейных алгоритмов

Цель работы: Изучить основы языка Object Pascal. Научиться составлять программы в среде DELPHI.

Задание: По указанию преподавателя выберите индивидуальное задание. Установите необходимое количество окон TEdit и меток TLabel. Выберите необходимые типы переменных и функции их преобразования при вводе и выводе данных. Для проверки правильности написания программы введите указанные в задании значения x, y и z - результат должен быть равен s.

.

При x=17.421, y=10.365ґ10-3, z=0.828ґ105 s=0.33056.

Вид формы

Текст программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Buttons, StdCtrls, Math;

type

TForm1 = class(TForm)

Label2: TLabel;

Edit1: TEdit;

Memo1: TMemo;

Button1: TButton;

Edit3: TEdit;

Label1: TLabel;

Edit2: TEdit;

Label4: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

x,y,z,s: real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

x:=StrToFloat(Edit1.Text);

y:=StrToFloat(Edit2.Text);

z:=StrToFloat(Edit3.Text);

s:=power(y+power(x-1,1/3),1/4)/(abs(x-y)*(sqr(sin(z))+tan(z)));

Memo1.Lines.Add('Результат s='+FloatToStrF(s,fffixed,8,5));

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text:='17,421';

Edit2.Text:='10,365e-3';

Edit3.Text:='0,828e5';

end;

end.

Выводы: Изучены основы языка Object Pascal. Научились составлять программы в среде DELPHI.

2. Программирование разветвляющихся алгоритмов

Цель работы: изучить способы организации ветвящихся вычислительных процессов. Написать и отладить программу разветвляющегося алгоритма.

Задание: По указанию преподавателя выберите индивидуальное задание. В качестве f(x) использовать по выбору: Sin(x), Cos(x) или Tg(x). Отредактируйте вид формы и текст программы, в соответствии с полученным заданием.

.

Вид формы

Текст программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Buttons, StdCtrls, Math, ExtCtrls;

type

TForm1 = class(TForm)

Label2: TLabel;

Edit1: TEdit;

Memo1: TMemo;

Button1: TButton;

Label1: TLabel;

Edit2: TEdit;

RadioGroup1: TRadioGroup;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

x,y,f,s: real;

st: String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

x:=StrToFloat(Edit1.Text);

y:=StrToFloat(Edit2.Text);

Case RadioGroup1.ItemIndex of

0: f:=sin(x);

1: f:=cos(x);

2: f:=tan(x);

End;

If f<10 Then

s:=3*power(x,y)+sqrt(sin(y))

Else If f<12 Then

s:=sin(x)*2*tan(x*y)

Else

s:=cos(x)+sqr(ln(y));

Memo1.Lines.Add('Результат s= '+FloatToStrF(s,ffGeneral,8,3));

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text:='10';

Edit2.Text:='3';

RadioGroup1.ItemIndex:=0;

end;

end.

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

3. Программирование циклических алгоритмов

Цель работы: изучить способы организации циклических вычислительных процессов.

Задание: Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для x изменяющихся от xn до xk с заданным количеством шагов n (). Близость значений S(x) и Y(x) во всем диапазоне значений x указывает на правильность вычисления S(x) и Y(x).

После написания программы и исправления ошибок трансляции изучите средства отладки программ (см. прилож.), для чего установите курсор на первый оператор и нажмите клавишу F4. После этого, нажимая клавишу F7, выполните пошагово программу и проследите, как меняются все переменные в процессе выполнения.

S(x)

n

Y(x)

-2

-0.1

300

Вид формы

Текст программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Buttons, StdCtrls, Math;

type

TForm1 = class(TForm)

Label2: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Label3: TLabel;

Memo1: TMemo;

Button1: TButton;

Edit3: TEdit;

Label1: TLabel;

Edit4: TEdit;

Label4: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

x,xn,xk,h,s,y: real;

i,m:integer;

const pi = 3.14159265;

implementation

{$R *.dfm}

function fact(n: integer): extended;

var i: integer;

f: extended;

begin

if n<2 then fact:=1

else begin

f:=1;

for i:=1 to n do f:=f*i;

fact:=f;

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

var k, n: integer;

a,b,h,s,x,y: extended;

begin

Memo1.Clear;

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

h:=StrToFloat(Edit3.Text);

n:=StrToInt(Edit4.Text);

x:=a;

repeat

s:=0;

a:=0;

for k:=0 to n do begin

a:=power(-1,k)*power(2*x,2*k)/fact(2*k+1);

s:=s+a;

end;

y:=sin(x)/x;

Memo1.Lines.Add(' при x='+FloatToStrF(x,ffFixed,4,2)+' y='+

FloatToStrF(y,ffFixed,8,4)+' s='+FloatToStrF(y,ffFixed,8,4));

x:=x+h;

until (x>b+h/2); // Добавляется h/2 для вывода последнего элемента

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Memo1.Clear;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Memo1.Clear;

Edit1.Text:='-2';

Edit2.Text:='-0,1';

Edit3.Text:='0,1';

Edit4.Text:='300';

end;

end.

Выводы: Изучены способы организации циклических вычислительных процессов. программа delphi алгоритм массив

4. Программирование с использованием массивов

Цель работы: изучить свойства компонента TStringGrid. Написать программу с использованием массивов.

Задание: По указанию преподавателя выберите вариант задачи. Во всех заданиях переменные вводить и выводить с помощью компонента TEdit, массивы - c помощью компонента TStringGrid, в котором 0-й столбец и 0-ю строку использовать для отображения индексов массивов. Вычисления выполнять, после нажатия кнопки типа TВutton.

Задан двухмерный массив целых чисел A размером N на M, состоящий из нулей и единиц. Найти количество нулей и единиц в этом массиве.

Вид формы

Текст программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, Grids;

type

TForm1 = class(TForm)

Edit1: TEdit;

Button1: TButton;

StringGrid1: TStringGrid;

Button2: TButton;

Memo1: TMemo;

Label1: TLabel;

Label2: TLabel;

Edit2: TEdit;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Const

Nmax=100; // Максимальный размер массива

Type // Объявление типа одномерного массива

Mas = Array [1..Nmax,1..Nmax]of Extended; // размерностью Nmax

Var

Form1: TForm1;

A:Mas; // Объявление одномерного массива

i, j, n, m: Byte;

T: Extended;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

Memo1.Clear;

n:=4; // Число строк в массиве

m:=4; // Число столбцов в массиве

Edit1.Text:='4';

Edit2.Text:='4';

StringGrid1.Cells [0,0]:='A';

for i:=1 to n do StringGrid1.Cells [0,i]:='i='+IntToStr(i);

for j:=1 to m do StringGrid1.Cells [j,0]:='j='+IntToStr(j);

end;

procedure TForm1.Button1Click(Sender: TObject); // Изменить размер

begin

n:=StrToInt(Edit1.Text); // Число строк в массиве

m:=StrToInt(Edit2.Text); // Число столбцов в массиве

{Задание числа строк и столбцов в таблице}

StringGrid1.RowCount:=N+1;

StringGrid1.ColCount:=M+1;

for i:=1 to n do StringGrid1.Cells [0,i]:='i='+IntToStr(i);

for j:=1 to m do StringGrid1.Cells [j,0]:='j='+IntToStr(j);

end;

procedure TForm1.Button2Click(Sender: TObject);

var sum: extended;

nul, odin: integer;

begin

Memo1.Clear;

nul:=0;

odin:=0;

{Заполнение массива А элементами из таблицы StringGrid1}

for i:=1 to n do

for j:=1 to m do begin

A [i,j]:=StrToInt(StringGrid1.Cells [j,i]);

{Расчет}

if A [i,j]=0 then nul:=nul+1

else if A [i,j]=1 then odin:=odin+1

end;

{ Вывод результата }

Memo1.Lines.Add('Количество нулей = ' + IntToStr(nul));

Memo1.Lines.Add('Количество единиц = ' + IntToStr(odin));

end;

end.

Выводы: Изучены свойства компонента TStringGrid. Написана программа с использованием массивов.

5. Программирование с использованием подпрограмм и модулей

Цель работы: изучить возможности DELPHI для написания подпрограмм и создания модулей. Составить и отладить программу, использующую внешний модуль UNIT с подпрограммой.

Задание: По указанию преподавателя выберите вариант задачи. Составьте программу, оформив вычисления в виде подпрограммы (процедуры или функции). В головной программе произвести ввод исходных данных, вызов подпрограммы и вывод результатов.

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

Вид формы

Текст программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, Grids, MyMath;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

StringGrid1: TStringGrid;

Button2: TButton;

Memo1: TMemo;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Const

Nmax=100; // Максимальный размер массива

Var

Form1: TForm1;

A: TMas; // Объявление одномерного массива

i, j, n, m: Byte;

T: Extended;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

Memo1.Clear;

n:=4; // Число строк в массиве

m:=4; // Число столбцов в массиве

Edit1.Text:='4';

Edit2.Text:='4';

StringGrid1.Cells [0,0]:='A';

for i:=1 to n do StringGrid1.Cells [0,i]:='i='+IntToStr(i);

for j:=1 to m do StringGrid1.Cells [j,0]:='j='+IntToStr(j);

end;

procedure TForm1.Button1Click(Sender: TObject); // Изменить размер

begin

n:=StrToInt(Edit1.Text); // Число строк в массиве

m:=StrToInt(Edit2.Text); // Число столбцов в массиве

{Задание числа строк и столбцов в таблице}

StringGrid1.RowCount:=n+1;

StringGrid1.ColCount:=m+1;

for i:=1 to n do StringGrid1.Cells [0,i]:='i='+IntToStr(i);

for j:=1 to m do StringGrid1.Cells [j,0]:='j='+IntToStr(j);

end;

procedure TForm1.Button2Click(Sender: TObject);

var kol: integer;

sum: extended;

begin

Memo1.Clear;

{Заполнение массива А элементами из таблицы StringGrid1}

for i:=1 to n do

for j:=1 to m do

A [i,j]:=StrToInt(StringGrid1.Cells [j,i]);

{Расчет}

Matric(A, n, m, Memo1);

end;

end.

Текст модуля MyMath

unit MyMath;

interface

uses SysUtils, StdCtrls;

type TMas = array [1..10, 1..10]of extended;

Procedure Matric(A: TMas; n: integer; m: integer; Memo1: TMemo);

implementation

Procedure Matric(A: TMas; n: integer; m: integer; Memo1: TMemo);

var i,j,kol: integer;

sum: Extended;

st: string;

begin

kol:=0;

for i:=1 to n do begin

sum:=0;

for j:=1 to m do

sum:=sum+A [i,j];

for j:=1 to m do

if A [i,j]>sum-A [i,j]then inc(kol);

end;

Memo1.Lines.Add('Количество "особых" элементов = ' + IntToStr(kol));

end;

end.

Выводы: Изучены возможности DELPHI для написания подпрограмм и создания модулей. Составлена и отлажена программа, использующая внешний модуль UNIT с подпрограммой.

Размещено на Allbest.ru


Подобные документы

  • Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.

    курсовая работа [1,5 M], добавлен 08.02.2011

  • Особенности и тонкости программирования в среде Delphi. Специфика перехода от алгоритмического решения к непосредственной программной реализации на языке Object Pascal с использованием всех необходимых средств данного языка. Анализ полученных результатов.

    реферат [246,2 K], добавлен 17.11.2012

  • Разработка простейших линейных алгоритмов (составление логических выражений), программ с ветвлениями, циклических программ и составление их блок-схем. Практическое выполнение обработки массивов на примере вычисления элементов квадратной матрицы.

    контрольная работа [173,3 K], добавлен 01.03.2010

  • Основные понятия и структура обработчика на языке Pascal. Элективные курсы по информатике в системе профильного обучения. Элективный курс "Программирование в среде Delphi". Методические материалы по изучению программирования на языке Object Pascal.

    методичка [55,4 K], добавлен 08.12.2010

  • Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования Delphi, которое, как планируется, будет обеспечивать решение специализированных задач по формированию, обработке на ЭВМ и выводу информации.

    курсовая работа [967,6 K], добавлен 20.05.2008

  • Методы грамматического разбора. Разработка структуры учебного транслятора на базовом языке программирования Object Pascal в среде объектно-ориентированного визуального программирования Borland DELPHI 6.0 с использованием операционной системы Windows XP.

    курсовая работа [493,8 K], добавлен 12.05.2013

  • Структура и основные элементы языка Turbo Pascal. Алгоритм составления простейших программ на Turbo Pascal. Применение условного оператора и сильноветвящихся алгоритмов. Циклы с предусловием и постусловием, сочетание циклических и условных операторов.

    реферат [64,0 K], добавлен 20.03.2016

  • Решение задач с помощью языка программирования Delphi: вычисление значения функции Y от X; систем двух уравнений; прогрессий; последовательностей; вычисление числа с определенной точностью; перевод числа из десятичной в восьмеричную систему счисления.

    отчет по практике [83,8 K], добавлен 08.06.2010

  • Организация файлов и доступ к ним. Файловые операции. Программирование с использованием встроенных функций ввода-вывода; линейных, разветвляющихся и циклических вычислительных процессов с использованием If-else, оператора выбора Case; массивов и матриц.

    курсовая работа [5,8 M], добавлен 24.05.2014

  • Характеристика вычислительной системы и инструментов разработки. Программирование на языке Pascal в среде Turbo Pascal и на языке Object Pascal в среде Delphi. Использование процедур, функций, массивов, бинарного поиска. Создание базы данных в виде файла.

    отчет по практике [2,1 M], добавлен 02.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.