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

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

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

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

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

Эта программа выбирает из вводимого диапазона чисел от 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2018, 02:23
Ответы с готовыми решениями:

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

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

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

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

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

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

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

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

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

Блок-схемы во вложениях что ты показываешь - нет.
Касаемо обычной, вот для C++
Миниатюры
Разработать структурную схему программы - Решето Эратосфена  
0
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,770
02.06.2018, 11:02  [ТС] 6
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
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
02.06.2018, 11:28 7
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
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,770
03.06.2018, 13:21  [ТС] 8
SuperKir, а какое-то деление на кодирование и декодирование из main у меня будет?
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
03.06.2018, 13:31 9
xamelione25, Ты прикалываешь? А у тебя в разработанной программе есть кодирование и декодирование?
0
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,770
03.06.2018, 14:10  [ТС] 10
SuperKir, я не прикалываюсь....я первый раз с с++ связался...... может быть оно в скрытой форме как-нибудь происходит ... откуда я знаю
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
03.06.2018, 14:26 11
xamelione25, чем отличается с++ от другого языка в плане создания алгоритмических/структурных схем? Ничем.
Программа делает почти ровно то, что ты ей скажешь. Заставишь кодировать - будет кодировать, заставишь декодировать - будет декодировать, а выполнять не обозначенный функционал - извольте идти лесом.

Я тебе уже даже описал функциональные блоки, которые будут в твоем коде, а ты мне все про с++ тут заливаешь. Еще требуются какие-то объяснения? Рисовать за тебя не буду.
0
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,770
03.06.2018, 23:41  [ТС] 12
SuperKir, Вот так правильно?
Миниатюры
Разработать структурную схему программы - Решето Эратосфена  
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
04.06.2018, 11:16 13
xamelione25, Ну по идее должно да, а там кто знает, какие "хотелки" у препода твоего
0
04.06.2018, 11:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2018, 11:16
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru