У вас вопросы?
У нас ответы:) SamZan.net

Тема дисципліни. Робота з масивами в Turbo Pscl Інструкційна картка лабораторного заняття 9 Тема

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 1.3.2025

Завдання (інструкційна картка) для лабораторної роботи

Тема дисципліни. Робота з масивами в Turbo Pascal

Інструкційна картка

лабораторного заняття № 9

Тема. Організація програм, для роботи з рядковими змінними

Мета заняття. Сформувати практичні вміння та навички створювати програми для роботи з рядковими змінними, використовувати стандартні функції та процедури для рядкових змінних, знаходити кількісні характеристики тексту, перетворювати текст, виділяти слова у тексті. Формувати якості особистості студентів та пізнавальний інтерес; показати значення теми для програмування та розв’язування задач; спонукати до пізнавальної, наукової, творчої діяльності; розвивати самостійність, увагу, відповідальність та творче мислення.

Методичне забезпечення

  1.  Глинський Я. М. Паскаль: навчальний посібник / Глинський Я. М., Анохін В. Є., Ряжська В. А. – Львів: СПД Глинський, 2010. – 192 с.
  2.  Нога Л. В. Конспект лекцій з дисципліни “Основи програмування та алгоритмічні мови” Частина 1 і 2 / Нога Л. В. – Херсон: Веселка, 2006. – 134 с.

3. Інструкційні картки.

Матеріально-технічне забезпечення

  1.  Комп’ютери, конспекти лекцій, конспекти практичного заняття.
  2.  Інструкційні картки до лабораторного заняття, роздруковані завдання по варіантах.

Питання для актуалізації опорних знань

  1.  Які операції можна виконувати над рядками?
    1.  За допомогою яких операцій можна порівнювати рядки?
    2.  Які стандартні процедури існують для оброблення текстової інформації?
    3.  Наведіть приклад використання процедури delete?
    4.  Як працюють процедури copy, str і val?

Правила техніки безпеки

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

Під час роботи потрібно дотримуватися правил експлуатації комп’ютерного обладнання.

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

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

Загальні відомості з теми

Рядкові змінні – це одномірні впаковані масиви символів, для опису яких в TURBO PASCAL уведений тип String. Наприклад, якщо рядок містить до 30 символів, її тип буде визначений як type s= String [30].

При використанні літерна константа заключається в апострофи. Максимально допустима довжина рядка – 255 байт (символів).

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

Формат

 Type

  <iм'я типу>=string [ максимальна довжина рядка ];

Var

  <iдентифікатор,... >: <iм'я типу>;

Або

Var

  <iдентифікатор,... >: string [ максимальна довжина рядка ];

Максимальну довжину рядка можна не задавати, тоді вона автоматично приймається рівною  255.

 Наприклад,

 Type

  Adress=string [ 50 ];

Var

  a: Adress; { Довжина строкової змінної a дорівнює 50 байт }

  b: string; { Максимальна довжина не задана, отже довжина строковой змінної  b дорівнює 255 байт }

 Для визначення пам'яті в байтах, необхідної для розміщення рядка, до значення її максимальної довжини добавляємо 1. Так, для розміщення в пам'яті змінних a і b вимагає відповідно 51 і 256 байт. Додатковий байт розташований в самому початку рядка (має нульовий номер) і містить значення поточної довжини рядка. Розглянемо структуру розміщення рядка в пам'яті на прикладі. Хай M – максимальна довжина рядка, L – поточна довжина, A - комірка пам'яті. Тоді:

A – містить величину поточної  довжини;

A+1 – перший символ;

  ...

A+L – останній значущий символ;

L+1…+A+M – незайняті комірки пам'яті.

 До окремих символів рядка можна звернутися по номеру цього символу в рядку (як до елемента одномірного масиву). Наприклад, a [3], b [255]. Значення a(0), b(0) рівні поточній довжині змінних a і b.

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

1. Процедура видалення

Delete (st, m, n), де st – рядок, m – початкова позиція, n Кількість видаляємих символів (від початкової позиції включно).

Наприклад, запис Delete (st, 4, 3) означає, що в рядку st, починаючи із позиції 4, cлід усунути 3 символи. При цьому нова поточна довжина рядка st стане на 3 менша, ніж попередня.

Якщо значення m знаходиться поза відрізком 1... 255, виникне помилка виконання програми; якщо m більше поточної довжини рядка, жоден символ усунений не буде. Якщо кількість символів, що підлягають видаленню, перевищує реально існуючу від початкової позиції до кінця рядка, тоді буде усунений лише максимально можливий в даній ситуації фрагмент.

 

2. Процедура вставки

Insert (St1, St2, I), де St1 – рядок, що вставляється, St2 – приймаючий рядок, I – позиція рядка St2, із якого починається вставка. Наприклад, запис Insert ('plain', st, 4) означає, що в рядок st треба вставити текст 'plain', починаючи із 4 позиції; при цьому символ в 4 позиції рядка st пересунеться на 5 символів праворуч.

Якщо значення I знаходиться поза відрізком 1... 255, виникне помилка виконання програми; якщо після вставки нова довжина рядка St2 перевищить її максимально допустиму довжину, значення St2 урізається до максимально допустимої довжини (виникає втрата самих правих символів). Якщо позиція вставки більше поточної довжини рядка, тоді буде мати місце проста конкатенація.

 

3. Процедура перетворення числового значення в рядкове

Str (I, st), де I – числове значення цілого чи дійсного типів, st – рядок, в який поміщається результат перетворення числа I.

Наприклад, якщо I = 5, тоді після виконання цієї процедури рядкова змінна st одержить значення '5'.

Після I може записуваватися формат (аналогічно форматам виведення). Якщо в форматі вказана недостатня для виводу кількість розрядів, місце виведення автоматично розширюєтьтся до потрібної довжини.

Наприклад, при I = 1500 після виконання процедури Str (I: 6, st) результат має вид: '1500'; при I = 4. 8e+03 після виконання процедури Str (I: 10, st) результат має вид: ' 4800'; при I = 768 після виконання процедури Str (–i: 2, st) результат має вид: '–768'. При завданні формату необхідно слідкувати, щоб його розмір не перевищував максимальної довжини рядка st, заданого при описі змінної st.

 

4. Процедура перетворення рядкового значення в числове

Val (st, I, Cod) – де st – рядок, I – зміна цілого або дійсного типу, в якій розміщується результат перетворення рядка st, Cod – цілочисельна змінна. Якщо під час операції перетворення помилки не виявлено, значення Cod рівно нулю; якщо помилка виявлена (наприклад, лiтерне значення перекладається в числове), Cod буде містити номер позиції першого помилкового символу, а значення I не визначено.

 Приклади

Значення st

    Процедура

   Результат

'1450'

'14. 2e+02'

'14. 2fgh'

Val (st, I, Cod)

Val (st, I, Cod)

Val (st, I, Cod)?

1450, Cod=0

1420, Cod=0

Cod=5

5. Функція Length (St) – обчислює поточну довжину в символах рядка St. Результат має цілий тип. Наприклад, якщо St ='rte', тоді результатом функції Length (St) буде число 3.

 

6. Функція Copy (St, Poz, N) - виділяє із St підрядок довжиною N символів, починаючи із позиції Poz. Змінні Poz і N мають цілочисельний тип. Якщо Poz>length (St), тоді результатом буде пропуск; якщо Poz>255, виникає помилка при виконанні.

Приклади

Значення St            Функція              Результат

'abcdefg'              Copy (St, 2, 3)            'bcd'

'abcdefg'              Copy (St, 4, 10)         'defg'

 

7. Функція Pos (St1, St2) – виявляє першу появу в рядку St2 підрядка St1. Результат має цілий тип і рівний номеру тієї позиції в рядку St2, де знаходиться перший символ підрядка St1. Якщо в St2 підрядок St1 не знайдений, то результат рівний 0. Наприклад, якщо St ='abcdef', тоді результатом функції Pos ('de', st) є число 4, а результат функції Pos ('r', St) є число 0.

 

8. Функція Concat (St1, St2,..., Stn) – виконує зчеплення рядків St1, St2, ..., Stn в тому порядку, в якому вони вказані в списку. Cума символів всіх зчеплених рядків не повинна перевищувати 255. Наприклад, результатом функції Concat ('aa', 'xx', 'y') є літерна  величина 'aaxxy'.

 

9. Функція Upcase (Ch) – перетворює малу літеру латинського алфавіту в велику. Параметр і результат мають тип Char. Наприклад, результатом функції Upcase ('a') є символ 'a'.

Зміст роботи

  1.  Вивчити теоретичний матеріал.
  2.  Виконати індивідуальне завдання.
  3.  Скласти звіт, в якому відповісти на теоретичні питання, описати алгоритм, описати програму, привести контрольний приклад виконання програми.

Індивідуальні завдання

Створити блок-схему та програму на мові Pascal для приведеної задачі згідно варіанту:

  1.  Дано рядок із 25 символів. Визначити кількість входжень у цей рядок сполучення 'oksm'.
  2.  Вилучити з фрази w коми і знак оклику, інші символи продублювати. Вивести результат.
  3.  Дано рядок із 30 символів. Визначити кількість входжень у цей рядок літери 'r'.
  4.  Ввести з клавіатури рядок символів будь-якої довжини. Визначити довжину рядка.
  5.  Ввести з клавіатури рядок символів. Вивести на екран всі цифри, які входять у текст.
  6.  Ввести стрічку довільної довжини, в якій слова відокремлюються пробілами. Вивести на екран слова, що починаються на літеру “m”.
  7.  Ввести з клавіатури рядок символів. Вивести на екран всі великі літери від Dдо К, які входять у текст.
  8.  Ввести стрічку довільної довжини, в якій слова відокремлюються пробілами. Визначити кількість символів у кожному слові.
  9.  В заданому рядку визначити, скільки раз зустрічається задане слово.
  10.  В заданому рядку слова розділені пропуском. Замінити всі пропуски комою і пропуском.
  11.  В заданому рядку визначити кількість подвійних приголосних.
  12.  В заданому рядку визначити кількість слів, в яких задана буква зустрічається більше одного разу.
  13.  В заданому рядку всі слова розділені декількома пропусками. Видалити всі лишні пропуски.
  14.  В заданому рядку кожне слово замінити кількістю букв в цьому слові.
  15.  В заданому рядку видалити всі пропуски.
  16.  В заданому рядку, слова якого розділені або пропусками, або комами, визначити кількість слів.
  17.  В заданому рядку замінити всі великі букви на мaленькі і навпаки.
  18.  Надрукувати всі слова взяті в лапки.
  19.  В заданому рядку слова розділені пропуском. Надрукувати найдовше слово.                  
  20.   В заданому рядку слова розділені пропуском. Надрукувати всі слова, які містять в собі задану послідовність символів.
  21.  В заданому рядку визначити, чи є він ідентифікатором.

Методичні РЕКОМЕНДАЦІЇ

Для виконання лабораторної роботи потрібно перш за все опрацювати теоретичний матеріал.

Виконати індивідуальне завдання.

Показати результат роботи викладачеві.

Скласти звіт, в якому відповісти на теоретичні питання, описати алгоритм, тобто створити блок-схему, описати програму (лістинг програми з коментарями), привести контрольний приклад виконання програми (результат роботи програми).

Здати робоче місце, а оформлений звіт – викладачеві на підпис.

Під час виконання лабораторної роботи дотримуватися правил безпеки.

Приклади розв’язання задач по організації програм, для роботи з рядковими змінними

  1.  Задано текст, слова якого поділені пропуском. Виділити і надрукувати всі слова тексту, кожне із нового рядка.

Розв’язання. Введемо рядкову змінну st, оголосивши її довжину за максимумом (255 байт). В цій змінній будемо вводити заданий рядок. Введемо також рядкову змінну w, в яку будемо заносити чергове слово рядка st, і цілочисельну змінну p для позначення позиції чергового пропуску.

Лістинг програми:

Program rjadok;

uses crt;

var

  st: string;

  w: string;

  p: integer;

begin

  writeln ('введiть текст, розділяючи слова пропуском: ');

  readln (st);

  writeln ('заданий текст: ');

  writeln (st);

  p: =pos (' ', st); { Знаходження позиції 1-го пропуску }

  writeln;

  writeln ('в текст входять слова: ');

  while p>0 do

    begin w: =copy (st, 1, p-1); { Виділення слова }

       delete (st, 1, p); {Видалення цього слова із тексту разом з пропуском}  

writeln (w);                      { Друк   виділеного слова }

 p: =pos (' ', st)        { Знаходження позиції чергового пропуску }

 end; writeln (st)        { Друк останнього слова }

 end.

Результат роботи програми:

заданий текст: це програма обробки рядків на Pascal.

в текст входять слова:

це

програма

обробки

рядків

на

Pascal

Блок-схема алгоритму

  1.  Дано рядок із 100 символів. Визначити кількість входжень у цей рядок сполучення 'abc'.

Лістинг програми:

program Stroka;

const n=100;

type STR=array[1..n] of char;

var b: STR; m, i: integer;

begin

writeln (' Введіть строку');

for i:=1 to n do

read (b[i]);

for i:=1 to n-2 do

if ((b[i]='a') and (b[i+1]='b') and (b[i+2]='c')) then Inc(m);

writeln (' Кількість входжень 'abc' у вхідний рядок m=', m);

readln; end.

  1.  Вилучити з фрази а пропуски, коми і крапки, інші символи продублювати. Вивести результат.

  1.  Нехай задано рядок Я люблю інформатику. Визначити довжину рядка. Вивести на екран друге слово цього рядка.


Контрольні питання

  1.  Що таке рядок на Pascal?
  2.  Як задається рядковий тип  даних?
  3.  Яка максимально допустима довжина рядка? Чи можна задати довжину рядка меншою максимально допустимого? Якщо можна, тоді як?
  4.  Як можна звернутися до окремих символів рядка?
  5.  Як визначити поточну довжину рядка, не використовуючи відповідну функцію?
  6.  Що таке рядковий вислів? Чи допускається в рядковому вислові змішування операндів рядкового і лiтерного типів?
  7.  Перерахувати операції, допустимі над рядковими даними.
  8.  Які стандартні функції процедури використовуються для обробки рядкових даних?
  9.  Чи можна рядкові дані застосовувати у вигляді <виразу> в  операторі case?

Викладач ____________ М. О. Пашко


PAGE   \* MERGEFORMAT 10




1. Краснобаева-- Кимбаровского-- Сапежко Паховая грыжа у детей возникает в результате -- незар
2. Фізіологічний перебіг вагітності, пологів та післяпологового періоду
3. рефераты курсовые работы дипломные проекты I
4. . Этническая характеристика и антропологический состав народов Зарубежной Европы.
5. это достижение желаемых результатов посредством эффективного использования людских материальных и финанс.html
6. Психологическое содержание политической власти на примере диктатуры тоталитаризма и особенностях авторитаризма
7. тема госрегулирования ~ инструмент го
8. Паблик рилейшнз в повседневной жизни
9. Сущность и понятие права современные подходы и решени
10. 9889986111 zdorovbe.