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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2013, 18:09   #31
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

я сделала 10 полей ввода.программа работает но не правильно.
Код:
procedure TForm1.Button1Click(Sender: TObject);
function IsPrime(n:integer):boolean;
var i:integer;
begin
if n<=2 then begin isPrime:=true;exit;end;
isprime:=true;
i:=2;
while (i<=n-1) do
begin
if n mod i= 0 then isprime:=false;exit;end;
inc(i);
end;
var i,a,c:integer;
begin
c:=0;
for I := 1 to 10 do
 begin
   a:=STRTOINT(EDIT1.Text);
   if isprime(a) then  inc(c);
 end;
EDIT11.Text:=FLOATTOSTR(C);
end;END.

Последний раз редактировалось nadyaH; 06.11.2013 в 18:28.
nadyaH вне форума Ответить с цитированием
Старый 06.11.2013, 20:24   #32
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Так Вы берете число только из первого едита. Костыльчик:
Код:
procedure TForm1.Button1Click(Sender: TObject);
    function IsPrime(n:integer):boolean;
        var i:integer;
    begin
        if n<=2 then begin isPrime:=true;exit;end;
        isprime:=true;
        i:=2;
        while (i<=n-1) do
        begin
            if n mod i= 0 then begin isprime:=false;exit;end;
            inc(i);
        end;
    end;
var
    i, a, c: integer;
begin
    c:=0;
    for I := 1 to 10 do
    begin
        a:=STRTOINT(TEDIT(FindComponent('EDIT'+inttostr(i))).Text);
        if isprime(a) then  inc(c);
    end;
    EDIT11.Text:=INTTOSTR(C);
end;
END.
Также чуток отредактировал саму функцию.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.11.2013, 22:55   #33
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

позволю себе для вполне приемлимого кода (c) BDA дать чисто индусский вариант кода:
Код:
procedure TForm1.Button1Click(Sender: TObject);
    function IsPrime(n:integer):boolean;
        var i:integer;
    begin
        if n<=2 then begin isPrime:=true;exit;end;
        isprime:=true;
        i:=2;
        while (i<=n-1) do
        begin
            if n mod i= 0 then begin isprime:=false;exit;end;
            inc(i);
        end;
    end;
var
    c: integer;
begin
    c:=0;
    if IsPrime(STRTOINT(EDIT1.Text)) then Inc(c);
    if IsPrime(STRTOINT(EDIT2.Text)) then Inc(c);
    if IsPrime(STRTOINT(EDIT3.Text)) then Inc(c);
    if IsPrime(STRTOINT(EDIT4.Text)) then Inc(c);
    if IsPrime(STRTOINT(EDIT5.Text)) then Inc(c);
    if IsPrime(STRTOINT(EDIT6.Text)) then Inc(c);
    if IsPrime(STRTOINT(EDIT7.Text)) then Inc(c);
    if IsPrime(STRTOINT(EDIT8.Text)) then Inc(c);
    if IsPrime(STRTOINT(EDIT9.Text)) then Inc(c);
    if IsPrime(STRTOINT(EDIT10.Text)) then Inc(c);
    EDIT11.Text:=INTTOSTR(C);
end;
END.

p.s. возможно, TC этот вариант будет понятнее, чем использование FindComponent и приведение типа компонента к TEdit...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.11.2013, 19:09   #34
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
Вопрос

если я ввожу числа 2,3,4,5,6,7,8,9,10,11
у меня выводит ответ: 5
правильный ответ?
nadyaH вне форума Ответить с цитированием
Старый 09.11.2013, 19:12   #35
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

А Вы знаете что такое простые числа? А Вы знаете как их определить? А Вы знаете как подсчитать кол-во каких либо чисел? Тогда вперед! Считайте!

Во избежание появления новых идиотских (пардон) постов : "Да! Ответ правильный"
Poma][a вне форума Ответить с цитированием
Старый 09.11.2013, 19:13   #36
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

А как Вы думаете?
ПС Опоздал
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 09.11.2013, 19:18   #37
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

спасибо огромное что помогли мне разобраться потихоньку в этой задаче.
nadyaH вне форума Ответить с цитированием
Старый 09.11.2013, 19:21   #38
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
спасибо огромное что помогли мне разобраться потихоньку в этой задаче.
Разобраться? Хм.. ну тогда объясните пожалуйста, почему при проверке числа на простоту мы перебираем только до квадратного корня?

P.S. Давайте называть вещи своими именами..
Poma][a вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнить поле - Boolean (логического) типа viks1 БД в Delphi 8 08.05.2013 10:01
Pascal ABC.Описать функцию Polynom(A,N,X) вещественного типа, находящую значение полинома P в вещественной точке X. sanjer21 Помощь студентам 0 24.05.2012 00:34
Описать функцию RadToDeg(R) вещественного типа, находящую величину угла в градусах, если дана его величина R в радианах investr Паскаль, Turbo Pascal, PascalABC.NET 1 02.12.2011 14:47
Описать функцию CompressStr(S) строкового типа,выполняющую сжатие строки S Allen Iverson Паскаль, Turbo Pascal, PascalABC.NET 7 23.04.2009 01:07
Описать рекурсивную функцию Palindrom(S) логического типа Master-Sergey Помощь студентам 1 15.12.2008 19:03