Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Использование динамических списковСодержание книги
Поиск на нашем сайте
Задание. Создать приложение для формирования стека, который заполняется путем ввода целых положительных чисел с клавиатуры. Как только будет введено первое отрицательное число, содержимое стека выводится на панель интерфейса, а память, занимаемая его элементами, освобождается. Сохранение проекта Для нового проекта создайте новую папку, например, X: \ 35эи \ LAB11_S. Сохраните проект File | Save Project As… Сначала сохраните модуль под именем UnStek, затем файл проекта под именем Pr_Stek. Размещение компонентов на Форме Один из возможных вариантов панели интерфейса создаваемого приложения показан на рисунке 11.2. Разместим на форме компоненты Label, Edit, Button, BitBtn, Memo .
Рис.11.2. Размещение компонентов на форме Создание процедуры обработки событий FormCreate и BitBtn1Click Двойным нажатием клавиши «мыши» на Форме и кнопке Button создайте соответствующие процедуры обработки событий. Пользуясь текстом модуля UnStek, наберите операторы этих процедур. Текст модуля UnStek unit UnStek; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; Type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit1: TEdit; Button1: TButton; BitBtn1: TBitBtn; Memo1: TMemo; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); Private { Private declarations } Public { Public declarations } end;
Var Form1: TForm1;
Implementation
{$R *.dfm} Type pSt=^zap; zap= record inf: integer; adr: pSt end; var // объявление глобальных переменных pVer, // указатель вершины стека pTek: pSt; // текуший указатель elSt: integer; // элемент стека procedure TForm1.FormCreate(Sender: TObject); Begin Memo1.Clear; Edit1.Text:=''; pVer:=nil; // инициализировать указатель вершины elSt:=0; // инициализировать элемент стека end;
procedure TForm1.Button1Click(Sender: TObject); Begin New (pTek); // выделить память elSt:=StrToInt(Edit1.Text); pTek^.inf:=elSt; // в информационную часть стека занести elSt pTek^.adr:=pVer; // в адресную часть занести указатель на вершину pVer:=pTek; // указатель вершины должен указывать на // последний элемент if elSt>=0 then // если элемент стека неотрицательный, тогда … Begin Edit1.Text:=''; // очистить окно редактора Edit1 Edit1.SetFocus; // передать фокус ввода редактору Edit1 End Else Begin Memo1.Lines.Add('Элементы стека:'); // вывод заголовка Repeat Memo1.Lines.Add(#9+IntToStr(pTek^.inf)); // вывод элементов pVer:=pTek^.adr; Dispose (pTek); // освободить память pTek:=pVer; until pTek= nil; end; end;
end. 11.5. Выполнение индивидуального задания По указанию преподавателя выберите два варианта индивидуальных заданий. В заданиях №1 – 15 необходимо использовать динамические массивы, в заданиях №16 – 30 – динамические списки. Во всех заданиях необходимо предусмотреть контрольный вывод исходных данных. Индивидуальные задания 1. Создать приложение, которое осуществляет ввод m строк и n столбцов двумерного массива с клавиатуры, меняет местами элементы с наибольшим и наименьшим значениями среди четных элементов и выводит полученный массив. 2. Создать приложение, которое осуществляет ввод значений элементов двумерного массива n -го порядка с клавиатуры и выводит значение наибольшего их элементов главной диагонали. 3. Создать приложение, которое осуществляет ввод значений элементов двумерного массива n -го порядка с клавиатуры, меняет местами элементы главной и побочной диагоналей, выводит полученный массив. 4. Создать приложение, которое осуществляет ввод значений элементов двумерного массива n -го порядка с клавиатуры, меняет местами строку с максимальным элементом на главной диагонали со строкой с заданным номером, выводит полученный массив. 5. Создать приложение, которое осуществляет ввод m строк и n столбцов двумерного массива А с клавиатуры, формирует новый двумерный массив В (m, n), расположив элементы каждой строки массива А в порядке убывания их абсолютных величин, выводит полученный массив В. 6. Создать приложение, которое осуществляет ввод значений элементов двумерного массива А n -го порядка с клавиатуры, формирует два одномерных массива В и С (в массив В переслать по строкам верхний треугольник матрицы, включая элементы главной диагонали, в массив С – нижний треугольник матрицы). 7. Создать приложение, которое осуществляет ввод m строк и n столбцов двумерного массива А с клавиатуры, формирует новый двумерный массив В(m, n), расположив элементы каждого столбца массива А в порядке убывания их абсолютных величин. 8. Создать приложение, которое осуществляет ввод m строк и n столбцов двумерного массива А с клавиатуры, формирует новый двумерный массив В(m, n), умножая элементы каждой строки массива А на наибольший элемент строки. 9. Создать приложение, которое осуществляет ввод m строк и n столбцов двумерного массива с клавиатуры, определяет количество элементов, превышающих среднее арифметическое значение элементов главной диагонали массива. 10. Создать приложение, которое осуществляет ввод значений элементов двумерного массива А n -го порядка с клавиатуры, определяет максимальные элементы в каждой строке исходного массива и записывает их в массив В(n), упорядочивает одномерный массив В по возрастанию. 11. Создать приложение, которое осуществляет ввод m строк и n столбцов двумерного массива А с клавиатуры, формирует новый двумерный массив В(m, n), путем деления всех элементов массива А на ее наибольший по модулю элемент. 12. Создать приложение, которое осуществляет ввод m строк и n столбцов двумерного массива А с клавиатуры, формирует новый двумерный массив В(m, n), путем поэлементного вычитания последней строки массива А из всех строк, кроме последней. 13. Создать приложение, которое осуществляет ввод m строк и n столбцов двумерного массива с клавиатуры, находит наименьшее из значений элементов столбца, который обладает наибольшей суммой модулей элементов (если таких столбцов несколько, то взять первый из них). 14. Создать приложение, которое осуществляет ввод m строк и n столбцов двумерного массива А с клавиатуры, формирует новый двумерный массив В(m, n), в котором переставлены строка, содержащая элемент с наибольшим значением, и строка, содержащая элемент с наименьшим значением (предполагается, что эти элементы единственны). 15. Создать приложение, которое осуществляет ввод значений элементов двумерного массива А n -го порядка с клавиатуры, формирует новый двумерный массив В(n, n), в котором элементы К -ой строки массива А разделить на диагональный элемент, расположенный в этой строке. 16. Создать приложение, которое заносит в стек целые положительные числа с клавиатуры, выводит содержимое стека и среднее арифметическое значение его элементов. 17. Создать приложение, которое заносит в стек символы с клавиатуры, выводит содержимое стека и сообщение о том, содержится или нет в стеке заданный символ. 18. Создать приложение, которое заносит в каждый элемент стека английское слово с клавиатуры и как только будет введено слово «end», выводит содержимое стека. 19. Создать приложение, которое заносит в стек произвольные целые числа с клавиатуры, выводит содержимое стека и сообщение о том, содержится или нет в стеке заданное число. 20. Создать приложение, которое заносит в стек символы с клавиатуры, выводит содержимое стека и сообщение о том, упорядочены или нет элементы стека по алфавиту. 21. Создать приложение, которое заносит в стек целые положительные числа с клавиатуры и, как только будет введено число, равное сумме введенных чисел, выводит содержимое стека. 22. Создать приложение, которое заносит в стек произвольные числа с клавиатуры, выводит содержимое стека и сообщение о том, упорядочены ли элементы стека по убыванию. 23. Создать приложение, которое заносит в каждый элемент стека русское слово с клавиатуры и, как только будет введено слово «конец», выводит содержимое стека и сообщение о том, содержится или нет в стеке заданное слово. 24. Создать приложение, которое заносит в стек произвольные числа с клавиатуры, выводит содержимое стека и удаляет из стека наибольший элемент. 25. Создать приложение, которое заносит в стек произвольные целые числа с клавиатуры. Как только сумма введенных чисел станет равна нулю, приложение должно вывести содержимое стека. 26. Создать приложение, которое заносит в каждый элемент стека русское слово с клавиатуры и, как только будет введено слово «конец», выводит содержимое стека и затем удаляет из него любое слово, содержащееся в стеке (ввести с клавиатуры). 27. Создать приложение, которое заносит в стек произвольные целые числа с клавиатуры. Как только будет введено число 0 (ноль), приложение должно вывести содержимое стека, а затем сформировать из него два новых стека: в первом должны находиться положительные, а во втором – отрицательные числа. 28. Создать приложение, которое символы, упорядоченные по алфавиту, вводит с клавиатуры и заносит в стек. Приложение должно вывести содержимое стека, ввести с клавиатуры заданный символ и вставить его в стек так, чтобы элементы стека опять оказались упорядоченными по алфавиту. 29. Создать приложение, которое заносит в стек буквы русского и латинского алфавита в произвольном порядке с клавиатуры. Как только будет введен символ «.» (точка), приложение должно вывести содержимое стека, а затем сформировать из него два новых стека: в первом должны находиться буквы русского алфавита, а во втором – буквы латинского алфавита. 30. Создать приложение, которое заносит в стек произвольные целые числа с клавиатуры. Как только будет введено число 9 999, приложение выводит содержимое стека и реверсирует стек (направление ссылок в стеке изменяется так, что вершина и дно стека меняются местами).
|
||||||||||||||
Последнее изменение этой страницы: 2016-12-16; просмотров: 307; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.187.194 (0.008 с.) |