Что такое char в паскале
Pascal: Занятие № 11. Строковый тип данных в Паскаль
Символьный тип char в Паскале
Символьной переменной соответствует тип char:
Инициализация символьной переменной:
Основные функции для работы с символами
Функция преобразует целое число, имеющее тип BYTE, в один символ ASCII-кода:
Функция возвращает порядковый номер символа параметра в таблице ASCII:
var i: integer; begin for i:=32 to 255 do write(chr(i):3); end.
var c := ‘Ю’; var n := Ord(c); // n := c.Code Print(n); // 1070 c := Chr(n); print(c); // Ю
Символьные константы: #код – символ с определенным кодом:
#10 – новая строка (Linux) #13#10 – новая строка (Windows) #9 – tab Print(‘a’#10’b’);
char.IsLetter(с); // буква ли, boolean char.IsDigit(с); // десятичное ли число, boolean char.IsLower(с); // буква нижнего регистра, boolean char.IsUpper(с); // буква верхнего регистра, boolean char.IsPunctuation(с); // знак препинания, boolean с := char.ToLower(с) ; с := char.ToUpper(с);
c1 c2; с in [‘a’,’e’,’i’,’o’,’u’,’y’]; // c принадлежит гласным с in [‘a’..’z’,’A’..’Z’]; // c принадлежит английским буквам
//c принадлежит диапазону: c.InRange(‘a’..’z’); //Трансформация символа в цифру: var n := Ord(c) – Ord(‘0’); // Увеличение кода символа на n: c := Chr(Ord(c) + n); // или Inc(c,2);
Строковые переменные в Паскаль
Строковые переменные в Паскале имеют тип String
Объявление и инициализация строковой переменной:
var a:string; begin a:=’Привет всем!’; writeln(a); end.
Ввод значения строковой переменной с клавиатуры:
var a:string; begin writeln(‘Введите слово’); readln(a); writeln(‘Вы ввели слово ‘,a); end.
Строка «рассматривается» компилятором, как массив букв:
Функции работы со строками в Pascal
var s:string[30]; n,i:integer; begin writeln(‘введите текст’); readln(s); n:=0; for i:=1 to length(s) do if s[i]=’f’ then n:=n+1; write(‘в тексте букв f = ‘,n) end.
begin var s := readString(‘введите текст’); var n := 0; foreach var c in s do if c = ‘f’ then inc(n); Print(n); end.
s1 + s2 // конкатенация s1 и s2 s1 += s2 s1 Показать решение:
const m = [‘0’..’9′]; var s: string; i, k: byte; begin read(s); k := 0; for i := 1 to length(s) do if s[i] in m then inc(k); writeln(‘цифр = ‘, k); readln; end.
begin var s := readString; var k := 0; foreach var c in s do if char.IsDigit(c) then k += 1; Print($’цифр =
var a,b,c:string; i:longint; begin write(‘введите слово:’); readln(a); b:=»; for i:=1 to length(a) do b:=a[i]+b; if a=b then write(‘перевертыш’) else write(‘не перевертыш’); end.
// с помощью среза begin var s := readString; var n := s.Length; var s1 := s[::-1]; if s = s1 then print(‘перевертыш’) else print(‘не перевертыш’); end.
String 6. Определить, встречается ли в тексте сочетание букв «ку».
String 7. Заменить данную букву в слове другой буквой (буквы вводит пользователь).
Примечание:
Использовать функции: Pos, Copy, Delete
Пример:
Трудность низкая:
Программа должна формировать в памяти вторую строковую переменную с измененным текстом, а потом выводить ее на экран.
Трудность высокая:
Программа должна преобразовывать исходную строку без использования дополнительных переменных, и затем выводить ее на экран.
А теперь рассмотрим олимпиадное задание по Паскалю:
Посимвольный ввод до пробела
Посимвольный ввод удобен для «мгновенной» обработки символов в строке.
Для организации массива символьных строк:
Пример:
Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:
Что такое char в паскале
Теперь применим полученные знания о представлении текстовой информации на практике. В языке программирования Паскаль для работы с текстовой информацией есть специальный символьный тип переменных, который называется char (от английского character). Переменные этого типа занимают в оперативной памяти по `1` байту и, соответственно, могут принимать `256` различных значений. Значениями переменных этого типа являются элементы какой-либо однобайтовой кодовой таблицы (например, KOI-`8` или Windows-`1251`). Какие именно символы являются значениями данного типа, зависит от того, какая кодовая таблица используется в момент выполнения (а не написания) программы. То есть одна и та же программа, например, печатающая изображение всех символов кодовой таблицы, на компьютерах с различными текущими кодировками будет иметь различные результаты работы.
Переменным символьного типа можно присваивать значения при помощи оператора присваивания. При этом есть два способа записи символьных констант. Первый способ – записать явное изображение символа, заключив его в апострофы. Пусть, например, переменная C имеет тип char. Присвоим ей значение: C:= ‘a’; Описанный способ записи символьных значений удобно применять практически всегда. Единственный недостаток этого способа заключается в том, что так невозможно представить служебные символы, которые не имеют явных изображений (в кодовой таблице это первые `32` символа). Поэтому существует ещё один способ записи символьных констант – сначала указать спецсимвол решётку ( # ), а потом код интересующего нас символа. Например, C:=#13; Недостаток этого способа заключается в том, что нужно помнить коды всех символов, поэтому обычно его применяют только для записи символов без явного изображения.
Переменные типа char можно выводить на экран при помощи оператора вывода и вводить с клавиатуры. Апострофы при вводе набирать не нужно (каждый апостроф также будет считаться отдельным символом). Служебные символы вводятся следующим образом: нужно зажать alt и на правой цифровой клавиатуре набрать код символа (например, 13).
Существует `5` стандартных функций для работы с переменными символьного типа:
Итак, продолжаем наши уроки Паскаль для начинающих. В прошлом уроке мы разобрали строковый тип данных, но там мы упомянули про символы, поэтому прежде чем глубоко изучать тип данных String, мы узнаем о типе Char. Символьный тип данных Char — тип данных, значениями которого являются одиночные символы. Данный тип может содержать всего один любой символ (Например: «*», «/», «.», «!» и другие). Каждый такой символ занимает 8 бит памяти, всего существует 256 восьмибитовых символов. Все символы, используемые символьным типом Char записаны в таблице символов ASCII (American Standart Code for Information Interchange) или Американский стандарт кода для обмена информацией.
Символьные константы заключаются в апострофы, например ‘.’, ‘*’, ‘7’, ‘s’. Также символьную константу можно записать с помощью символа — «решетки», например #185 — выведет символ под номером 185 из таблицы ASCII (это символ ‘№’).
К символьному типу применимы 5 функций: Ord, Chr, Pred, Succ и Upcase.
Функция Ord преобразовывает символ в её числовой код из таблицы ASCII. Например для символа ‘№’ она возвратит значение 185. Функция Chr обратна функции Ord. Функция Chr преобразует числовой код символа в сам символ, например, если взять числовой код 64, то функция Chr (64) возвратит символ ‘@’.
Пример программы на Паскаль с использованием функции Ord:
Пример программы на Паскаль с использованием функции Chr:
Функция Pred возвращает значение предыдущего символа из таблицы ASCII, например для символа ‘P’ (Pred (P)) эта функция возвратит символ ‘O’. Функция Succ обратная функции Pred. Для символа ‘P’ функция Succ (P) возвратит символ ‘Q’, то есть следующий символ из вышеописанной таблицы ASCII.
Пример программы на Паскаль с использованием функций Pred и Succ:
Функция UpCase применима только для строчных букв английского алфавита. Данная функция преобразует строчные английские буквы в заглавные.
Пример программы на Паскаль с использованием функции UpCase:
На сегодня урок окончен. Помните, что программирование на паскале просто и является основой для многих языков программирования.
#7 Char Символьный тип данных в Pascal
Primary tabs
Forums:
В этом уроке мы продолжим изучать типы данных в Pascal.
Мы уже рассмотрели следующие типы данных:
Символьные переменные
Переменные типа char объявляются как и переменные другого типа:
Символьные литералы
Ранее мы уже говорили о символьных литералах (и литералах нескольких других типов), в коде программы символьные литералы представлены одинарными символами взятыми в кавычки.
Значения литералов можно записывать в переменные:
Выражения с участием данных типа char
Сравнение символов
Данные типа char, как и остальные простые типы в Паскаль, могут сравниваться с данными того же типа, результат при таком сравнении данных имеет тип boolean. Также напомним, что выражение, результат которого является логическим типом (boolean), само называют логическим.
Примеры сравнения символов рассмотрим ниже.
Разбор задач
Пример №1
Объявите переменную символьного типа, сравните её с произвольным символьным литералом и выведите полученное в ходе сравнения значения на экран.
Пример №2
Объявите две переменные символьного типа, присвойте им значения, сравните их и выведите полученные значения на экран.
Пример №3
Получите от пользователя значения двух символьных переменных, сравните их и выведите полученные значения на экран.
Пример №4
Получите от пользователя три символьных значения.
Выведете на экран результат проверки составного условия:
«»Первое первое значение равно третьему, но не равно второму»».
В этой задаче требуется провести сразу два сравнения, «потребовав» одновременности их выполнения, за одновременность отвечает логическая операция AND, используем её:
Видео-пояснения
Для данного урока следующие видео:
Самостоятельная работа
Вопросы
Задачи
«»»первая переменная равна третьей, не равна второй или третья равна четвертой»»»
Составьте по указанному условию логическое выражение и выведите его результат на экран.
Pascal. Простые типы данных
При описании переменной необходимо указать ее тип. Тип переменной описывает набор значений, которые она может принимать, и действия, которые могут быть над ней выполнены. Описание типа определяет идентификатор, который обозначает тип.
Простые типы делятся на стандартные (порядковые) и перечисляемые (ограниченные).
Стандартные типы
Турбо-Паскаль имеет четыре встроенных стандартных типа: integer (целое), real (вещественное), boolean (логический) и char (символьный).
Целочисленный тип (integer)
В Турбо-Паскале имеется пять встроенных целочисленных типов: shortint (короткое целое), integer (целое), longint (длинное целое), byte (длиной в байт) и word (длиной в слово). Каждый тип обозначает определенное подмножество целых чисел, как это показано в следующей Таблице.
Встроенные целочисленные типы.
Диапазон
Формат
16 битов со знаком
16 битов без знака
Арифметические действия над операндами целочисленного типа осуществляются в соответствии со следующими правилами:
Операции совершаемые над целыми числами:
RANDOM(X)-получение случайного числа от 0 до Х
Описываются переменные целого типа следующим образом:
var список переменных: тип;
Например: var а,р,n:integer;
Вещественный тип(real)
Имеется пять видов вещественных типов: real, singlе, duble, exnende, comp. Вещественные типы различаются диапазоном и точностью связанных с ними значений
Диапазон и десятичные цифры для вещественных типов
Диапазон
Цифры
2.9×10Е-39 до 1.7×10Е 38
1.5×10Е-45 до 3.4×10Е 38
5.0×10Е-324 до 1.7×10Е 308
3.4×10Е-493 до 1.1×10Е 403
Операции совершаемые над вещественными числами:
Описываются переменные вещественного типа следующим образом:
Символьный тип(char)
K типу char относится любой символ заключенный в апострофы. Для представления апострофа как символьную переменную, надо заключить его в апостроф:’’’’.
Каждый символ имеет свой код и номер. Порядковые номера цифр 0,1..9 упорядочены по возрастанию. Порядковые номера букв также упорядочены по возрастанию, но не обязательно следуют друг за другом.
К символьным данным применимы знаки сравнения:
Можно выполнить такие операторы присваивания:
но нельзя выполнять смешанные присваивания:
К переменным перечислимого типа применимы следующие функции:
Переменные перечислимого типа можно сравнить, так как они упорядочены и пронумерованы. Так выражения: север запад и бак Будет полезно почитать по теме: