Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


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


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Основні операції для роботи з літерними величинами

 

Перейдемо до розгляду основних операцій, призначених для роботи з літерними величинами.

Для роботи з літерними величинами у мові Паскаль передбачено наступні операції, процедури та функції :

Length(st) – визначає довжину літерної величини st. Іншими слова, просто підраховує кількість символів в літерній величині. Цю ж інформацію можна отримати, зчитавши значення st[0], але будьте уважні, необхідно на друк виводити значення не st[0], a ord(st[0])!

Copy(st, m, n) – виділяє з літерної величини stn символів, починаючи з символу під номером m. Дана функція використовується для копіювання.

Concat(st1, st2) – об’єднує дві літерні величини. Дана функція виконує ту ж саму дію, що й операція ‘+’, введена вона для сумісності з більш ранніми версіями мови Паскаль.

Val(st, m, kod) – перетворює літерну величину st в число m. Якщо kod<> 0, то введена літерна величина не є числом.

Для кращого розуміння приведемо простеньку програму:

program demo_val_str;

var st : string;

k, kod : integer;

begin

write('Введiть слово: ');readln(st);

val(st, k, kod);

if kod <> 0 then writeln(' Введене слово не є числом ')

else writeln('Слово є числом ', k);

readln

end.

Str(m, st) – перетворює число в літерну величину, тобто дана процедура є оберненою до val.

Delete(st, m, n) – видалення деякої групи символів довжиною n починаючи з позиції m в літерній величині st.

Insert(st2, st1, n) – вставити в літерну величину st1 літерну величину st2 починаючи з позиції n.

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

Задача 188. Знайти, яке з двох введених слів більше.

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

По–перше, зрозуміло, що «мама» = «мама», але тільки у тому випадку, коли всі літери в обох словах написані одними й тими ж символами, тобто літерами одного і того ж алфавіту. Якщо ж ми у першому слові літери «а» напишемо літерами англійського алфавіту, а у другому – на перший погляд ті ж самі літери «а» напишемо у російському (українському) алфавіті, то ці слова вже не будуть однаковими. Це пов’язано з тим, що, як ми вже вказували, тип string описано як масив типу char, а останній тип є впорядкованим і однакові на вигляд літери різних алфавітів не є однаковими, оскільки їм відповідають різні порядкові номери відповідних символів.

По–друге, як бути у випадках, коли слова мають різну кількість літер («мама» – «мам»), або ж відрізняються одним символом («мама» – «Мама»)? У даному випадку (як і всіх інших) ПЕОМ діє наступним чином: порівнюються попарно відповідні літери двох слів і як тільки виявляється, що два чергові символи в слові відмінні, то більшим вважається те слово, у якого код даного символу більший.

Все вищесказане демонструє наступна програма:

program poriwn_stroki;

var st1, st2 : string;

i,s: integer;

begin

write('Введiть переше слово: ');readln(st1);

write('Введiть друге слово: ');readln(st2);

s := 0;

for i := 1 to length(st1) do

begin

write(ord(st1[i]):3,' ');

s := s + ord(st1[i]);

end;

writeln('s = ',s);

s := 0;

for i := 1 to length(st2) do

begin

write(ord(st2[i]):3,' ');

s := s + ord(st2[i]);

end;

writeln('s = ',s);

if st1 = st2 then writeln('Слова однаковi')

else if st1 > st2 then writeln('Переше слово бiльше')

else writeln('Друге слово бiльше');

readln;

end.

 

 


Читайте також:

  1. II. Вимоги безпеки перед початком роботи
  2. II. Вимоги безпеки праці перед початком роботи
  3. II. Основні закономірності ходу і розгалуження судин великого і малого кіл кровообігу
  4. II. Основні засоби
  5. II.3. Основні способи і прийоми досягнення адекватності
  6. III. Вимоги безпеки під час виконання роботи
  7. III. Вимоги безпеки під час виконання роботи
  8. Internet. - це мережа з комутацією пакетів, і її можна порівняти з організацією роботи звичайної пошти.
  9. IV. Вимоги безпеки під час роботи на навчально-дослідній ділянці
  10. S Визначення оптимального темпу роботи з урахуванням динаміки наростання втоми.
  11. VII. Прибирання робочих місць учнями (по завершенню роботи) і приміщення майстерні черговими.
  12. Адвокатура в Україні: основні завдання і функції




Переглядів: 357

<== попередня сторінка | наступна сторінка ==>
Робота з літерними та символьними величинами | Приклади розв’язування задач з використанням основних операцій для роботи з літерними величинами

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.016 сек.