IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Порядок цифр в числе
Mr.Fury
сообщение 12.11.2003 16:14
Сообщение #1





Группа: Пользователи
Сообщений: 4

Репутация: -  0  +


Помогите! Please! Никак не могу решить задачу :
Надо изменить порядок цифр в числе на обратный. Например:7658 на 8567!
ПОМОГИТЕ!!! PLEASE!!! ??? ???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GLuk
сообщение 12.11.2003 18:07
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Дык значит решать пробовал? Покажи, что смог сделать.
Какими ф-ми/процедурами собираешься пользоваться?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mr.Fury
сообщение 12.11.2003 19:59
Сообщение #3





Группа: Пользователи
Сообщений: 4

Репутация: -  0  +


Пробовал. Хочу использовать операторы цикла (WHILE и FOR).
Я посчитал кол-во цифр в числе.
Тут надо наверное как-то число разбить на цифры (отдельные переменные для
каждой цифры).Но никак у меня не получается! ??? :-[
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
fms
сообщение 12.11.2003 21:38
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Женский

Репутация: -  0  +


можно делить на 10 брать целую часть вычитать из нецелого целое и умножать на 10. выводить полученную цифру и так далее.. пока не дойдешь до 1-ой цифры.

вроде так..


--------------------
непонимающая..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 13.11.2003 9:19
Сообщение #5


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


А почему бы не преобразовать число в строку, поменять порядок символов и преобразовать обратно в число?


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mr.Fury
сообщение 13.11.2003 15:10
Сообщение #6





Группа: Пользователи
Сообщений: 4

Репутация: -  0  +


fms,а как быть если число очень-много-значное?
Значит надо использовать оператор цикла.
Как бы сделать так, чтобы каждая цифра присваивалась своей переменной ?
??? ??? ??? ???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 13.11.2003 18:40
Сообщение #7


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Код

Var
 K : LongInt;

Function SwapNum(nn : LongInt) : LongInt;
Var S,Sres   : String;
   Result   : LongInt;
   i        : Byte;
   Code     : Integer;
Begin
  If nn<10 then
  Begin
    SwapNum:=nn;
    Exit;
  End;
  Str(NN,S);
  Sres:=S;
  For i:=1 to Length(S) do Sres[Length(S)-i+1]:=S[i];
  Val(Sres,Result,Code);
  If Code=0 then SwapNum:=Result else SwapNum:=0;
End;

Begin
 Write('Введите число: ');Readln(k);
 Write('Результат    : ',SwapNum(k));
End.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Mr.Fury
сообщение 13.11.2003 19:14
Сообщение #8





Группа: Пользователи
Сообщений: 4

Репутация: -  0  +


Спасибо APAL ,но мне надо сделать это используя оператор WHILE.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
fms
сообщение 17.11.2003 21:11
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Женский

Репутация: -  0  +


Цитата
fms,а как быть если число очень-много-значное?
Значит надо использовать оператор цикла.
Как бы сделать так, чтобы каждая цифра присваивалась своей переменной ?
??? ??? ??? ???


а какая разница?! очень многозначное или не очень? ты просто в цикле сделай деление на 10 и все. а если ты сделаешь чтобы цифра да еще и своей переменной то там вообще свихнуться можно.. по моему..


--------------------
непонимающая..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
trminator
сообщение 18.11.2003 19:31
Сообщение #10


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Народ, вы о чем? Какие строки? Если число неотрицательное, то вот решение
Код

program forforum;
var a, b: integer;
begin readLn(a); b:=0;
 while a<>0 do begin
   b:=b*10+a mod 10;
   a:=a div 10
 end;
 writeLn(b)
end.


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Kolan
сообщение 18.11.2003 20:14
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 11

Репутация: -  0  +


Можно сделать используя стек. Преобразовать число в строку и потом создать список и заполнить его спереди и получиться наоборот ;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
trminator
сообщение 19.11.2003 19:37
Сообщение #12


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Цитата
Можно сделать используя стек. Преобразовать число в строку и потом создать список и заполнить его спереди и получиться наоборот ;)

Да, это видимо будет намного быстрее и проще, чем один-единственный оператор цикла. А насколько меньше потребуется памяти...


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 13:51
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"