Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Типи даних для роботи з рядкамиСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Короткі рядки типу ShortString і String[N]: Короткі рядки мають фіксована кількість символів. Рядок ShortString може містити 255 символів. Рядок String[N] може містити N символів, але не більш 255. Перший байт цих перемінних містить довжину рядка. Довгий рядок типу String: При роботі з цим типом даних пам'ять виділяється в міру необхідності (динамічно) і може займати всю доступну програмі пам'ять. Спочатку компілятор виділяє для перемінної 4 байти, у яких розміщається номер комірки пам'яті, починаючи з якої буде розташовуватися символьний рядок. На етапі виконання програма визначає необхідну довжину ланцюжка символів і звертається до ядра операційної системи з вимогою виділити необхідну пам'ять. Процедури і функції для роботи з короткими і довгими рядками представлені в додатку. Широкий рядок типу WideString: Уведена для забезпечення сумісності з компонентами, заснованими на OLE-технології. Від типу String відрізняється тільки тим, що для представлення кожного символу використовується не один, а два байти. Нуль-термінальний рядок типу Pсhar: Являє собою ланцюжок символів, обмежений символом #0. Максимальна довжина рядка обмежена тільки доступній програмі пам'яттю. Нуль-термінальні рядки широко використовуються при звертаннях до API-функцій Windows (API - Application Program Interface - інтерфейс прикладних програм ). Представлення рядка у виді масиву символів: Рядок може бути описаний як масив символів. Якщо масив має нульову границю, він сумісний з типом PChar. Var MasS: array[1..100] of Char;
На відміну від нуль-термінального рядка тут довжина має фіксоване значення і не може змінюватися в процесі виконання програми.
Компонент TlistBox
Компонент TListBox являє собою список, елементи якого вибираються за допомогою клавіатури або миші. Список елементів задається властивістю Items, методи Add, Delete і Insert якого використовуються для додавання, видалення і вставки рядків. Об'єкт Items (TString) зберігає рядка, що знаходяться в списку. Для визначення номера виділеного елемента використовується властивість ItemIndex.
Компонент TСomboBox Комбінований список TComboBox являє собою комбінацію списку TListBox і редактори TEdit, тому практично усі властивості запозичені у цих компонентів. Для роботи з вікном редагування використовується властивість Text як у TEdit, а для роботи зі списком вибору - властивість Items як у TListBox. Існує. П'ять модифікацій компонента, обумовлених його властивістю Style. У модифікації csSimple список завжди розкритий, в інших він розкривається після натискання кнопки праворуч від редактора. Компонент TbitBtn Компонент TBitBtn розташований на сторінці Additonal палітри компонентів і являє собою різновид стандартної кнопки TBotton. Його відмінна риса - наявність растрового зображення на поверхні кнопки, що визначається властивістю Clyph. Крім того, мається властивість Kind, що задає одну з 11 стандартних різновидів кнопок. Натискання будь-якої з них, крім bkCustom і bkHelp закриває модальне вікно і повертає в програму результат mr*** (наприклад bkOk - mrOk). Кнопка bkClose закриває головне вікно і завершує роботу npoграми. Обробка подій Про усіх подіях, що відбуваються, таких, як створення форми, натискання кнопки миші або клавіатури і т.д., ядро Windows інформує вікна шляхом посилки відповідних повідомлень. Середовище DELPHI дозволяє приймати й обробляти більшість таких повідомлень. Кожен компонент містить обробники повідомлень на сторінки Events інспектори об'єктів. Для створення обробника події необхідно розкрити список компонентів у верхній частині вікна інспектора об'єктів і вибрати необхідний компонент. Потім, на сторінці Events, натисканням лівої клавіші миші вибрати обробник і двічі клацнути по його лівій (білої) частини. У відповідь DELPHI активізує вікно тексту програми і покаже заготовку процедури обробки обраної події. Кожен компонент має свій набір обробників подій, однак деякі з них властиві більшості компонентів. Найбільше часто застосовувані події представлені в табл. 13.1. Таблиця 13.1
Хід виконання роботи.
Завдання: написати програму підрахунку числа слів у довільному рядку. Як роздільник може бути будь-яка кількість пробілів. Для введення рядків і роботи з ними використовувати ТСоmbоВох. Уведення рядка закінчувати натисканням Enter. Для виходу з програми використовувати кнопку Close. Панель діалогу буде мати вигляд (мал.13.1). Текст програми приведений нижче. Unit Unit1; Interface Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type Tunit_Lab5 = class(TForm) ComboBox1: TComboBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; BitBtn1: TBitBtn; Button1: TButton;
Procedure FormActivate(Sender: TObject); Procedure ComboBox1KeyPress(Sender: TObject; var Key: Char); Procedure ComboBox1Click(Sender: TObject); Private { Private declarations } Public { Public declarations } end;
var Unit_Lab5: TUnit_Lab5;
Implementation {$R *.DFM}
// Обробка події активізації форми Procedure TUnit_Lab5.FormActivate(Sender: TObject); begin ComboBox1.SetFocus; //Передача фокуса ComboBox1 end;
// Обробка події натискання лівої клавіші миші Procedure TUnit_Lab5.ComboBox1KeyPress(Sender: TObject; var Key: Char); begin if Key =#13 then //Якщо натиснуто клавішу Enter те... begin // Рядок з вікна редагування заноситься в список вибору ComboBox1.Items.Add(ComboBox1.Text); ComboBox1.Text:= ''; //Очищення вікна редагування end; end;
Procedure TUnit_Lab5.ComboBox1Click(Sender: TObject); var St: string; n, і, nst, ind: integer; begin n:= 0; //Містить число слів обраного рядка //Містить кількість слів ind:= 0; //Визначення номера обраного рядка nSt:= ComboBox1.ItemIndex; //Занесення обраного рядка в перемінну st St:= ComboBox1.Items[nst]; //Перегляд усіх символів рядка st for i:= 1 to Length(St) do begin Case ind of 0: if St[і] <>'' then begin //Якщо зустрівся символ після пробілу //кількістьслів збільшується на одиницю ind:= 1; n:= n+1; end; // Якщо зустрівся пробіл після символів 1: if St[i] ='' then ind:= 0; end; end;
Label3.Caption:= IntToStr(n); //Виведення кількості слів у Label3 end; end. Контрольні запитання: 8. Які типи рядкових змінних у Delphi Ви знаєте? 9. Вкажіть на особливості кожного типу рядкових змінних. 10. Що називають обробником подій у Delphi& 11. Який інструментарій використовують для створення коду обробника подій? Варіанти завдання
В усіх завданнях вихідні дані вводити за допомогою компонента TEdit у компонент TListBox або за допомогою властивості Text у властивість Items компонента рядка закінчувати натисканням клавіші Enter. Для виходу з програми використовувати кнопку Close. Для розрахунків уводити кілька різних рядків. 1. Дано рядок, що складаєтьсяться з груп нулів і одиниць. Кожна група відокремлюється від інший одним або декількома пробілами. Знайти кількість груп з п'ятьма символами. 2. Дано рядок, що складаєтьсяться з груп нулів і одиниць. Знайти і вивести на екран саму коротку групу. 3. Дано рядок, що складаєтьсяться з груп нулів і одиниць. Підрахувати кількість символів у самій довгій групі. 4. Дано рядок, що складаєтьсяться з груп нулів і одиниць. Знайти і вивести на екран групи з парною кількістю символів. 5. Дано рядок, що складаєтьсяться з груп нулів і одиниць. Підрахувати кількість одиниць у групах з непарною кількістю символів. 6. Дано рядок, що складаєтьсяться з літер, цифр, ком, крапок, знаків “+”, “-“. Виділити підрядок, що відповідає запису цілого числа (тобто починається зі знака “+” або “-” і усередині підрядка немає літер, ком і крапок). 7. Дано рядок символів, що складається з літер, цифр, ком, крапок, знаків ”+" і "-". Виділити підрядок, що відповідає записи речовинного числа з фіксованою крапкою. 8. Дано рядок символів, що складається з літер, цифр, ком, крапок, знаків ”+”і "-''. Виділити підрядок, що відповідає запису дійсного числа з крапкою, що плаває. 9. Дано рядок символів, що складається з довільних десяткових цифр, розділених пробілами. Вивести на екран числа цього рядка в порядку зростання їхніх значень. 10. Дано рядок символів, що складається з довільних десяткових цифр, розділених пробілами. Вивести парні числа цього рядка. 11. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Вивести на екран слова цього тексту в порядку, що відповідає латинському алфавітові. 12. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Вивести на екран порядковий номер слова, що накриває k-ю позицію (якщо на k-ю позицію попадає пробіл, то номер попереднього слова). 13. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Розбити вихідний рядок на двох підрядка, причому перша довжиною k символів (якщо на k-ю позицію попадає слово, то його варто віднести до другого рядка, доповнивши першу пробілами до k позицій). 14. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Вивести на екран порядковий номер слова максимальної довжини і номер позиції рядка, з яким воно починається. 15. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Вивести на екран порядковий номер слова мінімальної довжини і кількість символів у цьому слові. 16. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. У кожнім слові замінити першу літеру на прописну. 17. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Видалити перших k слів з рядка, зрушивши на їхнє місце наступні слова рядка. 18. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Поміняти місцями i-і і j-і слова. 19. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Поміняти місцями першу й останню літери кожного слова. 20. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Замінити літери латинського алфавіту на відповідні їм літери російського алфавіту. 21. Дано рядок символів S1 S2 …Sm у якійможуть зустрічатися цифри, пробіли, літера "Е" і знаки "+", "-". Відомо, що перший символ S1 є цифрою. З даного рядка виділити підрядки, розділені пробілами. Визначити, чи є перший підрядок числом. Якщо так, то з'ясувати: ціле або дійсне число, додатнє або відємне. 22. Дано рядок символів, що містить деякий текст російською мовою. Розробити програму форматування цього тексту, тобто його розбивки на окремі рядки (по k символів у кожнім рядку) і вирівнювання по правій границі шляхом вставки між окремими словами необхідної кількості пробілів. 23. Дано рядок символів, що містить деякий текст російською мовою. Замінити літери російського алфавіту на відповідні їм літери латинського алфавіту. 24. Дано рядок символів, що містить деякий текст. Розробити програму, що визначає, чи є даний текст паліндромом, тобто чи читається він ліворуч праворуч так само, як і праворуч ліворуч (наприклад, “А роза упала на лапу Азора”). 25. Скласти програму, що читає по рядках текст іншої програми (увести з клавіатури) мовою Pascal, виявляє коментарі і виводить них на екран. 26. Скласти програму, що читає по рядках текст іншої програми (увести з клавіатури) мовою Pascal, підраховує кількість ключових слів “begin” і “end” і виводить на екран відповідне повідомлення. 27. Скласти програму, що задане число від 1до 1999 виводить на екран римськими цифрами. 28. Дано текст із заголовних латинських літер. Визначити, чи є цей текст правильним записом римськими цифрами від 1 до 999, і, якщо є, вивести на екран це число арабськими цифрами в десятковій системі. 29. Дано текст із k символів. Вивести на екран тільки рядкові російські літери, що входять у цей текст. 30. Дано текст із k символів. Вивести на екран за абеткою всі різні прописні російські літери, що входять у цей текст.
Лабораторна робота №14
|
|||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-18; просмотров: 472; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.23.92.50 (0.007 с.) |