Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка практика.doc
Скачиваний:
2
Добавлен:
30.08.2019
Размер:
1.32 Mб
Скачать

Зміст і послідовність виконання завдань.

  1. Нагадати правила з ТБ у комп’ютерній аудиторії.

  2. Завантажити середовище програмування Turbo Pascal.

  3. Робота із символами рядка.

  4. Скласти програму роботи зі String.

  5. Виконати завдання згідно варіанта.

  6. Відкомпілювати програми. Перевірити правильність їх виконання.

  7. Оформити звіт.

Методичні рекомендації з виконання та оформлення.

Звіт оформити згідно рекомендацій щодо оформлення щоденника з навчальної практики.

Варіанти до завдання 3

  1. Визначити, чи є в ньому літера «а». у випадку позитивної відповіді знайти порядковий номер першої з них.

  2. Підрахувати кількість розділових знаків у стрічці, що вводиться з клавіатури.

  3. Підрахувати кількість голосних літер у стрічці, що вводиться з клавіатури.

  4. З клавіатури вводиться призвіще, ім’я, по батькові. Вивести призвіще та ініціали.

  5. Дано назва трьох міст. Вивести на екран саму довгу назву.

  6. Дано назва трьох міст. Вивести на екран саму коротку назву.

  7. Написати програму, яка виводить введене ім’я у зворотному порядку.

  8. З клавіатури вводиться призвіще. З’ясувати, яке з них довше.

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

  10. Написати програму, яка рахує кількість символів у введеній з клавіатури стрічці.

Варіанти до завдання 4

  1. Написати програму, яка рахує кількість слів у стрічці. Слова розділяються пропуском, розділовими знаками.

  2. Написати програму, яка слово «мама» замінює на слово «тато».

  3. Написати програму, яка у стрічці, що вводиться з клавіатури замінює слово на інше слово, які вводяться з клавіатури.

  4. Написати програму, яка дублює всі літери «і» у стрічці, що вводиться з клавіатури.

  5. Дано речення. Надрукувати всі символи між першою та другою комами. Якщо другої коми немає, то повинні бути надруковані всі символи після першої коми.

  6. Дано стрічка. Замінити всі пропуски на символ «_».

  7. Дано речення. Визначити, чи є в ньому літера «а». У випадку позитивної відповіді знайти порядковий номер першої з них.

  8. Дано речення. Вилучити з нього всі літери «h». У випадку позитивної відповіді знайти порядковий номер першої з них.

  9. Дано речення. Вилучити з нього всі літери «о», що стоять на непарних місцях.

  10. Дано речення. Вилучити з нього всі літери «о», що стоять на парних місцях.

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

  1. Що таке рядок? Яка максимальна кількість символів у рядку?

  2. Які стандартні процедури роботи з рядками ви знаєте?

ІНСТРУКЦІЙНА КАРТКА №8

до навчальної практики

з дисципліни «Алгоритми та структури даних»

Тема. Складені структури даних: записи.

Мета: навчитися розробляти алгоритми та програми складених структур даних, записи.

Матеріально-технічне оснащення робочого місця:

  1. Інструкційна картка;

  2. ПК.

Короткі теоретичні відомості з теоретичної частини роботи.

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

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

Record

Поле1:ТипПоля1;

Поле2:ТипПоля2;

ПолеN:ТипПоляN;

End;

Якщо декілька полів мають однаковий тип, то їх можна перелічити в одному блоці.

Можна, наприклад, ввести тип даних, аналогічний анкеті:

Type

Person=Record

F_I_O_ : String;

Ves, Rost : Real;

Telephone : LongInt;

End;

Тут пара Record…End конструює тип запис. Тип Person задає таблицю із рядка F_I_O, двох чисел з дробовою частиною Ves, Rost і одного цілого числа Telephone.

Після об’яви в програмі змінної типу запис до кожного її поля можна звернутися, вказав спочатку ідентифікатор змінної-запису, а потім, через крапку ім’я поля (вказівка тільки ідентифікатора змінної-запису – вже комбінація двох значень).

Тобто якщо ввести в попередньому прикладі змінну Nekto типу Person, під ім’ям Nekto буде розумітися анкета-таблиця з конкретними значеннями, та доступ до полів таблиці буде вироблятись дописуванням до імені всієї таблиці імені потрібного поля:

Nekto.F_I_O – значення рядка з прізвищем, ім’ям та по батькові;

Nekto.Ves – значення поля Ves.

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

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

Type

RecType= Record;

Number:Byte;

Case Massa:Char of

т’, ’Т’:(tonna : Word);

г’, ’Г’:(gram : LongInt)

?’ :(Comment1, Comment2 : String[16])

End;

Тут у запису є звичайне (фіксоване) поле Number і таке ж поле Massa (обрамоване словами Case і Of), яке виконує паралельно роль селектора (поле тега). За полем-селектором перераховуються варіанти третього поля, взятого у круглі дужки. Значення селектора повинно бути визначено до його використовування у запису (також, як і в операторі вибору Case).

В будь-який час доступні поля тільки одного з можливих варіантів, описаних у типу. Ці варіанти знаходяться при зберіганні в одному і тому ж місці пам’яті, розмір якого визначається самим об’ємним із варіантів. Наприклад, приведений вище запис типу RecType зберігається як 366 байт: 1 байт (Number) + 1 байт (Massa) + 2 (16+1) байт (Comment1, Comment2).

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

Поле-селектор можна замінити ім’ям будь-якого перелічувального типу (в тому числі і введеного), тільки б він утримував елементів не менше, ніж варіантів запису. У випадку двох варіантів у Case можна вписувати тип Boolean зі значенням False і True.

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

Для роботи з полями запису у мові введений оператор приєднання:

With Ім’яЗмінної_Запису Do Оператор;

Тепер у середині оператора (він може бути складним) звертання до полів запису проводжується без вказування ідентифікатора самої змінної, наприклад:

Var

XYRec:Record

x,y:Integer;

End;

BEGIN

. . .

with XYRec do begin

x:=0; y:=10

end;

. . .

END.

Якщо у середині області дії оператора With використовуються інші змінні, які не мають відношення до запису, та їх імена співпадають з полями запису, необхідно до цих змінних приписати кваліфікатор (ім’я програми чи модуля, в яких вони об’явлені), наприклад:

Program Pro;

Var

x,y:Integer;

RecXY:Record x,y:Integer End;

BEGIN

x:=5; y:=15;

with RecXY do begin

x:=9.3*Pro.x; y:=8.2*Pro.y;

end;

END.

Якщо одне із полів запису – запис з полями, то можна розповсюджувати With на декілька полів углиб, перерахувавши їх через кому:

With Ім’яЗапису, Поле_Запису Do

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