Форум программистов, компьютерный форум CyberForum.ru

Flowchart-ы и Насси-Шнейдерман - C++

Восстановить пароль Регистрация
 
Инб
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 10
14.06.2014, 11:06     Flowchart-ы и Насси-Шнейдерман #1
Данна последовательность из не менее двух натуральных чисел, за которым следует 0. Вычислить сумму тех из них, порядковые номера которых простые числа.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2014, 11:06     Flowchart-ы и Насси-Шнейдерман
Посмотрите здесь:

C++ Builder Переделать схему Насси-Шнейдермана в блок схему
AnyLogic Работа с классами в потоковой диаграмме (flowChart) AnyLogic 7

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RaiaNKnight
 Аватар для RaiaNKnight
96 / 70 / 7
Регистрация: 29.06.2011
Сообщений: 458
Записей в блоге: 1
14.06.2014, 11:18     Flowchart-ы и Насси-Шнейдерман #2
Ответ:
1) Берёте в зубы решето Эратосфена, получаете простые числа, допустим массив A;
2) Sum = 0;
3) Идёте вдоль вашей последовательности, если текущий порядковый номер равен первому элементу в массиве А, то:
3.1.)Добавляете текущий член последовательности к переменной Sum;
3.2.)Переходите к следующему элементу массива А (т.е. как бы сдвигаем указатель);

Можно, конечно, тупо проверять порядковый номер на простоту, но если у вас последовательность элементов длиной 10^6 - 10^7,то лучше уж решето Эратосфена использовать
Инб
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 10
14.06.2014, 11:56  [ТС]     Flowchart-ы и Насси-Шнейдерман #3
можете написать как это будет примерно? я не могу вообще сообразить
RaiaNKnight
 Аватар для RaiaNKnight
96 / 70 / 7
Регистрация: 29.06.2011
Сообщений: 458
Записей в блоге: 1
14.06.2014, 12:11     Flowchart-ы и Насси-Шнейдерман #4
Ввод данных через std::cin в какой-нибудь массив double seq[N], где N - размер последовательности (предварительно задан или же также считываете при помощи std::cin);

Решето Эратосфена, н-р, Вики:
Ссылка http://ru.wikipedia.org/wiki/%D0%A0%...B5%D0%BD%D0%B0 - там есть код на С++;
Получите некоторый vector с простыми числами (именно числами, а не их номерами!).
Пусть это будет vector <int> primes;

C++
1
2
3
4
5
6
7
8
9
10
11
12
double sum = 0; //суммируем сюда
int currPrimeInd = 0; //переменная для перемещения по primes слева направо.
 
for (int i = 0; i < N; ++i) {
    if( i == primes[currPrimeInd] ) {
        sum += seq[i];
        ++currPrimeInd;
    }
}
 
//выводим здесь полученную сумму
std::cout << sum << endl;
P.S. За вас никто не будет разбираться в задаче.
Yandex
Объявления
14.06.2014, 12:11     Flowchart-ы и Насси-Шнейдерман
Ответ Создать тему
Опции темы

Текущее время: 05:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru