![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Анна |
![]()
Сообщение
#1
|
![]() Бывалая ![]() ![]() ![]() Группа: Пользователи Сообщений: 290 Пол: Женский Реальное имя: Анютка Репутация: ![]() ![]() ![]() |
Дано целое число N (>0). Используя операции деления нацело и взятия остатка от деления, вывести все его цифры, начиная с самой правой (разряда едениц) на экран.
Пробелемы ..
uses crt;
var n: byte;
begin
clrscr;
writeln ('Введите число: '); readln (n);
N mod 10;
{ :( }
end.
Как с право на лево вывести цифры? Не знаю. |
![]() ![]() |
Дож |
![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
base:=1;
While 10*base <= n do begin
base:=base*10;
end;
k:=n;
While base<>1 do begin
write(k div base)
k:=k mod base;
base:=base div 10;
end;
write(k);
-------------------- Доброго времени суток.
:nnn: |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Дож,
var
x: integer;
begin
x := 1265;
while x <> 0 do begin
write(x mod 10);
x := x div 10;
end;
end.
Не проще? |
Анна |
![]()
Сообщение
#4
|
![]() Бывалая ![]() ![]() ![]() Группа: Пользователи Сообщений: 290 Пол: Женский Реальное имя: Анютка Репутация: ![]() ![]() ![]() |
Мне одни нули выводит, если к примеру было число 547 - результат: 000
Это по программе Дож Сообщение отредактировано: Анна - 3.12.2005 20:17 |
Дож |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo,
твой алгоритм вроде бы печатает цифры в обратном порядке ![]() -------------------- Доброго времени суток.
:nnn: |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата вывести все его цифры, начиная с самой правой (разряда едениц) на экран Дож, а он что должен делать, как ты думаешь? |
Дож |
![]()
Сообщение
#7
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
Volvo Да, точно, не заметил...
Анна, все чесно... Эскизы прикрепленных изображений ![]() -------------------- Доброго времени суток.
:nnn: |
Анна |
![]()
Сообщение
#8
|
![]() Бывалая ![]() ![]() ![]() Группа: Пользователи Сообщений: 290 Пол: Женский Реальное имя: Анютка Репутация: ![]() ![]() ![]() |
To: Дож
ага, разобралась ![]() Можешь прокомментировать? To: volvo А твою программу я понимаю как: var
x: integer;
begin
x := 1265;
while x <> 0 do begin {пока число не 0 выполняется цикл ...}
write(x mod 10); {выводим остаток от делимого числа}
x := x div 10; {это число делим без остатка и начинаеим цикл снова, до тех пор пока оно не обратится в 0}
end; {заверш. цикл}
end. {заверш. программу}
|
Дож |
![]()
Сообщение
#9
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: ![]() ![]() ![]() |
Анна, нечто типа этого:
base:=1;
While 10*base <= n do begin
base:=base*10; {Делает в base столько нулей, сколько разрядов в n}
end;
k:=n;{Дабы не испортить значение в n юзаем др. переменную}
While base<>1 do begin
write(k div base){печатаем разряд номер КОЛ_НУЛЕЙ_BASE}
k:=k mod base;{Убираем уже ненужный разряд}
base:=base div 10;{делим base на 10}
end;
write(k);
-------------------- Доброго времени суток.
:nnn: |
![]() ![]() |
![]() |
Текстовая версия | 8.08.2025 7:24 |