русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Строковые выражения


Дата добавления: 2014-02-04; просмотров: 892; Нарушение авторских прав


Формат

Формат

Примеры решения задач

1. Создать множество из элементов типа Char, выход из фазы создания осуществить при вводе значения Z. Распечатать все элементы созданного множества в алфавитном порядке.

Var

S: Set of Char;

N: Char;

Begin

S:=[]; {пустое множество}

WriteLn(‘Введите элементы множества’);

Readln(N); {считывание первого элемента}

While True Do Begin

S:=S+[N]; {внесение значения элемента в множество}

ReadLn(N);

If N = ‘Z’ Then Exit

End;

{Вывод элементов множества в алфавитном порядке}

For N:=’A’ to ‘Z’ Do

If N in S Then WriteLn(N);

END.

3. Дано натуральное число n. Составить программу вывода цифр, не входящих в десятичную запись числа n (в порядке возрастания).

Type Mn=Set Of 0..9;

Var S : Mn;

N: LongInt;

I : Integer;

Begin

WriteLn(‘Ведите число’);

ReadLn(N);

S:=[0..9];

While N<>0 Do Begin

S:=S-[n mod 10]; {Исключаем цифру}

N:=N Div 10;

End;

For I:=0 To 9 Do

If I In S Then Write (I:2);

WriteLn;

End.

3. Смоделировать игру с машиной. Задумайте целое число от 0 до 15. в ЭВМ вводятся номера групп, в которых находится задуманное число. Например, я задумала число 5. в ЭВМ вводится 1, 3. компьютер выводит число 5.

Группы

0,1,2,3,4,5,6,7 0,1,2,3,8,9,10,11 0,1,4,5,8,9,12,13 0,2,4,6,8,10,12,14

1 способ

Type S=set of 0..15;

A=array[1..4] of S;

Const

X: A=([0..7],[0..3,8..11],[0,1,4,5,8,9,12,13],[0,2,4, 6,8,10,12,14]);

Var

R:S {Множество типа S}

K,I: Byte;

B: array[1..4] of Byte;

BEGIN

R:=[0..15]; {R- множество, в которое входит задуманное число}

For I:==1 To 4 Do Begin

Write(‘Введите 0, если не принадлежит ’, I,’ –ой группе, и 1, если принадлежит:’);



ReadLn(B[I]);

End;

For I;=1 To 4 Do

If B[I]=1 Then R:=R*X[I];

For I;=1 To 4 Do

If B[I]<>1 Then R:=R-X[I];

I:=0;

While I<=15 Do Begin

If I in R Then Begin WriteLn(‘Ваше число=’;I); Halt End;

I=I+1;

End;

END.

2 способ (с переводом в 2 с/c)

Var

A,I: Integer;

X: array[1..4] of Integer;

Y,Y1: Integer

BEGIN

For I;=1 To 4 Do

X[I]:=0;

For I;=1 To 4 Do Begin

WriteLn(‘Ведите номер группы’);

ReadLn(A);

X[A]:=1;

End;

Y1:=X[4]+2*(X[3}+2*(X[2]+2*X[1]));

Y:=15-Y1;

WriteLn(‘Ваше число= ’,Y);

END.

Примеры для самостоятельного решения:

1. Найти общие цифры в записи m чисел.

2. Найти простые цифры в интервале от 2 до n.

3. Вывести в алфавитном порядке элементы множества, составленного из произвольных букв от ‘A’…’Z’

 

8. Строки

Строка – последовательность символов. При использовании в выражениях строка заключается в апострофы. Количество символов в строке может изменяться от 0 до 255.

Определение строкового типа устанавливает максимальное количество символов, которое может содержать строка.

TYPE

<имя типа>=String[максимальная длина строки];

VAR

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

Переменную String можно задать и без описания типа.

VAR

<идентификатор,…>:string[максимальная длина строки];

Пример

CONST

Adres=’ул. Фестивальная 4’;

TYPE

Flot=String[125];

VAR

Fstr: Flot;

St1: String[34];

St2, St3: string[50];

Nazv: String[325]; {ошибка, длина>255}

Nay: String; {ошибка, не указана длина}

Для определения объема памяти в байтах, требуемой для размещения строки, к значению ее максимальной длины прибавляется 1. например, для размещения в памяти переменных Fstr, St1, St2, St3 требуется соответственно 126, 35, 51, 51 байт. Дополнительный байт расположен в самом начале строки ( имеет нулевой номер) и содержит значение текущей длины строки.

Выражения, в которых операндами служат строковые данные, называются строковыми выражениями.

Над строковыми данными допустимы операции сцепления и операции отношения.

Операции сцепления (+) применяются для сцепления нескольких строк в одну результирующую строку.

Выражение Результат
‘Группа ’+’2В’ ‘Группа 2В’
‘А’+’Б’+’В’ ‘АБВ’

Длина результирующей строки не должна превышать 255.

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

Результат выполнения операций отношения имеет булевский тип (True, False)

Выражение Результат
‘COSM1’>’COSM2’ True
‘akkord’>’AKKORD’ True

Если строки имеют различную длину, то считается, что более короткая строка меньше, чем более длинная.

Выражение Результат
‘Принтер ’>’Принтер’ True
‘Река’=’Река’ True

Для присваивания строковой переменной результата строкового выражения используется оператор присваивания. Например:

Str1:=’Группа учащихся’;

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

Описание А Выражение Значение А
A: String[6]; A:=’Группа 2В’ ‘Группа’
A: String[8]; A:=’Группа 2В’ ‘Группа 2В’

 

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

Пример:

VAR

Lit: Char;

St1: String[12];

St2: String[30];

Begin

Lit:=’Z’;

Str1:=’Отдел’;

Str2:=Str1+Lit;

….

К отдельным символам строки можно обратиться по номеру (индексу) данного символа в строке. Индекс записывается в квадратные скобки []. Например:

Str1[2] – доступ к букве “т”

Str1[0] – находится длина текущей длины строки.



<== предыдущая лекция | следующая лекция ==>
Операции над множествами | Примеры решения задач


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.234 сек.