Меню
Видеоучебник
Видеоучебник  /  Информатика  /  8 класс  /  Информатика 8 класс (ФГОС)  /  Программирование линейных алгоритмов. Символьный и строковый типы данных. Логический тип данных

Программирование линейных алгоритмов. Символьный и строковый типы данных. Логический тип данных

Урок 25. Информатика 8 класс (ФГОС)

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

Конспект урока "Программирование линейных алгоритмов. Символьный и строковый типы данных. Логический тип данных"

Вопросы:

·     Символьный тип данных.

·     Строковый тип данных.

·     Логический тип данных.

И так начнём с того, что же представляют собой переменные символьного типа. Как мы помним в языке Pascal символьный тип называется char. В среде программирования Pascal ABC значением переменной этого типа является любой символ из кодовой таблицы Unicode-16. Информационный вес символа этой таблицы равен 2 байтам. То есть эта таблица содержит 65 536 символов которые имеют коды от 0 до 65 535. При этом символы с кодами с 0 по 31 включительно не отображаются. Они являются управляющими. Код тридцать два имеет пробел. Символы с кодами с 33 по 127 – это знаки препинания, строчные и прописные буквы английского алфавита, знаки арифметических операций и цифры. Кодам со 128 соответствуют различные национальные алфавиты, в том числе и русский. Русские строчные буквы имеют коды с 1072 по 1103, также код 1105 имеет строчная буква «ё».

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

Варианты использования символьных значений

Рассмотрим, какие же операции и функции в языке Паскаль реализованы для переменных символьного типа. Прежде всего это преобразование символа в его код в кодировочной таблице. Данная функция записывается с помощью служебного слова ord, после которого в скобках указывается символ. Есть и обратная функция, то есть преобразование кода в символ. Эта функция записывается chr после этого слова в скобках следует код символа.

Функции для символьных переменных

Задача: Строчные английские буквы расположены в кодовой таблице символов в порядке своего следования в алфавите и имеют коды с 97 по 122. Написать программу, которая принимает на ввод одну из строчных букв английского алфавита и возвращает её порядковый номер в алфавите и букву с тем же порядковым номером в алфавите, но с конца.

Программа начинается со служебного слова program. Назовём нашу программу ABC, что в переводе с английского языка означает алфавит. Напишем раздел описания переменных. Для решения задачи нам нужна переменная, которая будет хранить букву, введённую пользователем, назовём её c. Она будет принадлежать к типу char. Также нам понадобится переменная, которая будет хранить номер буквы, назовём её n. Так как коды букв находятся в диапазоне от 97 по 122, для хранения номера буквы нам будет достаточно типа byte.

Запишем логические скобки. Сначала с помощью оператора writeln выведем на экран монитора поясняющее сообщение о том, что это программа расчёта порядкового номера буквы в английском алфавите и поиска противоположной её буквы, а также запрос на ввод строчной английской буквы. Теперь с помощью оператора readln считаем с клавиатуры значение переменной c. Теперь присвоим переменной n результат функции ord (c). Таким образом мы найдём код буквы в кодовой таблице символов, но чтобы найти номер буквы в алфавите, нужно вычесть из этого числа девяносто шесть – код символа, который располагается перед английским алфавитом в кодовой таблице символов. Теперь выведем на экран монитора значение переменной n с поясняющим сообщением о том, что это порядковый номер введённой буквы в английском алфавите.

Так как мы нашли порядковый номер буквы в английском алфавите, хранить значение самой буквы нам теперь необязательно. Поэтому используем переменную c для хранения буквы с тем же порядковым номером в алфавите, но с конца. Для её нахождения переменной c достаточно присвоить результат функции chr, аргументом которой будет номер нужной нам буквы в кодировочной таблице. Чтобы его получить нужно вычесть из кода символа, который идёт сразу после английского алфавита порядковый номер буквы. Теперь с помощью оператора writeln выведем на экран значение переменной c с поясняющим сообщением о том, что это буква английского алфавита с тем же порядковым номером, но с конца.

program abc;

var

 c: char;

 n: byte;

begin

 writeln ('Программа расчёта порядкового номера в английском алфавите. И поиска противоположной ей буквы. Введите строчную английскую букву.');

 readln (c);

 n:=ord(c)-96;

 writeln (n, ' - порядковый номер буквы в английском алфавите.');

 c:=chr(123-n);

 writeln (c, ' - буква английского алфавита с тем же порядковым номером, но с конца.');

end.

Исходный код программы

Запустим программу на выполнение. Введём букву «a». Эта буква действительно первая в английском алфавите. Первая с конца буква английского алфавита – «z».

Ещё раз запустим программу на выполнение. Введём букву «h». Это действительно восьмая буква английского алфавита. Восьмая с конца буква английского алфавита – «s». Программа работает правильно. Задача решена.

Значением переменной типа string в языке Pascal является строка. Так называется последовательность из нескольких символов. В среде программирования Pascal ABC размер строк ограничен только размером оперативной памяти. В коде программы строковые значения заключаются в одинарные кавычки. При вводе через консоль, как и в случае с символами кавычки не требуются.

Варианты использования строк

Помимо ввода с клавиатуры, строки можно получать с помощью склейки символов между собой или путём склейки других строк, эта операция называется конкатенацией. Для этого достаточно присвоить строковой переменной последовательно записанные строковые или символьные значения, между которыми должен стоять знак плюс. Исходные строки и символы будут соединены в порядке своего следования.

Склейка строк (Конкатенация)

Так же со строками можно работать посимвольно. Для того, чтобы обратиться к символу в составе строки достаточно записать название строковой переменной после которого в квадратных скобках указать порядковый номер символа, например s[3].

Рассмотрим, последний, оставшийся тип данных – логический. В языке паскаль он называется boolean. К этому типу принадлежат логические переменные. Как мы узнали при изучении элементов логики, логические переменные хранят в себе информацию об истинности соответствующих им высказываний. То есть такая переменная может хранить одно из двух значений, высказывание истинно или же высказывание ложно. В языке паскаль эти значения обозначаются соответственно true и false. Ещё мы помним, что если высказывание истинно – это может обозначаться 1, а если ложно – 0. Поэтому всегда true > false. Значения логических переменных можно получить при сравнении чисел, а также строковых, символьных и логических выражений, поэтому в языке Pascal логическим переменным можно присваивать результат операции сравнения.

Задача: Написать программу, которая проверяет истинность высказывания о том, что введённое пользователем число х, целое.

Назовём нашу программу «celoe». В разделе описания переменных запишем число x, по условию задачи эта переменная принадлежит к типу real. Ещё запишем переменную, которая будет хранить ответ на вопрос задачи, назовём её p. Она будет принадлежать к логическому типу boolean.

Запишем логические скобки. В начале выведем на экран поясняющее сообщение о том, что это программа проверки истинности высказывания о том, что число x целое, а также запрос на ввод числа. Затем считаем значение числа x с помощью оператора readln. Очевидно, что число является целым, если его дробная часть равна 0. Поэтому нам достаточно присвоить переменной p значение истинности высказывания о том, что дробная часть числа х, которая выделяется с помощью функции frac, равна 0. Выведем на кран значение переменной p с поясняющим сообщением о том, что это результат высказывания о том, что число x целое.

program celoe;

var

 x: real;

 p: boolean;

begin

 writeln ('Программа, определяющая истинность высказывания о том, что число x целое.');

 write ('x=');

 readln (x);

 p:=frac(x)=0;

 write (p, ' - результат высказывания о том, что число x целое.');

end.

Исходный код программы

Запустим программу на выполнение введём сначала целое число – 2.  Высказывание о том, что число два целое действительно истинно.

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

Программа работает правильно. Задача решена.

Так мы решили задачу с использованием логической переменной. Однако высказывание, которое соответствовало этой переменной было простым. Как мы помним из простых высказываний можно составлять сложные, объединяя их с помощью логических операций: и, или и не. В языке Паскаль высказывания можно объединять так же. Логические операции при этом записываются соответственно and, or и not, а каждое высказывание берётся в скобки.

Задача: Написать программу, которая проверяет истинность высказывания о том, что слово из 5 букв, введённое пользователем является палиндромом.  Палиндромом является слово, которое одинаково читается как слева на право, так и справа налево, например слово «шалаш».

Назовём нашу программу «palindrom». Нам понадобится переменная, которая будет хранить слово, введённое пользователем, назовём её s. Это будет строковая переменная, следовательно, её тип будет string. Так же нам понадобится логическая переменная, которая будет хранить ответ на вопрос задачи. Назовём её p.

Запишем логические скобки. Сначала выведем на экран поясняющее сообщение о том, что это программа, проверки истинности высказывания о том, что слово из 5 букв является палиндромом, и запроса на ввод слова, состоящего из 5 букв. Затем считаем это слово, в переменную s. Как же проверить является ли введённое слово палиндромом? Для этого достаточно проверить равен ли каждый символ, другому символу этого же слова с тем же порядковым номером, но с конца. В нашем случае переменной p нужно присвоить результат высказывания о том, что первый символ строки s равен символу этой же строки с номером 5, это будет первая часть высказывания, заключим её в скобки. И символ с номером 2 равен символу с номером 4. Это будет вторая часть высказывания – её мы тоже заключим в скобки. Теперь с помощью оператора writeln выведем на экран значение переменной p с поясняющим сообщением о том, что это результат высказывания о том, что слово, введённое пользователем – палиндром.

program palindrom;

var

 s: string;

 p: boolean;

begin

 writeln ('Программа проверки высказывания о том, что слово из 5 букв является палиндромом. Введите слово из 5 букв.');

 readln (s);

 p:=(s[1]=s[5]) and (s[2]=s[4]);

 write (p, ' - результат высказывания о том, что слово ', s, ' является палидромом.');

end.

Исходный код программы

Запустим программу на выполнение. Введём слово казак. Это слово действительно является палиндромом. Высказывание об этом истинно.

Снова запустим программу и введём слово радар. Высказывание о том, что это палиндром тоже истинно.

Ещё раз запустим программу на выполнение. Введём слово груша. Высказывание о том, что это палиндром действительно ложно.

Программа работает правильно для слов из 5 букв. Задача решена.

Важно запомнить:

·     Для хранения символов в языке Pascal используются переменные типа char.

·     Строки – это последовательности из нескольких символов. Для их хранения в языке Pascal используются переменные типа string.

·     Логические переменные в языке Паскаль принадлежат к типу boolean, они могут принимать одно из двух значений: true или false.

·     Для каждого типа данных определён ряд операций и функций над ним.

3187

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт