Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2009, 09:03   #1
V I K T O R I Y A
 
Регистрация: 03.05.2009
Сообщений: 3
Вопрос найти все симметричные четырехзначные числа , например 7667, 1331

найти все симметричные четырехзначные числа , например 7667, 1331
Напишите пожалуйста программу ...
V I K T O R I Y A вне форума Ответить с цитированием
Старый 03.05.2009, 13:25   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

А сами почему не можете? Лень разбираться?
В чем проблема? Что непонятно?

Перебираете в цикле все 4-х-значные числа. Каждое число разбиваете на цифры и смотрите.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.05.2009, 14:03   #3
Disel
Форумчанин
 
Аватар для Disel
 
Регистрация: 08.01.2009
Сообщений: 180
По умолчанию

Вот мой вариант, наверно можно проще написать, но у меня только так получилось.
Код:
Program perebor;
uses crt;
var a: array[1..4] of integer;
    i,j,m,n:integer;

BEGIN
 clrscr;
  for i:=0 to 9 do
   begin
    a[4]:=i;
     for j:=1 to 9 do
      begin
      a[3]:=j;
       for m:=1 to 9 do
        begin
        a[2]:=m;
         for n:=1 to 9 do
          begin
          a[1]:=n;
              if (a[1]=a[4]) and (a[2]=a[3]) then
               writeln(a[1],a[2],a[3],a[4]);
          end;
        end;
      end;
   end;

 ReadKey;
END.
"Все что натыкано на клаве, ведет тебя к погибели иль славе"
Если помог нажми на весы
Disel вне форума Ответить с цитированием
Старый 03.05.2009, 14:11   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Disel, тогда можно упростить )
Код:
Program perebor;
uses crt;
var
i,j,m,n:integer;

BEGIN
 clrscr;
  for i:=0 to 9 do
     for j:=1 to 9 do
       for m:=1 to 9 do
         for n:=1 to 9 do
           if (n=i) and (m=j) then
             writeln(i,j,m,n);
 ReadKey;
END.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.05.2009, 14:18   #5
Disel
Форумчанин
 
Аватар для Disel
 
Регистрация: 08.01.2009
Сообщений: 180
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Disel, тогда можно упростить )
Код:
Program perebor;
uses crt;
var
i,j,m,n:integer;

BEGIN
 clrscr;
  for i:=0 to 9 do
     for j:=1 to 9 do
       for m:=1 to 9 do
         for n:=1 to 9 do
           if (n=i) and (m=j) then
             writeln(i,j,m,n);
 ReadKey;
END.
Спасибо, не подумал. Тепер буду знать.
"Все что натыкано на клаве, ведет тебя к погибели иль славе"
Если помог нажми на весы
Disel вне форума Ответить с цитированием
Старый 03.05.2009, 15:41   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

только в данном коде есть одна ошибочка и одна небрежность.
Небрежность:
цикл по i крутим от 0 ( for i:=0 to 9 do), а по n от единицы (for n:=1 to 9 do)
а потом сравниваем if (n=i)
неаккуратненько...

а ошибка в том, что внутренним элементам надо крутить цикл от нуля! иначе числа вроде 1001 в Вашем случае не считаются симметричными.

И ещё. мне кажется, что составители задачи предполагали, что решением будет что-то вроде такого:
Код:
for Num :=1111 to 9999 do
   if <проверка Num на симметричность> then WriteLn(Num);
а если уж развить идею с циклом по отдельным числам, то вообще можно обойтись без проверки. вот целиком решение:
Код:
  for i:=1 to 9 do
     for j:=0 to 9 do
       writeln(i,j,j,i);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.05.2009, 15:47   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Serge_Bliznykov, да, действительно, не заметил )
Цитата:
вот целиком решение:
Коротко и практично )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти все целые числа,у которых ровно 6 делителей; jenja Общие вопросы C/C++ 3 03.10.2008 20:32
Паскаль. найти все числа кратные трем и посчитать их количество __k1ll3r__ Помощь студентам 6 02.04.2008 16:37
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49
Найти числа,которые читаются слева-направо и справа-налево одинаково(например, 1001). Паскаль NikLik Помощь студентам 8 22.11.2007 23:00