Другие языки программирования и технологии
(Turbo Pascal)Текстовые файлы - символьное представление
Текст представляет собой запись натурального числа N. Получить символьное представление N в виде последовательности цифр и пробелов, отделяющих группы по три цифры, начиная справа. Например, если N=1753967, то должно получиться 1 753 967.
Доброго времени суток.
Если "Текст представляет собой запись натурального числа N", то это уже символьное представление. Следовательно остается разделить это представление на триады. Это можно сделать, например, так.
L := Length(S); {длина строки цифр}
for i:= L downto 1 do
if ((L-i+1) mod 3 = 0) and (i > 1) then Insert(' ', S, i); {вставка пробелов в нужные места}
WriteLn(S); {а это чтобы полюбоваться на результат}
Удачи!
Если "Текст представляет собой запись натурального числа N", то это уже символьное представление. Следовательно остается разделить это представление на триады. Это можно сделать, например, так.
L := Length(S); {длина строки цифр}
for i:= L downto 1 do
if ((L-i+1) mod 3 = 0) and (i > 1) then Insert(' ', S, i); {вставка пробелов в нужные места}
WriteLn(S); {а это чтобы полюбоваться на результат}
Удачи!
запросто напишу нужную вам функцию, баксов за 3, обращайтесь.
Не проверял, но должно работать
переменные
i, c:integer;
N, str:string;
ввод N \\ строка 100, 10000 и т. д. - если цифра то нужно преобразовать в строку через inttostr(N)
if Length(N)>4 then \\ если строка длиньше 4 символов, например 10000 и т. д, то нужно её преобразовать
begin
for i:=1 to Length(N) do \\ шагаем по всей длине строки слева направо - i:=i+1
begin
c:=Length(N)-i; \\ шагаем по всей длине строки справа на лево - с: =с-1(делаем обратный отчет)
str:=N[c]+str; \\ вставляем символ в начало строки по шагу "с" (так как двигаемся справо на лево)
if ((с mod 3)=0)and(i<>Length(N)) then \\ если очередной шаг делеться на 3 без остатка и не равен концу строки, то
str:=' '+str; \\ вначало строки вставляем пробел (то есть после каждого 3-го символа справа на лево нужно вставить пробел - например 1 000)
end;
end
else
str:=N; \\ если число меньше 4 символов например 999, то её не нужно преобразовывать
выводим str; \\ получаем результат
end.
переменные
i, c:integer;
N, str:string;
ввод N \\ строка 100, 10000 и т. д. - если цифра то нужно преобразовать в строку через inttostr(N)
if Length(N)>4 then \\ если строка длиньше 4 символов, например 10000 и т. д, то нужно её преобразовать
begin
for i:=1 to Length(N) do \\ шагаем по всей длине строки слева направо - i:=i+1
begin
c:=Length(N)-i; \\ шагаем по всей длине строки справа на лево - с: =с-1(делаем обратный отчет)
str:=N[c]+str; \\ вставляем символ в начало строки по шагу "с" (так как двигаемся справо на лево)
if ((с mod 3)=0)and(i<>Length(N)) then \\ если очередной шаг делеться на 3 без остатка и не равен концу строки, то
str:=' '+str; \\ вначало строки вставляем пробел (то есть после каждого 3-го символа справа на лево нужно вставить пробел - например 1 000)
end;
end
else
str:=N; \\ если число меньше 4 символов например 999, то её не нужно преобразовывать
выводим str; \\ получаем результат
end.
Похожие вопросы
- Turbo Pascal (файлы)
- задача TurboPascal с текстовым файлом, помогите....
- Люди помогите пожалуйста....Кто понимает TURBO PASCAL
- Помогите сделать задания по програмированию(двумерные массивы)Turbo Pascal
- Как вставить текст в Turbo Pascal 7.1???
- Turbo Pascal
- Объясните смысл прогаммы в Turbo Pascal
- Я в коледже Turbo Pascal прохожу. Скажите он вообще где нибудь нужен? Может Turbo Pascal морально устарел?
- DOS OC или создание ОС на Turbo Pascal
- turbo pascal 7.0 Определить принадлежность к области точек с заданными координатами!!!