Контрольная работа: Обработка одномерных массивов в среде программирования Lazarus

Контрольная работа: Обработка одномерных массивов в среде программирования Lazarus




⚡ 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Тема работы «Обработка одномерных массивов в среде программирования Lazarus»
Цель работы: получение практических навыков создания оконных приложений для обработкиодномерных массивовв среде Lazarus.
Lazarus — свободная среда разработки программного обеспечения для компилятора Free Pascal Compiler. Интегрированная среда разработки предоставляет возможность кроссплатформенной разработки приложений в Delphi-подобном окружении.
На данный момент является единственным инструментом, позволяющим достаточно несложно переносить Delphi-программы с графическим интерфейсом в различные операционные системы: Linux, FreeBSD, Mac OS X, Microsoft Windows.
В среде Lazarus для ввода массивов не предусмотрены никакие специальные компоненты, поэтому можно использовать компоненты Edit, Memo или любые другие, предназначенные для ввода данных.
Можно вводить элементы в окне по одному. В этом случае при однократномнажатии кнопки ввода в обработчикесобытий должны выполниться следующие операторы:
Это означает, что нажатие кнопки приводит к добавлению одного элемента из окна Edit в массив. При выполнении последующих действий по обработке массива значение переменной i определит количество элементов массива. Начальное значение i=0можно задать в разделе описания типизированных констант или в методе OnCreateдля формы (см. ниже) и сбрасывать его каждый раз при вводе нового массива. В массив запишется столько элементов, сколько раз будет нажата кнопка ввода. Если не сбрасывать значение i, то даже после обработки массива можно продолжить ввод элементов в массив.
На рисунке 1 представлена форма для ввода элементов массива.
Рисунок 1- Форма программы для ввода и вывода массива

СкнопкойButton1 связанметод procedure Button1Click - (
Ввод
).
Метод edit
1.
SetFocus
устанавливает фокусна строке ввода Edit1.
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TForm1.FormCreate(Sender: TObject);
procedure TForm1.Button1Click(Sender: TObject);
procedure TForm1.Button2Click(Sender: TObject);
listBox1.Items.Add(IntToStr(a[j]));
procedure TForm1.Button3Click(Sender: TObject);
На рисунке 2 представлен результат работы программы.
Рисунок 2- Результат работы программы ввода и вывода массива

В компоненте Edit
можно ввести сразу все элементы массива, разделяя их пробелами. Нужно помнить, что количество пробелов-разделителей может быть любым.
Цикл для пропуска пробелов между словами :
while (st[i]=' ') and (i<=length(st)) do
Слова можно пропустить аналогичным циклом:
while (st[i]<>' ') and (i<=length(st)) do
Эти два цикла должны быть включены во внешний цикл, который закончится тогда, когда закончится строка.
Пример выделения всех слов строки st:
while (st[i]=' ') and (i<=length(st)) do
while (st[i]<>' ') and (i<=length(st)) do
В отличие от строки ввода, текстовый редактор Memo
может содержать любое количество строк. Егосвойство text
представляет собой строку, состоящую из находящихся в поле Memo
строк, разделенных последовательностью символов с кодами 13 и 10 (конец строки и переход на новую строку). Эти символы добавляются в поле Memo при нажатии клавши Enter. Для выделения подстроки, содержащей элемент массива, нужно найти символ с кодом 13 (#13), скопировать в новую подстроку, а затем удалить ее вместе с кодами 13 и 10 и продолжить поиск конца строки.
В приведенном ниже фрагменте программы вначале в строку st записывается содержимое всего окна memo1. Затем отыскивается позиция конца первой строки (n) и эта строкакопируетсяв st1 и удаляетсяиз st. На рисунке 3 приведен результат работы программы.
procedureTForm1.Button1Click(Sender: TObject);
label1.Caption:='Первыйэлемент = '+st1;
ShowMessage('остальныеэлементы:'+#13+st);
Рисунок 3 - Результат
обработки
memo
.
text

Приведенный выше пример не учитывает того обстоятельства, что любая подстрока может содержать любое количество пробелов. Их нужно удалить перед преобразованием строки в число.
Функция GetLine возвращает подстроку с номером n из строки.
Function GetLine(s:string;n:integer):string;
While (pos(' ',s)=1)and (length(s)>0) do
While (pos(' ',s)=1)and (length(s)>0) do
procedure TForm1.Button1Click(Sender: TObject);
Рисунок 4 - Результат работы программы ввода массива

Для отображения на экране списка значений в Lazarus предназначен компонент ListBox
. Этот компонент имеет в своем составе объект-список, содержащий набор строк с ассоциированными с ними произвольными объектами. Для того, чтобы отобразить последовательно на экране данные, которые вводятся в строку ввода, можно выполнить оператор ListBox1.Items.Add(Edit1.Text). Если нужно вывести в ListBox элементы массива, то используют оператор ListBox1.Items.Add(IntToStr(a[i])).
Комбинированная строка ввода (поле со списком) ComboBox
объединяет в себе возможности строки ввода Editи списка ListBox. Добавить элемент в список можно вызовом ComboBox1. Items.Add(<строка>). Свойство DroppedDown логического типа указывает, отображается ли раскрывающийся список в данный момент. Свойство доступно только на этапе выполнения программы.
Например, ComboBox1. DroppedDown:=true.
Установку начальных значений можно задать в обработчике события OnCreate
для формы. Это событие возникает в момент создания формы. Размещение операторов в этом обработчике во многих случаях эквивалентно размещению операторов в секции инициализации модуля. Заготовка обработчика этого события создается при выполнении двойного щелчка по форме Form1. Методы ListBox
1.
Clear
,
ComboBox
1.
Clear
,
Memo
1.
Clear
и
Edit
1.
Clear
позволяют очистить соответствующие компоненты.
Выполнить обработку одномерного массива по индивидуальному заданию. Предусмотреть 2 варианта ввода массива:
1) в строке Edit по одному элементу;
2) в редакторе Memo или в строке Edit ввести весь массив.
Вывод массива выполнить с помощью компонент ListBoxи ComboBox. Выводить нужно как исходный массив, так и результирующий.
Даны целые числа X(n). Переписать в новый массив все числа, лежащие в диапазоне [-3,7].
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TForm1.FormCreate(Sender: TObject);
procedure TForm1.Button1Click(Sender: TObject);
// заполенние массива Х из строк мемо
n:= Memo1.Lines.Count; // установить длину массива
X[i]:= StrToInt(Memo1.Lines[i-1]); // занесениязначенияэлементаизстрокимемо
procedure TForm1.Button2Click(Sender: TObject);
inc(n); // увеличиваем счетчик элементов
X[n]:= StrToInt(Edit1.Text); // занесение значения из эдит1
procedure TForm1.Button3Click(Sender: TObject);
// выделение элементов между пробелами в эдит2
X[n]:= StrToInt(copy(s, 1, i-1)); // занесение значения из эдит1
delete(s, 1, i); // удаление выделенного элемента из строки
i:= pos(' ', s);// поиск следующего элемента
procedure TForm1.Button4Click(Sender: TObject);
// сравнение значения элемента с диапазоном
// занесение нового элемента в результирующий массив Y
// вывод элемента массива Y на экранные компоненты
ListBox1.Items.Add(IntToStr(Y[m]));
ComboBox1.Items.Add(IntToStr(Y[m]));
procedure TForm1.Button5Click(Sender: TObject);
ListBox2.Items.Add(IntToStr(X[i]));
ComboBox2.Items.Add(IntToStr(X[i]));
Рисунок 6 - Занесение массива через
M
е
m
о1

Рисунок 7 - Занесение массива через
Edit
1

- Нет полной совместимости с Delphi (хотя в отличие от Delphi предоставляет возможность создавать кроссплатформенные приложения).
- При стандартных настройках скомпилированный файл имеет очень большой размер, так как включает отладочную информацию. На самом деле недостатком не является, поскольку это легко исправляется. Достаточно указать компилятору дополнительный ключ -Xg (Использовать внешний файл отладочных символов) и -Xs (Вырезать символы из исполнимого файла); Однако это может быть абсолютно не очевидно начинающим программистам, хотя эти настройки доступны и в графическом интерфейсе (Проект -> параметры компилятора -> связывание) и, даже в этом случае, исполняемый файл (по крайней мере, под Windows) заметно превосходит размером сгенерированный Delphi, что в значительной степени компенсируется упаковщиками. Для создания небольших приложений альтернативой лазарусу может служить MSE.
- Отсутствие полноценной документации. Но документация по самому компилятору доступна онлайн, либо в PDF/HTML документах, а документация по Lazarus доступна в виде Wiki — учебников, которые могут редактировать сами пользователи.
- Нет полноценной поддержки COM (реализована только поддержка методов), что, впрочем, вполне естесственно, поскольку сфера интересов разработчиков Lazarus лежит в области кроссплатформенного программирования, а не в области взаимодействия с Windows-приложениями.
- Отладчик не позволяет просматривать значения свойств объектов во время отладки, только переменных и полей объектов.
1. Е.Р. Алексеев, О.В. Чеснокова, Т.В. Кучер Free Pascal и Lazarus: Учебник по программированию - ALT Linux; ДМК-пресс, 2010 – 442 с.

Название: Обработка одномерных массивов в среде программирования Lazarus
Раздел: Рефераты по информатике, программированию
Тип: контрольная работа
Добавлен 03:56:33 11 января 2011 Похожие работы
Просмотров: 1077
Комментариев: 15
Оценило: 2 человек
Средний балл: 5
Оценка: неизвестно   Скачать

Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Контрольная работа: Обработка одномерных массивов в среде программирования Lazarus
Контрольная работа по теме Государственный контроль добровольного медицинского страхования
Доклад: Евросоюз проблемы интеграции
Реферат: Медогонки, фильтры, емкости для меда. Скачать бесплатно и без регистрации
Топик На Тему Податкова Система Республіки Білорусь
Курсовая работа по теме Япония от раздробленности к становлению государства
Природные Зоны России Контрольная Работа
Реферат: Лесной комплекс Республики Беларусь
Что Такое Внутренний Мир Человека Итоговое Сочинение
Курсовая Работа Менеджмент Мотивация Трудовой Деятельности
Контрольная работа: Понятие органа дознания
Курсовая работа по теме В.Г. Короленко и Л.Н. Толстой против смертной казни (Ст. 'Бытовое явление' и 'Не могу молчать')
Реферат по теме Стандартизация системы управления компании
Реферат: Специфика пространственно-временной организации географических систем. Скачать бесплатно и без регистрации
Сочинение Про Войну Класс
Курсовая работа по теме Расчет металлорежущих инструментов (червячной фрезы, комбинированного сверла и шлицевой протяжки)
Курсовая Работа На Тему Человек И Природа В Детских Произведениях Мамина-Сибиряка
Реферат по теме История Байкало-Амурской железнодорожной магистрали (БАМ)
Реферат по теме Перевод Священного Писания на китайский язык
Реферат: Краснокрылый попугай
Реферат: Управление конфликтом в организации
Дипломная работа: Совершенствование системы противодействия легализации доходов на примере филиала "Ростовский" ОАО "Альфа-Банк"
Доклад: Производственная вибрация
Реферат: Анаэробные нагрузки

Report Page