Программа которая выводит число словами паскаль

В строковую переменную можно записывать не только буквы, но и цифры. Однако это будут не числа, как таковые, а их символьное представление. Для преобразования символьных представлений числа в само число, и наоборот, используются процедуры 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 перед тем как вывести число на экран (преобразует число в символ).

Урок 1. Первая программа на Pascal (Сложение чисел)


Процедура 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. Выводим результат на экран.

Читайте также:
6 как называется устройство компьютера для хранения программ и данных

Строка№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» на экран.

Источник: mojainformatika.ru

Процедура Str

Основы программирования 2.0

Процедура Str в Паскале преобразует число или перечисление в строку. Синтаксис:

procedure Str(var X : TNumericType; var S : string);

Процедура Str возвращает строку, представляющую значение X , которое может быть любым числовым или перечисляемым типом. Фактическое объявление процедуры Str не соответствует синтаксису Паскаль и должно быть

procedure Str(var X : TNumericType [:NumPlaces [:Decimals]]; var S : String);

где необязательные спецификаторы NumPlaces и Decimals управляют форматированием строки:

  • NumPlaces задаёт общую ширину строки
  • Decimals задаёт количество десятичных знаков после символа десятичного разделителя

Процедуру Str также можно использовать для преобразования значения перечисляемого типа в строковое представление объявленного перечисления. Это означает, что будет работать следующее:

type TMyEnum = (One); var s : string; begin Str(One, s); Writeln(s); end.

Эта программа выведет на экран слово One . То же самое сделает и следующая программа:

type TMyEnum = (One); var s : string; E : TMyEnum; begin E := One; Str(E, s); Writeln(s); end.

Преобразование числа может быть выполнено, например, так:

Str(150, s); Writeln(s);

Если вы хотите преобразовать вещественное число и задать определённое количество знаков после запятой, то это можно сделать так:

Str(Pi:0:4, s); Writeln(s);

Примеры вывода показаны на рисунке:

Читайте также:
Как запустить программу через другую программу питон

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

Если хотите, можете с помощью процедуры Str создать собственную функцию преобразования вещественных чисел в строку с заданным количеством знаков после запятой. Функция может быть, например, такой:

//**************************************************************** // Функция преобразует вещественное число в строку // с указанным количеством знаков после запятой // ВХОД: х — число; n — количество знаков после запятой // ВЫХОД: строковое представление числа //**************************************************************** function MyFloatToStr(x : single; n : byte) : string; var st : string; begin Str(x:0:n, st); Result := st; end;

Здесь с помощью спецификатора Decimals мы задаём количество знаков после запятой. В программе функцию можно использовать так:

Writeln(MyFloatToStr(Pi*2, 3));

При этом на экран будет выведена строка 6.283

Спецификатор NumPlaces тоже может пригодиться, например, при выводе таблиц. С его помощью мы можем задать одинаковую ширину строки, и на экране вывод будет занимать всегда одинаковое заданное количество знакомест, независимо от того, сколько цифр у нас в числе. Пример:

for i := 1 to 16 do begin Str(i:3, s); if ((i mod 4) = 0) then WriteLn(s) else Write(s); end;

На экран будет выведена такая ровная таблица:

Источник: info-master.su

Программа которая выводит число словами паскаль

посмотрите пожалуйста в программе есть косяк все вроде нормально работает, но вместо того чтобы, прога выводила «один миллион» она выводит «одна мллион», так же и с двойко, потом прога не выводит 20000, 30000. 900000. 20000000,30000000. 900000000., вместо 20000 «двадца», 20000000 «двадцать». миллиарды вообще не выводит ((( , хотя 10000, 10000000 выводит, и числа например 22000 или 999999999 выводит отлично. помогите пожалуйста разобраться.

Последний раз редактировалось mares; 30.04.2010 в 00:17 .
Форумчанин
Регистрация: 30.04.2010
Сообщений: 317
icq:627719[сто сорок четыре] — помогу с Pascal Delphi!
Регистрация: 28.04.2010
Сообщений: 9
а разница то какая?

ну есть наверно разница, они в паскале не работают, твои ссылки тоже не работают

«Запрошенная страница не существует.
Вы можете перейти на главную страницу сайта

CyberGuru.ru — программирование и операционные системы

или воспользоваться поиском ниже.»

Форумчанин
Регистрация: 30.04.2010
Сообщений: 317

var st:string; n,i:integer; c:array[1..4]of integer; s:array[1..4,1..3]of string; begin s[1,1]:=’миллиард’; s[1,2]:=’миллиарда’; s[1,3]:=’миллиардов’; s[2,1]:=’миллион’; s[2,2]:=’миллиона’; s[2,3]:=’миллионов’; s[3,1]:=’тысяча’; s[3,2]:=’тысячи’; s[3,3]:=’тысяч’; s[4,1]:=»; s[4,2]:=»; s[4,3]:=»; write(‘Введите число до 2 147 483 647 n=’); readln(n); st:=»; c[1]:=n div 1000000000; c[2]:=(n mod 1000000000) div 1000000; c[3]:=(n mod 1000000) div 1000; c[4]:=n mod 1000; for i:=1 to 4 do write(c[i],’ ‘); writeln; for i:=1 to 4 do if c[i]<>0 then begin if c[i] div 100<>0 then case c[i] div 100 of 1:st:=st+’сто’; 2:st:=st+’двести’; 3:st:=st+’триста’; 4:st:=st+’четыреста’; 5:st:=st+’пятьсот’; 6:st:=st+’шестьсот’; 7:st:=st+’семьсот’; 8:st:=st+’восемьсот’; 9:st:=st+’девятьсот’; end; if (c[i] mod 100) div 10<>1 then begin case (c[i] mod 100) div 10 of 2:st:=st+’ двадцать’; 3:st:=st+’ тридцать’; 4:st:=st+’ сорок’; 5:st:=st+’ пятьдесят’; 6:st:=st+’ шестьдесят’; 7:st:=st+’ семьдесят’; 8:st:=st+’ восемьдесят’; 9:st:=st+’ девяносто’; end; case c[i] mod 10 of 1:if i=3 then st:=st+’ одна’ else st:=st+’ один’; 2:if i=3 then st:=st+’ две’ else st:=st+’ два’; 3:st:=st+’ три’; 4:st:=st+’ четыре’; 5:st:=st+’ пять’; 6:st:=st+’ шесть’; 7:st:=st+’ семь’; 8:st:=st+’ восемь’; 9:st:=st+’ девять’; end; end else case (c[i] mod 100) of 10:st:=st+’ десять’; 11:st:=st+’ одиннадцать’; 12:st:=st+’ двенадцать’; 13:st:=st+’ тринадцать’; 14:st:=st+’ четырнадцать’; 15:st:=st+’ пятндцать’; 16:st:=st+’ шестнадцать’; 17:st:=st+’ семнадцать’; 18:st:=st+’ восемнадцать’; 19:st:=st+’ девятнадцать’; end; if (c[i] mod 100>=10) and (c[i] mod 100<=19) then st:=st+’ ‘+s[i,3]+’ ‘ else case c[i] mod 10 of 1:st:=st+’ ‘+s[i,1]+’ ‘; 2..4:st:=st+’ ‘+s[i,2]+’ ‘; 5..9,0:st:=st+’ ‘+s[i,3]+’ ‘; end; end; writeln(st); readln; end.
все работает. по крайней мере для чисел <2 147 483 647
icq:627719[сто сорок четыре] — помогу с Pascal 2 147 483 647

Читайте также:
Как отключить уведомления программ

спасибо тебе большое.

вопрос есть, ты же не спользуешь значение longint почему тогда можно вводить только до 2 147 483 647 ведь это только со значением longint такое

ребята а можно сделать чтобы без ограничения было, чтобы до 999 999 999 999 миллиардов.

Последний раз редактировалось Stilet; 19.05.2010 в 09:15 .
Регистрация: 09.01.2008
Сообщений: 26,238

и прекращайте заниматься кросспостингом.

Пользователь
Регистрация: 20.04.2010
Сообщений: 10

ссылка не октрывается. (((

Последний раз редактировалось Stilet; 19.05.2010 в 09:16 .
Регистрация: 09.01.2008
Сообщений: 26,238
Какая ссылка не открывается то.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Число прописью. Делфи ilnar Помощь студентам 2 18.01.2010 16:42
Как в паскале перевести число с 10-ной с/с в 16-ную с/с Vika Помощь студентам 6 23.12.2008 20:00
Как найти большее число из имеющихся значений в Паскале? Auditor Помощь студентам 7 05.05.2008 21:57
Срочно! Помогите построить СДНФ на Паскале число переменных задает пользователь stscolt Помощь студентам 1 21.04.2008 22:20
Число прописью по русски XPAiN Компоненты Delphi 15 07.01.2008 11:03

Источник: www.programmersforum.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru