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

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

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

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

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

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

Описать функцию IsPrime(N) логического типа, возвращающую TRUE, если целый параметр N (>1) является простым числом, и FALSE в противном случае (число, большее 1, называется простым, если оно не имеет положительных делителей, кроме 1 и самого себя). Дан набор из 10 целых чисел, больших 1. С помощью функции IsPrime найти количество простых чисел в данном наборе.

в делфи 7.

как работает IsPrime?
и как вообще написать программу в делфи 7?

Последний раз редактировалось Stilet; 02.11.2013 в 19:09.
nadyaH вне форума Ответить с цитированием
Старый 02.11.2013, 18:58   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Чего-то Опера зависла, не хочет по-буржуйски печатать, а перезапускать пока не могу ) Примерно так
Код:
функция IsPrime(Н: интежЫр): болевар;
бежим
  фор и := 2 то Н див 2 ду
    иф Н мод и = 0 тхен бежим
      результ := FALSE;
      эксит
    энд;
  результ := TRUE
энд
Осталось применить эту ф-ию для каждого числа.
eoln вне форума Ответить с цитированием
Старый 02.11.2013, 19:05   #3
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

Код:
var
Sum,i,a:integer;
function IsPrime(N:integer):boolean;
var
j:integer;
D:boolean;
begin
D:=true; j:=2;
While sqrt(N)>=j do
begin
if (N mod j)=0 then D:=false;
inc(j);
end;
IsPrime:=D;
end;
begin
sum:=0;
Writeln('Введите 10 целых чисел ');///не знаю как вот эту часть сделать?
for i:=1 to 10 do
begin
read(a);
if IsPrime(a) then inc(sum);
end;
edit2.text:=strtofloatSum);
end;
end.
nadyaH вне форума Ответить с цитированием
Старый 02.11.2013, 19:13   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не знаю как вот эту часть сделать?
Не понял? Какую часть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.11.2013, 19:15   #5
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

Код:
Writeln('Введите 10 целых чисел ')
nadyaH вне форума Ответить с цитированием
Старый 02.11.2013, 19:22   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а мне нравится такой вариант: тыц

eoln, отличный ход!


Цитата:
Сообщение от nadyaH Посмотреть сообщение
Код:
Writeln('Введите 10 целых чисел ')
Вы, наверное, неправильно поняли своё задание.
Нужно ввести десять целых чисел, каждое из который больше единицы.
И из них выбрать те, которые являются простыми числами, и подсчитать их КОЛИЧЕСТВО (а не сумму, как Вы пытаетесь).

Последний раз редактировалось Serge_Bliznykov; 02.11.2013 в 20:02.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2013, 19:30   #7
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

десять ячеек делать и в каждую вводить по числу?
nadyaH вне форума Ответить с цитированием
Старый 02.11.2013, 19:55   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от nadyaH Посмотреть сообщение
десять ячеек делать и в каждую вводить по числу?
О! я понял, что у Вас вызвало трудность!

Цитата:
Код:
Writeln('Введите 10 целых чисел ');///не знаю как вот эту часть сделать?
...
read(a);
....
edit2.text:=strtofloatSum);
нельзя в одну упряжку впрясть коня и трепетную лань.
Программа может быть либо консольная (и тогда в ней работают операции ввода и вывода в консоль (это Write/WriteLn/Read/ReadLn), либо оконная (окна == Windows), в рамках Delphi это называется Windows Application + Forms.

судя по тому, что у Вас есть edit2.text - у Вас оконное приложение?!
Тогда нельзя использовать WriteLn и Read
вводить данные можно либо через визуальные контролы (например, TStringGrig или забить деять чисел в Memo, либо, брутально, кинуть десять TEdit), либо через ShowMessage + InputBox...
я бы рекомендовал через TStringGrid (хоть он и кривой, но для вашей задачи подойдёт)


p.s. обратите внимание, что у Вас считается сумма простых чисел, а Вам надо считать количество!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2013, 19:56   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
а мне нравится такие варианты: тыц или тырк
А ведь "тырк" сщитает не правильно.. Контрпример : 1
Poma][a вне форума Ответить с цитированием
Старый 02.11.2013, 19:57   #10
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

если честно то что вы написали, мне эти слова не о чём не говорят.
nadyaH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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