Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемГеоргий Чубаров
1 Элементы ЯПВУ. СИМВОЛЫ C / С++Pascal В языках программирования существуют средства для работы с текстами. Текстовые данные представляются в виде отдельных символов или в виде строк текста. Символ – это один элемент алфавита языка. В 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) Функции работы с символами изучить самостоятельно! ВМП 1
2 Элементы ЯПВУ. СИМВОЛЫ C / С++Pascal Символьные константы (литералы ) Три формы записи символьных констант: Символ в апострофах ('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 – шестнадцатеричная). - Пустая символьная константа – недопустима. ВМП 2
3 3 Элементы ЯПВУ. Таблица кодировки символов Таблица кодировки символов Символы с кодами
4 ВМП 4 Элементы ЯПВУ. Таблица кодировки символов Таблица кодировки символов Символы с кодами
5 Символы Практическое занятие PascalC / C++ Задание: Выводить на экран код введенного символа, для завершения ввода ввести точку. ВМП 5 Л Цикл выполняется ПОКА не будет введена в качестве символа точка Начало Вывести "Введите символ и нажмите Enter. Для завершения программы введите точку." Конец И ПОВТОРЯТЬ Получить Символ_ASCII Вывести Символ: 'Символ_ASCII' Код : Cимвол_ASCII ПОКА Символ_ASCII <> '.' '.'">
6
Символы Практическое занятие PascalC / C++ Задание: Вывести на экран код введенного символа. Требуемый вид экрана: Введите символ. Для завершения программы введите точку. -> 1 Символ: 1 Код: 49 и т.д. // Вывод кода введенного символа #include
7 Домашнее задание 1. Набрать все программы презентации ВМП_01_Потоковый в-в в С++_Рекурсия и рекуррентность_Целочисленные алгоритмы-алг_Евклида _12 слайдов.ppt и запустить их. Перечислить ошибки в программах. 2. Изучить создание рекурсивных программ и сдать преподавателю (решит задачу на написание программы). 3. Изучить создание рекуррентных программ и сдать преподавателю (решит задачу на написание программы). ВМП Рекурсия и рекуррентность 7
8 В Pascal существует стандартный тип данных String - строка. var : string[[ ]] [=' ']; Длина строки по умолчанию символов плюс нулевой символ, хранящий значение длины строки (всего 256 байт) Можно определить собственный тип строки: type =string[[дл]]; Длина строки – константа или константное выражение. Элементы ЯПВУ. СТРОКИ C / С++Pascal Строка в С – это одномерный массив, заканчивающийся нуль-символом - \0. При объявлении такого массива надо к количеству символов строки добавлять одну позицию (байт) для нуль-символа. Стандартного строкового типа и строковых переменных в С - нет. Функции работы со массивами- строками собраны в заголовочном файле string.h. В С++ для работы со строками определен класс string (изучите в ООП). Главный недостаток – необходимо вручную проверять выход за границу строкового массива! Строка – это конечная последовательность символов, цепочка символов. 8 ВМП
9 Элементы ЯПВУ. СТРОКИ C / С++Pascal Type srt4 = string [4]; Const n = 5; Var s : string; (*строка 255 символов*) s1 : str4; (*строка типа str4*) s2 : string [n]; (*прямое описание*) Инициализация строк – в разделе const: Const s3 : string[6] = 'good'; Вид строки: Примеры: 4good - 7 байт. char str[6] = "good"; выделено 6 элементов массива (0÷5) good\0 Оператор char str[ ] = "good"; - создаст и заполнит массив размерностью 5. good\0 Строковые константы (литералы) Строковая константа – это последовательность любых ASCII символов, заключенных в Апострофы – 'abc'Кавычки – "abc" Const Тext = 'Простая программа' WriteLn(Text); Максимальная длина – 126 символов. Апостроф в константе – дублируется: 'Don''t right' "Текстовая константа" Кавычка внутри константы - \" "ООО \"Рога и копыта\"" Знак переноса длинной константы - \ 9 ВМП
10 Элементы ЯПВУ.СТРОКИ Элементы ЯПВУ. СТРОКИ C / С++Pascal Операции для строк присваивание строк := - при разной длине лишние символы отбрасываются 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). поскольку строка в С – это массив, то над ними возможны все те же операции, что и над массивами, например, операция присваивания одной строки другой выполняется с помощью цикла или функций стандартной библиотеки. 10 ВМП
11 Элементы ЯПВУ.СТРОКИ Элементы ЯПВУ. СТРОКИ C / С++Pascal Функции и процедуры для строк Некоторые функции стандартных библиотек для работы со строками: библиотека 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 совпадают, отрицательное значение, если s1 s2, 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 содержит номер позиции первого ошибочного символа или ВМП
12 Элементы ЯПВУ.СТРОКИ Элементы ЯПВУ. СТРОКИ C / С++Pascal ASCIIZ-строки ASCIIZ-строки – это строки символов "с нулевым окончанием"- признак окончания строки - символ с нулевым кодом #0. Такие строки введены в Pascal для обеспечения возможности использовать длинные строки (до символов) и для работы под Windows. Для реализации механизма ASCIIZ-строк введен новый предопределенный тип данных PChar: Type PChar = ^char, т.е. указатель на символьное значение. Переменным типа PChar можно присваивать строковые значения, а также индексировать их, как при работе с символьными массивами. Переменная типа PChar ссылается на первый элемент некоторой ASCIIZ-строки неопределенной длины, завершающейся #0. Для поддержки работы с ASCIIZ-строками используется специальный модуль (Uses) String. Он доступен в BP и BPW и содержит процедуры и функции для: динамического создания и уничтожения строк (StrNew и StrDispose), копирования строк (StrCopy, StrECopy, StrLCopy, StrPCopy, StrMove), конкатенации строк (StrCat, StrLCat), сравнения строк (StrComp), и другие (StrIComp, StrLComp, StrLIComp, StrPos, StrIPos, StrScan, StrRScan, StrEnd, StrLen, StrLower, StrUpper, StrPas). 12 ВМП
13 Строки PascalC / C++ Практическое занятие: Написать программу, которая запрашивает ввод с клавиатуры фамилии и имени и здоровается: "Добрый день, Фамилия Имя!" Подсчитать количество вхождений в строку символа a и заменить все a на A. Написать программы на Pascal и С. 13 ВМП
14 Строки PascalC / C++ Практическое занятие: 14 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 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] = 'а') && (st[i] <= 'п'))) st[i] -= 32; else if (st[i] >= 'р' && st[i] <= 'я') st[i] -= 80; i++; } puts(st); printf("\n Для завершения нажмите Enter "); getch(); } ВМП "); gets(st); i = 0; while ( st[i] ) { if (((st[i] >= 'a') && (st[i] = 'а') && (st[i] <= 'п'))) st[i] -= 32; else if (st[i] >= 'р' && st[i] <= 'я') st[i] -= 80; i++; } puts(st); printf("\n Для завершения нажмите Enter "); getch(); } ВМП">
15 Домашнее задание 1. Каждому студенту по три индивидуальные задания на работу с символами и строками. Написать программы на Pascal и С. ВМП Символы и строки 15
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.