Member 14185557 Ответов: 3

Как я могу преобразовать псевдокод в исходный код ?


Input: S= set of cameras; T = set of targets; P= set of discrete
pans; K= No. of set covers
Output: C=Collection of Set Covers C1, C2....CK
1: SENSORS= S
2: /*SENSORS keeps track of the list of unused sensors */
3: k = 0
4: while SENSORS 6= ∅ do
5: /* a new set cover Ck will be formed */
6: k= k + 1
7: Ck=∅
8: TARGETS= T
9: /*TARGETS contains the uncovered targets */
10: while TARGETS 6= ∅ do
11: /* more targets have to be covered */
12: Find Dmin = minD(t) : t ∈ T
13: if |Dmin| = 0 then
14: /*TARGETS contains some uncoverable targets*/
15: goto marker
16: else
17: S′ = ∅
18: Find the targets having cardinality equals Dmin
and create a set T ′
19: for each t ∈ T ′
20: for each (si, pj) ∈ −1(t)
21: S′ = S′ ∪ {(si, pj)}
22: Find the most contributing (su, pv) such that:
23: (su, pv)←argmaxsu∈S’,1≤v≤quv∩TARGETS
24: /* selects (su, pv) covering maximum targets */
25: In case of tie, create a subset S′′ ⊆ S′ with
all sensor-pan pairs having same contribution
26: Let (si, pj) ∈ S′′ has the maximum force F′
ij
among all sensor-pan pairs in S′′, i.e.:
27: F′
ij = argmaxvFuv; ∀su ∈ S; ∀pv ∈ P;
∀si ∈ S; ∀pj ∈ P;
28: Ck = Ck ∪{(si, pj)}
29: SENSORS = SENSORS \ {si}
30: TARGETS = TARGETS \ {ij}
31: end if
32: end while
33: C = C ∪ Ck
34: end while
35: marker: return the collection of set covers C


Что я уже пробовал:

нужна помощь, чтобы понять, как преобразовать этот алгоритм в c++

CPallini

Вы можете преобразовать его... Кодирование!

CodeWraith

Именно так я и думал. :-)
Вот что некоторые люди подразумевают под словом "Программирование".

RedDk

На самом деле то, что все эти ребята здесь говорят, правда, и есть хорошие предложения о том, как начать, но глядя на этот код ... он выглядит почти так же просто, как QBASIC (поскольку он пронумерован). Вы можете попробовать просто вставить его в пустой модуль проекта C# , а затем заполнить объявления функций. Бывал там, делал это.

Я знаю, но не с++ ...

3 Ответов

Рейтинг:
1

Stefan_Lang

1. напишите основную функцию C++
2. Определите функцию C++ для реализации вашего псевдокода: вам нужно решить, какие значения нужно передать этой функции и каков желаемый результат
3. Создайте или сконструируйте входные данные для вашей функции в основной функции (просто в качестве примера, чтобы иметь возможность протестировать ваш код)
4. реализуйте функцию: проанализируйте каждый оператор в вашем псевдокоде и переведите их в операторы C++; не забудьте правильно определить любые переменные, введенные в оператор псевдокода.
5. тестируйте и исправляйте свой код по мере необходимости; если вы столкнетесь с специфический проблема, которую вы не знаете, как решить, вернитесь сюда и спросите


Рейтинг:
1

Patrice T

Цитата:
Как я могу преобразовать псевдокод в исходный код ?

Псевдокод-это условность, используемая вашим учителем для описания того, как будет работать программа, она не специфична для языка программирования, а скорее специфична для области, к которой она относится.
Перечитайте ваши курсы о псевдокоде и C++.

Этот код является функцией:
- сделайте скелет C++.
- вставить псевдокод в пустой скелет функции.
- сделайте каждую строку комментарием.
- после каждой строки псевдо код, добавить код на C++, которые соответствуют псевдо код.

Если у вас есть конкретный вопрос, покажите, что вы сделали.


Рейтинг:
0

OriginalGriff

То, как вы реализуете любой новый проект:

1) Изучите псевдокод и извлеките алгоритм.
2) Разработайте код (предпочтительно исключив goto) для реализации алгоритма.
3) Код конструкции.
4) проверьте код.
В любой момент вернитесь к более ранней стадии по мере необходимости, пока она не сработает.


Stefan_Lang

Предложение разработать код до того, как на самом деле кодировать его, - отличное предложение, но это немного похоже на попытку бегать, прежде чем научиться ходить ;-)