Premena zdrojového kódu na vývojový diagram

Informácie o software, ankety...
aRadko1
Novice
Novice
Príspevky: 3
Registrovaný: 11 mar 2009, 18:43

Premena zdrojového kódu na vývojový diagram

Príspevok od používateľa aRadko1 »

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.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Premena zdrojového kódu na vývojový diagram

Príspevok od používateľa audiotrack »

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
aRadko1
Novice
Novice
Príspevky: 3
Registrovaný: 11 mar 2009, 18:43

Re: Premena zdrojového kódu na vývojový diagram

Príspevok od používateľa aRadko1 »

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

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
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Premena zdrojového kódu na vývojový diagram

Príspevok od používateľa audiotrack »

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
Napísať odpoveď