русс | укр

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

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

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

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


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

Краткое изложение теоретического материала


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


Символьный тип Char. Значением является один символ. Все символы упорядочены. Порядковый номер символа – его код. К данным символьного типа применимы операции отношения (сравниваются коды символов). Отображаемыми (на экране) являются символы с кодами от 32 до 255. Символы с кодами от 0 до 31 – управляющие. Русские и латинские буквы упорядочены по алфавиту.

Функции преобразования:

· Chr(X) – возвращает символ с кодом Х;

· Ord(C) – возвращает код (порядковый номер) символа С.

Прочие стандартные функции:

· Pred(C) – возвращает символ, предшествующий символу С;

· Succ(C) – возвращает символ, следующий за символом С.

Строковый тип String. Строка – произвольная последовательность символов. Длина строки – количество символов в ней. Пустая строка не содержит ни одного символа. Ее длина равна нулю.

Стандартный паскаль допускает использование строк длиной до 255 символов - это тип String.

В Delphi для работы со строками есть типы:

- ShotString, аналогичный типу String в стандартном паскале;

- String для обработки строк сколь угодно большой длины, ограниченной лишь размерами памяти (такие строки размещаются в динамической памяти).

Строковая константа заключается в апострофы: Мама мыла раму’.

Описание строковой переменной:

Var <имя переменной> : String [N];

где N – максимальная длина строки. Если она не указана, максимальной длиной строки считается число 255 для коротких строк (или любая длина для длинных строк).

Например:

Var Family : String [20];

Name : String [10];

P : String;

Номер символа в строке называется еще индексом. Для обращения к отдельному символу строки его индекс указывается после имени строки в квадратных скобках. Например, P[3] – 3-й символ строки P; Name[K] – K-й символ строки Name.

К данным строкового типа применима операция конкатенации (обозначается символом «+»). Например, после выполнения последовательности команд:



A:= ’тепло’;

B:= ’ход’;

C:= A+B;

в переменной С будет записана строка ‘теплоход’.

К данным строкового типа применимы операции отношения, причем строки сравниваются посимвольно, с учетом порядковых номеров символов в алфавите. Например, ‘мама’ < ’папа’, ‘машина’>’мама’.

Стандартные функции:

· Length (S) – возвращает длину строки S.

· Pos (P, S) – возвращает позицию первого вхождения строки P в строку S. Например, после выполнения последовательности команд:

A := ’крокодил’;

B := ’код’;

K := Pos (B, A);

N := Pos (‘о’, A);

M := Pos (‘a’, A);

переменные К, N, M примут следующие значения: K=4, N=3, M=0.

· Copy(S, K, N) – выделяет (копирует) часть строки S длиной N начиная с К-го символа. Например, после выполнения последовательности команд:

A := ’крокодил’;

B := Copy (A, 2, 3);

значением переменной В будет слово ‘рок’.

Стандартные процедуры:

· Delete (S, K, N) – удаляет из строки S N символов, начиная с K-го. Например, после выполнения последовательности команд:

A := ’корзина’;

Delete (A, 4, 3);

значением переменной A будет слово ‘кора’.

· Insert (P, S, K) – вставляет строку P в строку S начиная с позиции с номером K. Например, после выполнения последовательности команд:

A := ’кот’;

Insert (‘р’, A, 2);

значением переменной A будет слово ‘крот’.

· Val (S, N, K) – преобразует строку S в число N; K – номер позиции в строке S, где встретился символ, недопустимый в записи числа.

· Str (N, S) – преобразует число N в строку S.

Примеры решаемых задач

Пример 1. Составить программу, которая определит, сколько раз заданная буква встречается во введенном предложении.

Программа:

Program S1;

Uses Crt;

Var P : String [80]; { предложение }

B : Char; { буква }

K, N, M : Integer;

Begin

Clrscr;

Write (‘Введите предложение ’);

Readln (P); { ввели предложение }

Write (‘Введите букву ’);

Readln (B); { ввели букву }

M :=0; { обнулили счетчик заданных букв }

N := Length (P); { определили длину предложения }

For K := 1 To N Do { перебираем все символы предложения

от первого до последнего }

If P[K]=B { если К-ый символ строки Р равен заданной букве}

Then M := M+1; { увеличиваем счетчик букв }

Writeln (‘Буква ’, B, ‘ встречается в предложении ’, M, ‘ раз’);

{ вывели результат на экран }

Readln

End.

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

Программа:

Program S2;

Uses Crt;

Var P : String [80]; { строка}

B1, B2 : Char; { буквы }

K, N, M : Integer;

Begin

Clrscr;

Write (‘Введите строку текста ’);

Readln (P); { ввели исходную строку }

Write (‘Введите символ, который надо заменить ’);

Readln (B1); { ввели первый символ }

Write (‘На что заменять ? ’);

Readln (B2); { ввели второй символ }

N := Length (P); { определили длину предложения }

For K := 1 To N Do { перебираем все символы предложения

от первого до последнего }

If P[K]=B1 { если К-ый символ строки Р равен первому символу }

Then P[K] := B2; { записываем на К-е место в строку Р второй символ }

Writeln (‘Получилась строка: ’, P); { вывели результат на экран }

Readln

End.

Пример 3. Составить программу, которая определит количество слогов во введенном слове.

Модель: количество слогов в слове равно количеству гласных букв в нем. Следовательно, нужно вычислить количество гласных букв во введенной строке.

Программа:

Program S3;

Uses Crt;

Const Glas = ‘АЕЁИОУЫЭЮЯаеёиоуыэюя’; { константа содержит все

гласные буквы }

Var W : String [20]; { слово }

K, N, M : Integer;

Begin

Clrscr;

Write (‘Введите слово ’);

Readln (W); { ввели слово }

N := Length (W); { определили длину слова }

M := 0; { обнулили счетчик слогов }

For K := 1 To N Do { перебираем все буквы слова от первого

до последнего }

If Pos (W[K], Glas) > 0 { если К-ая буква слова W – гласная

(т.е.содержится в константе Glas) }

Then M := M+1; { увеличиваем счетчик слогов }

Writeln (‘В слове ’, M, ‘ слогов’); { вывели результат на экран }

Readln

End.

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

Программа:

Program S4;

Uses Crt;

Var S : String [80]; { исходная строка }

K : Integer;

Begin

Clrscr;

Write (‘Введите строку ’);

Readln (S); { ввели строку }

While Pos(‘ ‘, S)>0 Do { пока в строке S есть пробелы }

Begin

K:= Pos (‘ ‘, S); { определили позицию первого пробела

в строке S }

Delete (S, K, 1) { удалили пробел из строки S }

End;

Writeln (‘Получилась строка ’, S); { вывели результат на экран }

Readln

End.

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

Модель: Разделитель – пробел либо знак препинания. Условие начала слова: на i-м месте находится разделитель, на i+1 – буква (т.е. не разделитель). Условие конца слова: на i-м месте находится не разделитель (т.е. буква), на i+1 – разделитель. Исключение могут составлять первое и последнее слова предложения. Применим искусственный прием: допишем в начало и конец введенного предложения по одному пробелу (пробел – это один из разделителей).

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

Программа:

Program S5;

Uses Crt;

Const R = ‘ .,!?-():;’; { записали в константу все разделители }

Var S, W : String; { S – предложение, W – очередное слово }

N, K, L, A, B : Integer;

Begin

ClrScr;

Write (‘Введите предложение ’);

Readln (S); { ввели предложение }

S := ‘ ‘+S+’ ‘; { дописали пробелы в начало и конец предложения }

N := 0; { обнулили счетчик слов }

For K := 1 To Length (S) - 1 Do { перебираем все символы предложения от первого до предпоследнего }

Begin

A := Pos(S[K], R); { входит ли K-й символ в разделители}

B := Pos(S[K+1], R); {входит ли K+1-й символ в разделители}

If (A>0) And (B=0) { если слово началось }

Then L := K +1; { запоминаем позицию начала слова }

If (A=0) And (B>0) { если слово закончилось }

Then Begin

N := N+1; { считаем его }

W := Copy (S, L, K-L+1); { выделяем слово }

Writeln (W) { выводим слово на экран }

End

End;

Writeln (‘В предложении ’, N, ‘ слов ’); { выводим количество слов}

Readln

End.



<== предыдущая лекция | следующая лекция ==>
Контрольные задания | Контрольные задания


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


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

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

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


 


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

 
 

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

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