Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 16 odgovora
  • 6.353 pregleda

Najnovija ↓

Vase misljenje ??? 18.05.2006. u 22:41 · pre 249 meseci #1
Ovaj projekat radi nas petoro kao sto se moze i videti a rok za izradu je mesec dana. Interesuje me vase misljenje, da li je normalno da nam daju ovako nesto da pravimo posle dva meseca predavanja iz C-a.



Kratak opis projekta: stvaranje softvera za jednostavnu simbolicku i numericku obradu matematickih izraza. Softver treba da omoguci korisniku da putem jednostavnog menija moze da interaktivnounosi aritmeticke izraze i nad njima primenjuje obradu. Meni treba da se sastoji od sledecih stavki: unos izraza, simplifikacija izraza, resavanje sistema linearnih jednacina, izracunavanje vrednosti odredjenog integrala. Korisniku treba omoguciti da svu obradu u toku jedne sesije snimi u fajl, kao i da nastavi rad na mestu snimljenom u fajl.

Raspodela aktivnosti:

Student 1: predstavljanje izraza binarnim stablom. Izraz se zadaje jednim znakovnim nizom (string) i osim simbolickih i numerickih vrednosti moze da sadrzi operatore +,-,*,/, zagrade (i), trigonometrijske funkcije, eksponencijalnu funkciju, logaritamsku funkciju, stepenu funkciju i simbol jednakosti =. Rezultujucu izraz se smesta u listu izraza. U slucaju greske, odgovarajuca poruka se ispisuje na standardnom izlazu. Ispisivanje izraza obilaskom cvorova stabla u inorder poretku

Student 2: simplifikacija aritmetickog izraza predstavljenog binarnim stablom. Rezultat simlifikacije je novo stablo koje se smesta u listu izraza. Izracunavanje vrednosti izraza uz eksplicitno zadavanje promenljivih u izrazu.

Student 3: resavanje sistema linearnih jednacina. Sistem jednacina se zadaje listom izraza za koje se trazi resenje. U slucaju da resenje postoji, ispisuje se resenje za sve promenljive na standardnom izlazu. U suprotnom ispisuje se poruka o gresci.

Student 4: izracunavanje vrednosti odredjenog integrala funkcije zadate izrazom, za zadati opseg promenljive i zadati korak

Student 5: glavni program sa menijem. Na ekranu, osim opcija menija, treba ispisivati listu unetih izraza. Omoguciti brisanje zadatog izraza, snimanje izraza u fajl i ucitavanje iz fajla.
Re: Vase misljenje ??? 19.05.2006. u 12:48 · pre 249 meseci #2
Pa i nije normalno...
U stvari, zavisi, sta si radio pre toga, da li je ovo prva godina da prgramiras, da li si vec video binarna stabla ranije, u bilo kom jeziku.
Potpis
"The problem with the world is that everyone is a few drinks behind."
-Humphrey Bogart
Re: Vase misljenje ??? 25.05.2006. u 21:05 · pre 248 meseci #3
Pa cekaj, upisao si ETF i to smer SI. Naravno da treba na tom fakultetu naucis programiranje (i to prakicno a ne da se igras sa matricama i dinamickom memorijom).
Ovo je najbolji nacin da krenes da programiras!
Ja bih voleo da su i na opstem odseku dali da se radi projekat.

I nemoj da se zalis jer pitao bih te da pored C-a, mate (koja vam je mnogo laksa u odnosu na OO), ORT-a treba da ucis i OET.
Re: Vase misljenje ??? 26.05.2006. u 16:52 · pre 248 meseci #4
ne znam za ostale, ali ja ne bih voleo da sam student br2.;)
inace mislim da nije realno, pogotovo ako nemate puno iskustva.bilo bi lepo da ako dodjete do neke interesantne literature o binarnim stablim i ostalim problemima (recimo simplifikacija istih) bacite neki link ovde.

pozdrav
Potpis
ja sam panker sa diplomom kod moje mame...
Re: Vase misljenje ??? 28.05.2006. u 03:17 · pre 248 meseci #5
Ovo spada u kolegije koji se ovdje zovu "Strukture podataka i algoritmi". I to dolazi tek nakon godinu dana C-a. Cekaj, ti zelis kazat da su vas nakon dva mjeseca predavanja iz C-a, pod hipotezom da ste krenuli od pocetka, uputili da radite matematicke algoritme i binarna stabla. Uff, to nece na dobro ;)
Potpis

Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
Re: Vase misljenje ??? 28.05.2006. u 13:12 · pre 248 meseci #6
Student 1 i 2 će krv ispišat ukoliko nisu nikad prije radili neki elementarni lexer/parser, jer ima tu poprilično teorije za preći prije nego napišu i jedne linije koda (PS: ako je samo jedan izraz u pitanju, onda čak i nije tako teško.. :) 3. i 4. zadatak nisu tako teški, najbolje iskoristite neke već poznate metode za numeričku integraciju i rješavanje matrice sustava linearnih jednadžbi (Gaussova eliminacija, Cramerovo pravilo i sl.). Student 5 je osvojio jackpot! :D

Svejedno, za početni kolegij programiranja ovo je zadatak koji samo psihopat može sastaviti.
Potpis
Put the funk in funktion.
Re: Vase misljenje ??? 28.05.2006. u 18:03 · pre 248 meseci #7
Pravljenje parsera nije sasvim jednostavno, ali se nivo matematičkih izraza može lepo odraditi i bez teorije potisnih mašina. Ja sam to radio i bez parser generatora. No, nije baš ni da je sasvim lako.

Ni u matematici nije jasno šta je to uprošćavanje izraza. Drugi deo zadatka, ako se ne formuliše preciznije i nije korektno postavljen. Taj deo zadatka ne zahteva nikakvo parsiranje.
Citat:
SHCkabbio_[2hot]: Pa cekaj, upisao si ETF i to smer SI. Naravno da treba na tom fakultetu naucis programiranje (i to prakicno a ne da se igras sa matricama i dinamickom memorijom).

To što nazivaš "igranjem matricama i dinamičkom memorijom" spada u osnove programiranja i bez toga nema ni makac dalje prema nečem ozbiljnijem.
Citat:
[url=/p1162488]Svejedno, za početni kolegij programiranja ovo je zadatak koji samo psihopat može sastaviti.

Potpuno se slažem.
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: Vase misljenje ??? 28.05.2006. u 23:48 · pre 248 meseci #8
Ja sam student prve godine ETFa, smer OO, i mogao bih uraditi te zadatke za 7 dana s odmorima ;) Stvari jesu relativno teske, ali zar postoji ista toliko tesko kada ti je na raspolaganju gomila literature + internet??? Istina je da imam dobro predznanje iz C-a i uopste programiranja i pre nego sto sam upisao ETF, ali vi ste ipak SI, potrudite se...
Re: Vase misljenje ??? 29.05.2006. u 09:59 · pre 248 meseci #9
Super! Reši samo drugi zadatak i svaka ti čast.
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: Vase misljenje ??? 29.05.2006. u 18:34 · pre 248 meseci #10
Citat:
Mix5:
Student 2: simplifikacija aritmetickog izraza predstavljenog binarnim stablom. Rezultat simlifikacije je novo stablo koje se smesta u listu izraza. Izracunavanje vrednosti izraza uz eksplicitno zadavanje promenljivih u izrazu.


Ok, ovo je jako interesantno, kontajuci da su prosla dva mjeseca kursa iz C-a. Znaci, student broj 2. je u ta dva mjeseca naucio kompletne osnove C-a, aritmetiku pointera, povezane liste, i onda na kraju teoriju binarnih stabala. Oprostite gospodo, ali ovo je apsolutni kretenizam. Po meni, rjesavanje ovakvog zadatka bi studentu trebalo donijet minimalno oslobadjanje od usmenog ispita, a mozda cak i gotovu ocjenu u index prije roka. Sjecam se da je i nama dalo slican zadatak nakon mjesec dana jednosemestralnog kolegija koji je zapravo bio osnove C-a, napravit jednostavan program za upisivanje 30 studenata, njihove ocjene, prosjek, itd. Profesor je rekao bonus za onoga ko napravi u tjedan dana, bonus je zapravo bio ovisan o tome kako si ti to izveo sve skupa. Jedan kolega je napravio na najjednostavniji moguci nacin, unutar jedne petlje, da se odma varijabilno racuna prosjek nakon svakog upisa. Ja sam napravio sa nedefiniranim brojem studenata preko dinamicke alokacije memorije (znao sam C dobrano prije faxa), strukturama, finim menijem za upis itd. Mislim, zadatak je piz**rija za nekog ko zna, ali to je bio samo za "bonus", nikakav obavezan zadatak unutar kolegija. Uglavnom, kolega je dobio ocjenu vise nakon ispita, a ja sam bio oslobodjen kompletnog.

Poanta : ima ljudi koji znaju mnogo stvari od prije, ali je vecina onih koji se prvi put susrecu sa programiranjem, i suludo je nakon dva mjeseca trazit od njih ovakve stvari.
Potpis

Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
Re: Vase misljenje ??? 30.05.2006. u 20:30 · pre 248 meseci #12
z@are

Nikakvo znanje nijednog programskog jezika (uključujući liste, stabla itd.) nije samo po sebi dovoljno da se reši zadatak o kome diskutuješ. Taj zadatak se mora prvo matematički rešiti. Bi u matematici nije jasno šta je to zapravo uprošćavanje izraza. Taj zadatak ima smisla samo ako strogo preciziraš skup izraza i kriterijum koji je od dva ekvivalentna izraza jednostavniji.
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: Vase misljenje ??? 31.05.2006. u 00:41 · pre 248 meseci #13
Hmm, da, potpuno si u pravu. Ja sam se samo osvrnuo na programersku stranu problema, izgleda da su momci u jos vecoj gabuli nego sta se meni cinilo na prvi pogled.

Prosto me zanima ovo "rjesavanje odredjenog integrala". Ako je profesor to zamislio kao zadavanje aritmetickog izraza preko tog izbornika, pa onda integraciju preko navedenih granica, teoretski bi se mogao upisat najtezi integral koji se nalazi u bilo kojoj zbirci matematike sa prve godine faksa. Znaci da je navedeni lik psihopat teze klase.
Potpis

Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
Re: Vase misljenje ??? 12.06.2006. u 23:15 · pre 248 meseci #14
Ovo je samo deo mog dela projekta. Molim vas da mi objasnite sta i kako trebam da prepravim da bi to radilo.

Code:
#include<stdio.h>
#include"stablo.h"
#include"greska.h"

typedef struct elementListe
{
        CvorStabla *root;
        char *infixizraza;
        struct elementListe *next;
}       ElementListe;

typedef struct lista
{
        struct ElementListe *prvi;
        struct ElementListe *poslednji;       
}       Lista;

ElementListe *NapraviElement(CvorStabla *root, char *infixizraza)
{
             ElementListe *e;
             e = malloc(sizeof(ElementListe));
             if (!e) {PrijaviGresku("Greska u pravljenju elementa");return 0;}
             e -> next = NULL;
             e -> infixizraza = malloc(strlen(infix)+1);
             strcpy(e -> infixizraza, infix);
             e -> root = root;
             return e;
}

Lista *NapraviListu()
{
      Lista *l;
      l = malloc(sizeof(Lista));
      prvi = NULL;
      poslednji = NULL;
      return l;
}

void DodajUListu(Lista *l, ElementListe *e)
{
     if(!prvi) prvi = e;
     else      poslednji->next = e;
     poslednji = e;
              
}

char *UnesiIzrazUInfixu(char *infix)
{
     printf("\nUnesi izraz: ");
     scanf("%s", infix);
     return infix;
}

void IspisiMeni()
{
                 system("CLS");
                 printf("\n(1) Unos izraza\n");
                 printf("(2) Simplifikacija izraza\n");
                 prnitf("(3) Izracunavanje vrednodti izraza\n");
                 printf("(4) Resavanje sistema linearnih jednacina\n");
                 printf("(5) Izracunavanje vrednosti odredjenog integrala\n");
                 printf("(6) Snimanje u fajl\n");
                 printf("(7) Ucitavanje fajla\n");
                 printf("(8) Izbrisi element iz liste\n");
                 printf("(9) Izlaz\n");
                 printf("\nIzbor: ");
}

main () 
{
        char *infix;
        CvorStabla *koren;
        Lista *lista;
        int a;
        while (a!=8)
        {
                  IspisiMeni();
                  scanf("%d", &a);
                  switch (a)
                  {
                            case 1: lista = NapraviListu();
                                    if (!lista) lista = NapraviListu();
                                    infix = UnesiIzrazUInfixu(infix);
                                    koren = NapraviStabloIzraza(infix);
                                    DodajUListu(lista,NapraviElement(koren,infix));
                                    
                                    break;
                            
                            case 2: 
                                    break;
                                    
                            case 3: 
                                    break;
                            
                            case 4: 
                                    break;
                                    
                            case 5: 
                                    break;
                            
                            case 6: 
                                    break;
                            
                            case 7: 
                                    break;
                                    
                            case 8: 
                                    break;
                   }
      }
}


Code:
//greske.h

#ifndef Greske_h
#define Greske_h

    void PrijaviGresku (char *poruka);
    char *DohvatiGresku ();

#endif



Code:
//stablo.h

#ifndef STABLO_H
#define STABLO_H

typedef struct cvorstabla
{
        char tip;
        double vrednost;
        char oznaka[10];
        struct cvorstabla *levi,*desni;
} CvorStabla;

CvorStabla *NapraviStabloIzraza(char *);

char *StabloUZnakovniNiz(CvorStabla *);

void ObrisiStablo(CvorStabla *);

#endif
Re: Vase misljenje ??? 13.06.2006. u 23:51 · pre 248 meseci #15


Pogledaj source na ovoj adresi: http://www.singsurf.org/djep/index.html.

To je open source projekat za pojednostavljenje aritmetickih izraza uradjen u JAVI + jos nesto. :)
Jeste Java, ali mislim da ces se manje vise lako snaci u kodu.
Pronadji fajl SimplificationVisitor.java, on sadrzi kod koji ti treba.


Nadam se da ce ti ovo pomoci. Inace ovaj zadatak nije normalan za studente prve godine.

Pozdrav
Re: Vase misljenje ??? 15.06.2006. u 16:51 · pre 248 meseci #16
Ne treba meni simplifikacija izraza, nego da mi neko kaze kako da prepravim funkcije koje sam napisao!
Re: Vase misljenje ??? 16.06.2006. u 09:03 · pre 248 meseci #17
Resio sam problem.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme