Функции и операции для работы над строками 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Функции и операции для работы над строками



Основы программирования

Система программирования

Турбо Паскаль

Основы понятия

Алгоритм – это строго детерминированная (определённая, обусловленная) последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью понятных исполнителю команд.

 

Программа – это алгоритм, записанный на языке исполнителя,

(на «понятном» компьютеру языке программирования).

 

Назначение программирования – разработка программ управления компьютером с целью решения различных информационных задач.

Для составления программ существуют разнообразные языки программирования.

 

Язык программирования – это фиксированная система обозначений для описания алгоритмов и структур данных.

Язык программирования образуют 3 составляющие: алфавит, синтаксис, семантика.

1. Алфавит – это фиксированный для данного языка набор основных символов.

2. Синтаксис – это система правил, определяющие допустимые конструкции из букв алфавита.

3. Семантика – это система правил истолкования отдельных языковых конструкций.

Популярные языки программирования Паскаль, Бейсик, Си, Фортран.

 

 

Алфавит языка ПАСКАЛЬ

Алфавит языка ПАСКАЛЬ состоит из букв, цифр и спец символов.

1) буквы: латинские буквы, русские буквы используются в комментариях {нахождение гипотенузы} или в текстовых константах (‘введите х’).

2) цифры: 0 1 2 3 4 5 6 7 8 9.

3) Спец символы:

a) Знаки арифметических операций +, -, *, /.

b) Знаки логических операций >, <, =, >=, <=, <>.

c) Разделители;,:. () [ ] { } ’ ^

d) Служебные слова – зарезервированные слова, которым системой программирования предписан определённый смысл (операторы, процедуры).

Служебные слова:

And И For Для Program Программа    
Array Массив Function функция Repeat Повторяй    
Begin Начало Goto Переход String Строка    
Case В случае If Если Then Тогда    
Const Константа In Ин To До    
Div Целочис.дилен Label Метка Type Тип    
Do делай Mod Остат от делен Until До тех пор    
Downto В обрат. поряд Not Отрицание Var раздел описан    
Else Иначе Of Типа while пока    
end окончание Or или Xor отрицание    
File Файл Procedure Процедура   и др.    

 

Для создания и использования на компьютере программы, написанной на языке программирования, используют систему программирования.

Система программирования – это программное обеспечение компьютера, предназначенное для разработки, отладки и исполнения программ, записанных на определённом языке программирования.

Популярные системы программирования: Турбо Паскаль, Q Basic, СИ++, Delphi.

Компьютер – исполнитель, работает с определёнными данными, по определённой системе команд.

Любые данные (константы, переменные, значения функций) характеризуются своими типами.

 

Существуют три основных типа данных:

1. числовой – целочисленный, вещественный.

2. символьный – строковый и литерный.

3. логический.

 

Тип данных определяет:

1. формат представления данных в памяти компьютера.

2. множество допустимых значений, которые может принимать принадлежащая к выбранному типу переменная или константа.

3. множество допустимых операций, применяемых к этому типу.

 

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

Для этого необходимо объявление типа переменных используемых в программе иначе «Паскаль» откажется выполнять программу, выведет на экран монитора ошибку в случае обнаружения не описанной переменной.

Основные типы данных:

I Числовые типы данных

Целый тип данных:

Integer (интеджер) – целый.

- целые числа от -32768 до 32767

- в памяти компьютера занимает 2 байта

- операции, используемые для работы с целыми переменными:

+; -; *;

div – деление нацело;

mod – нахождение остатка от деления нацело.

- функции, дающие вещественный результат:

Abs(x) – Абсолютная величина Х

Sqr(x) – Возведение Х в квадрат

Trunc(x) – Выделение целой части числа Х

Round(x) – Округление Х до целого числа

(Trunc(x) и Round(x) преобразуют тип данных из Real в Integer)

Succ(x) – Следующее за Х число

Pred(x) – Предыдущее перед Х число

Int(x) – Выделяет целую часть вещественного числа Х

Random(x) – Случайное число от 0 до Х-1 (Если функция не содержит аргумента, то генерируется случайное число от 0 до 1).

Randomize; - Оператор, позволяющий генерировать новую последовательность случайных чисел при новом запуске программы на выполнение. Обеспечивает не совпадение последовательностей случайных чисел, генерируемых функцией random.

Вещественный тип данных:

Real (риэл) – вещественный.

- числа от 2,9 Е-39 до1,7 Е+38

- в памяти компьютера занимает 6 байта

- операции используемые для работы с переменными вещественного типа: +; -; *; /;

- функции, дающие целый результат:

sin(x) – Синус числа Х

cos(x) – Косинус числа Х

sin(x)/cos(x) – Тангенс числа Х

arctan(x) – Арктангенс числа Х

ln(x) – Натуральный логарифм числа Х

exp(x) – Экспонента числа Х

sqrt(x) – Корень квадратный числа Х

frac(x) – Выделяет дробную часть числа Х

II Строковые переменные

Чтобы компьютер был не только вычислительной машиной, но и «понимал человеческую речь», - работал в диалоговом режиме, решал логические задачи, используются строковые переменные.

 

Строковый тип данных

STRING (стринг) – строка

 

Описание строковых переменных

VAR a, b: string; или

VAR stroka1, stroka2: string [20];

 

Значением строковой переменной – произвольная цепочка символов, которые могут выводиться на экран монитора максимальной длиной до 255 символов.

Значение строки заключается в апострофы (’ ’) – одинарные кавычки.

В квадратных скобках [20] можно указывается максимальное количество символов возможных в строке описанной переменной, это делается с целью экономии ячеек памяти (один символ – одна ячейка) в противном случае под строковую переменную будет отведено 255 ячеек при любой длине строковой переменной.

В программе, текст строковой переменной должен браться в апострофы (кавычки), а в памяти компьютера текст хранится без кавычек и на экран переменная выводится без кавычек.

Строковую переменную можно задавать и оператором присваивания a:=’добро пожаловать’ и оператором ввода READLN (а) строка символов вводится с клавиатуры, после чего необходимо нажать клавишу Enter.

 

Функции и операции для работы над строками

+ соединяет две строки в одну

пример: s1:=’мото’;

s2:=’роллер’;

s3:=s1+s2;

результат: s3=’мотороллер’

Length определяет фактическую длину текстовой строки – количество символов в строке

Пример: s1:=’мотороллер’;

I:= Length(s1);

результат: I = 10

UpCase преобразовывает символ из строчного в прописной

Copy копирует фрагмент строки из одной переменной в другую

Пример: s1:=’астроном’;

s2:= Copy(s1, 3,4);

(3 – с третьей позиции 4 – копировать четыре символа)

результат: s2= ’трон’

Pos осуществляет поиск позиции, начиная с которой в строке определённого фрагмента подстрока входит в строку

Пример: s1:=’мотороллер’;

К:= POS(’рол’,s1);

результат: К = 5

если вхождения нет, К=0.

Insert вставляет фрагмент из одной строки в другую

Пример: s1:=’рука’;

s2:=’баш’;

Insert (s2, s1, 3)

(в строку s1 вставляется строка s2, начиная с 3 символа)

результат: s1= ’рубашка’

Delete удаляет фрагмент из строки

Пример: s1:=’коробочка’;

s2:= Delete(s1, 4,2);

(4 – с третьей позиции 2 – удалить два символа)

результат: s2= ’корочка’

Str преобразовывает число в строку

Пример: х:= 2.73284;

Str(x:4:2, s1);

(:4:2 – определение формата: чисел4 – общее количество символов включая десятичную точку 2 – два символа после запятой)

результат: x = ’2.73’

Val преобразовывает строку в число

Пример: х:= ‘2.73’;

Val(x:4:2, s1);

результат: s1 = 2.73

 

III Символьные переменные

Символьный тип данных

CHAR (кэр) – символ

 

Описание символьных переменных

VAR a, b: CHAR;

 

Переменные символьного типа могут принимать значения любых символов.

Значениями символьной переменной являются символы из таблицы кодировки ASCI I

Используя переменные символьного типа возможно записать а:= ’х’; b:= ’+’ с:= ’ж’, что значит присвоить переменной а значение символа х, переменной b присвоить значение символа +, а переменной с значение символа ж. Но нельзя записывать а:=’ мир ’ так как здесь не один символ, а пять.

Аналогично и с оператором READLN.

При вводе нескольких символов одним оператором RЕADLN все символы набираются на клавиатуре подряд, без пробелов, (в отличии от ввода числовых данных) после ввода последнего символа нажимается клавиша Enter. Таким образом, ввод трёх символов одним оператором Readln не отличается от ввода одной трёх символьной строки, отличие определяется в описании переменных.

 

IV Логические переменные

 

логический тип данных

BOOLEAN (болеан) – символ

 

Описание логических переменных

VAR c: BOOLEAN;

 

Использование логического типа BOOLEAN указывает, что переменная может принимать всего два значения TRUE – истина и FALSE – ложь, причём FALSE < TRUE.

В состав логических выражений кроме логических переменных могут входить также числа, числовые или строковые переменные, или выражения. Которые сравниваются между собой с использованием операций сравнения (>, <, =, >=, <=, <>).

Над элементами логических выражений могут производиться логические операции.

Логические операции

NOT логическое отрицание “НЕ”

AND логическое умножение “И”

OR логическое сложение “ИЛИ”

XOR логическое исключающее “ИСКЛЮЧАЮЩИЙ”

Логические функции

Переменные

Переменные (имя переменной) – в программировании, как и в математике, обозначаются символическими именами называемые – идентификаторами (идентифицировать-обозначать). Имя каждой переменной уникально и не может меняться в процессе выполнения программы.

Именем переменной в Паскале может служить любая последовательность латинских букв, цифр и знака подчёркивания, не начинающаяся с цифры, содержащая до 255 символов, кроме пробела, знаков препинания, других символов.

Правильная запись: Неправильная запись:

A x velisch zzz polnaja_summa Ж 2as polhajasumma er&tu

 

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

Значениями переменных числовых типов (Real, Integer, Long Int) – являются числа.

Значениями переменных символьного типа (Char, String) – являются последовательность символов.

Значениями переменных логических типов (Boolean) – True (истина) или False (ложь).

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

Различные типы данных требуют для своего хранения в оперативной памяти компьютера различное количество ячеек (байтов): числовые 1-8 байт; логические 1 байт; строковые 1 байт на каждый символ.

 

Для объявления типа переменной используется оператор (служебное слово) определения переменной VAR (вар) – переменная.

 

Синтаксис оператора описания переменных:

VAR (имя переменной): (тип переменной);

 

С помощью одного оператора можно описать сразу несколько переменных.

(пример): VAR x, y: Integer;

shastnoe: Real;

оtvet: String;

Константы.

Переменные, значения которых не меняются в процессе выполнения программы, называются – константы

Синтаксис объявления констант:

CONST (имя константы) = (значение константы);

 

(пример):

CONST Pi = 3.14159;

 

Арифметические выражения.

Из переменных можно образовывать арифметические выражения.

В состав арифметических выражений могут входить кроме переменных, константы и числа.

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

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

 

 

Правила записи арифметических выражений на языке ПАСКАЛЬ:

1) Выражение должно быть записано в виде линейной цепочки символов. (2*х)/(y+3),а не

2) Нельзя опускать знаки операций. (4*х, а не 4х).

Раздел операторов

 

Для задания действий над данными служит оператор (команда).

Набор допустимых операторов и их синтаксис чётко определён.

Не важно, какими буквами: заглавными или строчными и каким шрифтом записаны названия служебных слов и операторов

Пример: BEGIN или begin или bEgIn.

Оператор присваивания

Переменная может получить или изменить значение с помощью оператора присваивания, то есть оператор присваивает переменной значение или выражение.

 

Синтаксис оператора присваивания

<имя переменной>: = <значение или выражение>

пример: х:= 6; z:= x+y; x:= x+y;

Слева может стоять только переменная, не число и не выражение. Оператор сначала смотрит или вычисляет, какое значение имеет правая часть, а затем присваивает это значение переменной.

Если правая часть содержит переменную, которой не присвоено значение, то ПАСКАЛЬ может подставить любое значение вместо переменной.

Оператор ввода данных

Ввод данных, присвоение переменным значений, выполняется с помощью операторов READ и READLN.

Синтаксис оператора ввода

READLN (рид’лайн) – читай строку

READ (Рид) – читай.

 

READLN (переменная1, переменная2);

 

Пример: READLN (dlinna, visota, schirina);

Вводимые значения заключаются в круглые скобки.

Оператор READLN или оператор READ приказывают компьютеру остановится и ждать, когда программист введёт с клавиатуры данные, после чего продолжить работу.

Если вводятся несколько данных, то они вводятся в той последовательности, в которой записаны переменные, которым присваиваются их значения, и разделяются знаком пробела. ПАСКАЛЬ воспринимает нажатие пробела как сигнал программиста о том, что закончен набор на клавиатуре одного числа и сейчас начнётся набор другого. После набора на клавиатуре последнего числа необходимо нажать клавишу ENTER в знак того, что ввод чисел для данного оператора закончен, и компьютер может продолжать работу. Направляет числа в память, в соответствующие ячейки и переходит к следующему оператору.

В принципе оператор присваивания (:=) и оператор ввода (READLN и READ) делают одно и тоже, присваивают переменным значения. Однако программа с использованием оператора ввода (READLN и READ) гораздо универсальнее, если оператор присваивания (:=) решает задачу с конкретными данными (числами), то оператор ввода (READLN и READ) решает задачу с любыми значениями данных (чисел) введённых с клавиатуры.

Оператор READLN может использоваться и без скобок READLN;

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

НАПРИМЕР: выполнив программу, ПАСКАЛЬ торопится погасить экран с результатами решения задачи. Поэтому результат не возможно разглядеть. Оператор READLN поставленный после оператора вывода WRITELN, выводящего результат на экран, задаёт паузу. Во время этой паузы экран не гаснет, так как программа ещё не завершена до конца (END.) и можно посмотреть результаты. После этого нажатие клавиши ENTER позволяет компьютеру продолжить выполнение программы, то есть закончить её командой END..

Оператор вывода данных

 

Вывод данных на экран выполняется с помощью операторов вывода WRITE и WRITELN.

Синтаксис оператора вывода

 

WRITELN (райт’лайн) – пиши строку

WRITE (райт) – пиши.

 

1) WRITELN (результат1, результат2); или

2) WRITELN (выражение1, выражение2);

Выводимые значения заключаются в круглые скобки.

 

Пример:

1) WRITELN (ploschad, objm);

программа выведет на экран значение переменных 34 18

2) WRITELN (dlina*schirina, ploschad*visota);

программа подставит значения переменных, произведёт вычисления и выведет на экран результат 34 18

 

Правила записи и выполнения операторов WRITELN и WRITE одинаковые с одним исключением, после выполнения оператора WRITELN следующий оператор WRITELN или WRITE печатает свою информацию с начала следующей строки (при использовании WRITELN курсор переводится на новую строку), а после выполнения оператора WRITE продолжает печатать в той же строке.

Пример: WRITE(5); WRITE(8); на экране будет 58

 

WRITELN(5); WRITELN(8); на экране будет 5

Вывод чисел типа REAL

Переменные, описанные как REAL, ПАСКАЛЬ выводит на экран в экспоненциальном формате (число 72 будет выведено как 7.20000000000000Е+0001).

Чтобы ПАСКАЛЬ выводил вещественные числа типа REAL в обычном виде необходимо записывать WRITELN (ploschad:10:3), ане WRITELN (ploschad).

Число 10 значит, что всё изображение числа не должно занимать больше 10 символов, включая: целую часть, дробную часть, знак числа, и десятичную точку, число 3 означает три знака после десятичной точки. Целая часть числа будет составлять 10 – (3 знака после запятой) – (1 знак числа) – (1 десятичная точка) = 5 знаков. Если целая часть меньше 5 знаков, то пробелы отображаться не будут, если больше 5 знаков, то целая часть числа всё равно будет печататься полностью.

 

 

Порядок составления программы:

Интерфейс пользователя

Некоторые приёмы, делающие программу более наглядной, простой для понимания и для работы с ней.

Когда программа запускается на выполнение, она делает паузу на операторе ввода и ждёт вводимых данных. Мы видим пустой экран монитора, на котором нет никаких обозначений, что от нас ждёт компьютер или какие данные мы должны ввести. То есть трудно догадаться, особенно с течением времени после создания программы или использованием её другим пользователем, что компьютер чего-то ждёт. Это не очень удобно, хорошо было бы, если на экране выводилось указание дальнейших действий. Это касается и вывода результатов. На пустом экране выводятся числа, не всегда понятно их значение.

Всё это означает, что у нашей программы неудобный интерфейс пользователя, то есть пользователю, применяющему нашу программу не удобно с ней работать.

Чтобы интерфейс стал более удобным, необходимо ввести новые элементы.

 

1) Перед выводом данных, вывести на экран указания к вводу данных, в форме текстовых констант (текст комментария заключённый в апострофы (кавычки)).

Синтаксис

WRITELN(‘комментарий – текстовая константа’);

Пример:

WRITELN (‘введите значение длинны, ширины и высоты’);

На экране во время паузы для ввода данных появится надпись: введите значение длинны, ширины и высоты.

 

2) Подобно выводятся пояснения к выводимому результату.

Синтаксис

WRITELN(‘комментарий ’,переменная, ‘комментарий ’,переменная);

Пример:

WRITELN (‘площадь фигуры равна’, ploschad, ’объём фигуры равен’, objm:10:3);

На экране будет выведен результат виде:

БЛОК-СХЕМА

 
 

 

 


BEGI

READLN (ввод данных);

 

ОПЕРАТОР 1;

ОПЕРАТОР 2;

ОПЕРАТОР 3;

ОПЕРАТОР n;

 

WRITELN (вывод результата);

END.


Пример:

Найти гипотенузу и площадь прямоугольного треугольника, если известны катеты. (Значения катетов вводятся с клавиатуры.)

PROGRAM poisk gipotenuzi I ploschadi;

VAR katet_1, katet_2, gipotenuza, ploschad: REAL;

 

BEGIN

WRITELN (‘введите значение катетов’);

READLN (katet_1, katet_2);

gipotenuza:= sqrt (sqr (katet_1) + sqr (katet_2));

ploschad:= (katet_1 * katet_2) / 2;

 

WRITELN (‘гипотенуза равна’,gipotenuza:5:2, ’площадь треугольника равна’,ploschad:5:2);

END.

Оператор «ветвление»

В алгоритмическую структуру «ветвление» в отличие от линейного алгоритма входит условие. В зависимости от выполнения или не выполнения, которого реализуется та или иная последовательность команд (операторов). Условием называется высказывание, которое может быть либо истинным, либо ложным.

Условие, записанное на формальном языке – называется логическим выражением. Логические выражения могут быть простыми и сложными. Сложное – это объединение простых условий по средствам логических операций (и, или, не).

 

Под ветвлением подразумевается ситуация, когда на основании проверки некоторых условий в программе реализуется один из нескольких заранее предопределённых путей решения задачи.

 

Синтаксис оператора.

IF <условие> THEN <оператор1> ELSE <оператор2>;

 

IF (иф) – если

THEN (зэн) – то

ELSE (эльзе) – иначе

 

После THEN и ELSE – стоять может только один оператор, (любой оператор ПАСКАЛЯ).

Перед ELSE точку с запятой ставить запрещено.

 

Под условием будем понимать арифметические выражения, соединённые знаком сравнения или несколько выражений сравнения, соединенных знаками логических операций AND (и), OR (или), NOT (не). Условия, к которым применяются логические операции, заключаются в круглые скобки, пример: IF (a>b) and (a<c).

Если условие справедливо, то результатом будет логическая величина «истина» и выполнение программы продолжается по ветви «да» (по пути THEN (то)), в противном случае логическое выражение примет значение «ложь» и выполнение программы пойдёт по ветви «нет» (по пути ELSE (иначе)).

 


БЛОК СХЕМА


ЯЗЫК ПРОГРАММИРОВАНИЯ

ПАСКАЛЬ

 

PROGRAM <название программы>;

VAR <описание переменных>;

BEGIN

IF <условие>

 

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

 

ELSE <оператор 2>;

END.


Пример:

Найти большее из двух чисел. (Числа вводятся с клавиатуры).


PROGRAM bolschee iz dvug;

VAR a,b: REAL;

BEGIN

WRITELN (‘ведите 2 числа’); {пояснительная надпись}

READLN (a,b);

 

IF a>b {определение большего числа

THEN WRITELN(a) и вывод результата на экран}

ELSE WRITELN(b);

 

READLN; {установка паузы для просмотра результата}

END.

 

 


 

 

БЛОК СХЕМА

 
 


ЯЗЫК ПРОГРАММИРОВАНИЯ

ПАСКАЛЬ

 

PROGRAM <название программы>;

VAR <описание переменных>;

BEGIN

< оператор>

 

IF <условие>

 

THEN <оператор >

 

END.


Пример:

Введенное с клавиатуры число вывести на экран, если оно положительное и вывести его абсолютную величину (ABS) если число отрицательное.

PROGRAM bolschee iz dvug;

VAR a: REAL;

BEGIN

WRITELN (‘ведите число’); {пояснительная надпись}

READLN (a);

 

IF a<0{определение знака числа}

THEN a:= ABS (a); { значение числа берётся по модулю}

WRITELN (a); { вывод результата на экран}

 

READLN; {установка паузы для просмотра результата}

END.

Существует неудобство от того, что после THEN и ELSE можно писать только один оператор.

В ПАСКАЛЕ есть средство превратить последовательность записанных друг за другом операторов формально в один оператор. Для этого последовательность операторов заключается между словами begin и end. Получившаяся конструкция называется – составным оператором.

Составной оператор используется в тех местах программы, в которые разрешёно использование только одного оператора.

Слова, составляющие пару THEN и ELSE, BEGIN и END записываются друг под другом.

 

 

Если выбор необходимо сделать из 3 вариантов. Для этого используется схема вложенного ветвления. Где после THEN и ELSE может стоять ещё одно ветвление.

 


 

БЛОК СХЕМА

 

 

 

 


ЯЗЫК ПРОГРАММИРОВАНИЯ

ПАСКАЛЬ

 

PROGRAM <название программы>;

VAR <описание переменных>;

BEGIN

IF <условие>

THEN

IF <условие>;

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

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

 

ELSE

IF <условие>

THEN <оператор 3>

ELSE <оператор 4>;

END.


Пример:

Найти большее из трёх чисел. (Числа вводятся с клавиатуры).

PROGRAM bolschee_iz_3;

VAR a,b,c:REAL;

BEGIN

IF a>b THEN

IF a>c

THEN WRITELN (a)

ELSE WRITELN (c)

ELSE

IF b>c

THEN WRITELN (b)

ELSE WRITELN (c);

END.


 

Оператор «выбор».

Оператор «выбор» применяется для реализации ветвления со многими вариантами серий команд.

В структуру выбор в ходит несколько условий, проверка которых осуществляется в строгой последовательности их записи в команде выбора. При истинности одного из условий выполняется соответствующая последовательность команд.

 

Синтаксис оператора

CASE < переменная > OF { в случае, если переменная равна… }

<значение переменной>: < оператор 1>;

<значение переменной>: < оператор 2>;

<значение переменной>: < оператор 3>;

<значение переменной>: < оператор n>;

ELSE <оператор n+1>;

END { конец оператора CASE }

CASE (кейс) – случай {в случае если переменная равна…}

OF (эв) – предлог

 

 


БЛОК СХЕМА

 
 

 

 


BEGIN

RЕADLN (ввод данных)

CASE переменная OF

Значение переменной: оператор 1;

Значение переменной: оператор 2;

Значение переменной: оператор 3;

ELSE оператор 4;

END;

WRITELN (вывод результата);

END.


 

Пример:

По введённому номеру ноты вывести на экран её словесное название.

PROGRAM notnaj azbuka;

VAR nomer_noti: INTEGER;

BEGIN

WRITELN (‘введите номер ноты’);

RЕADLN (nomer_noti);

CASE nomer_noti OF

1: WRITELN (‘ДО’);

2: WRITELN (‘РЕ’);

3: WRITELN (‘МИ’);

4: WRITELN (‘ФА’);

5: WRITELN (‘СОЛЬ’);

6: WRITELN (‘ЛЯ’);

7: WRITELN (‘СИ’)

ELSE WRITELN (‘ТАКОЙ НОТЫ НЕТ’);

END;

END.

В процессе исполнения оператора CASE компьютер по очереди сравнивает значение переменной со всеми значениями, перечисленными перед двоеточиями. Встретив совпадающее значение, он выполняет оператор, стоящий после двоеточия. На этом исполнение оператора CASE завершается. Если же совпадающего значения так и не нашлось, то выполняется оператор стоящий после слова ELSE. После ELSE может стоять цепочка операторов записанных через точку с запятой.

Если оператор CASE не найдёт совпадения с переменной, не выберет ни один из своих вариантов и при отсутствии ELSE, то он завершает свою работу, так ничего и не сделав.

 

У оператора CASE есть ограничения – переменная стоящая после слова CАSE должна быть порядкового типа (Integer, Long Int, Char).

Задача. По номеру недели вывести его словесное наименование.

program nedela;

uses crt;

var

n:char;

begin

ClrSCR;

delay(2000);

writeln('1-day week');

writeln('2-day week');

writeln('3-day week');

writeln('4-day week');

writeln('5-day week');

writeln('6-day week');

writeln('7-day week');

n:=readkey;

case n of

'1':begin

writeln('monday');

end;

'2':begin

writeln('tuesday');

end;

'3':begin

writeln('wednesday');

end;

'4':begin

writeln('thursday');

end;

'5':begin

writeln('friday');

end;

'6':begin

writeln('saturday');

end;

'7':begin

writeln('sunday');

end;

end;

readln

end.

Задача. Определить в какой четверти находится точка.

program chetvert;

uses crt;

var

n:char;

begin

ClrSCR;

writeln('1-pervai chetvert');

writeln('2-vtorai chetvert');

writeln('3-tretai chetvert');

writeln('4-chetvertai chetvert');

n:=readkey;

case n of

'1':begin

writeln('x>0 y>0');

end;

'2':begin

writeln('x<0 y>0');

end;

'3':begin

writeln('x<0 y<0');

end;

'4':begin

writeln('x>0 y<0');

end;

end;

readln

 

end.

Вариант использования «обратного» счётчика DOWNTO.

FOR < имя переменной >:= < выражен1 > DOWNTO < выражен2 > DO

< оператор >;

DOWNTO (даунту) – вниз до

{для I изменяющегося от 50 до 1 делай…(операторы)}

 


БЛОК СХЕМА

 
 

 

 


BEGIN

RЕADLN (ввод данных);

 

FOR i:= (нач.зн) TO (кон.зн) DO

ОПЕРАТОР 1;

ОПЕРАТОР 2;

ОПЕРАТОР n;

WRITELN (вывод результата);

END.


 

 

В операторе FOR обязательно указываются параметры:

· Имя переменной – в которой хранится число повторений цикла (счётчик цикла – порядковая перечисляемая переменная).

· Начальное значение или Выражение 1 – начальное значение для переменной цикла (счётчика), которое она получает при первом выполнении цикла.

· Конечное значение или Выражение 2 – некоторое конечное значение (для переменной цикла) достигнув которое повторение цикла прекращается (условие завершение цикла).

 

В качестве переменной цикла должна выступать порядковая (перечисляемая) переменная типа INTEGER. Тип REAL не допустим.

Пример: FOR j:= 1 TO 15 DO k:=k+ 1;

В начале выполнения цикла значение переменной счётчик (i) устанавливается равным начальному значению. При каждом проходе цикла переменная счётчик увеличивается на величину шага. Если она достигает величины, большей конечного значения, то цикл завершается и выполняется следующая за ним команда.

Выражение 1 и выражение 2 – произвольные выражения порядкового (целого) типа.

Пример: FOR j:= a+b TO 2*S DO k:=k+1;

Вычисляется выражение1 и переменной цикла i присваивается его значение. Затем вычисляется выражение 2 и сравнивается с i. Если i> выражения 2, то оператор FOR завершает работу, так не чего и не сделав.

 

В противном случае выполняется оператор (составной оператор) стоящий после DO. После выполнения этого оператора значение i увеличивается на единицу и снова сравнивается с выражением 2.

Если i > выражения 2 то оператор FOR завершает работу, иначе снова выполняется оператор стоящий после DO, снова значение i увеличивается на единицу и так далее.

После DO может стоять только один оператор, по этому при необходимости используют составной оператор, заключённый в операторные скобки BEGIN и END.

Произвольные значения, хранящиеся изначально в переменных должны быть ”уничтожены” – обнулены. Поэтому мы присваиваем переменной обозначающей сумму значение ноль (summa:=0), а переменной обозначающей произведение значение единицы (proizvidenie:=1). Иначе в операции сложения при выполнении цикла будет участвовать произвольное значение переменной summa (proizvedenie) т.е. любое произвольное число выбранное ПАСКАЛЕМ, а в повторном выполнении значение предыдущего сеанса работы.


Пример:

Написать 20 раз слово ИНФОРМАТИКА.

 

PROGRAM kopirovanie;

VAR i: INTEGER;

BEGIN

FOR i:= 1 TO 20 DO

WRITELN (‘ИНФОРМАТИКА’);

END.

Пример:

Найти сумму натуральных чисел от 1 до 20.

PROGRAM summa_schisel;

VAR i, summa: INTEGER;

BEGIN

summa = 0;

FOR i:= 1 TO 20 DO

summa := summa + i;

WRITELN (‘сумма 20 чисел равна’, summa);

END.


 

Циклы с пред и пост условием:

В ситуации, когда количество повторений цикла заранее не определёно, а определяется по ходу реализации циклического процесса, используются операторы с постусловием или предусловием.

 

Цикл с постусловием (оператор REPEAT):

 

Синтаксис конструкции цикл с постусловием.

REPEAT <оператор 1; оператор 2;... оператор n;> UNTIL <условие>

REPEAT (рипит) - повторяй.

UNTIL (ан’тил) - до тех пор, пока не станет истинным условие.

 

Принцип работы оператора REPEAT - повторяй выполнение операторов, стоящих между словами REPEAT и UNTIL до тех пор, пока не станет истинным условие.

С начала компьютер по очереди выполняет операторы, стоящие после слова REPEAT, пока не дойдёт до слова UNTIL. После чего проверяет истинность условия, стоящего после UNTIL. Если условие ложно, то компьютер снова по очереди выполняет эти операторы и снова проверяет истинность условия и так далее.

Если условие ок



Поделиться:


Последнее изменение этой страницы: 2016-04-08; просмотров: 413; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 23.22.236.90 (0.504 с.)