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

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

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

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





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

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


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


Профи
****

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

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


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





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

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


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


Бывалый
***

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

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


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

вроде так..


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


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

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

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


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


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





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

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


fms,а как быть если число очень-много-значное?
Значит надо использовать оператор цикла.
Как бы сделать так, чтобы каждая цифра присваивалась своей переменной ?
??? ??? ??? ???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





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

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


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


Бывалый
***

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

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


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


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


--------------------
непонимающая..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

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

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


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


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

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

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


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

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


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

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

 





- Текстовая версия 29.03.2024 7:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name