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

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

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

> Блок-схема для счастливого номера
Женя
сообщение 22.12.2004 20:52
Сообщение #1


Гость






Обычная прога: Получить все шестизначные счастливые номера. (Про целое число n, удовлетворяющее условию 0<=n<=999999, говорят, что оно представляет собой счастливый номер, если сумма трёх его первых цифр равна сумме трёх его последних цифр; если в числе меньше шести цифр, то недостающие начальные цифры, считаются нулями).

прога:

Код

program luckynumber;
uses crt;
var a,b,c,d,e,f:byte;
y:longint;
x1:integer;
luck:real;
key:char;
begin
clrscr;
for a:=0 to 9 do
for b:=0 to 9 do
 for c:=0 to 9 do
begin
x1:=a+b+c;
  for d:=0 to 9 do
   for e:=0 to 9 do
    for f:=0 to 9 do
     if (x1=d+e+f) then
      begin
       y:=y+1;
       writeln ('Счастливый номер: ',a,b,c,d,e,f);
       If (y mod 10)=0 then
        begin
        writeln('Press Any Key for continue or Esc for exit...');
        key:=readkey;
        if ord(key)=27 then exit;
       clrscr;
       end;
      end;
    end;
readln
end.


Я что-то застрял с циклами.. как бы их так организовать на блок-схемах, чтобы всё работало? Пожлауйста, помогите!

Заранее благодарен!
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
mithquessir
сообщение 23.12.2004 19:57
Сообщение #2


Гость






volvo
Согласен.
imho так можно сократить перебор где-то в 10-15 раз. :yes:
Код

var
 a,b,c,d,e,x1,x2,x3:integer;
begin
 for a := 0 to 9 do
   for b := 0 to 9 do
     begin
       x1 := a + b;
       for c := 0 to 9 do
         begin
           x2 := x1 + c;
           for d := 0 to 9 do
             begin
               x3 := x2 - d;
               if x3 > 0 then
                 for e := 0 to 9 do
                   case x3 - e of
                     0..9:WriteLn(a,b,c,d,e,x3-e);
                   end;
             end;
         end;
     end;
end.


Сообщение отредактировано: mithquessir - 23.12.2004 19:58
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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