Как перевести число в строку в паскале
Перейти к содержимому

Как перевести число в строку в паскале

  • автор:

Developing.ru

Привет всем
в общем у меня обыкновенный справочник,данные в матрицу я вводил типа string, теперь мне нужно организовать поиск по 1 критерию «входное напряжение». Числительный и строковый тип не сравниваются, нужно сделать перевод, как это осуществить? вот ссылка на программу

Sheka Сообщения: 199 Зарегистрирован: 17 май 2009, 15:48 Контактная информация:

если в паскале, то
есть процедура val(s:string,x:integer,код ошибки:integer); преобразует стоку в целочисленное х.
str(x,s) преобразует х в строку.
для нецелочисленных, по моему, нет перевода.

в делфи есть функции strtofloat(s) и floattostr(x) для действительных.

Rudya Сообщения: 9 Зарегистрирован: 15 июн 2009, 19:54
я знаю о существовании такой процедуры, но не очень понимаю как ею пользоваться. Паскаль.
Sheka Сообщения: 199 Зарегистрирован: 17 май 2009, 15:48 Контактная информация:

7) Процедура STR.
Формат:
STR(X,R);
Процедура STR перетворює число Х в рядок символів і розміщує результат в R.
Наприклад: надрукувати число в зворотному порядку.
Var x:integer;
r: string[5];
Begin
Writeln(‘введіть додатне ціле число’);
Readln(x);
Str(x,r);
Writeln(r[5]+r[4]+r[3]+r[2]+r[1]);
Readln;
End.
8) Процедура VAL.
Формат:
VAL(R,X,C);
Процедура VAL перетворює рядок R в число і розміщує результат в Х.
С-змінна типу integer, яка вказує чи не було при перетворенні помилок.
С=номеру позиції першого помилкового символу або С=0, якщо помилок не було.

извините за язык, но в переводчике может не правильно перевести, а вы может поймете.

Rudya Сообщения: 9 Зарегистрирован: 15 июн 2009, 19:54
во всем разобрался самостоятельно, тему можно закрывать
Хыиуду Сообщения: 2388 Зарегистрирован: 06 мар 2005, 21:03 Откуда: Москва Контактная информация:
Пользователь Rudya получает устное предупреждение за некорректное название темы. Тема закрыта.

Искусство программирования — заставить компьютер делать все то, что вам делать лень.
Для «спасибо» есть кнопка «Спасибо» в виде звездочки внизу под ником автора поста.

6 сообщений • Страница 1 из 1

  • Системное и прикладное программирование
  • ↳ Win API, Shell..
  • ↳ C и C++
  • ↳ Delphi и Pascal
  • ↳ Программирование на Pascal и Delphi (Object Pascal)
  • ↳ Все вопросы ООП
  • ↳ Компоненты в Delphi
  • ↳ Delphi и WinAPI, ActiveX и OLE , COM и DCOM, и т.д
  • ↳ Java
  • ↳ MS Office и VB(A).
  • ↳ Ассемблер
  • WEB программирование
  • ↳ JScript, VBScript, DHTML.
  • ↳ Perl, PHP, ASP .
  • Некатегоризированное
  • ↳ Вопрошайка
  • ↳ SQL
  • ↳ Алгоритмы
  • ↳ Дизайн и графика
  • Администрирование
  • ↳ Apache, IIS.
  • ↳ Операционные системы
  • Работа
  • ↳ Вакансии и заказы для программистов
  • ↳ Поиск работы и заказов.
  • ↳ Решите мне задачку
  • ↳ задачи на Паскале и Delphi
  • ↳ задачи на C и C++
  • ↳ задачи на Basic и Visual Basic (VB)
  • Прочее
  • ↳ Жалобная книга
  • ↳ Флейм.

Преобразование числа в строку

Author24 — интернет-сервис помощи студентам

Очень нужно, помогите пожалуйста.
Нужно сделать преобразование числа в строку (целочисленное значение без знака).

Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Преобразование числа в строку
Здравствуйте. Мне нужно преобразовать число в строку, чтобы каждые три символа отделялись запятой.

Преобразование числа
Имеется число n в границах от 00 до 99, записанное двумя цифрами (если число меньше 10, то перед.

Получить сумму последних m цифр, числа n, не используя преобразования числа в строку
Даны натуральные числа n и m. Получить сумму последних m цифр, числа n, не используя преобразования.

Напечатать в одну строку все числа от a до b, пропуская числа, кратные 5
42. Напечатать в одну строку все числа от a до b, пропуская числа, кратные 5.

72 / 72 / 60
Регистрация: 14.12.2010
Сообщений: 201

Лучший ответ

Сообщение было отмечено Памирыч как решение

Решение

1 2 3 4 5 6 7 8
uses crt; var a:integer; b:string; begin readln(a); b:=inttostr(a); writeln(a); end.

ну вот к примеру

Добавлено через 50 минут
в седьмой строке ошибся там: Writeln(b);

Преобразовать строку в число. Пример использования процедуры Val() в Паскаль

vedro-compota's picture

Для преобразований строк в числа в Паскале используется стандартная процедура процедура $val()$ со следующей сигнатурой:

procedure Val(S: String; Var V; var Code : Integer);
  1. $S$ — переменная со строковым типом (string). Должна представлять последовательность символов, формирующих знаковое целое число — это та строка, которую мы будем преобразовывать.
  2. $V$ — переменная типа Real или Integer (здесь имеет место перегрузка процедуры). В этой переменной будет содержаться число, если преобразование пройдёт успешно
  3. $Code$ — переменная типа Integer — позиция, в которой произошла ошибка при преобразовании, или нуль, если ошибки не было.

При этом следует отметить, что переменные $V$ и $Code$ принимаются переменной по ссылке — то есть хотя процедура и не возвращает значений, но она изменит значения этих двух переменных в области вызова и таким образом можно будет получить результат преобразования.

Что делает процедура val()

  • Процедура $val()$ делает попытку преобразовать строковое значение $S$ в его числовое представление $V$.
  • Переменная $Code$ будет содержать номер позиции, в которой произошла ошибка при преобразовании, или нуль, если ошибки не было.
  • Для успешного преобразования, необходимо, чтобы значение $S$ было корректной записью числа, рассмотрим примеры вызовов для разных значений и их типов:
var intChislo, Code : Integer; rChislo: real; s: string; begin s := '123'; Val(s, intChislo, Code); writeln(intChislo, ' | Error code: ', Code); // Получим: 123 | Error code: 0 -- все хорошо s := '1q23'; Val(s, intChislo, Code); writeln(intChislo, ' | Error code: ', Code); < Получим: 0 | Error code: 2 -- т.к. в позиции 2 стоит некорректный для числа символ q>s := '17.5'; Val(s, intChislo, Code); writeln(intChislo, ' | Error code: ', Code); < Получим: 0 | Error code: 2 -- т.к. в позиции 3 стоит точка, а этот символ не участвует в записи типа integer, т.е. '17.5' некорректный литерал для преобразования в integer>s := '17.5'; Val(s, rChislo, Code); writeln(rChislo, ' | Error code: ', Code); < Получим: 1.7500000000000000E+001 | Error code: 0 -- прошло успешно, т.к. '17.5' корректный литерал для преобразования в real>readln(); // удерживаем консоль end.

Пример использования $val()$ с обработкой кода ошибки

var I, Code : Integer; s: string; begin writeln('vvedite chislo:'); readln(s); < // далее попытаемся преобразовать полученную строку в число Val(s, I, Code); // вызываем процедуру преобразования < Была ошибка при преобразовании ? >if (Code <> 0) then writeln('Oshibka pri preobrazovanii v pozicii : ', Code) else writeln('Uspeshno poluchili chislo = ', I); readln(); // удерживаем консоль end.
  • Val (процедура): http://pascal.net.ru/Val

Key Words for FKN + antitotal forum (CS VSU):

  • паскаль число в строку функция
  • Как преобразовать строку в число В Паскале

Процедуры STR и VAL.

В строковую переменную можно записывать не только буквы, но и цифры. Однако это будут не числа, как таковые, а их символьное представление. Для преобразования символьных представлений числа в само число, и наоборот, используются процедуры STR и VAl.

Например, возьмем 2 числа: 125 и 347. Если эти числа записаны в строковых переменных, то с ними можно производить те действия, которые производятся над строками. Например, в результате операции сцепления 125+347 получится 125347. Если же данные числа будут записаны в переменных типа Integer или Real, то над ними можно производить операции, предусмотренные для чисел (сложение, вычитание умножение, деление, DIV, MOD и т.д.). Например, в результате операции сложения 125+347 получится 472.
В языке программирования Pascal предусмотрена возможность преобразования чисел в их символьное представление и наоборот.
Процедура STR преобразует число целого или вещественного типов в его строковое представление. Процедура имеет 2 параметра: STR (X, ST), где «X» — это число, а ST – его строковое представление. Также, можно указывать формат преобразования: STR(X:A:B, ST), где «A» задает ширину всего поля, которое выделяется для строкового представления числа, а «B» — количество символов в дробной части (последний параметр имеет значение в том случае, если преобразуется вещественное число). Процедура STR делает с числом то же, что и оператор Writeln перед тем как вывести число на экран (преобразует число в символ).
Процедура VAL преобразует строковое представление числа в само число, которое можно записать в целочисленную или вещественную переменную. Процедура имеет 3 параметра: VAL (ST, X, CODE), где ST – строка, которую необходимо преобразовать в число, X – вещественная или символьная переменная, в которую записывается это число, CODE – необязательный параметр, который, в случае ошибки будет содержать номер позиции, в которой обнаружен ошибочный символ.

Использование процедуры STR.

program string7; uses crt; var stroka,stroka1,stroka2:string; x,y,z:integer; begin clrscr; x:=1234; y:=5678; z:=x+y; writeln(z); str(x,stroka1); str(y,stroka2); stroka:=stroka1+stroka2; writeln(stroka); readln end.

Строка №3. Создаем 3 строковые переменные.

Строка №4. Создаем 3 целочисленные переменные.

Строка №7. В 1-ую переменную типа Integer записываем число 1234.

Строка №8. Во 2-ую переменную типа Integer записываем число 5678.

Строка №9. Складываем эти числа, результат записываем в 3-ю переменную.

Строка №10. Выводим результат на экран.

Строка№11. Переводим 1-ое число в его строковое представление, результат сохраняем в переменной «stroka1».

Строка №12. Переводим 2-ое число в его строковое представление результат сохраняем в переменной «stroka2».

Строка №13. Производим над строками операцию сцепления и записываем результат в переменную «stroka».

Строка №14. Выводим результат на экран.

procedura Str

procedura Str.

О процедуре STR также можно прочитать в разделе, посвященному графике в Pascal.

Использование процедуры VAL.

Напишем программу, в которой строковой переменной будет присвоено значение, определяющее дату, например, 23.02.1965. Пусть эта дата обозначает год вашего рождения. Программа, должна подсчитать, сколько вам лет на текущий момент. Текущим моментом будем считать 2012 год.

program string8; uses crt; var stroka1,stroka2:string; rog, let:integer; begin clrscr; stroka1:='23.02.1965'; stroka2:=copy(stroka1,7,4); val(stroka2,rog); let:=2012-rog; writeln(let); readln end.

Строка №7. В переменную «stroka1» записываем дату рождения.

Строка №8. В переменную «stroka2» копируем из переменной «stroka1» последние 4 символа, 1965.

Строка №9. Преобразовываем эти 4 символа в число и записываем это число в целочисленную переменную «rog».

Строка №10. В целочисленную переменную «let» записываем значение, которое получится при вычитании из числа 2012 числа 1965.

Строка №11. Выводим значение переменной «let» на экран.

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

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