Ahoj,
chcel by som sa spýtať či niekto nevie o nieakom programe do ktorého ak vložím nieaký zdrojový kód (povedzme že nezáleži mi v akom prog.jazyku by to bolo) tak my z toho vytvorí vývojový diagram (algoritmus)
Ďakujem.
Premena zdrojového kódu na vývojový diagram
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: Premena zdrojového kódu na vývojový diagram
Skus visual paradigm. Viem ze vie spravit class diagram a aj sekvencny. Diagram aktivit asi tazko, lebo tam je velka miera abstrakcie a ani neviem ake jazyky vie spracovat, ale skusiy mozes
Re: Premena zdrojového kódu na vývojový diagram
Alebo (načo to vlastne potrebujem) ak by mi vedel niekto pomôcť konkrétne tak vlastne by som potreboval premeniť tento zdrojový kód na vývojový diagram v programe Flowgorithm. Samozrejme by mi stačilo v akomkoľvek programe v ktorom by ste to zrobili alebo obyčajne nakreslené v nie akom grafickom programe. Viem že je to veľa pomoc, tak ak by naozaj bol niekto ochotný tak bol by som veľmi vďačný.
Zdrojový kód je .... Je to vlastne Rozlozenie prirodzeneho čísla N na súčin prvočísel
Zdrojový kód je .... Je to vlastne Rozlozenie prirodzeneho čísla N na súčin prvočísel
Kód: Vybrať všetko
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <limits.h>
#define DLZKA 25
typedef struct intlist {
int prvocislo;
intlist *dalsie;
}INTLIST;
int je_prvocislo(int cislo)
{
int i;
for (i=2; i<=sqrt(cislo); i++)
if (cislo%i==0)
return 0;
return 1;
}
void pridaj(int cislo, INTLIST **zoznam)
{
static INTLIST *p_akt=NULL, *p_pom=NULL;
(*zoznam)->prvocislo=cislo;
p_pom=(INTLIST *)malloc(sizeof(INTLIST));
p_pom->dalsie=(*zoznam);
(*zoznam)=p_pom;
}
void rozklad(int cislo, INTLIST **zoznam)
{
int pole_prvocisel[DLZKA]={2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};
int i=0, j=pole_prvocisel[DLZKA-1]+1, vysledok;
while (1) {
if (i<DLZKA) {
if ((cislo%pole_prvocisel[i])==0) {
if ((cislo!=pole_prvocisel[i]))
rozklad((cislo/pole_prvocisel[i]), zoznam);
vysledok=(cislo==pole_prvocisel[i]) ? cislo : pole_prvocisel[i];
break;
}
i++;
} else if (j<INT_MAX) {
if (cislo%j==0) {
if (je_prvocislo(j)==1)
if (cislo!=j)
rozklad((cislo/j), zoznam);
vysledok=(cislo==j) ? cislo : j;
break;
}
j++;
}
}
pridaj(vysledok, zoznam);
}
int main(void)
{
INTLIST *zoznam;
int N;
printf("Program na rozklad prirodzenych cisel na prvocisla.\nPre ukoncenie zadaje cislo 0.\n\n");
while (printf("Zadaj cislo: "), scanf("%d", &N), N!=0) {
if (N<0) {
printf("Zadali ste zaporne cislo alebo cislo mimo rozsahu 32-bitovej premennej.\n", N);
continue;
}
zoznam=(intlist *)malloc(sizeof(INTLIST));
zoznam->dalsie=NULL;
rozklad(N, &zoznam);
if (zoznam->dalsie->prvocislo==N)
printf("Cislo %d je prvocislo.\n", N);
else {
printf("Rozklad cisla %d na sucin prvocisel: ", N);
while (zoznam->dalsie!=NULL) {
zoznam=zoznam->dalsie;
printf("%d", zoznam->prvocislo);
if (zoznam->dalsie!=NULL)
printf(" * ");
}
putchar('\n');
}
}
return 0;
}-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: Premena zdrojového kódu na vývojový diagram
to je príliš jednoduchý program na to, aby si zabil niekoľko týždňov hladaním programu ktorý to vie prerobiť automaticky. Prekreslené to máš do hodinky. A smrdí to tu riešením úlohy. AK si ten program písal sám, musíš to vedieť aj pre kresliť. A ak si to nepísal sám, tak ho čítaj riadok po riadku a zapisuj príkazy do značiek