рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Завдання для самоконтролю

Завдання для самоконтролю - раздел Программирование, Середовище програмування Delphi 1. Задано Два Символьних Масиви Із Малих Латинських Літер Та...

1. Задано два символьних масиви із малих латинських літер та розділових знаків , і , . Розробити програму, яка друкує в алфавітному порядку літери першого масиву, що не належать другому, та літери другого масиву, що не належать першому.

2. Задано множину із цілих чисел з інтервалу , . Розробити програму, яка визначає, скільки серед базових елементів цієї множини є чисел Фібоначчі і друкує їх за зростанням. (Числа Фібоначчі визначаються за формулою: ).

3. Задано символьний масив із малих латинських літер, цифр і круглих дужок , . Розробити програму, яка знаходить групи символів, взятих у круглі дужки, і друкує в лексикографічному порядку символи, що містяться у всіх групах, і символи, що не входять у жодну групу. Вважається, що вкладених дужок немає.

4. Задано символьний масив із малих латинських літер, цифр і знаків арифметичних операцій , . Розробити програму, яка визначає і друкує всі літери, які входять в цей масив, всі цифри, що входять по одному разу, і всі знаки арифметичних операцій, що не входять жодного разу.

5. Задана матриця , та дві множини із номерів рядків і номерів стовпців (значення номерів не перевищують ). Розробити програму, яка знаходить максимальний елемент та його розташування серед елементів матриці з індексами, що є базовими елементами заданих множин.

6.Задано два символьних масиви з малих латинських літер та цифр , і , . Розробити програму, яка знаходить і друкує: літери, які є в обох масивах; літери, яких немає в обох масивах і цифри, які є в першому і другому масивах окремо.

7. Задано множину із цілих чисел з інтервалу . Розробити програму, яка визначає і друкує за зростанням усі парні, непарні і ті, що діляться на 3 базові елементи заданої множини.

8. Задано два символьних масиви із малих і великих латинських літер та цифр , і , . Розробити програму, яка визначає і друкує в алфавітному порядку літери, які є в обох масивах, літери, які є в обох масивах і повторюються по декілька разів і цифри першого масиву, яких немає в другому масиві.

9. Задано натуральне число . Розробити програму, яка друкує в зростаючому порядку всі цифри, які не входять у це число, і всі цифри, які входять більше одного разу.

10.Задано символьний масив із малих латинських літер, цифр і круглих дужок , . Розробити програму, яка визначає і друкує всі літери, які є, і всі цифри, яких немає між першою круглою дужкою, що відкривається, і останньою круглою дужкою, що закривається.

11. Задана символьна матриця , . Розробити програму, яка підраховує і друкує окремо, скільки в кожному рядку міститься великих латинських літер і цифр.

12. Задано символьний масив , . Розробити програму, яка визначає і друкує всі знаки арифметичних операцій і операцій відношення, які входять у заданий масив, і всі знаки арифметичних операцій і операцій відношення, які не входять у заданий масив.

13. Розробити програму, яка будує множину всіх цілих чисел, множину всіх простих чисел і множину складених чисел із діапазону від 2 до , та виводить за зростанням базові елементи кожної множини.

14.Задано символьний масив , . Розробити програму, яка визначає і друкує в лексикографічному порядку: усі великі латинські літери, які є в масиві ; усі великі латинські літери, яких немає в масиві ; усі цифри, які є в масиві ; усі цифри, які є в масиві і повторюються.

15. Задано символьний масив , . Розробити програму, яка будує, визначає і друкує в лексикографічному порядку: усі цифри, які є в масиві ; усі цифри, які повторюються; усі знаки арифметичних операцій, які є в масиві ; усі знаки арифметичних операцій, яких немає в масиві .

16. Задана символьна матриця , . Розробити програму, яка визначає і друкує за алфавітним порядком окремо приголосні та голосні малі літери латинського алфавіту, які є в кожному рядку.

17. Задано символьний масив , . Розробити програму, яка вилучає з цього масиву всі повторні входження цифр і знаків арифметичних операцій. Друкує перетворений масив по 35 символів у рядку.

18.Задано символьний масив , . Розробити програму, яка визначає і друкує за лексикографічним порядком усі малі, усі великі латинські літери, які є в заданому масиві, і всі цифри, яких немає у масиві.

19. Задано символьний масив , . Розробити програму, яка знаходить групи цифр, записаних підряд, і вилучає із них всі початкові нулі, крім останнього, якщо за ним знаходиться крапка. Друкує модифікований масив по сорок символів у рядку.

20. Задана матриця , та дві множини із номерів рядків і номерів стовпців (значення номерів не перевищують ). Розробити програму, яка обчислює суму елементів матриці з індексами, що є базовими для заданих множин і добуток елементів матриці з індексами, які не входять до заданих множин.

 

Тема 8. Символьні рядки

Для обробки текстів в Object Pascal використовуються символьні рядки таких типів:

 

· ShortString або String{N}, де N 255 – короткий рядок;

· String – довгий рядок;

· PChar – нуль-термінальний рядок,

· WideString – широкий рядок.

 

Приклади опису рядків у програмі:

 

Var Sk: ShortString; {короткий рядок максимальної} {довжини 255 символів}

Sks: String[5]; {короткий рядок}

{ довжиною до 5 символів}

Ss1, Ss2: String; {довгий рядок}

Sp: Pchar; {нуль-термінальний рядок}

Sw: WideString; {широкий рядок}

 

Довжина короткого рядка від 0 до 255 байтів, а довгого, нуль-термінального і широкого рядків від 0 до 2 Гбайтів.

Для описаного в програмі короткого рядка Sk компілятор виділить у статичній пам’яті 256 байтів з номерами від 0 до 255, а для Sks відповідно 6 байтів. У нульовому байті знаходиться поточна довжина рядка, а починаючи з першого байта розміщується ланцюжок символів. Так як у байт можна записати максимальне число 255, то довжина короткого рядка не може перевищувати 255.

При виконанні оператора

 

Sk:=’Рядок символів’;

 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Р я д о к   с и м в о л і в

 

буде використано 15 байтів у нульовий байт буде записана довжина – 14, а з першого байта розміститься ланцюжок символів. Останні із виділених для рядка символів 256 байтів не використовуються, але пам’ять буде зайнятою.

Якщо довжина рядка символів перевищує описану довжину, то лишні символи втрачаються. Так, при виконанні оператора

Sks:=’Рядок символів’;

 

змінна Sks отримає значення – ’Рядок’

Описаний у програмі довгий рядок Ss1 буде розміщуватися у динамічній пам’яті. При цьому, компілятор виділить для змінної Ss1 у статичній пам’яті 4 байти, в які буде записуватися адреса виділеної динамічної пам’яті. Тобто, змінна Ss1 буде вказівником на цю пам’ять.

Динамічна пам’ять виділяється операційною системою під час виконання програми. Наприклад, при виконанні оператора

Ss1:=’Це рядок’;

 

Лічильник посилань

1 2 3 4 5 6 7 8 9 10 11 12 13

Ц е   Р я д о к #0      

 

буде виділена динамічна пам’ять такої структури: 1 ÷ 8 байти – символи рядка, 9 байт – #0 признак кінця рядка і чотири байти 10 ÷ 13 – лічильник посилань, в який буде записана одиниця.

Операційна система виділить у динамічній пам’яті 8+1+4=13 байтів і у змінну Ss1 помістить її адресу.

Лічильник посилань використовується для кешування пам’яті. Так, при виконанні оператора Ss2:=Ss1; пам’ять для розміщення змінної Ss2 не виділяється, а їй присвоюється значення вказівника Ss1 і лічильник посилань збільшується на одиницю. Отже, обидві змінні Ss1 і Ss2 будуть вказувати на одну і ту ж область пам’яті.

Якщо після цього змінюється значення змінної Ss1, наприклад, виконується оператор

 

Ss1:=Ss1+’ символів’;,

 

то лічильник посилань зменшиться на одиницю, а у динамічній пам’яті виділиться нова область із 17+1+4=22 байтів і у Ss1 поміститься її адреса.

У виділеній пам’яті, починаючи з першого байта, розміститься ланцюжок символів – ’Це рядок символів’, термінальний нуль – #0 і лічильник посилань із значенням – 1. Тепер змінні Ss1 і Ss2 вказують на різні області пам’яті, а лічильники посилань будуть містити по одиниці. Виділена для розміщення довгого рядка String область пам’яті звільняється, якщо лічильник посилань стає рівним нулю. Кешування економить використання пам’яті.

Подібно здійснюється робота з пам’яттю для нуль-термінальних рядків типу Pchar. Лічильник посилань тут не використовується, тому для кожного рядка виділяється окрема область пам’яті. Нуль-термінальні рядки використовуються при зверненні до API-функцій Windows (API – Application Program Interface – інтерфейс прикладних програм). Оскільки компоненти Delphi беруть на себе всі проблеми зв’язку з API-функціями, то програмісту рідко доводиться звертатися до нуль-термінальних рядків.

Однобайтові символи коду ASCII мають 256 можливих значень, достатніх для відображення будь-якої європейської мови, однак для мов народів світу цього недостатньо. Тому міжнародна комісія виробила код Unicode, символи якого займають у пам’яті два байти і мають 65536 можливих значень. Цей код дозволяє зображувати всі символи всіх мов світу. Символи Unicode описуються стандартним типом WideChar, а складені з них рядки – типом WideString. Усі програми, що використовують OLE-технологію обміну рядками, повинні використовувати символи Unicode.

Звернення до окремих символів рядка здійснюється за допомогою індекса. При виконанні операторів

Ss1:=’Рядок символів’; Ss1[4]:=’к’; Ss1[5]:=’и’;

змінна Ss1 отримає значення – ’Рядки символів’. Нумерація символів у коротких і довгих рядках починається з одиниці, а в нуль-термінальних з нуля.

Над символьними рядками можуть виконуватися операції:

· конкатенація (зчеплення рядків) – (+);

· відношення – (=, <>, <, >, <=, >=).

Наприклад, при виконанні оператора

 

Ss1:=’Це – ’ + ’Рядок’ + ’символів’;

 

змінна Ss1 отримає значення – ’Рядок символів’.

Операції відношення виконуються над двома рядками посимвольно, зліва направо з урахуванням внутрішнього кодування символів. Якщо один рядок коротший, то він доповнюється символами 0. Результат операції відношення бульового типу. Наприклад,

 

‘A’ < ‘B’ – true;

‘A’ < ‘1’ – false;

‘Object’ < ‘Object Pascal’ – true;

‘Пас’ > ‘Pascal’ – true.

 

Cтандартні процедури та функції:

 

1) Функція LENGTH

C:=LENGTH(str); Змінної буде присвоєно ціле значення, що вказує кількість символів у строкової змінної str .

 

2) Функція СОNCAТ - зчеплення рядків у порядку їх перерахування.

str:=CONCAT(st1,st2,...,stN);str-мінлива типу STRING, що складається з рядків st1,...,stN.

 

3) Функція POS

P:=POS (st1, st2); Р-ціле число, що показує номер позиції, з якої починається рядок st1 у рядку st2.

 

4) Функція COPY

S1:=COPY( str, I, J); Sl-символьний рядок, виділена з рядка str з позиції I, довжиною J символів.

 

5) Процедура DELETE(Str, I, J);

рядка str видаляється J символів, починаючи з I позиції.

 

6) Процедура INSERT(Str1, Str2, I);

пСтрока Str1 вставляється з I позиції в рядок Str2.

 

7) Процедура STR (V, S1);

Числове значення змінної V перетворюється в рядок символів і записується в рядок S1.

 

8) Процедура VAL (S1, V, C);

 

Строковий вираз S1 перетворюється в величину цілочисельного або речового типу і записується у змінній V . Якщо при цьому помилок не виявлено, то буде дорівнює 0 . В іншому випадку значення З одно буде номером позиції першого помилкового символу і V буде не визначено. Рядок S1 не повинна містити незначущих пробілів, мінлива V може бути цілою або речової, а змінна - тільки З цілою .

 

– Конец работы –

Эта тема принадлежит разделу:

Середовище програмування Delphi

Масиви.. масив це обмежена впорядкована сукупність однотипних величин кожна окрема.. рядки..

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Завдання для самоконтролю

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Середовище програмування Delphi
Borland Delphi - це об’єктно-орієнтоване середовище візуального програмування (RAD - Rapid Application Development). Delphi призначено для прискореної розробки високопродуктивних 32-бітних програм,

Поняття проекту
В Delphi проект – це сукупність усіх файлів, що створюють програму, включаючи форми, модулі, графіку, елементи управління.   Типи файлів, що викорис

Структура модуля
Кожній формі в проекті відповідає свій програмний модуль (unit), що містить всі пов'язані з формою оголошення і методи обробки подій, написані на мові Delphi. Програмні модулі розміщуються в окреми

Типи, що визначаються користувачем
· перерахований · інтервальний   Структуровані типи · масиви · множини · записи · файли · рядки символі

Типи констант
Тип констант визначається за їх виглядом: Константи цілого типу – це цілі числа, що не мають десяткової точки, константи дійсного типу – дійсні числа, логічні константи – True або False, символьні

Навчальна частина

Завдання для самоконтролю
Обчислити вираз 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Обчислит

Приклад
Написати програму, яка при натисканні на клавішу Button1, зчитує з рядку редагування Edit1 текст і, якщо цим текстом є рядок “автотекст”, то надпис на клавіші міняється на “введіть свій текст”, у п

Приклад.
На формі розмістимо компоненти: Edit, Lebal і Button. У полі Edit ми будемо заносити число і програма проаналізувавши буде давати відповідь за коштами Label. При значенні вхідному в діапаз

Навчальна частина
Прикладна область: Калькулятор математичних функцій Постановка задачі:Створити форму з назвою “ Калькулятор математичних функцій ”, на якій

Тема 3. Цикли
Цикли використовуються у випадку, коли якась дія або група дій повторюється певну кількість раз. Кожне виконання усіх дій, що вказані у циклі називається ітерацією. Кожен цикл повинен мати умову, з

Цикл for
Як вже зазначалось вище, цикл for – to ‑ do відноситься до циклів зі скінченною фіксованою кількістю ітерацій. Внаслідок цього для роботи циклу необхідна змінна, яка буде «відповідати» за ном

Приклад
Обчислити суму чисел від 1 до 100. Для цього, розмістивши на формі кнопку, створимо такий обробник: procedure TForm1.Button1Click (Sender: TObject); var

Приклад.
Створимо додаток в якому будемо розраховувати суму перших десяти чисел 1 2 3...10. Розташуємо на формі кнопку і Label для виведення інформації. Для кнопки зробимо такий обробник: proced

Цикл repeat
Створюючи додатки, досить часто доводиться стикатися з необхідністю повторення однієї і тієї ж послідовності дій.   Delphi нам пропонує ще одну форму умовного оператора циклу

Until умова;
  де repeat, until - зарезервовані слова; тіло циклу - послідовність операторів мови Delphi умова - логічна умова.  

Приклад.
Створимо додаток в якому будемо розраховувати суму чисел які знаходяться між числами a та b. Розташуємо на формі кнопку, Edit1, Edit2 для введення меж і Label для виведення інформації. Для кнопки з

Навчальна частина
Прикладна область: Циклічні операції Постановка задачі:Створити програму виконання циклічних операцій. Рекомендації

Запрограмуйте команди PopupMenu2.
procedure TForm1.N7Click(Sender: TObject); begin CheckBox1.Checked:=False; CheckBox2.Checked:=False; CheckBox3.Checked:=False; end; procedure TForm1.N8Click(Se

Завдання для самоконтролю
Задано дійсні величини . Розробити програму, яка обчислює значення суми з заданою точністю і вказує кількість врахованих доданків:   1.2.3.

Тема 4. Масиви
Масив – це структурований тип даних, який складається із фіксованої кількості елементів одного і того ж типу. Описати масив у програмі можна за допомогою ідентифікатора ти

Наприклад,
  Type Tm= array[1..10] of integer; Var a, b: array[1..100] of real; r: array[1..100] of real; s: array[1..100] of real c, d: Tm; x: array

Наприклад,
    Масив констант.Описується у розділі Const у вигляді типізованої константи. Компоненти кожної розмірності масиву заключаються в окремі круглі дужки і

Навчальна частина
Прикладна область: Операції з масивами Постановка задачі:Створити програму виконання простих операцій над одновимірними масивами.

Завдання на самоконтроль
1. Задано дійсні величини і масив чисел , . Розробити програму, яка обчислює суму всіх ,добуток всіх і знаходить та серед ,Якщо чисел ,

Тема 5. Методи упорядкування даних
Одним із важливих є клас задач – упорядкування файлів, тобто розміщення елементів даних у певному порядку, що дозволяє значно прискорити пошук і обробку інформації. Упорядкування даних може бути за

Навчальна Частина.
Прикладна область: Метод упорядкування даних Постановка задачі:Створити програму виконання простих операцій над одновимірними масивами.

Завдання на самоконтроль
1. Задано два масиви цілих чисел , і , . Розробити програму, яка будує симетричну різницю і впорядковує її елементи за зростанням. Різниця це елементи масиву , що не містяться в ма

Навчальна Частина.
Прикладна область: Алгоритми обробки багатовимірних масивів. Постановка задачі:Створити програму виконання простих операцій над Багатовимірними мас

Завдання для самоконтролю
1. Задані дійсні число та матриця , , . Розробити програму, яка перетворює цю матрицю вилученням тих рядків в яких розміщений елемент (таких елементів у матриці може бути декілька)

Тема 7. Множини
Множина – це структурований тип даних, елементами якого є всі підмножини, побудовані на основі елементів базового типу. Наприклад, множина, базовими для якої є елементи ,

Навчальна Частина.
Прикладна область: Алгоритми побудови множин. Постановка задачі:Створити програму побудови множин. Рекомендації

Навчальна Частина.
Прикладна область: Робота з символьними рядками. Постановка задачі:Створити програму для роботи з символьними рядками. Рекомендаці

Завдання для самоконтролю
1. Задано текст, слова в якому розділені пробілами і розділовими знаками. Розробити програму, яка вилучає з цього тексту всі слова з подвоєнням літер і записує їх в окремий рядок,

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги