Розробка програм з використанням строкових даних.

 

Приклад 1.В заданому тексті замінити всі входження заданого слова на інше задане слово.

       
 
   
program tekst; var S,old,new:string; n:integer; begin writeln('Введи текст'); readln(S); writeln('Введи фразу, що змінюється'); readln(old); writeln('Введи фразу для заміни'); readln(new); n:=pos(old,S); while n<>0 do begin delete(S,n,length(old)); insert(new,S,n); n:=pos(old,S); end; writeln(S); end.  
 

 


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

 

В даному прикладі необхідно переглядати текст по символам. Щоб мати можливість вивести кожне речення окремо, необхідно формувати текст речення по символам, тобто кожний символ заносити в масив символів для речення. Зустріч символів . ? ! вважається кінцем речення. Кількість символів в тексті можна визначити за допомогою функції length. Для перегляду тексту можна використати цикл від першого символу тексту до ос таннього (1.. length).

 

       
 
   
program tekst; var S,R:string; k,i:integer; {S – введений текст, R – текст речення, K – кількість речень} begin writeln('Введи текст'); readln(S); k:=0; R:=’’; for i:=1 to length(S) do begin R:=R+S[i]; case S[i] of ’.’,’?’,’!’: begin writeln (R); k:=k+1; R:=’’; end; end; end; writeln(‘Кількість речень=’,k:5); end.  
 

 


Приклад 3.Вводиться послідовність слів по символам. В кінці крапка. Слова розділяються комами. Знайти найдовше слово. Підрахувати кількість введених слів.

 

В цьому прикладі слова повинні формуватись по мірі їх введення. Введення символів закінчується при вводі символу крапка. Так як необхідно шукати найдовше слово, то спочатку це слово визначаємо пустим. Також пустим буде слово, яке буде вводитись. Кожний введений символ (крім крапки і коми) додається до слова, що формується при вводі. Введення символу крапка або кома означає кінець введеного слова. В цьому разі необхідно зрівняти введене слово з максимальним, збільшити кількість введених слів і встановити слово, що буде формуватись, пустим.



Приклад 4.Рядок містить послідовність символів, які являють собою запис числа в 16-річній системі числення. Необхідно перевести задане число в 10-річну систему числення.

 

Знаками, з яких складаються числа в 16-річній системі числення, є цифри 0 . . 9 і букви A,B,C,D,E,F. Кожна буква має відповідне десяткове значення: 10, 11, 12, 13, 14, 15.

Для переводу числа з довільної системи числення в 10-річну використовується правило: число в довільній системі числення необхідно представити у вигляді поліному an-1xn-1 + an-2xn-2 +...+a1x + a0, де ai цифри числа, х – основа системи числення, n - кількість цифр в числі. Дії виконувати в десятковій системі числення.

 

Наприклад, число 40783 в десятковій системі числення можна представити як: 4∙104+0∙103+7∙102+8∙101+3∙100.

Число 71261 в 8-річній системі числення буде представлено 7∙84+1∙83+2∙82+6∙81+1∙80.Виконавши дії, отримаємо значення в десятковій системі: 29361.

Число 5937 в 16-річній системі числення - 5∙163+9∙162+3∙161+7∙160. Виконавши дії, отримаємо значення в десятковій системі: 22839.

Число 4A7CE в 16-річній системі числення - 4∙164+10∙163+7∙162+12∙161+14∙160. Виконавши дії, отримаємо значення в десятковій системі: 305102.

       
 
   
var s:string; i:integer; m:longint; {s – 16-річне число в строковому форматі m - задане число в десятковій системі в числовому форматі} begin write ('Введіть число в 16-річній системі '); readln(s); m:=0; for i:=1 to length(s) do case s[i] of '0'..'9': m:=m*16+ ord(s[i])-ord('0'); 'A'..'F','a'..'f':begin s[i]:=upcase(s[i]); m:=m*16+ord(s[i])-ord('A')+10; end; end; writeln(m); readln; end.  
 

 

 


Завдання для самоперевірки.

 

1. Записати оператор який змінній sign присвоює третє слово з рядка „Люби діло – майстром будеш”.

2. Записати оператор який змінній n присвоює номер символу „ , ” в рядку „Яка пряха, така на ній і рубаха”.

3. Записати оператор який з рядку „Золотые руки у того, кто обучался очень хорошо” вилучає слово „очень”.

4. Записати оператор який вставляє слово „топором” перед словом „тяпать” в рядку „Без ума ни тяпать, ни ковырять лапоть”.

5. Дано рядок, який складається з двох слів, розділених комою. Вивести ці слова за абеткою.

6. Вилучити з заданого рядку всі входження заданого слова.

7. Дано текст, що складається з послідовності слів, розділених комою. Текст закінчується крапкою. Підрахувати кількість введених слів і знайти найбільше слово в лексикографічному значенні.

8. Підрахувати, скільки раз в заданому тексті зустрічається вказане слово.

Множини.

 

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

Не обмежена в тому сенсі, що наперед не встановлюється кількість елементів в множині, але розмір сукупності обмежений. Максимальна кількість елементів множини - 256.

Тип визначається:

type

<ім’я типу множини> = set of <базовий тип>;

 

В якості базового типу може бути тип, кількість елементів якого не перевершує 256 і значення позитивні. Таким типом може бути стандартний тип char, byte. Для інших стандартних типів можна вказувати тільки діапазон в межах 0..255.

Наприклад

Type

Tmn = set of char;

Tnm1 = set of 1..120;

Tmn2 = set of ’d’..’k’;

Var

mn : Tmn;

mn1 : Tmn1;

mn2 : Tmn2;

mn3 : set of 10..200;

Правила використання множин.

 

1) Множина задається у вигляді списку елементів, взятих у квадратні дужки. Елементи розділяються комами. Наприклад: ['a','o','e','j'], [2,4,7,24,89].

2) Пуста множина задається як квадратні дужки, розташовані поряд: []. Наприклад, задати пусту множину: mn:=[];

3) Елементами множини можуть бути константи, змінні, вирази, діапазони відповідного базового типу. Наприклад, якщо маємо

Var

X:byte;

Можна записати множину [2,17,X,2*X+37,5..25].

4) Множина не має елементів, що повторюються. Тобто, багаторазове вміщення елементу до множини ідентичне його одноразовому вміщенню.

5) Порядок розміщення елементів в множині не має значення. Наприклад, множини [4,8,23] i [8,23,4] будуть однаковими.

Операції над множинами.

Для демонстрації прикладів, будемо вважати, що маємо множини S1 і S2 одного типу.

Операція Запис операції Дія Опис результату
= S1 = S2 Перевірка на рівність. Результат true, якщо множини складаються з однакових елементів, незалежно від їх порядку.
<> S1 <> S2 Перевірка на нерівність Результат true, якщо множини відрізняються хоча б одним елементом
<= S1 <= S2 Перевірка на підмножину Результат true, якщо всі елементи множини S1 містяться в множині S2.
>= S1 >= S2 Перевірка на надмножину Результат true, якщо всі елементи множини S2 містяться в множині S1.
IN eл. IN S1 Перевірка входження елемента в множину Результат true, якщо вказаний елемент міститься у вказаній множині. Результат операції 5 in [6,9,5] є true.
+ S1 + S2 Об’єднання множин Результатом буде множина, яка буде містити всі елементи обох множин без повторень. Наприклад, [4,7,9] + [8,4,10,32] = [4,7,9,8,10,32]  
S1 – S2 Різниця множин Результатом буде множина, яка буде містити ті елементи множини S1, які не входять до множини S2. Наприклад, [5,8,9,3,78] – [4,7,5,3] = [8,9,78]
* S1 * S2 Пересічення множин Результатом буде множина, яка буде містити ті елементи, які містяться в обох множинах одночасно. Наприклад, [6,8,4,3] * [8,12,4,78] = [8,4]

 

Множини не можна вводити і виводити однією дією. Введення і виведення множин виконується поелементно.

До множини не можна додати елемент, але можна скласти дві множини, одна з яких складається з одного елементу. Наприклад, необхідно до множини mn:=[6,7,3]; додати елемент 12. Маємо записати mn:=mn+[12]; Вміст множини mn - [6,7,3б12].








Дата добавления: 2015-12-10; просмотров: 568;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.012 сек.