![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Mr.Fury |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 4 Репутация: ![]() ![]() ![]() |
Помогите! Please! Никак не могу решить задачу :
Надо изменить порядок цифр в числе на обратный. Например:7658 на 8567! ПОМОГИТЕ!!! PLEASE!!! ??? ??? |
GLuk |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дык значит решать пробовал? Покажи, что смог сделать.
Какими ф-ми/процедурами собираешься пользоваться? |
Mr.Fury |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 4 Репутация: ![]() ![]() ![]() |
Пробовал. Хочу использовать операторы цикла (WHILE и FOR).
Я посчитал кол-во цифр в числе. Тут надо наверное как-то число разбить на цифры (отдельные переменные для каждой цифры).Но никак у меня не получается! ??? :-[ |
fms |
![]()
Сообщение
#4
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 195 Пол: Женский Репутация: ![]() ![]() ![]() |
можно делить на 10 брать целую часть вычитать из нецелого целое и умножать на 10. выводить полученную цифру и так далее.. пока не дойдешь до 1-ой цифры.
вроде так.. -------------------- непонимающая..
|
APAL |
![]()
Сообщение
#5
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
А почему бы не преобразовать число в строку, поменять порядок символов и преобразовать обратно в число?
-------------------- |
Mr.Fury |
![]()
Сообщение
#6
|
![]() Группа: Пользователи Сообщений: 4 Репутация: ![]() ![]() ![]() |
fms,а как быть если число очень-много-значное?
Значит надо использовать оператор цикла. Как бы сделать так, чтобы каждая цифра присваивалась своей переменной ? ??? ??? ??? ??? |
APAL |
![]()
Сообщение
#7
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Код 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. -------------------- |
Mr.Fury |
![]()
Сообщение
#8
|
![]() Группа: Пользователи Сообщений: 4 Репутация: ![]() ![]() ![]() |
Спасибо APAL ,но мне надо сделать это используя оператор WHILE.
|
fms |
![]()
Сообщение
#9
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 195 Пол: Женский Репутация: ![]() ![]() ![]() |
Цитата fms,а как быть если число очень-много-значное? Значит надо использовать оператор цикла. Как бы сделать так, чтобы каждая цифра присваивалась своей переменной ? ??? ??? ??? ??? а какая разница?! очень многозначное или не очень? ты просто в цикле сделай деление на 10 и все. а если ты сделаешь чтобы цифра да еще и своей переменной то там вообще свихнуться можно.. по моему.. -------------------- непонимающая..
|
trminator |
![]()
Сообщение
#10
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
Народ, вы о чем? Какие строки? Если число неотрицательное, то вот решение
Код 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. -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
Kolan |
![]()
Сообщение
#11
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 11 Репутация: ![]() ![]() ![]() |
Можно сделать используя стек. Преобразовать число в строку и потом создать список и заполнить его спереди и получиться наоборот ;)
|
trminator |
![]()
Сообщение
#12
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Можно сделать используя стек. Преобразовать число в строку и потом создать список и заполнить его спереди и получиться наоборот ;) Да, это видимо будет намного быстрее и проще, чем один-единственный оператор цикла. А насколько меньше потребуется памяти... -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
![]() ![]() |
![]() |
Текстовая версия | 25.03.2023 10:56 |