48253 (Программирование на Delphi с алгоритмами и кодами)

2016-07-30СтудИзба

Описание файла

Документ из архива "Программирование на Delphi с алгоритмами и кодами", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48253"

Текст из документа "48253"

Содержание

Введение

Минимальные системные требования для использования Delphi

План работы для первой задачи

Главная программа

Свойства и структура главной программы

Код главной программы

Задание №1

Алгоритм первой программы:

Свойства и структура первой программы

Код первой программы

Задание №2

Свойства и структура второй программы

Код второй программы

Результат выполнения программы

Задание № 3

Алгоритм третьей программы

Свойства и структура третьей программы

Код третьей программы

Инструкция по применению программы

Заключение

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

Введение

Целью данной курсовой работы является выполнение заданий на Delphi по предмету “программирование на языках высокого уровня».

Данная работа содержит три задачи, написанные на Delphi. Это задачи на разные темы, в которых применяются различные элементы языка программирования и компоненты Delphi.

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

Для создания программы использовались компоненты из вкладок Standard и Additional:

Button – кнопка;

StringGrid – таблица для отображения каких-либо значений;

Label – компонента, для отображения не редактируемого текста;

Edit – компонент ввода-вывода текстовой строкиж

Panel – панель с надписью;

TChart – компонента для прорисовки графика.

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

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

Минимальные системные требования для использования Delphi

Процессор - Intel Pentium 233 МГц и выше

Операционная система - Microsoft Windows XP, Windows 2000

Оперативная память - 64 Мбайт (рекомендуется 128 Мбайт)

Пространство на жестком диске - 450 Мбайт

Монитор - SVGA или выше

Другое аппаратное обеспечение - CD-ROM, мышь

План работы для первой задачи

Создаем форму и изменяем необходимые свойства главной формы в окне свойств:

Height - ширина формы;

Width - длина формы;

Caption - название формы.

Добавляем на главную форму необходимые элементы управления:

Button – запуск вычислений, открытие окна графика, выход из программы;

StringGrid – отображение таблицы значений x, y, s.

Label – отображение не редактируемого текста;

Edit – ввод данных для вычислений.

Прописываем в компонентах Edit текст по умолчанию в свойство Text.

Изменяем свойства добавленного элемента управления StringGrid:

- ColCount

- RowCount

- FixedCols

- FixedRows

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

Создаем отдельную форму для графика, на нее помещаем компонент TChart. Пишем команду ее открытия на одну из кнопок.

Запускаем программу с целью проверки ее работоспособности. Сохраняем проект.

План работы для второй задачи

Создаем форму и изменяем необходимые свойства главной формы в окне свойств:

Height - ширина формы;

Width - длина формы;

Caption - название формы.

Добавляем на главную форму необходимые элементы управления:

Button – запуск вычислений, открытие окна графика, выход из программы;

StringGrid – отображение таблицы значений x, y, s.

Label – отображение не редактируемого текста;

Edit – ввод данных для формирования массивов и вывода полученных числовых рядов.

Изменяем свойства добавленного элемента управления StringGrid:

- ColCount

- RowCount

- FixedCols

- FixedRows

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

План работы для третьей задачи

Создаем форму и изменяем необходимые свойства главной формы в окне свойств:

Height - ширина формы;

Width - длина формы;

Caption - название формы.

Задаем для формы регион, в который она будет вписана.

Пишем алгоритм движения по кромке экрана. Запускаем программу с целью проверки ее работоспособности. Сохраняем проект.

Код главной программы

unit Unit1;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Panel1: TPanel;

Panel2: TPanel;

Button4: TButton;

procedure Button4Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit4, Unit7;

{$R *.dfm}

procedure TForm1.Button4Click(Sender: TObject);

begin

Form1.Close; // закрывает главную форму и приложение

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

form2.showmodal; // показывает форму задания № 1

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

form4.showmodal; // показывает форму задания №2

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

form7.showmodal; // показывает форму задание №3

end;

end.

Задание №1

  1. Построить график:

Алгоритм первой программы

Псевдокод:

Начало Расчет (a,b,n\x,y,s)

константа h=0.05

вещ s,y,a,b,x,su

цел i,n,j,k,p

ввод a,b,n

k:=round(1+(b-a)/h);

x=a

Цикл для i от одного до k

s:=(x-1)/3;

Цикл для j от двух до n

su:=1

Цикл для p от одного до j

su:=su*(x-1)/x

Все цикл

s:=s+su/j

Все цикл

y:=ln(x)

Вывод x,s,y

Построение графика на форме 3

x:=x+h

Все-цикл

Конец Расчет.

В первой программе использовались компоненты:

Edit – для ввода параметров вычисления;

Button1-кнопка для вычисления S и Y;

Button2-кнопка для закрытия формы;

Button3-кнопка для открытия формы с графиком;

StringGrid1-таблица для вывода результатов вычислений;

Компоненты, которые использовались для оформления:

Image1 – для вывода на экран задания;

Label- компонента для отображения текста.

Для вывода графика создана отдельная форма с компонентом Chart1.

Код первой программы

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, Grids, ExtCtrls, Math, jpeg;

type

TForm2 = class(TForm)

Image1: TImage;

StringGrid1: TStringGrid;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit3;

{$R *.dfm}

procedure TForm2.Button2Click(Sender: TObject);

begin

Form2.Close; // закрывает форму задания №1

end;

procedure TForm2.Button1Click(Sender: TObject); // производит вычисления x, y, s, заполнение таблицы, постройка графика

const h=0.05;

var i,n,j,k,p:integer;

s,y,a,b,x,su:real;

begin

a:=strtofloat(edit1.text);

b:=strtofloat(edit2.text);

n:=strtoint(edit3.text);

k:=round(1+(b-a)/h);

x:=a;

StringGrid1.ColWidths[0]:=20; // задает ширину столбца

StringGrid1.cells[1,0]:='x'; // задает подпись столбца

StringGrid1.cells[2,0]:='s'; // задает подпись столбца

StringGrid1.cells[3,0]:='y'; // задает подпись столбца

for i:=1 to k do

begin

s:=(x-1)/3;

for j:=2 to n do

begin

su:=1;

for p:=1 to j do

su:=su*(x-1)/x;

s:=s+su/j;

end;

y:=ln(x);

StringGrid1.cells[0,i]:=inttostr(i); // нумерует строки таблица

StringGrid1.cells[1,i]:=floattostr(x); //выводит x

StringGrid1.cells[2,i]:=FloatToStr(Round(s*exp(10*ln(10)))/(exp(10*ln(10)))); // выводит y

StringGrid1.cells[3,i]:=FloatToStr(Round(y*exp(10*ln(10)))/(exp(10*ln(10)))); // выводит s

Form3.Grafik.SeriesList[0].AddXY(x,ln(x),'',clRed); // строит график

x:=x+h;

end;

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

form3.ShowModal; //показывает форму графика

end;

end.

Задание №2

Дана матрица размера n*(n+1), числа а1, …, аn+1, b1, …, bn+1, натуральные числа р, g (p <= n, g <= n+1). Образовать новую матрицу размера (n+1)*(n+2) вставкой после строки с номером р данной матрицы новой строки с элементами a1, …, an+1 и последующей вставкой после столбца с номером g нового столбца с элементами b1, …, bn+1.

Во второй программе использовались компоненты:

Edit – для ввода параметров заполнения и вывода числовых рядов;

Button1-кнопка для заполнения числовых рядов и массивов;

Button2-кнопка для закрытия формы;

StringGrid1-таблица для вывода начального массива a[i;j];

StringGrid2-таблица для вывода конечного массива b[i;j];

Компоненты, которые использовались для оформления:

Label- компонента для отображения текста.

Код второй программы

unit Unit4;

interface

uses

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

Dialogs, Grids, StdCtrls;

type

TForm4 = class(TForm)

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Edit1: TEdit;

Label1: TLabel;

Edit2: TEdit;

Label5: TLabel;

Edit3: TEdit;

Button1: TButton;

Button2: TButton;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

Edit4: TEdit;

Edit5: TEdit;

Label6: TLabel;

Label7: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);

var i,j,n,p,q:integer;

mas1,mas,mas2:array[1..100,1..100] of integer;

a,b:array[1..100] of integer;

begin

n:=strtoint(edit1.Text);

p:=strtoint(edit2.text);

q:=strtoint(edit3.Text);

edit4.Text:='';

edit5.text:='';

randomize;

for i:=1 to n+1 do

begin

a[i]:=random(98)+1; // формируем значения первого числового ряда

edit4.Text:=edit4.Text+inttostr(a[i])+' '; // выводим значения первого числового ряда

b[i]:=random(98)+1; // формируем значения второго числового ряда

edit5.Text:=edit5.Text+inttostr(b[i])+' '; // выводим значения второго числового ряда

end;

// задаем количество сток и столбцов таблиц

stringgrid1.ColCount:=n+2;

stringgrid1.RowCount:=n+1;

stringgrid2.ColCount:=n+3;

stringgrid2.RowCount:=n+2;

// нумеруем строки и столбцы таблиц

for i:=1 to n do

stringgrid1.Cells[0,i]:=inttostr(i);

for i:=1 to n+1 do

stringgrid1.Cells[i,0]:=inttostr(i);

for i:=1 to n+1 do

stringgrid2.Cells[0,i]:=inttostr(i);

for i:=1 to n+2 do

stringgrid2.Cells[i,0]:=inttostr(i);

for i:=1 to n do

for j:=1 to n+1 do

begin

mas1[i,j]:=random(98)+1; // формируем значения исходного массива

stringgrid1.Cells[j,i]:=inttostr(mas1[i,j]); // выводим значения исходного массива в таблицу

end;

// формируем промежуточный массив вставкой строки в исходный массив

for i:=1 to p do

for j:=1 to n+1 do

mas[i,j]:=mas1[i,j];

for j:=1 to n+1 do

mas[p+1,j]:=a[j];

for i:=p+2 to n+1 do

for j:=1 to n+1 do

mas[i,j]:=mas1[i-1,j];

// формируем конечный массив вставкой столбца в промежуточный массив

for j:=1 to q do

for i:=1 to n+1 do

mas2[i,j]:=mas[i,j];

for i:=1 to n+1 do

mas2[i,q+1]:=b[i];

for j:=q+2 to n+2 do

for i:=1 to n+1 do

mas2[i,j]:=mas[i,j-1];

for i:=1 to n+1 do

for j:=1 to n+2 do

stringgrid2.Cells[j,i]:=inttostr(mas2[i,j]); // выводим в таблицу конечный массив

end;

procedure TForm4.Button2Click(Sender: TObject);

begin

form4.close; // закрывает форму задания №2

end;

end.

Результат выполнения программы

Задание № 3

Движение закрашенного круга по кромке экрана с изменением цвета при изменении направления движения.

Алгоритм третьей программы

Псевдокод:

Начало Движение (i,j)

цел i, j

Цикл для i от одного до конца ширин экрана

Задаем цвет круга

Двигаем круг

Задержка времени

Все цикл

Цикл для j от одного до конца высоты экрана

Задаем цвет круга

Двигаем круг

Задержка времени

Все цикл

Цикл для i от одного до начала ширин экрана

Задаем цвет круга

Двигаем круг

Задержка времени

Все цикл

Цикл для j от одного до начала высоты экрана

Задаем цвет круга

Двигаем круг

Задержка времени

Все цикл

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее