Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Типи даних алгоритмічної мови TURBO Pascal Стандартні функції і оператори роботи з рядками

Тип Реферат
Предмет Информатика
Просмотров
1102
Размер файла
34 б
Поделиться

Ознакомительный фрагмент работы:

Типи даних алгоритмічної мови TURBO Pascal Стандартні функції і оператори роботи з рядками

Житомирський військовий інститут

Національного авіаційного університету

Реферат

на тему:

Типи даних алгоритмічної мови TURBOPascal.

Стандартні функції і оператори роботи з рядками

Житомир 2010

План

1. Структура (класифікація) типів даних мови T.Pascal

2. Прості типи даних

3. Структуровані типи даних. Масиви даних

4. Стандартні модулі T.Pascal, їх призначення

5. Символьні масиви

6. Визначення рядкового типу даних

7. Основні операції над рядковими даними

8. Стандартні засоби обробки рядків: процедури і функції

1.Структура типів даних

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

Класифікація типів даних

2. Прості типи даних

До простих відносять реальні та порядкові типи даних.

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

Реальнітакож мають кінцеве число значень, але їх кількість дуже велика, тому кожному з них зіставити ціле число просто неможливо.

Порядкові типи

До порядкових типів відносяться: цілі, логічні, символьні, переліку та тип-діапазон.

До будь-якого з них можна використати функції:

ORD(Х)– порядковий номер значення;

PRED(X)порядковий номер попереднього значення;

SUCE(X) – порядковий номер наступного значення;

ORD(PRED(X))=ORD(X)-1;

ORD(SUCE(X))=ORD(X)+1.

Цілітипи

Опис:

Var <ім’я>: integer;

ТипДіапазон значеньДовжина, байт
Byte0…2551
Word0…655352
Integer-32768…327672
ShortInt-128…1271
LongInt-2147483648…21474836474

Byte– довжина в байт;

Word– довжина в слово;

Integer– ціле;

ShortInt – коротке ціле;

LongInt – довге ціле.


Над цими типами визначені операції: “+”, “-“, “*”, div – цілочислове ділення.

При використані процедур і функцій з цілочисловими параметрами слід керуватися відповідністю діапазонів типів. Наприклад: integerвходить в

Longint, byte < word і т.д.

Якщо в виразі використані різні типи, то вони приводять до базового типу – min потужності цілого типу, який не містить результат.

Логічний тип (BOOLEAN)

Значенням цього типу може бути одна з двох констант FALSEабо TRUE.

Для них справедливі правила:

ORD (FALSE) = 0;

ORD (TRUE) = 1;

FALSE < TRUE.

Крім того є 4 стандартні логічні операції:

AND – логічний добуток;

OR – логічна сума;

XOR – сума по модулю “2”;

NOT – логічне заперечення (унарна операція).

Наприклад:

А = TRUE; not A=B

B = FALSE not B=A

A and B=B A or B=A A xor B=A

A and A=A (TRUE) B or A=A B xor A=A

B and A=B A or A=A A xor A=B

B and B=B B or B=B (FALSE) B xor B=B

Опис:

Var<ім’я>:boolean;

Символьний тип (CHAR)

(character– символ).

Значення символьного типу є множиною всіх символів ПК. Кожен символ має код у значенні 0…255, так званий ASCII(American Standard Code for Information Interchange). Для представлення символів апострофи: ‘A’, ‘B’, …,’*’,’”’,…

Опис:

Var<ім’я>: char;

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

Стандартні символьні функції:

СHR(код символа) – повертає відповідний символ;

ORD (S)– повертає код символа S.

Приклад :

Var x,y: char;

Begin

Read(x);

Y:=’A’;

If x <y then write ( x’);

End.

Тип переліку.

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

Type

Season = (winter, spring, autumn);

Значенням присвоюються порядкові номери: 0,1,2,3…255. Наприклад:

ord (summer) =2.

Значення можуть бути тільки іменними. Їх можна присвоювати і порівнювати, але не можна вводити і виводити операторами READіWRITE.

Приклад:

Type

Season = (win, spr, sum, out);

Var

b: byte;

c:season;

Begin

readln(b);

c:= season (b);

Case c of

Win : writeln(‘winter’);

Spr : writeln(‘spring’);

Sum : writeln(‘summer’);

Out : writeln(‘outumn’);

End.

End.

Тип – діапазон

Визначається як інтервал значень базового типу (раніш визначеного), яким може бути будь-який порядковий тип:

<ім’я> = <minзначення>..<maxзначення>;

Приклад:

Type

Day = 1..31;

Mounth = 1..12;

Letter = ‘A’..’Z’;

При визначенні типа-діпазона, слід користуватись правилами:

а) – це один символ(без пробілу);

б) ліва границя не повинна перевищувати праву;

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

Реальний тип

Позначає множину дійсних значень в різних діапазонах. ТР підтримує декілька реальних типів, характеристики яких представленні в таблиці:


ТипДіапазон значеньЧисло цифрДовжина байт
Singl1.5Е-45…3,4Е387…84
Real2,9Е-39…1,7Е3811…126
Double5Е-324…1,7Е30815…168
Extended3,4Е-4932…1,1Е493219…2010
Comp1Е-20…1Е2019…208

Реальні типи можна зобразити з фіксованою і плаваючою комами: (17.38) (1738Е-2)

Для прискорення обчислень, можна переопреділяти тип REAL:

Type

Real = dabble; або

Type

Real = extended;

Функції прискорення реальних типів до цілочислених:

Round– скругляєReal до ближнього цілого;

Trunc– усікає realшляхом відкидання дробної частини.

3. Структуровані типи. Масиви даних

Масиви – тип даних, який складається з фіксованої кількості елементів одного типу.

Опис масиву можна виконувати як у розділі TYPE,так і VAR.

TYPE <ім’я масиву> = ARRAY[розмір]OF <тип компонент>.

Тип індексу (діапазон) – будь-який порядковий тип, зокрема LongInt. Тип компонент – будь-який тип ТР, або інший масив.

Приклад:

Type

M1 = array [1..100] of real;

Mat2 = array [1..10] of array [1..20] of integer;

Var

Vector : M1;

Arr1, Arr2 : mat2;

Інакше

Var<ідентефікатор> : array[діапазон] of <тип>;

Приклад:

Var

Vector: array [1..100] of real;

Над змінними масивів можна виконувати операції присвоювання і порівняння.

Арифметичні дії, ввод та вивод не можна виконувати над послідовностями, але можна над їх окремими елементами.

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

Наприклад:

Var X: array [0..99] of real;

Тоді Х[0]– перший елемент,

Х[1] – другий і т.д.

Масив може бути одномірним, двомірним і т.д.

Наприклад:

Var mat2 : array [1..10,1..20] of integer;

Компоненти масиву позначаються;

Mat2 [1,3]; Mat2 [5,8] …;

Так і організовується доступ до елементів двомірних масивів.

Приклад:

1) Введення значень у масив М.

Var M : array [ 1..10 ] of integer;

i : integer;

begin

i := 0;

repeat

i := i+1;

read ( M [ i ] )

until i = 10

end.

2) обчислити значення функції Yi=(a+b+xi)/2, якщо а і b – фіксовані значення; x={3,8,12,20,25}, i=1,N .

var

A,B : real;

i, N : integer;

X, Y : array [1..5] of real;

begin

read (A, B, N);

for i := 1 to N do

begin

read ( X [i] );

Y [i] := (A + B + X[i])/2;

Write ( Y [i] );

end;

end.

Завдання 1: (масиви)

Введення одномірного масиву і виведення у вигляді:

а) вектора-рядка;

б) вектора-стовпчика.

a) Var M : array [1..10] of real;

i : integer;

begin

i := 0;

repeat

i := i + 1;

reat (M [i] );

until i =10 ;

for i := 1 to 10 do

write (X [i] : 5 : 2,’’);

end.

b)Var M : array [1..10] of real;

i : integer;

begin

i := 0;

repeat

i := i + 1;

reat (M [i] );

until i =10 ;

for i := 1 to 10 do

writeln (X [i] : 5 : 2);

end.

4. Стандартні модулі ТР. Їх призначення

Модуль – це окремо транслюєма програмна одиниця.

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

USES <ім’я модуля>.

Основна частина засобів ТР розташована в стандартних модулях, які поставляються разом з компілятором.

Існує вісім стандартних модулів:

SYSTEM, DOS, CRT, PRINTER, GRAPH, OVERLAY, TURBO3, GRAPH3

МодульSYSTEMосновний, в який входять всі процедури і функції стандартного Паскаля і ТР. Він підключається автоматично і не потребує запрошення USES.

Модуль DOS– призначений для забезпечення інтерфейса з програмами ОС.

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

МодульPRINTER– забезпечує зв’язок між процесором і принтером.

МодульGRAPH– містить 90 графічних процедур і функцій, які дозволяють відтворювати на екрані точки, відрізки, кола та ін.. фігури різних кольорів і розмірів; засоби замальовування та виводу тексту у графічному режимі.

МодульOVERLAY – розбиває великі програми на сегменти перекриття (оверлейні сегменти), які використовують загальну область пам’яті.

МодульTURBO3 iGRAPH3 – для сумісності з версією ТР 3.0.

SYSTEM, CRT, DOSрозміщені у файлі TURBO.TPL. GRAPHокремий файл GRAPH.TPU.

Всі модулі крім SYSTEM стають доступними після їх підключення:

USES <ім’я модуля>.

5. Символьні масиви

Символьний тип даних дозволяє працювати з окремими символами тексту. Для обробки більшої кількості текстових одиниць використовують символьні масиви або рядкові типи даних.

Розглянемо одномірні масиви, які складаються з елементів символьного типу (Char).

Наприклад:

Var

S: array [1..12] of char;

Паскаль містить деякі додаткові засоби роботи з такими масивами:

1) Конкретні значення символьних масивів записують за допомогою зображення рядка та використання їх в присвоюванні та передачі параметрів:

S: = ‘Приклад рядка’;


Зображення рядка будується з символів масиву і обмежується апострофами.

Якщо необхідно задати апостроф, то його удвоюють {‘ ” ’}.

Допускають формування рядків з використанням десяткових кодів символів і спеціальних позначень: ( #7#17C^A^B…)

2) для символьних масивів операцію “+” конкатенації (зчеплення, поєднання). Смисл операції полягає у формуванні нового символьного масиву, кількість елементів якого дорівнює сумі розмірів масивів – операндів, а значення елементів – елементи масивів, які розміщюються послідовно один за одним.

Приклад:

Var S1 : array [1..8] of char;

S2 : array [1..5] of char;

Begin

S1 := ’рядковий’;

S2 := ’масив’;

Writln (S1+’ ’+S2);

{результат: на екрані}

end.

Особливість:

1) в операторах присвоювання рядків символьним масивам необхідна точна відповідність довжини рядків і розмірів масивів;

2) операція конкатенація для символьних масивів не допускається у правій частині присвоювання.

Приклад:S : S1+’ ’+S2; {помилка}

У таких випадках необхідно використовувати рядки, тобто рядкові типи даних.


6. Визначення рядкового типу даних

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

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

Для визначення рядкових даних використовується ідентифікатор STRING, за якими у квадратних дужках вказується максимальна довжина рядка. Якщо значення не вказане, то по замовченню довжина рядка встановлюється 255 байт.

Приклад:

Line: string [80];

Line1: string ;

Line2: string [255];

В приведеному прикладі змінна Line може мати будь-яку послідовність символів (кожен з яких має стандартний тип char) довільної довжини в межах від 0 до 80 символів; Line1 і Line2 – від 0 до 255 символів.

Таким чином, важливіша різниця між рядками і символьними масивами, що рядки можуть динамічно змінювати свою довжину.

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

Рядкові дані також можна використовувати у програмі як константу.

Формат:

1) type

2)

<ім’я типа > = string[max довжина рядка];

var

< ідентифікатор > : <ім’я типа >;

або

3) var

< ідентифікатор > : string[maxдовжина рядка];

Приклад:

Const

address = ‘пл. Соборна, 1’;

Type Line = string [125];

Var

S1 : Line;

S2 : string;

S3 : string [50];

Механізм динамічних рядківреалізований в мові Турбо-Паскаль достатньо просто. Для рядкових змінних пам’ять виділяється відповідно максимального значення, а використовується лише частина, яка реально зайнята символами рядка у даний час, тобто для N символів виділяється N+1 байт пам’яті, із яких Nбайт призначено для зберігання символів рядка, а 1 байт – для значення поточної довжини цього рядка:

Елементи рядка нумеруютьсяцілими числами, починаючи з 1. Це іноді використовують для визначення поточної довжини рядка.

Наприклад:

1) Line:= ‘ ’; {пустий рядок}

WriteLn (ORD (Line [0] )); {на екрані число 0}

2) Line : =‘ABCD’;

WriteLn (ORD (Line [0])); {на екрані число 4}

Однак, для визначення поточної довжини рядка, як правило, використовують стандартну функцію length, яке повертає ціле значення поточної довжини рядка. Але це ми розглянемо далі.

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

Наприклад:

Var Line : string [4];

Begin

Line:=‘ дуже довгий рядок’;

WriteLn (Line);

Таким чином рядки можуть змінювати свою довжину.

7. Основні операції над рядковими даними

Над рядковими даними виконують такі операції :

1.присвоювання (:=);

2.ввод (Read);

3.вивод(Write);

4.порівняння (відношення);

5.поєднання (зчеплення, конкатенації, - ,+).

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

Операція конкатенації.

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

Приклади:

1) st := ‘a’+’b’;

st := st + ‘c’;

writeLn (‘st = ‘, st) {результатst =abc}

2) var st :

string [2];

begin

st :=’1’ + ‘2’ + ‘3’;

writeLn (st) {на екрані 12}

end.

Операції порівняння (відношення).

Проводить порівняння двох рядкових операндів за допомогою стандартних операторів: = , <>, >, <, >=, <=.

Правила порівняння:

1) проводиться з ліва-направо з урахуванням внутрішнього кодування таблиці символів ASCII. Рядок буде більшим, якщо перший не співпадаючий символ має більший номер.

2) У менший по довжині рядок додаються символи значенняCHR(0).

Тому при однакових, символах короткий рядок завжди менше довгого рядка.

Результат виконання операції завжди має логічний тип і приймає значення TRUEабо FALSE.

Приклади:

Виразрезультат

1)‘ “ ‘ < ‘.’ TRUE

2) ‘A’ > ‘2’ TRUE

3) ‘AB’ = ‘A’FALSE

4) ‘ABC’ > ‘AB’ TRUE

5) ‘12’ <’2’ TRUE

8. Cтандартні засоби обробки рядків: процедури і функції

Функції:

1) CONCAT(S1,S2,…,SN) – функція типа STRING. Виконує послідовне поєднання рядків S1,S2,…,SN, кожен з яких є вираз рядкового типу (STRING).Результатом є рядок не більше 255 символів. Дана функція еквівалентна операції конкатенації:

S1’ + ‘S2’ + ‘S3’…

2) COPY(st : STRING; index : INTEGER; count : INTEGER): STRING;

або

COPY (st, index, count).

Функція копіює (повертає) частину рядка, виділеного з рядка st, довжиною countсимволів, починаючи з символу під номером index.

1) LENGTH(st : STRING) функція типу INTEGER; повертає довжину рядка.

2) POS(subst, st : STRING): BYTE.Функція шукає у рядку stрядок subst. Результатом є номер позиції, де рядок subst зустрічається перший раз. Якщо рядок substне знайдено, то результатом буде 0 (нуль).

3) UPCASE(ch) – функція типу CHAR. Повертає для символьного виразу ch, яке повинно представляти собою рядкову (маленьку) латинську букву, відповідно їй велику букву. Якщо значенням функціїch є будь-який інший символ (в тому числі рядкова буква російського алфавіту), функція повертає його без змін.

Процедури:

1) DELETE(st : STRING; index, count : INTEGER)або

DELETE(st, index, count)процедура вилучає (знищує) count символів у рядкуst починаючи з символу під номером index.

2) INSERT(subst : STRING; st :STRING; index : INTEGER)або

INSERT(subst, st, index). – процедура вставляє рядок substу рядок st, починаючи з символу під номером index.

3) STR(X[:width[:decimals]];st:STRING) – процедура перетворює число Х в рядок символів stтак, як це робить це робить процедура WRITELN перед виводом. Параметри widthіdecimals(якщо вони присутні, тобто дужки [] показують на необов’язковість цих параметрів) задають формат перетворення: загальну ширину поля для представлення числаХ(width) та кількість символів дрібної частини (decimals), якщо X : REAL.

4) VAL(st, x, code) – процедура перетворює рядок символів stв значення числової змінної X (визначеного типу). Параметр code=0, якщо перетворення пройшло успішно, тоді Xдорівнює результату перетворення. Якщо виявляється помилковий символ у рядку st, то значення Х не змінюється, а codeдорівнюєномеру позиції з помилковим символом.

Приклади:

Var x: real;

y: integer;

st, st1 : string;

begin

st:= concat (‘12’, ‘345’); {рядокstмістить 12345}

st1:= copy (st, 3, Length(st)-2); {st1 містить 345}

insert(‘-’ , st1, 2); {рядокst1містить 3-45}

delete(st, pos(‘2’, st), 3); {рядокstмістить 15}

str(pi : 6 : 2, st ); {рядокst містить 3,14}

val (‘3.1415’, x, y); {yмістить 2, х беззмін}

end.

Висновок

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


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно