Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.12.2009, 23:02
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию Одномерный массив Делфи

Дан одномерный целочисленный массив.
Найти сумму элементов массива, являющихся точными квадратами.
Как это можно сделать ?? Есть какие нибудь идеи????
Ответить с цитированием
  #2  
Старый 18.12.2009, 23:05
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Идти в цикле по массиву, и если результат функции sqrt есть целый, то складывать в какую-нить переменную.
Ответить с цитированием
  #3  
Старый 18.12.2009, 23:06
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию

Я так же делала, но информатик сказал ,что надо как то по другому....
Ответить с цитированием
  #4  
Старый 18.12.2009, 23:10
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А как? Честно проверять через возведение в квадрат? Можно, конечно, и так, но этом, ИМХО, изврат и лишнее время при выполнении. Но если хочешь - напиши функцию вида:
Код:
function IsWholeSquare(N : Integer) : Boolean;
var
  I, J  : Integer;
begin
  Result := False;
  I := 1;
  J := 1;
  While J < N Do
    Begin
      J := I * I;
      Result := J = N;
      If Result Then Break;
      Inc(I);
    End;
end;

И проверяй "квадратичную целостность" через нее.
Но это лишний код.
Ответить с цитированием
  #5  
Старый 18.12.2009, 23:18
Asira Asira вне форума
Новичок
 
Регистрация: 11.12.2009
Сообщения: 76
Репутация: -26
По умолчанию

да это слишком долго........
а как грамотно записать вот эту фразу по отношению к массиву, думаю что у меня проблема именно в этом - "если результат функции sqrt есть целый"

Последний раз редактировалось Asira, 18.12.2009 в 23:55.
Ответить с цитированием
  #6  
Старый 19.12.2009, 13:56
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Код:
if Frac(Sqrt(X)) = 0 then ...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:35.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025