Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с массивом

15K
23 января 2006 года
pikass
1 / / 23.01.2006
Задана последовательность N вещественных чисел. Вычислить сумму чисел, порядковые номера которых являются простыми числами(на одномерные массивы)


Пожайлуста, если нетрудно может кто-то знает как решать эту задачу, хотя бы на Паскале.
269
23 января 2006 года
Greenering
892 / / 04.02.2003
Цитата:
Originally posted by pikass
Задана последовательность N вещественных чисел. Вычислить сумму чисел, порядковые номера которых являются простыми числами(на одномерные массивы)


Пожайлуста, если нетрудно может кто-то знает как решать эту задачу, хотя бы на Паскале.


Мдя...
Простое число можно определить "Решетом Эратосфена"
Сумму элементов обычным сложением.
Что еще непонятного?

391
23 января 2006 года
Archie
562 / / 03.02.2005
Цитата:
Originally posted by Greenering
Мдя...
Простое число можно определить "Решетом Эратосфена"
Сумму элементов обычным сложением.
Что еще непонятного?


Не понятно, что такое "порядковый номер" :D

339
25 января 2006 года
verybadbug
619 / / 12.09.2005
Цитата:
Originally posted by pikass
Задана последовательность N вещественных чисел. Вычислить сумму чисел, порядковые номера которых являются простыми числами(на одномерные массивы)


Код:
const
  N = 50; {количество элементов массива}
var
  A: Array[1..N] of Real; {массив}
  I: Integer; {Порядковый номер}
  J: Integer;
  B: Boolean;
  S: Real; {Сумма}
begin
  {Заполняем массив случайными числами диапазоне 0-100}
  Randomize;
  I := 1;
  while I <= N do begin
    A := Random * 100;
    Inc(I);
  end;

  {Находим сумму}
  S := 0;
  I := 1;
  while I <= N do begin
    {Определяем простой ли порядковый номер}
    B := I > 1;
    J := 2;
    while J < I do begin
      if I mod J = 0 then begin
        B := False;
        Break;
      end;
      Inc(J);
    end;
    {Если порядковый номер простое число}
    if B then begin
      {добавляем элемент массива к сумме}
      S := S + A;
      {и выводим на экран элемент массива и сумму}
      WriteLn(I:4, A:7:3, S:9:3);
    end;
    Inc(I);
  end;
  {Ждем нажатия Enter}
  ReadLn;
end.
929
25 января 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by verybadbug
 
Код:
{Определяем простой ли порядковый номер}
    B := I > 1;
    J := 2;
    while J < I do begin
      if I mod J = 0 then begin
        B := False;
        Break;
      end;
      Inc(J);
    end;


А можно еще и оптимизировать.
Максимальный делитель числа всегда меньше квадратного корня из него, следовательно

 
Код:
while J < Sqrt(I) do begin

Но это так, для общего развития...
339
25 января 2006 года
verybadbug
619 / / 12.09.2005
Цитата:
Originally posted by sp999
 
Код:
while J < Sqrt(I) do begin



 
Код:
while J <= Sqrt(I) do begin


...если быть точнее
36K
14 февраля 2008 года
ghoust
1 / / 14.02.2008
Народ а можно эту задачу решить каким то более простым способом ?
1.9K
18 марта 2008 года
WWTLF
35 / / 16.06.2003
Куда уж проще...? можно еще проверку на простоту вынести в отдельную функцию.В учебных примерах проверку на простоту подразумевается осуществлять тупо перебором...тем более что тут массив небольшой...А вообще это сложная математическая задача, над которой бьются не одну тысячу лет и решения можно по пальцам пересчитать...первое тупо-перебор, второе решето Эратосфена, остальные читайте в книгах по криптографии :)
30K
16 апреля 2008 года
BRICHKA
13 / / 16.04.2008
Помогите с простым циклом на одномерном массиве...


const N=5....Задание: При заданных одномерных массивах Х и Y одинаковой длины, вычислите элементы массива Т,первый элемент которого равен 1це ,а все последующие элементы вычисляются по формуле F(x) = SQRT(SQR( X[k]- Y[k]/ T[k-1]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог