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

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

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

> Цикл с условием
Анна
сообщение 3.12.2005 20:02
Сообщение #1


Бывалая
***

Группа: Пользователи
Сообщений: 290
Пол: Женский
Реальное имя: Анютка

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


Дано целое число N (>0). Используя операции деления нацело и взятия остатка от деления, вывести все его цифры, начиная с самой правой (разряда едениц) на экран.


Пробелемы ..

uses crt;
var n: byte;

begin
clrscr;

writeln ('Введите число: '); readln (n);
N mod 10;

{ :( }

end.



Как с право на лево вывести цифры? Не знаю.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 8)
Дож
сообщение 3.12.2005 20:09
Сообщение #2


Бывалый
***

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

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



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:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 3.12.2005 20:14
Сообщение #3


Гость






Дож,
var
x: integer;

begin
x := 1265;
while x <> 0 do begin
write(x mod 10);
x := x div 10;
end;
end.

Не проще?
 К началу страницы 
+ Ответить 
Анна
сообщение 3.12.2005 20:16
Сообщение #4


Бывалая
***

Группа: Пользователи
Сообщений: 290
Пол: Женский
Реальное имя: Анютка

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


Мне одни нули выводит, если к примеру было число 547 - результат: 000

Это по программе Дож

Сообщение отредактировано: Анна - 3.12.2005 20:17
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Дож
сообщение 3.12.2005 20:18
Сообщение #5


Бывалый
***

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

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


volvo,
твой алгоритм вроде бы печатает цифры в обратном порядке blink.gif


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 3.12.2005 20:21
Сообщение #6


Гость






Цитата
вывести все его цифры, начиная с самой правой (разряда едениц) на экран

Дож, а он что должен делать, как ты думаешь?
 К началу страницы 
+ Ответить 
Дож
сообщение 3.12.2005 20:26
Сообщение #7


Бывалый
***

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

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


Volvo Да, точно, не заметил...
Анна, все чесно...


Эскизы прикрепленных изображений
Прикрепленное изображение

--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Анна
сообщение 4.12.2005 13:26
Сообщение #8


Бывалая
***

Группа: Пользователи
Сообщений: 290
Пол: Женский
Реальное имя: Анютка

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


To: Дож
ага, разобралась yes2.gif сорри за ложную тревогу.
Можешь прокомментировать?

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. {заверш. программу}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Дож
сообщение 4.12.2005 13:56
Сообщение #9


Бывалый
***

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

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


Анна, нечто типа этого:

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:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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