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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2010, 02:14   #1
Ivka
Пользователь
 
Регистрация: 31.10.2010
Сообщений: 17
По умолчанию Паскаль

Прошу, помогите с заданием!!!
Надо ввести число Х (integer), извлечь из него корень, проверить-(если результат целое число и содержит минимум 2 одинаковых числа, то написать - годиться, если нет ( то не годиться)...
Ivka вне форума Ответить с цитированием
Старый 31.10.2010, 11:39   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
целое число и содержит минимум 2 одинаковых числа
мне кажется, что вы путаете понятия число и цифра. Если речь идёт о том, что число содержит две одинаковые цифры, то решение может выглядеть так:
Код:
var x    : longint;
  xSQRT, Num  : longint;
  i, OneDigit : integer;
  CountX : array[0..9] of integer;
  isAvailable : boolean;
begin
  WriteLn('Введите X: ');  
  Readln(X);
  xSQRT  := trunc(round(SQRT(X))); 
  {если корень - целое число}
  if sqr(xSQRT)=X then
    {проверим, есть ли одинаковые числа в записи }
  begin
    {обнулим счётчик цифр}  
    for i:=0 to 9 do CountX[i] := 0;

    Num := xSQRT;
    isAvailable := false;
    while Num>0 do begin
      OneDigit := Num mod 10;
      Num := Num div 10;
      CountX[OneDigit] := CountX[OneDigit] + 1;
      if  CountX[OneDigit] >= 2 then begin
           isAvailable := true; 
           {прерываем цикл перебора,
            т.к. можно дальше не проверять - 
                 уже есть две одинаковых цифры}
           break; 
      end;
    end;

    WriteLn;
    Write('Число (корень = ',xSQRT:1,') ');
    if isAvailable then WriteLn('подходит.')
    else WriteLn('не подходит.')


  end
  else
    WriteLn('Корень - не целое число!');

  readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.10.2010, 12:48   #3
Ivka
Пользователь
 
Регистрация: 31.10.2010
Сообщений: 17
По умолчанию

благодарю...
Ivka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, Борланд Паскаль-в чем разница??? Vremya-Dengy Паскаль, Turbo Pascal, PascalABC.NET 13 31.05.2011 18:23
Паскаль Mariya0202 Помощь студентам 5 18.03.2010 21:36
Паскаль Jenny104 Помощь студентам 2 11.10.2008 11:06
Паскаль Jenny104 Помощь студентам 3 19.09.2008 07:06