русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


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


Дата додавання: 2014-05-08; переглядів: 1191.


Строкову змiнну можна розглядати, як масив символiв., тобто

a: string[10]; можна iнтерпретувати, як a: array[1...10] of char;

Для вводу значень змiнних типу string використовуеться оператор readln, а не read. Одним оператором можна ввести тiльки один рядок.

 

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

 

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

 

В даному прикладі необхідно переглядати текст по символам. Щоб мати можливість вивести кожне речення окремо, необхідно формувати текст речення по символам, тобто кожний символ заносити в масив символів для речення. Зустріч символів . ? ! вважається кінцем речення. Кількість символів в тексті можна визначити за допомогою функції 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. Підрахувати, скільки раз в заданому тексті зустрічається вказане слово.


<== попередня лекція | наступна лекція ==>
Розробка програм з використанням двовимірних масивів. | Множини Pascal


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн