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

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

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

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

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

Да, спасибо!

0%

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

0%

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

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

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

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


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

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

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

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

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

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

Реферат на тему:

Оператори алгоритмічної мови Паскаль. Стандартні функції і оператори роботи з рядками

Житомир 2010


План

1. Прості оператори

2. Структурні оператори

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

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

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

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

1. Прості оператори

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

Всі оператори повинні розділятись символом – ";".

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

1) прості оператори;

2) структурні оператори, які містять один або декілька операторів, або структурних операторів.

1. Оператор присвоювання;

2. Оператори звертання до процедури (функції);

3. Оператор безумовного переходу.

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

Формат оператора:


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

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

Наприклад: якщо var a, b, x: integer, то оператор присвоювання виконувати не можна.

Треба так:

var a, b : integer;

x : real;

Тоді буде вірно:

.

Приклади:

1. var name: string;

. . .

name : = ‘Іванов‘;

2. var x, y: real;

. . .

x: = 5;

y: = x + 2;

Оператори звертання до процедури (функції) – призначені для активізації процедури (функції) та передачі їй заданих параметрів.

Формат оператора:


Розглянемо процедури введення та виведення даних, які можна викликати за допомогою операторів: read, readln, write, writeln.

write (вираз), writeln (вираз) – оператори запису або виведення;

read (список змінних), readln (список змінних) – читання або введення.

Приклади виведення:


1. x : = 1;

writeln(1+x);

writeln(x <=1);

на екрані з’явиться:

2

true

2. x: = 2;

writeln(1, x, x*x, x*x >2);

на екрані :

1 2 4 true

3. Використання рядкових констант, наприклад: ‘x =’, ‘12’ і т.п.

x : = 2;

writeln(‘x = ‘, x,’; y = ‘, x*x);

На екрані:x = 2; y = 4.

4. Можна указати розмір поля для виводу значень виразу.

Якщо кількість символів менше, то виводяться пробіли, а якщо більше – то виводяться усі символи.

x: =12;

writeln(‘x =’, x : 4,’; y = ‘, x*x : 1);


На екрані

x =_ _ 12; y = 144 .

Приклади введення.

5. Як правило, для зручності перед оператором введення ставиться оператор виведення на екран запрошення:

writeln (‘Ввести два цілих числа:’);

readln (x1, x2);

На екрані запрошення:

Ввести два цілих числа:

6. Приклад програми привітання.

Program Privit;

var name: string;

begin

write(‘Введіть ваше ім‘я’);

readln(name);

writeln(‘Привіт,’, name);

end.

Оператор безумовного переходу.

Мітка описується на початку програми (label 1, 2, lb1) і використовується в програмі наступним чином:


Але використання цього оператора в програмі не бажане, бо порушується її структурна цілісність і читабельність.

2. Структурні оператори

Структурні оператори містять один або декілька операторів. Вони поділяються на три види:

1. складений оператор;

2. умовні оператори;

3. оператори циклу.

Складений оператор представляє собою послідовність операторів, які розділяються ";" і обмежуються службовими словами begin та end. Вони відіграють роль дужок обмеження – операторні дужки початку і кінця складеного оператора).

BEGIN

оператор 1;

……………

оператор N

END.

Складений оператор сприймається як єдине ціле.

Умовні оператори – організовують вибір між альтернативними варіантами обчислень (операцій)

Структура оператора:

if <умова (вираз)>

then<оператор1>

else<оператор2>

Семантика оператора:

1. обчислюється умова, тобто вираз після службового слова if (результат повинен мати логічний тип, булевий);

2. якщо результат умови – TRUE (істина) то виконується then <оператор1>; якщо результат умови FALSE – то виконується else <оператор2>.

Оператори 1, 2 можуть бути будь-якого типу: умовні, складені, прості.

Умова може бути операцією відношення або логічною.

Операції відношення:= , <>, >, <, >=, <=.

Логічні оператори:

Not – заперечення;

And – логічне "і";

Or – логічне "або";

Xor – "або", що виключає.

Приклад:

Вибір максимального із двох чисел:

if x>y

then max := x
else max := y

!Особливість:! При використанні вкладених умовних операторів може виникнути синтаксична неоднозначність. Тому необхідно пам’ятати: службове слово else зв’язане з найближчим до нього словом if.

Приклад:

var a, b, c: integer;

a:=1; b:=2; c:=3; d:=4;

if a>b then

if c<d then

if c<0 then c:=0

else a:=b;

На екрані виведеться {a = 1}.

if a>b then

if c<d then

if c<0 then c:=0

else

else

else a:=b;

На екрані виведеться {a = 2}.

Оператор вибору: CASE.

Він дозволяє вибрати одну з N можливих операцій.

Синтаксична діаграма:


Список альтернатив:

Приклад:

Program month(input, output);

var mon: integer;

begin

writeln (‘Введіть N місяця’);

readln (mon);

if mon < 1 or mon > 12 then

writeln (‘Нема такого місяця’)

else

case mon of

1: writeln (‘січень‘);

2: writeln (‘лютий‘);

. . .

12: writeln (‘грудень‘);

end

end.

!Особливість:! значення селектора не може мати тип: real; string; частину else можна опускати.

3. Оператори циклу.

Існують три різних оператора:


1. Оператор циклу з параметром

For , To , Do (для , до , виконати )

Семантика:

1. Обчислюється вираз < пз >

2. Присвоювання < пц > : = < пз >

3. Перевірка умови < пц > <= (=>) < кз > , якщо не виконується , то for закінчує роботу ;

4. Виконання < оператора >;

5. Змінна < пц > на + 1 (to) або – 1 (down to)

Приклад: програма введення вільного цілого числа N та обчислення суми цілих чисел від 1 до N.

Program summaInteger;

var i, n, s: integer;

begin

write ( ‘ n = ‘ );

readln ( n ); { ввести n }

S: = 0; { початкове значення суми }

for i: = 1 to n do s : = s + i;

writeln (‘Сума дорівнює ’, S)

end.

. . . . . .

S:=0

if n >=1 then

for:=1 to n do s:= s+i

else

for i:= -1 down to n do s:= s+i

2.Оператор циклу з передумовою.


{поки (виконується), робити }

< умова>- вираз логічного типу; якщо результат умови – TRUE, то виконується оператор, після чого знову перевірка умови. Якщо – FALSE , оператор WHILE закінчує свою роботу.

Приклад: обчислити суму перших 25 цілих чисел.

Program summa;

var sum, n: integer;

begin

sum:=0;

n:=1;

while n<26 do

begin

sum:= sum+ n;

n:=n+1;

end;

writeln (‘Сума перших 25 цілих чисел’, sum)

end.

3.Оператор циклу з постумовою.


Семантика:

1.Виконується оператор циклу;

2.Перевірка умови:

- якщо false => наступне виконання оператора;

- якщо true => оператор циклу не виконується.

Приклад (для попереднього прикладу):

repeat

sum:=sum+n;

n:=n+1 until n>=26

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

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

Розглянемо одномірні масиви, які складаються з елементів символьного типу (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 := ’масив’;

writeln (S1+’ ’+S2); {результат на екрані: Рядковий масив}

end.

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

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

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

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

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

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

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

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

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

Приклад:

Line : string [80];

Line1 : string ;

Line2 : string [255].

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

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

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

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

Формат:

1. type

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

var

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

Або

2. 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);

end.

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

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

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

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’ > ‘1’ TRUE

3) ‘AB’ = ‘A’ FALSE

4) ‘ABC’ > ‘AB’ TRUE

5) ‘12’ <’2’ TRUE

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

Функції:

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.

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

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

5. 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) – процедура перетворює число Х (real або integer) в рядок символів st так, як це робить це робить процедура WRITELN перед виводом. Параметри width і decimals(якщо вони присутні, тобто дужки [ ] показують на необов’язковість цих параметрів) задають формат перетворення: загальну ширину поля для представлення числаХ (width) та кількість символів дрібної частини (decimals), якщо X : REAL.

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

!Особливість!: Недопустимими є пропуски (пробіли) праворуч числа у рядку st!

val (‘123_ _’, x, k) {помилка, x – не змінюється, k=4 };

val (‘_ _123’, x, k) {вірно, x=123, k=0 };

Приклади:

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
155260
рейтинг
icon
3211
работ сдано
icon
1385
отзывов
avatar
Математика
Физика
История
icon
151477
рейтинг
icon
6002
работ сдано
icon
2716
отзывов
avatar
Химия
Экономика
Биология
icon
105824
рейтинг
icon
2100
работ сдано
icon
1312
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
60 180 оценок star star star star star
среднее 4.9 из 5
Синергия
Работа выполнена раньше срока, все замечания учтены. Рекомендую исполнителя👍
star star star star star
волжский политехнический институт
Алеся большая молодец! сделала досрочно, так и придирчивый преподаватель принял с первого ...
star star star star star
Тимирязевская академия
Татьяна,огромное спасибо!Обращаюсь уже не первый раз,все отлично,четко,досрочно!Спа-си-бо!😊
star star star star star

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

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

Сдача своего автомобиля в каршеринг

Реферат, Проектный практикум

Срок сдачи к 24 апр.

1 минуту назад

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

Контрольная, Математика

Срок сдачи к 5 мая

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

Написать отчёт по преддипломной практике по Право и организация соц.обеспечения (колледж). М-05217

Отчет по практике, право социального обеспечения

Срок сдачи к 1 мая

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

Конструкции кабелей и кабельные линии. Типы кабелей

Презентация, Электрооборудование электрических сетей

Срок сдачи к 30 апр.

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

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

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

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

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

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

Press the down arrow key to interact with the calendar and select a date. Press the question mark key to get the keyboard shortcuts for changing dates.

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

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