Эффект анимации (программа переносит изображение в canvas и по горизонтали)
Delphi как среда разработки программ, ориентированных на работу в операционных системах семейства Windows. Разработка и анализ необходимого алгоритма, его кодирование и отладка. Формирование и листинг программы, оценка ее практической эффективности.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 29.12.2011 |
Размер файла | 141,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Введение
Цель работы - научиться анализировать задание и определить перечень вопросов, которые будут решаться в данной работе, создавать список функциональных требований к программе, то есть определение того, что, собственно, будет выполнять разрабатываемая программа, не рассматривая конкретную реализацию этих функций, в задачах лексического и синтаксического анализа, уметь определять возможные ошибки в записи операторов, описывать интерфейс программы и те функции, которые она будет выполнять.
О стремительном темпе развития информационных технологий мы с вами читаем и слышим почти каждый день. Эти темпы действительно впечатляют. Однако в компьютерном мире остается одна самая важная область, изменения в которой происходят крайне медленно. Программирование, кодирование, составление исходных текстов - ключевой элемент в создании любого приложения сегодня происходит так же, как и сорок лет назад. Разработчик применяет крайне ограниченный набор логических конструкций (условный оператор и операторы присваивания и цикла) и небольшое число стандартных типов данных. Причем такой подход ничуть не изменился, хотя сменилось уже не одно поколение языков программирования. Например, на смену Си и Паскалю пришла Java.
Delphi - это среда разработки программ, ориентированных на работу в операционных системах семейства Windows. Программы в Delphi создаются на основе современной технологии визуального проектирования. С помощью Delphi можно создать удобный интерфейс программы, в который могут входить различные меню, окна для ввода и вывода текстовой информации и т.п. Такие оконные приложения - основной вид приложений, используемых в операционных системах семейства Windows.
Delphi только упрощает процесс создания интерфейса, но не заменяет собой собственно программирования. Программы в Delphi пишутся на языке Object Pascal, который является преемником и развитием языка Turbo Pascal.
Конвертер перевод программы с одного языка высокого уровня на другой. Перевод может осуществляться с любого существующего или разработанного человеком высокого уровня на другой.
Разработка алгоритма
На этапе разработки алгоритма необходимо определить последовательность действий, которые надо выполнить для получения результата. Если задача может быть решена несколькими способами и, следовательно, возможны различные варианты алгоритма решения, то программист, используя некоторый критерий, например, скорость решения алгоритма, выбирает наиболее подходящее решение. Результатом этапа разработки алгоритма является подробное словесное описание алгоритма или его блок-схема.
Кодирование
После того как определены требования к программе и составлен алгоритм решения, алгоритм записывается на выбранном языке программирования. В результате получается исходная программа.
Отладка
Отладка - это процесс поиска и устранения ошибок. Ошибки в программе разделяют на две группы: синтаксические (ошибки в тексте) и алгоритмические. Синтаксические ошибки - наиболее легко устраняемые. Алгоритмические ошибки обнаружить труднее. Этап отладки можно считать законченным, если программа правильно работает на одном - двух наборах входных данных.
Конвертер с одного языка высокого уровня на другой. Перевод может осуществлять с любого существенного или разработанного студентами языка высокого уровня на другой. При этом язык, с которого осуществляется перевод, должен обладать следующей функциональностью: арифметические действия, условные операторы единственного и множественного выборов, циклы трех видов, объявления производных типов - структур и классов - с описанием зон видимости методов и свойств, поддержкой конструктора(конструкторов) и деструктора, объявление переменных базовых или производных типов, объявление переменных базовых или производных типов, объявление функций, описание функций, в том числе и методов классов, диагностика синтаксических ошибок.
Конвертер форматов
Программа конвертирует файл в выбранном пользователем формате в другой формат. Грамматика, описывающая входной файл, должна содержать не менее 40 правил. Возможна конвертация из нескольких входных форматов.
Паскаль и Delphi (Object Pascal)
В системе Delphi 7 используется специализированная, постоянно совершенствуемая версия языка программирования Паскаль, которая называется Delphi (в шестой и более ранних вариантах системы Delphi она называлась Object Pascal, «Объектный Паскаль»). Эта версия включает набор расширений, ориентированных только на применение в рамках среды Delphi 7 и предназначенных для ускоренного создания приложений.
В комплект системы Delphi 7 входит компилятор командной строки dcc32.exe для этого языка. Кроме того, выполнять компиляцию можно непосредственно из интегрированной оболочки.
Постановка задачи
Дана целочисленная матрица порядка т х п. Найти матрицу, получающуюся из данной перестановкой столбцов - 1-го с последним. 2-го с предпоследним и т.д. В каждой матрице определить количество «особых» элементов, считая элемент «особым», если в его строке слева от него находятся элементы меньшие, а справа - большие. В матрице с наибольшим числом «особых» элементов упорядочить элементы строк по убыванию.
Для ввода и вывода данных использовать компоненты Delphi.
На первом этапе выполнения курсовой работы необходимо проанализировать задание и определить перечень вопросов, которые будут решаться в данной работе. Основное назначение этого этапа - создание списка функциональных требований к программе, то есть определение того, что, собственно, будет выполнять разрабатываемая программа, не рассматривая конкретную реализацию этих функций. Для программы постановка задачи является самым высшим уровнем абстракции, или самым общим представлением требований к ней.
Разбираем суть задания и на этой основе разрабатываем алгоритм программы, определяя в каждой матрице количество «особых» и упорядочиваем элементы строк по убыванию и лишь после этого находим матрицу, получающуюся перестановкой столбцов, согласно заданию.
При разработке программ обработки типизированных файлов большее внимание следует уделить описанию интерфейса программы и тем функциям, которые она будет выполнять.
В любом случае следует помнить, что постановка задачи - это первый и ответственный этап разработки, после которого составляется алгоритм программы.
Запись программы
Программа на Паскале записывается с помощью набора символов, включающего латинские буквы (регистр не имеет значения), цифры, символ подчеркивания и стандартные знаки препинания. Элементы программы отделяются друг от друга с помощью произвольного числа пробелов и пустых строк.
Обмен информацией
Так как создаваемая программа - консольная, общаться с пользователем с помощью графического интерфейса она не может. Для этого нужны более простые средства обмена информацией с человеком.
В Паскале имеются две стандартные процедуры ReadLn (для ввода данных) и Write Ln (для записи данных), которые могут использоваться в консольных приложениях. Первая процедура выполняет ввод значения с клавиатуры и его передачу в переменную, которая указана в качестве параметра (можно указать и список переменных - тогда при вводе соответствующие им значения надо разделять пробелами). Вторая процедура выводит одно или несколько значений переменных или выражений в текущую строку экрана, разделяя их пробелами. Процедура ReadLn требует, чтобы человек после окончания ввода нажал клавишу ENTER, а процедура WriteLn после окончания вывода значений осуществляет перевод курсора на следующую строку. Другая процедура вывода, Write, не выполняет такого перевода и продолжает вывод данных в текущую строку.
Вывод
В процессе выполнения работы были выполнено:
- на первом этапе работы было проанализировано задание и определен перечень вопросов, которые были решены в данной работе, определение того, что, собственно, будет выполнять разрабатываемая программа, не рассматривая конкретную реализацию этих функций;
- разработка алгоритма разрабатываемой программы;
- разработка программы и пользовательского интерфейса;
- произведена отладка программы.
Приложения
Приложение А
Схема алгоритма программы
Приложение Б
программа delphi алгоритм листинг
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
gbRazmer: TGroupBox;
lbN: TLabel;
lbM: TLabel;
edN: TEdit;
edM: TEdit;
buRazmer: TButton;
gbMatrix1: TGroupBox;
sgMatrix1: TStringGrid;
buRandom: TButton;
gbMatr2: TGroupBox;
sgMatrix2: TStringGrid;
buPerest: TButton;
gbOsob: TGroupBox;
buOsob: TButton;
lbOsob1: TLabel;
lbOsob2: TLabel;
buZapoln: TButton;
sgMatrix3: TStringGrid;
procedure FormCreate (Sender: TObject);
procedure buRazmerClick (Sender: TObject);
procedure buRandomClick (Sender: TObject);
procedure buPerestClick (Sender: TObject);
procedure buOsobClick (Sender: TObject);
procedure buZapolnClick (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
n, m: integer;
matr1, matr2, matr3: array [1..20, 1..20] of integer;
implementation
{$R *.dfm}
procedure TForm1. FormCreate (Sender: TObject);
begin
Randomize; // включить генератор случайных чисел
end;
procedure TForm1.buRazmerClick (Sender: TObject);
var i: integer;
begin
// установить размер матрицы
n:= StrToInt (edN. Text);
m:= StrToInt (edM. Text);
// визуальное отображение
sgMatrix1. RowCount:= n+1;
sgMatrix1. ColCount:= m+1;
for i:= 1 to n do
sgMatrix1. Cells [0, i]:= IntToStr(i);
for i:= 1 to m do
sgMatrix1. Cells [i, 0]:= IntToStr(i);
sgMatrix2. RowCount:= n+1;
sgMatrix2. ColCount:= m+1;
for i:= 1 to n do
sgMatrix2. Cells [0, i]:= IntToStr(i);
for i:= 1 to m do
sgMatrix2. Cells [i, 0]:= IntToStr(i);
sgMatrix3. RowCount:= n+1;
sgMatrix3. ColCount:= m+1;
for i:= 1 to n do
sgMatrix3. Cells [0, i]:= IntToStr(i);
for i:= 1 to m do
sgMatrix3. Cells [i, 0]:= IntToStr(i);
end;
procedure TForm1.buRandomClick (Sender: TObject);
var i, j: integer;
begin
for i:= 1 to n do
for j:= 1 to m do
begin
matr1 [i, j]:= random(11);
sgMatrix1. Cells [j, i]:= IntToStr (matr1 [i, j]);
end;
end;
procedure TForm1.buZapolnClick (Sender: TObject);
var i, j: integer;
begin
for i:= 1 to n do
for j:= 1 to m do
begin
matr1 [i, j]:= StrToInt (sgMatrix1. Cells [j, i]);
end;
end;
procedure TForm1.buPerestClick (Sender: TObject);
var i, j, k: integer;
begin
// формирование переставленной матрицы
for j:= 1 to (m div 2) do
for i:= 1 to n do
begin
matr2 [i, j]:= matr1 [i, m-j+1];
matr2 [i, m-j+1]:= matr1 [i, j];
end;
// проверка если стобцов нечетное число, то средний столбец остается без изменений
if (m mod 2)<>0 then
for i:= 1 to n do
matr2 [i, m div 2+1]:= matr1 [i, m div 2+1];
// отображение переставленной матрицы
for i:= 1 to n do
for j:= 1 to m do
begin
sgMatrix2. Cells [j, i]:= IntToStr (matr2 [i, j]);
end;
end;
procedure TForm1.buOsobClick (Sender: TObject);
var
i, j, l, osob1, osob2, k: integer;
fLev, fPrav: boolean;
begin
// подсчет особых в 1 матрице
osob1:= 0;
for i:= 1 to n do
for j:= 2 to m-1 do
begin
k:= matr1 [i, j];
// сравнение слева от текущего элемента (если он не первый)
begin
fLev:= true;
for l:= 1 to j-1 do
if matr1 [i, l]>=k then fLev:= false;
end;
// сравнение справа от текущего элемента (если он не последний)
fPrav:= true;
for l:= j+1 to m do
if matr1 [i, l]<=k then fPrav:= false;
if fLev and fPrav then osob1:= osob1+1;
end;
lbOsob1. Caption:= 'Число «особых» элементов в матрице1 = '+ IntToStr(osob1);
// подсчет особых вo 2 матрице
osob2:= 0;
for i:= 1 to n do
for j:= 2 to m-1 do
begin
k:= matr2 [i, j];
// сравнение слева от текущего элемента (если он не первый)
begin
fLev:= true;
for l:= 1 to j-1 do
if matr2 [i, l]>=k then fLev:= false;
end;
// сравнение справа от текущего элемента (если он не последний)
fPrav:= true;
for l:= j+1 to m do
if matr2 [i, l]<=k then fPrav:= false;
if fLev and fPrav then osob2:= osob2+1;
end;
lbOsob2. Caption:= 'Число «особых» элементов в матрице2 = '+ IntToStr(osob2);
// формирование отсортированной матрицы
if osob1>= osob1 then
matr3:= matr1
else
matr3:= matr2;
for i:= 1 to n do
for j:= m downto 2 do
for l:= 1 to m-1 do
if matr3 [i, l] < matr3 [i, l+1] then
begin
k:=matr3 [i, l];
matr3 [i, l]:=matr3 [i, l+1];
matr3 [i, l+1]:=k;
end;
// отображение переставленной матрицы
for i:= 1 to n do
for j:= 1 to m do
begin
sgMatrix3. Cells [j, i]:= IntToStr (matr3 [i, j]);
end;
end;
end.
Размещено на Allbest.ru
Подобные документы
Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.
дипломная работа [3,6 M], добавлен 13.07.2011Разработка программы для работы в операционных системах семейства Windows. Использование среды Delphi - современной технологии визуального проектирования. Создание пользовательского интерфейса, оконного приложения, меню; задание исходной матрицы.
курсовая работа [1,5 M], добавлен 12.01.2011Область применения компьютерной графики. Работа с графикой в Delphi, обращение к свойству Canvas-компонентов. Холст для рисования Canvas - перевернутая система координат. Свойства и методы приложения. Простое приложение, иллюстрирующее работу с графикой.
курсовая работа [968,7 K], добавлен 23.03.2015Основные понятия об операционных системах. Виды современных операционных систем. История развития операционных систем семейства Windows. Характеристики операционных систем семейства Windows. Новые функциональные возможности операционной системы Windows 7.
курсовая работа [60,1 K], добавлен 18.02.2012Понятие операционной системы как базового комплекса компьютерных программ, обеспечивающего управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, выполнение утилит. История развития операционных систем семейства Windows.
курсовая работа [54,3 K], добавлен 10.01.2012Описание входной и выходной информации. Программа и схема взаимосвязи модулей, руководство пользователю. Подготовка и компиляция программы, тестирование и отладка. Операционная система Windows 7 Ultimate x86. Язык программирования Embarcadero DELPHI 2010.
дипломная работа [3,6 M], добавлен 29.10.2013Анализ технического задания. Разработка интерфейса программы и ее алгоритмов. Кодирование и тестирование разработанного программного обеспечения, оценка его практической эффективности и функциональности. Формирование, содержание руководства пользователя.
курсовая работа [2,0 M], добавлен 31.07.2012История развития операционных систем семейства Windows и основные понятия системного администрирования. Определение востребованности операционных систем Windows, сравнительная характеристика их функции и возможностей, особенности применения на практике.
курсовая работа [38,5 K], добавлен 08.05.2011Основы программирования на 32-битном Ассемблере, разработка с его помощью программы, демонстрирующей работу одного из разделов ОС Windоws. Описание используемых АРI-функций как интерфейса программирования приложений. Листинг программы, результаты работы.
курсовая работа [164,5 K], добавлен 18.05.2014Прикладные программы и утилиты. Простейшие функции операционной системы. История разработки корпорацией Microsoft Corporation графической операционной оболочки Windows. Версия семейства сетевых ОС Windows NT (Millennium Edition, 2000, XP, Vista, Seven)
презентация [965,2 K], добавлен 12.10.2013