Разделы презентаций


Структуры данных - Строки

Символьные константы (литералы)Три формы записи символьных констант: Символ в апострофах ('a', 'W', '4', '?'); Знак # перед десятичным кодом символа ASCII (#97, #186, #254) – обычно для символов, отсутствующих на клавиатуре;

Слайды и текст этой презентации

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

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

текста.
Символ – это один элемент алфавита языка. В Pascal и С символьные данные описываются типом данных char, размер 8 бит (1 байт) – описывает символы с кодом от 0 до 255 (расширенный ASCII). Char - порядковый тип данных – то есть:
представляет собой конечное упорядоченное множество,
всегда доступен порядковый номер конкретного значения в данном типе (элемента),
всегда доступны значения предыдущего и последующего элементов.

Операции и функции для типа char

операции отношения: <, <=, >, >=, =, <>, - сравниваются коды символов
функция ord('S') - возвращает поряд- ковый № символа S
chr(№) - возвращает символ
pred('S') - предыдущий символ
suсс('S') - последующий символ
upcase('S') - перевод в верхний регистр

операции – доступны все операции С, с учетом преобразования типов данных
функция getchar() - читает символ из буфера ввода клавиатуры (б-ка stdio.h)
putchar() - отображает символ на экран (stdio.h)
функции библиотеки ctype.h (isalnum, isalpha, isblank, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit, tolower, toupper)


Функции работы с символами изучить самостоятельно!

И+ПРГ

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

Слайд 2Символьные константы (литералы)
Три формы записи символьных констант:

Символ в апострофах

('a', 'W', '4', '?');
Знак # перед десятичным кодом символа

ASCII (#97, #186, #254) – обычно для символов, отсутствующих на клавиатуре;
Буква, предваряемая знаком ^ (^M, ^V) – для представления управляющих символов (первые 32 символа ASCII) – код буквы на 64 больше кода управляющего символа (соответственно, 13, 22).

Форма записи символьных констант:

Один или несколько символов в апострофах ('a', 'W', '4', '?', 'vb').
- Двухсимвольные константы занимают 2а байта и имеют тип данных int;
- Для многобайтовых символов (для работы с набором символов требующих больше одного байта, например, Unicode) существует тип wchar_t - расширенный символьный. Эти константы записываются с префиксом L (wchart_t=wr; wr=L'A';);
Специальные символьные константы (ESC-последовательности) служат для представления специальных символов. Их отличительный признак символ обратной косой черты - \ (\n – новая строка, \" – кавычка, \0ddd – восьмеричная константа, \x0ddd – шестнадцатеричная).
Пустая символьная константа – недопус-тима.

И+ПРГ

Символьные константы (литералы)Три формы записи символьных констант: Символ в апострофах ('a', 'W', '4', '?'); Знак # перед

Слайд 3Элементы ЯПВУ.
Таблица кодировки символов
Символы с кодами 0 - 127
И+ПРГ

Элементы ЯПВУ. Таблица кодировки символовСимволы с кодами 0 - 127И+ПРГ

Слайд 4Элементы ЯПВУ.
Таблица кодировки символов
Символы с кодами 128 - 255
И+ПРГ

Элементы ЯПВУ. Таблица кодировки символовСимволы с кодами 128 - 255И+ПРГ

Слайд 5Задание: Выводить на экран код введенного символа, для завершения ввода

ввести точку.



И+ПРГ

Задание: Выводить на экран код введенного символа, для завершения ввода ввести точку.И+ПРГ

Слайд 6Задание: Вывести на экран код введенного символа. Требуемый вид экрана:
Введите

символ.
Для

завершения программы введите точку.
-> 1
Символ: 1 Код: 49 и т.д.

// Вывод кода введенного символа
#include
#include
void main()
{
char ch;
printf("\nВведите символ и нажмите Enter\n");
printf ("Для завершения программы введите точку.\n");
do
{
ch = getch();
printf("Символ: %c Код: %i\n",ch,ch);
}
while (ch != '.');
printf("\nДля завершения нажмите Enter\n");
getch();
}

(* Выводит код введенного символа *)
Program sym_cod;
Var sym: char;
code: integer;
begin
writeln ('Введите символ и нажмите Enter.');
writeln ('Для завершения программы введите точку и нажмите Enter.');
repeat
begin
write('-> ');
readln(sym);
code := Ord(sym);
writeln('Символ: ', sym,', Код: ', code);
end
until sym = '.';
end.

И+ПРГ


Слайд 7В Pascal существует стандартный тип данных String - строка.
var :

string[[]]
[=''];

Длина строки по умолчанию - 255 символов

плюс нулевой символ, хранящий значение длины строки (всего 256 байт)
Можно определить собственный тип строки:
type <имя_типа>=string[[дл]];

Длина строки – константа или константное выражение.

Строка в С – это одномерный символьный массив с
нуль-символом - \0 в конце.
При объявлении размера такого массива надо к количеству символов строки добавлять одну позицию (байт) для нуль-символа.
Стандартного строкового типа и строковых переменных в С - нет.
Функции работы со массивами-строками собраны в заголовочном файле string.h.
В С++ для работы со строками определен класс string (изучите в ООП).
Главный недостаток – необходимо вручную проверять выход за границу строкового массива!

Строка – это конечная последовательность символов, цепочка символов.

И+ПРГ

В Pascal существует стандартный тип данных String - строка.var :   string[[]] [=''];Длина строки по умолчанию

Слайд 8Type srt4 = string [4];
Const n = 5;
Var
s

: string; (*строка 255 символов*)
s1 : str4; (*строка

типа str4*)
s2 : string [n]; (*прямое описание*)

Инициализация строк – в разделе const:
Const s3 : string[6] = 'good';
Вид строки:

Примеры:

- 7 байт.

char str[6] = "good";
выделено 6 элементов массива (0÷5)

Оператор char str[ ] = "good"; - создаст и заполнит массив размерностью 5.

И+ПРГ

Type srt4 = string [4];Const n = 5;Var  s : string; (*строка 255 символов*) s1 :

Слайд 9Операции для строк
присваивание строк := - при разной длине

лишние символы отбрасываются
type str4 = string[4];
var s1

= str4; s2 = string[10]
s2 := 'qwertyuiop';
s1 := s2; (* строка s1 содержит qwer *)
конкатенация + - склеивание (сцепление) строк
st1 := 'пар'; st2:= 'воз'; st := st1+'о'+st2;
обращение к компонентам строки
<имя_строки>[<индекс>]
{s='15.47'} c:= s[3]; {c='.'} cr:=s[2]; {cr='5'}
но в отличие от массива, нельзя напрямую заменять символы в строке.
операции отношения <, <=, >, >=, =, < > - сравнивают строки, из двух строк меньшая та, чей первый различный символ меньше.
'abc'<'xyz', 'a'<'abc', '120'<'45', 'Anny'<'anny'
ввод-вывод строк – имя строки может исп. в процедурах readln(s1, s2); и writeln(s1);
При вводе в строку считывается количество символов равное длине строки или меньше, если раньше встретиться команда Enter (LF+CR – перевод строки+возврат каретки).

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

И+ПРГ

Операции для строк присваивание строк := - при разной длине лишние символы отбрасываются type str4 = string[4];

Слайд 10Функции и процедуры для строк
Некоторые функции стандартных библиотек для работы

со строками:
библиотека stdio.h
gets(s) - читает символ с

клавиатуры в строку s до Enter, возвращает указатель на s.
puts(s) – выводит строку s на экран.
библиотека string.h
strcpy(s1,s2) – копирует s2 в s1,
strcat(s1,s2) – конкатенация s2 в конец s1,
strlen(s1) – возвращает длину строки s1,
strcmp(s1,s2) – сравнение строк, возвращает 0 (false), если s1 и s2 совпадают, отрицательное значение, если s1s2,
strchr(s1,ch) – ищет символ в строке, возвращает указатель на первое вхождение символа ch в строку s1,
strstr(s1,s2) – ищет подстроку в строке, возвращает указатель на первое вхождение строки s2 в строку s1,
и другие.

Формат функций и процедур работы со строками изучить самостоятельно!


Функции (возвращают простое значение)
Concat (s1[,s2,…,sn]) – последовательная кон-катенация s1, s2…sn,
Copy (s, start, len) – возвращает подстроку длиной len строки s, начиная позиции start (len и start – целого типа),
Length (s) – текущая длина строки s (тип byte),
Pos (substr, s) – ищет подстроку substr в стро-ке s и возвращает номер первого символа substr в s или 0, если такой подстроки в s нет.
Процедуры (возвращают преобразованную строку)
Delete (s, start, len) – удаляет подстроку длиной len из строки s, начиная с позиции start,
Insert (substr, s, start) – вставляет подстроку subst в строку s, начиная с позиции start,
Str (x, s) – преобразует числовое значение x в строку s (x может иметь формат – x:6:2),
Val (s, x, errcode) – преобразует строку s в числовое значение x, errcode содержит номер позиции первого ошибочного символа или 0.

И+ПРГ

Функции и процедуры для строкНекоторые функции стандартных библиотек для работы со строками: библиотека stdio.h gets(s) - читает

Слайд 11ASCIIZ-строки
ASCIIZ-строки – это строки символов "с нулевым окончанием"- признак окончания

строки - символ с нулевым кодом #0. Такие строки введены

в Pascal для обеспечения возможности использовать длинные строки (до 65 535 символов) и для работы под Windows.
Для реализации механизма ASCIIZ-строк введен новый предопределенный тип данных PChar: Type PChar = ^char, т.е. указатель на символьное значение. Переменным типа PChar можно присваивать строковые значения, а также индексировать их, как при работе с символьными массивами. Переменная типа PChar ссылается на первый элемент некоторой ASCIIZ-строки неопределенной длины, завершающейся #0.


Для поддержки работы с ASCIIZ-строками используется специальный модуль (Uses) String. Он доступен в BP и BPW и содержит процедуры и функции для:
динамического создания и уничтожения строк (StrNew и StrDispose),
копирования строк (StrCopy, StrECopy, StrLCopy, StrPCopy, StrMove),
конкатенации строr (StrCat, StrLCat),
cравнения строк (StrComp),
и другие (StrIComp, StrLComp, StrLIComp, StrPos, StrIPos, StrScan, StrRScan, StrEnd, StrLen, StrLower, StrUpper, StrPas).

И+ПРГ

ASCIIZ-строкиASCIIZ-строки – это строки символов

Слайд 12Практическое занятие:
Program Simple;
const
Text = Простая программа ';
var s : string[4];
begin

WriteLn(Text);
readln (s);
writeln (s);
writeln('s[0]=', s[0]);
writeln('s[0]=', length(s));

end.

Объяснить работу программ и что они выводят на экран.

#include
#include
 void main()
{
unsigned char st[80];
int i;
 printf("\n Введите строку текста и нажмите Enter\n");
printf("-> ");
gets(st);
i = 0;
while ( st[i] )
{
if (((st[i] >= 'a') && (st[i] <= 'z')) || ((st[i] >= 'а')
&& (st[i] <= 'п')))
st[i] -= 32;
else
if (st[i] >= 'р' && st[i] <= 'я')
st[i] -= 80;
i++;
}
puts(st);
printf("\n Для завершения нажмите Enter");
getch();
}

И+ПРГ


Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

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


Для правообладателей

Яндекс.Метрика