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

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

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

 
 Ответить  Открыть новую тему 
> Последовательность чисел, Обработка одномерного массива
medved777
сообщение 13.02.2007 8:46
Сообщение #1


Новичок
*

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

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


Родные мои, помогите пожалуйста! Не могу даже алгоритм набросать. Дайте идею. Надеюсь только на вашу помощь.
Задача: Напечатать в возрастающей последовательности все трехзначные числа, в десятичной записи которых нет одинаковых цифр. Операцией деления не пользоваться.

Сообщение отредактировано: medved777 - 13.02.2007 9:46
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.02.2007 10:00
Сообщение #2


Гость






Ну, если нельзя пользоваться делением, то переводи число в строку (процедурой str), и сравнивай символы полученной строки между собой на равенство...
 К началу страницы 
+ Ответить 
medved777
сообщение 13.02.2007 10:52
Сообщение #3


Новичок
*

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

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


Спасибо. Это понятно. Так я определю числа с одинаковыми цифрами. А что дальше?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.02.2007 10:54
Сообщение #4


Гость






blink.gif
Цитата
Задача: Напечатать в возрастающей последовательности все трехзначные числа
Вот и печатай, если число НЕ содержит одинаковых цифр (т.е., если оно этот самый тест не прошло)... Что еще надо?
 К началу страницы 
+ Ответить 
Perfez
сообщение 13.02.2007 11:01
Сообщение #5


Бывалый
***

Группа: Модераторы
Сообщений: 231
Пол: Женский

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


 
var
a:integer;
s:string[3];
Begin
For a:=100 to 999 do
Begin
Str(a,s);
If (s[1]<>s[2]) and (s[2]<>s[3]) and (s[1]<>s[3]) then WriteLn(a);
End;
End.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
medved777
сообщение 13.02.2007 11:06
Сообщение #6


Новичок
*

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

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


Огромное-преогромное спасибо. Просто я затупила маленько. Все понятно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.02.2007 11:10
Сообщение #7


Гость






Вот так, кстати, будет работать гораздо быстрее:
var
a, b, c: integer;
begin
for a := 1 to 9 do
for b := 0 to 9 do begin
if a <> b then
for c := 0 to 9 do
if (c <> a) and (c <> b) then writeln(a, b, c);
end;
end.

 К началу страницы 
+ Ответить 

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

 



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