Введите слово в паскалях

Обновлено: 06.07.2024

Залейте экран зеленым цветом. Введите строку с клавиатуры. Напечатайте строку в центре экрана, вставив указанное слово в середину. Мне нужна помощь! Мне нужно слово, вставленное в середину строки. Как мне это сделать?

Добро пожаловать в SO. Боюсь, это не служба домашней работы — мы помогаем с конкретными моментами программирования, где вы застряли. Так где именно ты застрял? Кажется, у вас есть основные компоненты решения - использование модуля Crt, gotoxy, так в чем ваша проблема? Кстати, вы используете FreePascal + Lazarus или другой Pascal?

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

Итак, вы написали код в своем q или взяли его откуда-то? И, пожалуйста, ответьте на мой вопрос о том, какой Паскаль вы используете.

1 Ответ 1

Я не знаком с подробностями pascalABC, но предположительно в нем есть модуль Crt, который дает вам некоторый контроль над экраном и местами записи элементов на него с помощью GotoXY, а затем Write.

Итак, вам в основном нужно решить следующие задачи:

Найти ширину экрана как количество символов. Или ваш модуль Crt может предоставить вам способ указать ширину экрана, например. как часть создания экранного окна.

Вы знаете длину своей строки (например, из Length(MyString)). Таким образом, чтобы поместить строку в центр экрана по горизонтали, вам нужно вычислить необходимое значение X, чтобы указать его при вызове GotoXY. Это просто

X := (ScreenWidth - Length(MyString)) div 2;

То же самое для значения Y. Конечно, значение X может быть не совсем правильным, если (ScreenWidth - Length(MyString) является нечетным числом, а не четным, но вы ничего не можете с этим поделать.

После того как вы использовали GotoXY для позиционирования курсора, просто выполните

Если ваш модуль Crt позволяет вам указать шрифт, вы, вероятно, получите лучший визуальный результат, если укажете шрифт с фиксированной точкой, такой как Courier (или его кириллический эквивалент).

Наконец, вам нужно вызвать ReadLn в самом конце вашего кода, чтобы программа ждала, пока вы нажмете Enter , иначе окно консоли, в котором отображается программа, просто исчезнет, ​​если оно работает как модуль Crt FreePascal.

Типы данных объекта указывают на значение, ограничения, возможные значения, операции, функции и режим хранения, связанные с ним.

Целые, действительные, логические и символьные типы относятся к стандартным типам данных. Типы данных можно разделить на скалярные, указательные и структурированные. Примерами скалярных типов данных являются целые, действительные, логические, символьные, поддиапазонные и перечисляемые. Структурированные типы данных состоят из скалярных типов; например, массивы, записи, файлы и наборы. Мы обсудим типы данных указателя позже.

Типы данных Паскаля

Типы данных Pascal можно обобщить, как показано ниже на следующей диаграмме —

Типы данных Pascal

Объявления типов

Объявление типа используется для объявления типа данных идентификатора. Синтаксис объявления типа —

Например, следующее объявление определяет переменные days и age как целочисленный тип, yes и true как логический тип, имя и город как строковый тип, а сборы и расходы как реальный тип.

Целые типы

В следующей таблице приведены подробные сведения о стандартных целочисленных типах с размерами их хранилищ и диапазонами значений, используемыми в Object Pascal –

Константы

Использование констант делает программу более читабельной и помогает хранить специальные количества в одном месте в начале программы. Паскаль допускает числовые, логические, строковые и символьные константы. Константы могут быть объявлены в части объявления программы, указав объявление const.

Синтаксис объявления константного типа следующий –

Ниже приведены некоторые примеры объявлений констант —

Все объявления констант должны быть указаны перед объявлением переменных.

Пронумерованные типы

Перечисленные типы данных — это типы данных, определяемые пользователем. Они позволяют указывать значения в списке. Для перечисляемого типа данных разрешены только операторы присваивания и реляционные операторы. Перечисленные типы данных могут быть объявлены следующим образом:

Ниже приведены некоторые примеры объявлений перечислимых типов —

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

Типы поддиапазонов

Типы поддиапазона позволяют переменной принимать значения, лежащие в определенном диапазоне.Например, если возраст избирателей должен находиться в диапазоне от 18 до 100 лет, переменная с именем age может быть объявлена ​​как -

Мы подробно рассмотрим объявление переменных в следующем разделе. Вы также можете определить тип поддиапазона, используя объявление типа. Синтаксис для объявления типа поддиапазона следующий:

Ниже приведены некоторые примеры объявлений типа поддиапазона —

Типы поддиапазонов могут быть созданы из подмножества уже определенного перечисляемого типа, например —

Представление байта

Байт – это группа или восемь последовательных битов. Биты считаются справа налево, начиная с 0. Самым правым битом является бит 0; он называется младшим значащим битом. Его также называют младшим битом, битом LO или битом LOBIT. Самый левый бит — бит 7; он называется старшим битом, старшим битом, битом HI или HIBIT. На другие биты ссылаются по их позициям.

Байт считается состоящим из двух частей:

Используя двоичную систему, вы можете представить байт комбинацией нулей и единиц. Когда все биты имеют значение 0, байт представляется как 00000000. С другой стороны, когда все биты имеют значение 1, байт представляется как 11111111. Когда число становится очень большим, его становится трудно читать. Поэтому мы будем представлять биты группами по четыре. Вместо 00000000 мы будем писать 0000 0000. Это облегчит чтение числа.

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

2 7 + 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 1 + 2 0
= 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
= 255

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

Помните, что байт со всеми битами, имеющими значение 0, имеет значение 0. Поскольку этот байт также содержит допустимое значение, количество комбинаций = 255 + 1 = 256.

Байт используется для хранения одного символа. Персонаж — это отдельный символ, который отображается на вашем экране. Это может быть:

Чтобы объявить переменную как символ, вы можете использовать ключевые слова Char или AnsiChar. Вот пример:

В логическом типе данных используется 8 бит для хранения переменной, значение которой может быть установлено как истинное (1) или ложное (0). Чтобы объявить такое значение, вы используете ключевое слово Boolean. Вот пример

Алгебраическое натуральное число также называется целым числом. Байт может использоваться для хранения натурального числа при условии, что он использует небольшое значение. Тип данных, используемый для объявления такой переменной, — Shortint. Значение, хранящееся в переменной Shortint, должно находиться в диапазоне от 128 до 127. Переменная может быть объявлена ​​следующим образом:

Если значения переменной должны быть без знака, вы можете объявить ее с помощью ключевого слова Byte. В этом случае значения переменной должны находиться в диапазоне от 0 до 255. Вот пример объявления такой переменной:

Представление слова

Рассматриваемый как группа из 16 битов, самый правый бит слова, бит 0, называется младшим значащим битом, или младшим битом, или битом LO, или LOBIT. Самый левый бит, бит 15, называется старшим битом, или старшим битом, или старшим битом, или HIBIT. На остальные биты ссылаются по их позициям: бит 1, бит 2, бит 3 и т. д.

Учитывая, что слово состоит из двух байтов, группа из правых 8 битов называется младшим значащим байтом, или младшим байтом, или байтом LO, или LOBYTE. Другая группа называется старшим байтом, или старшим байтом, или старшим байтом, или HIBYTE.

Самое основное представление слова в двоичном формате — 0000000000000000. Чтобы упростить чтение, вы можете сгруппировать биты по 4, например: 0000 0000 0000 0000. Следовательно, минимальное двоичное значение, представленное словом, равно 0000. 0000 0000 0000. Максимальное двоичное значение, представленное словом, равно 1111 1111 1111 1111.

Минимальное десятичное значение слова равно 0. Чтобы узнать максимальное десятичное значение слова, вы можете использовать формулу с основанием 2, заполнив каждый бит единицей:

1*2 15 + 1*2 14 + 1*2 13 + 1*2 12 + 1*2 11 + 1*2 10 + 1*2 9 + 1*2 8 + 1*2 7 + 1* 2 6 + 1*2 5 + 1*2 4 + 1*2 3 + 1*2 2 + 1*2 1 + 1*2 0

= 32768 + 16384 + 8192 + 4096 + 2048 + 1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

Минимальное шестнадцатеричное значение, которое можно сохранить в слове, – 0x0000000000000000. Это также представляется как 0x00000000, или 0x0000, или 0x0. Все эти числа дают одно и то же значение, равное 0x0. Чтобы узнать максимальное шестнадцатеричное число, которое можно сохранить в слове, замените каждую группу из 4 битов на f или F:

1111 1111 1111 1111
f f f f
= 0xffff
= 0xFFFF
= 0Xffff
= 0XFFFF

Object Pascal предоставляет тип данных для представления Unicode или международных символов. Эти символы представлены с использованием 16-бит. Тип данных для этого называется WideChar.

Слово, представляющее собой группу из 16 последовательных битов или 2 байтов, используется для представления натурального числа, которое занимает вдвое больше места, чем короткое целое число. Как мы выяснили, максимальное числовое значение, которое может поместиться в слово, равно 65535. Исходя из этого, слово может хранить переменную, объявленную с помощью ключевого слова Smallint. Вот пример:

Переменная, объявленная как Smallint, может хранить число от 32 768 до 32 767. Если число должно быть беззнаковым, вы можете объявить его, используя тип данных Word. В этом случае число должно находиться в диапазоне от 0 до 65535.

Представление двойного слова

Самый правый бит, бит 0, называется младшим битом или битом LO или LOBIT. Самый левый бит, бит 31, называется битом старшего порядка, битом HI или битом HIBIT. Остальные биты вызываются с использованием их позиций.

Группа из первых 8 битов (от бита 0 до бита 7), которая является правым байтом, называется младшим байтом или байтом LO. Иногда его называют LOBYTE. Группа из последних 8 битов (от бита 24 до бита 31), которая является левым байтом, называется байтом старшего порядка, или байтом HI, или HIBYTE. Остальные байты вызываются по их позициям.

Минимальное двоичное число, которое можно представить двойным словом, равно 0x

Минимальное десятичное значение двойного слова равно 0. Чтобы узнать максимальное десятичное значение слова, вы можете использовать формулу с основанием 2, присваивающую каждому биту значение 1:

2n-1 230 229 228 227 226 225 224
и т. д.

223 222 221 220 219 218 217 216
8 388 608 4 194 304 2 097 152 1 048 576 524 288 262 144 131 072 65 536

215 214 213 212 211 210 29 28
32 768 16 384 8 192 4 096 2 048 1 024 512 256

27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1

1*231+1*230+1*229 + 1*228 + 1*227 + 1*226 + 1*225 + 1*224 + 1*223 + 1*222 + 1*221 + 1*220 + 1*219 + 1*218 + 1*217 + 1*216 + 1*215 + 1*214 + 1*213 + 1*212 + 1*211 + 1*210 + 1*29 + 1*28 + 1 *27 + 1*26 + 1*25 + 1*24 + 1*23 + 1*22 + 1*21 + 1*20

<Р> = 2147483648 + 1073741824 + 536870912 + 268435456 + 134217728 + 67108864 + 33554432 + 16777216 + 8388608 + 4194304 + 2097152 + 1048576 + 524288 + 262144 + +131072 + 65536 + 32768 + 16384 + 8192 + 4096 + 2048 + тысяча двадцать четыре + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

Минимальное шестнадцатеричное значение, которое можно сохранить в слове, — 0x0. Чтобы узнать максимальное шестнадцатеричное число, которое может быть представлено словом, замените каждую группу из 4 битов буквой f или F:

Двойное слово занимает в два раза больше места, чем слово. Это эквивалентно 32 битам или 4 байтам или 4294967295. Поэтому двойное слово используется для больших чисел, которые не помещаются в слово. Если вашей программе нужна целочисленная переменная, значение которой требует больше памяти, чем может вместить слово, объявите ее с помощью ключевого слова Integer. Целочисленный тип данных используется для переменной, значение которой может находиться в диапазоне от 2 1474 83 648 до 2 147 484 647.

Вот пример:

Кроме того, вы можете использовать ключевое слово Longint для объявления переменной, значение которой должно умещаться в 32-битном пространстве. Если переменная должна быть положительной, вы можете объявить ее с помощью ключевого слова Cardinal. Переменная Cardinal используется для 32-разрядного положительного целого числа, значение которого может находиться в диапазоне от 0 до 2 147 484 647. Вот пример:

Помимо Cardinal, для объявления беззнаковой натуральной переменной можно использовать ключевое слово Longword.

Целые числа, которые мы использовали до сих пор, имеют основное ограничение, заключающееся в том, что в их значениях не допускается использование десятичных разрядов. Object Pascal предоставляет плавающие типы данных, которые решают эту проблему. Самая фундаментальная плавающая переменная объявляется с помощью ключевого слова Single. Одна переменная занимает 4 байта и поэтому может хранить число в диапазоне от 1,5 x 10,45 до 3,4 x 10+38. Чтобы объявить такую ​​переменную с плавающей запятой, используйте ключевое слово Single, за которым следует имя переменной. Вот примеры:

Если переменная больше, чем может обработать тип данных Single, и требует большей точности, ее следует объявить с помощью ключевого слова Double. Тип двойной точности — это 8-байтовое десятичное или дробное число в диапазоне от 5,0 x 10 324 до 1,7 x 10 308.

Для еще большей переменной используйте 10-байтовый реальный тип данных с вызовом Extended. Расширенная переменная может хранить число в диапазоне от 3,4 x 10-4932 до 1,1 x 104 932.

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

Object Pascal также предоставляет тип данных AnsiString для объявления строковой переменной. Его переменная может быть объявлена ​​следующим образом:

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

Эта глава из книги

Эта глава из книги

Эта глава из книги 

Основной синтаксис Паскаля

Я пишу для опытных программистов, и этот текст не предназначен для начинающих по Object Pascal. Я предполагаю, что читатель уже понимает простые типы, такие как целые числа, типы с плавающей запятой, и даже сложные типы, такие как массивы, записи и указатели. Я выделю неожиданные или расширенные функции этих типов, поскольку они реализованы в Object Pascal.

Возможно, некоторые читатели в последний раз использовали Паскаль много лет назад и уже не имеют точного представления об этом языке. Многие программисты имели опыт работы с ANSI Pascal, но не с Object Pascal. Object Pascal относится к ANSI Pascal так же, как C++ к C. Если вы ожидаете, что вселенная Object Pascal будет напоминать относительно пресный мир ANSI Pascal, вас могут ожидать некоторые сюрпризы.

Материал этой главы необходим для понимания материала главы 5 "Редактор и отладчик". Короче говоря, я не могу обсуждать тонкости написания и отладки кода в редакторе Object Pascal, не рассмотрев сначала несколько важных синтаксических вопросов.

DELPHI ПРИМЕЧАНИЕ

Опытные программисты, использующие Object Pascal, захотят хотя бы бегло просмотреть эту главу, потому что в ней могут быть некоторые проблемы, такие как вариантные записи или динамические массивы, с которыми вы хотите разобраться. Дополнительные темы разбросаны по всей главе. Например, один раздел, который должны прочитать даже опытные пользователи Delphi, называется "Тип TBcd и точность вычислений с плавающей запятой", в котором рассматриваются новые процедуры для обработки типа TBcd.< /p>

Содержание этой главы

Pascal — строго типизированный язык. Компилятор очень заботится о ваших объявлениях типов, и то, что вы можете делать с переменными, строго ограничено вашим выбором типа. В старые времена это считалось плохой вещью, потому что считалось ограничением. Однако с годами общее мнение по этой теме изменилось. Все современные языки, такие как C++ и Java, пошли по стопам Паскаля, сделав упор на типизацию.

Pascal был изобретен в 1968 году и впервые реализован в 1970 году. В любом столь старом языке будут свои особенности. Однако в целом я считаю Паскаль очень хорошим языком. Если вы подошли к этой книге с другим предубеждением, я прошу вас отложить эти мысли в сторону, пока вы читаете эту главу. Вы можете быть удивлены мощью этого языка. В частности, программисты C++, вероятно, удивятся, обнаружив, что язык такой гибкий, а программисты Java удивятся, обнаружив, что в нем так много современных функций.

Большинство основных типов Pascal будут рассмотрены тем или иным образом. Однако есть две основные темы, которые я только затрону:

Объекты. Синтаксис Object Pascal для объявления и построения объектов будет рассмотрен в главе 4 «Объекты и интерфейсы», а также почти во всех главах части II «CLX». Однако в этой главе рассматривается выделение и освобождение памяти для объектов. Вы найдете этот материал в этой главе, посвященной указателям. В частности, вы должны увидеть разделы «Работа с указателями на объекты» и «Указатели, конструкторы и деструкторы». Включен краткий обзор синтаксиса конструктора и деструктора Pascal и несколько слов о написании виртуальных методов.

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

Читайте также: