Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860

Разработать структурную схему программы - Решето Эратосфена

02.06.2018, 02:23. Показов 2907. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть также блок-схема к паскалю......но мне требуется сделать структурную схему программы к С++

И также подскажите пожалуйста исходя из чего она вообще строится.

Эта программа выбирает из вводимого диапазона чисел от 1 до n - простые числа согласно методу "Решето Эратосфена".

Pascal
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
program Resheto;
var  a:array[1..100000]of longint;
      n,i,j,k,h:longint;
      f:text;
begin
assign(f,'prostye.txt');
rewrite(f);
writeln('Program: "Resheto Eratosphena"');
writeln;
writeln('Vvedite chislo N, kotoroe budet granicey "resheta"');
readln(n);
writeln;
for i:=2 to n do
if a[i]=0 then
 begin
  h:=i;
  j:=i+h;
  while j<n do
   begin
     a[j]:=1;
     j:=j+h;
   end;
 end;
 for i:=2 to n-1 do
 if a[i]=0 then
  begin
   write(i,' ');
   write(f,i,' ');
  end;
 k:=0;
 for I:=2 to n-1 do
 if n mod i = 0 then k:=1;
 if k=0  then
  begin
   write(n);
   writeln(f,n);
  end;
 close(f);
 readln;
end.


C++
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <fstream>
#include <locale>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Rus");
    ofstream file;
    file.open("prostye.txt");
    cout << "Программа: Решето Эратосфена" << endl;
    int n;
    cout << "Введите число n, которое будет являться границей >>";
    cin >> n;
    int *mas = new int[n + 1];
    for (int i = 0; i < n + 1; i++)
    {
        mas[i] = i;
    }
    for (int p = 2; p < n + 1; p++)
    {
        if (mas[p] != 0)
        {
            cout << mas[p] << " ";
            file << mas[p] << " ";
            for (int j = p * p; j < n + 1; j += p)
            {
                mas[j] = 0;
            }
        }
    }
    cout << endl;
    file.close();
    cin.get();
    return 0;
}
Миниатюры
Разработать структурную схему программы - Решето Эратосфена  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.06.2018, 02:23
Ответы с готовыми решениями:

Объяснить работу программы (нахождение простых чисел, решето Эратосфена)
Поясните как работает эта прога а именно : #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { ...

Решето Эратосфена
В решете эратосфена из книги в условии есть непонятная вещь: if (i * 1ll * i &lt;= n) - возле единицы для непонятных знака, на форуме они...

Решето Эратосфена
В общем задание посчитать количество простых чисел до заданного числа N. Написал такой алгоритм, работает только до 11 :cry: Уже час не...

12
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
02.06.2018, 02:24  [ТС]
Бло
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
02.06.2018, 10:12
Какая же ужасная блок-схема.

Цитата Сообщение от xamelione25 Посмотреть сообщение
И также подскажите пожалуйста исходя из чего она вообще строится.
Овалы - Начало/Конец
Прямоугольник - Присваивание
Прямоугольник с 2 параллельными прямыми - вызов подпрограммы
Параллелограмм - ввод/вывод
Ромб - условие (do - while, while ...)
Шестиугольник - цикл for
Кружок - перенос блок-схемы
Еще блок для комментариев есть, его же можно использовать для вставки длинных условий, например
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
02.06.2018, 10:16  [ТС]
SuperKir, вы не правильно поняли меня ... я речь веду про вот такую схему (я её из другой программы взял для примера)

я просто не сильно понимаю на основе чего она строиться... (на счет той блок-схемы у меня вопросов нет)
Миниатюры
Разработать структурную схему программы - Решето Эратосфена  
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
02.06.2018, 10:34
xamelione25, А что не понятно? По схеме не все так сложно:
Есть 2 режима работы:
1. Кодирования
2. Декодирования

При режиме Кодирования происходит:
1. Чтение из файла
2. Построение дерева
3. Создание архива (которое делится на соответствующие блоки ниже).
Всё это возвращает управление последовательно в main.

В режиме декодирования аналогично:
1. Вызывает decode
2. Он вызывает инициализацию дерева
Дерево возвращается в decode, который вернет управление main.

Блок-схемы во вложениях что ты показываешь - нет.
Касаемо обычной, вот для C++
Миниатюры
Разработать структурную схему программы - Решето Эратосфена  
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
02.06.2018, 11:02  [ТС]
SuperKir,
Цитата Сообщение от SuperKir Посмотреть сообщение
2. Построение дерева
3. Создание архива (которое делится на соответствующие блоки ниже).
Ну про кодирование и декодирование я понимаю глядя на саму схему......у меня просто сложность построить дерево и архив относительно программы о которой я писал в начале.

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <fstream>
#include <locale>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Rus");
    ofstream file;
    file.open("prostye.txt");
    cout << "Программа: Решето Эратосфена" << endl;
    int n;
    cout << "Введите число n, которое будет являться границей >>";
    cin >> n;
    int *mas = new int[n + 1];
    for (int i = 0; i < n + 1; i++)
    {
        mas[i] = i;
    }
    for (int p = 2; p < n + 1; p++)
    {
        if (mas[p] != 0)
        {
            cout << mas[p] << " ";
            file << mas[p] << " ";
            for (int j = p * p; j < n + 1; j += p)
            {
                mas[j] = 0;
            }
        }
    }
    cout << endl;
    file.close();
    cin.get();
    return 0;
}


я просто до этого на паскале все делал......а тут мне сказали сделать это все на с++ да еще и с приведением этой структурной схемы... и я сел в лужу
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
02.06.2018, 11:28
xamelione25, Могу сказать так:
Из main вызывается 2 функции:
Либо Decode, которая вызывает внутри себя InitTree.
Либо readFile, которая вызывает CreateTree, которая вызывает CreateArchive.
CreateArchive, в свою очередь, содержит функции:
1. WriteStructTree, вызывающая функцию WriteBit
2. WriteDataTree
3. CodeWrite

Соответственно, как отрабатывают все подпрограммы CreateArchive управление переходит этой функции, как только она отработала (мб там что-то после вызова подпрограмм есть) управление переходит к readFile, с нее уже в main.

Аналогично правая ветка (с возвратом управления). Это всё обычные функции, просто схема составлена с демонстрацией основных моментов.

Цитата Сообщение от xamelione25 Посмотреть сообщение
у меня просто сложность построить дерево и архив относительно программы о которой я писал в начале.
Как "Дерево и Архив" относится непосредственно к этой программе? Эта схема к конкретному программному коду, а тебе, как я понимаю, просто скинули для примера.

Зачем ты приводишь мне снова код, по которому я выше обычную блок-схему нарисовал - я хз.
Из main у тебя будет openFile -> InitArray -> CreateSieve -> writeFile -> closeFile ->>Возврат управления последовательно обратно (возможно write/close и не надо)
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
03.06.2018, 13:21  [ТС]
SuperKir, а какое-то деление на кодирование и декодирование из main у меня будет?
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
03.06.2018, 13:31
xamelione25, Ты прикалываешь? А у тебя в разработанной программе есть кодирование и декодирование?
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
03.06.2018, 14:10  [ТС]
SuperKir, я не прикалываюсь....я первый раз с с++ связался...... может быть оно в скрытой форме как-нибудь происходит ... откуда я знаю
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
03.06.2018, 14:26
xamelione25, чем отличается с++ от другого языка в плане создания алгоритмических/структурных схем? Ничем.
Программа делает почти ровно то, что ты ей скажешь. Заставишь кодировать - будет кодировать, заставишь декодировать - будет декодировать, а выполнять не обозначенный функционал - извольте идти лесом.

Я тебе уже даже описал функциональные блоки, которые будут в твоем коде, а ты мне все про с++ тут заливаешь. Еще требуются какие-то объяснения? Рисовать за тебя не буду.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
03.06.2018, 23:41  [ТС]
SuperKir, Вот так правильно?
Миниатюры
Разработать структурную схему программы - Решето Эратосфена  
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
04.06.2018, 11:16
xamelione25, Ну по идее должно да, а там кто знает, какие "хотелки" у препода твоего
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.06.2018, 11:16
Помогаю со студенческими работами здесь

Решето Эратосфена
Подскажите реализацию (код) метода шифрования - решета Эратосфена, пожалуйста.

Решето Эратосфена
Возможно ли найти простые числа методом решета Эратосфена с помощью вектора за один проход? Добавлено через 1 минуту У меня...

Решето Эратосфена
Простое число — это любое целое число, которое точно делится без остатка только само на себя и на 1. Решето Эратосфена — это способ...

Решето Эратосфена
Здравствуйте. Реализовал алгоритм &quot;Решето Эратосфена&quot; в виде класса. Взгляните, пожалуйста, и скажите, где я не прав. Спасибо. ...

Решето Эратосфена
Дано число N (2&lt;=N &lt;=10000), найдите и выведите простые числа между 2 и данным N. Простое число - число, которое может быть разделено...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru