Как преобразовать integer в string pascal

Помогите с ошибкой "Нельзя преобразовать тип string к integer"

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

Посмотрите другие вопросы с метками pascal или задайте свой вопрос.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.12.3.40888

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как преобразовать integer в string pascal

Строки в паскале . Тип String

Строки в паскале . Тип String

Итак, что такое строка? Фактически строка — это массив, состоящий из символов. В строку могут входить все ASCII-символы (эти символы показаны в конце статьи). То есть машина, улица-сезам, три головы,13 стульев, 12ррр443р43г. **:па,542″№;%:? а а 69866 — все это строки. Строки объявляются так

Как вы видите, длину строки можно как указать, так и оставить неуказанной. Однако тут следует запомнить,что максимальная длина строки — 255 символов и больше вы в одну строку ну никак не запихнете. То есть, когда вы не указываете размер строки — она принимает максимальный размер в 255 символов. Обратиться к символу в строке просто — необходимо только знать его порядковый номер. Порядковый номер начинается с 1 и заканчивается соответственно 255 (помним, что строка не может быть длиннее 255 символов). Например имеем строки

Этот пример показывает, что строка может состоять из любых символов кодировки ASCII. Обратите внимание! Пробел также считается символом.Например строка g состоит из одного символа — пробела. Также существует ситуация, когда в строке совсем нет символов. Тогда говорят,что строка содержит пустой символ. В нашем примере это строка d. Следует также добавить, что стандартный Turbo Pascal не поддерживает кириллицу (русские буквы) в отличие от PascalABC и Free Pascal, которые без проблем работают с ними.

Идем дальше. В паскале со строками можно производить различные действия, а именно производить слияние (или как еще говорят конкантенацию) и сравнивать . произвести слияние просто: нам просто потребуется прибавить одну строку к другой, однако следует обратить внимание, что к чему прибавлять. Смотрим пример

Теперь о сравнении строк. Тут дело обстоит немного сложнее. Cледует запомнить, что сравнение строки производится слева направо и обязательно посимвольно. Это значит, что в первую очередь надо сравнить первые элементы, затем вторые, третьи и т.д. Если при посимвольном сравнении сравнивается пустой символ и любой другой символ, то пустой символ всегда будет меньше. Теперь самое главное. Сравнивают не сами символы а коды этих символов: чей код больше, тот символ и будет «больше». Таблица символов представлена ниже.

Для наглядности сравним несколько строк. Имеем

Тогда при сравнении

В паскале также есть необходимые функции и процедуры для работы с типом string. Перед тем как мы к ним перейдем запомните, что переменные m,n принимают только целочисленные значения,а Str и podStr являются строковыми переменными. Начнем с функций:

Copy (Str, m, p) находит в строке Str подстроку ,начинающуюся с символа на месте m и, начиная от него, копирует p символов вправо.

Concat (str1, str2,…,strn) соединяет (выполняет слияние) строк str1, str2,…,strn в одну строку.

Length (Str) определяет длину строки Str. В качестве результате выводиться целое число.

Pos (podStr, Str)

определяет есть ли в строке Str подстрока podStr. Если есть — то в результат будет записано целое число, которое указывает на номер символа в строке Str, с которого начинается подстрока podStr. Если же подстрока не входит в строку, то в результате будет выведено число 0.

Переходим к процедурам:

— процедура удаления подстроки из строки (подстрокой может быть и один символ). Опишем процесс удаления: в начале в строке Str находится символ с индексом m (стоящий на m месте), затем от этого символа отсчитываются p символов вправо и конце концов удаляется получившаяся подстрока.

Insert (podStr, Str, m) — процедура необходима для вставки подстроки podStr в строку Str. Подстрока вставляется в строку с позиции m.

Итак у нас остались две последние процедуры, с помощью которых можно преобразовывать типы в паскале. Наверное, некоторым не понятно зачем вообще преобразовывать типы? Приведу наглядный пример: допустим мы вводим строку d=’75409привет’ и нам необходимо сложить все числа в этой строке и для сложения использовать переменную sum. Теперь встает проблема. Мы не может суммировать числовые переменные, записанные в строку, потому что компилятор воспринимает их не как числа, а как символы. Для подсчета суммы переменная sum должна быть числовой, например иметь тип integer. Однако запись вида

у вас работать не будет потому, что переменные d[1],d[2],d[3],d[4],d[5] должны быть тоже числового типа (integer,real,byte). Вообще запомните,что лучше всего, когда переменные sum,d[1],d[2],d[3],d[4],d[5] одного типа. Делаем вывод: если мы работаем со строковой переменной, содержащей числа и нам необходимо произвести с этими числами какие-либо действия (сложение, вычитание, умножение, деления, нахождение среднего и т.д.), то нам сначала необходимо преобразовать тип этих чисел из строкового в числовой. Ну, а если кратко то string в, например, integer.

Существуют ситуации, когда мы наоборот произвели какие-то действия с числами и нам необходимо записать их в строку. Тогда нам необходимо преобразование типов, например integer в string.

А теперь перейдем собственно к процедурам преобразования типов.

— используя эту процедуру можно преобразовать строковую переменную в числовую. Преобразуется строка Str и результат записывается в переменную k. А переменная pr необходима для проверки преобразования на ошибки. Если во время преобразования произошла ошибка, то в переменную pr записывается целое число, которая указывает на номер символа в строке Str, с которого началась ошибка в преобразовании. Если ошибок нет, то pr = 0.

— процедура обратная процедуре Val. То есть с ее помощью числовая переменная преобразуется в строковую. В данном случае числовая переменная k преобразуется в строку Str.

И напоследок я хотел бы обратить ваше внимание на интересную особенность. В начале статьи я сказал, что длина строки может быть в диапазоне от 1 и до 255 символов. На самом деле размерность строки 0.255, однако элемент stroka[0] не предназначен для записи символов. В него записывается длина строки причем записывается она в виде знака ‘#’ (решетка) и цифр. Для того ,чтобы узнать длину строки достаточно использовать команду

А чтобы изменить длину строки нужно использовать присвоение. Изменим длину строки stroka

В этом примере мы изменили длину строки и теперь она равна 10. Внимание работа с нулевым элементом (stroka[0]) возможна не в каждом компиляторе. В Turbo Pascal это сделать можно, а вот в PascalABC нельзя!

5 Replies to “Строки в паскале . Тип String”

А можно статью про то, как написать функцию замены строки (каждого вхождения)? И как наиболее эффективно это можно сделать?

Как же на паскале программируют с длиной строки в 255 символо.

вопрос,
Ну а что здесь такого? строка имеет ограничение в 225 символов ,но ведь можно использовать массив строк
да и не забывайте,что речь идет о turbo pascal, в pascalABC ,например, ограничение на длину строк нет

Правописание «тся»,»ться» в школе, наверно, не проходили…

Мелкие орфографические ошибки совсем не мешают тем, кто пришел сюда действительно узнать что-то новое, а не ерундой помаяться.

Перевод числа из string в integer

Вывести двоичный код вводимого числа(integer) и наоборот из двоичного в integer.
Напишите плиззз программу, которая выводит двоичный код вводимого числа(integer) и наоборот из.

Напишите функцию function count(x:integer):integer;, которая вычисляет количество цифр числа
Напишите функцию function count(x:integer):integer;, которая вычисляет количество цифр числа. .

Из Integer в String
Не могу понять проблему. Задача такая, если в строке не пробел, то записываем в новую строку. Если.

Приведение типов String к Integer
var a1,a2,i:integer; s,s1,s2:string; begin read(s); for i:=1 to length(s) do begin if i=1.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *