Započni novu temu Ova tema je zaključana, ne možete da menjate postove ili da odgovarate  [ 15 Posta ] 
Autoru Poruka
PostPoslato: 12.05.2003. 19:57:03 
Korisnikov avatar

Pridružio se: 12.05.2003. 19:44:44
Postovi: 53
Lokacija: Osladic(Valjevo), trenutno Lekino brdo
Godina: Apsolvent
Smer: IS
/* FILE stak.c
implementacija domaceg zdatka
jednostruko spregnuta lista sa nizom kao elementom liste
*/

#include <stdio.h>
#include <alloc.h>
#include "stak.h"

/* pokazivac na vrh liste */
typedef struct pok_vrh {
struct cvor *vrh; } POK_VRH;

/* cvor liste */
typedef struct cvor {
int niz[5];
int brel;
struct cvor *sled; } CVOR;

BOOL prazanStak(s)
Stak s;
{
POK_VRH *glava;
glava = (POK_VRH *) s;
if (glava->vrh == NULL)
return(TRUE);
else
return(FALSE);
}

BOOL punStak(s)
Stak s;
{
/* pretpostavimo da uvek ima memorije za dinamicku alokaciju */
if (s==NULL) return(FALSE); /* zato sto ne radi samo return(false)*/
else return(FALSE);
}

SIGNAL gurni(s, element)
Stak s;
int element;
{
POK_VRH *glava;
CVOR *pom;

glava = (POK_VRH *) s;
if ((glava->vrh->brel == 4) || (glava->vrh == NULL))
{ pom = malloc(sizeof(CVOR)); /* kada dodajemo u novi cvor */
pom->brel = -1;
pom->niz[++(pom->brel)] = element;
pom->sled = glava->vrh;
glava->vrh = pom; }
else { glava->vrh->niz[++(glava->vrh->brel)] = element; };
return(OK); /* kada dodajemo u postojeci */
}

SIGNAL povuci(s, element)
Stak s;
int *element;
{
POK_VRH *glava;
CVOR *pom;

if(prazanStak(s))
return(PRAZAN_STAK);

glava = (POK_VRH *) s;
if (glava->vrh->brel == 0)
{ pom = glava->vrh; /* kada povlacimo poslednji iz cvora */
*element = pom->niz[pom->brel];
glava->vrh = pom->sled;
free(pom); }
else { *element = glava->vrh->niz[(glava->vrh->brel)--]; };
return(OK); /* kada nije poslednji u cvoru */
}

SIGNAL kreirajStak(s)
Stak *s;
{
POK_VRH *glava;
glava = malloc(sizeof(POK_VRH));
glava->vrh = NULL;
*s = (Stak) glava;
return(OK);
}

SIGNAL unistiStak(s)
Stak s;
{ int el;

while(!prazanStak(s)) povuci(s, &el);
free(s);
return(OK);
}


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 12.05.2003. 21:25:16 

Pridružio se: 14.04.2002. 09:52:54
Postovi: 34
Lokacija: Beograd
Svaka mast, mc...

Teofil Panchic


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 16.05.2003. 00:50:20 
Imagine Cup Master
Korisnikov avatar

Pridružio se: 16.05.2003. 00:36:10
Postovi: 29
Nije problem proci nego kompajlirati :)
Ako necete da pravite projekat moze i iz komandne linije.

Ide nesto ovako (za Borlandov C++):

bcc -I"direktorijum sa heder fajlovima" -n"gde hocete da stavite .exe fajl" "pa onda imena fajlova"


ili lepse


bcc -Ic:\strukt~1 -nc:\strukt~1 c:\strukt~1\inverz.c c:\strukt~1\stak.c

i fercera ko blesavo :D...

Mene je vratio, jer sam bio iskren pa mu rekao da sam inkludovao stak.c umesto stak.h .

Treba jos da napomenem da posle -I ide odmah staza, znaci bez razmaka kao i kod -n.
Za vise pomoci na ovu temu startujte bcc.
Naravno moze i preko .mak fajla i sa pravljenjem projekta ali ovako je jednostavnije za one koji vole stari dobri DOS :mrbig .
Ja cu moj domaci da "branim" tek u ponedeljak i ako me sad vrati bice svasta.

_________________
Slika


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 16.05.2003. 07:34:57 
Moderator
Korisnikov avatar

Pridružio se: 13.11.2001. 08:45:08
Postovi: 4717
Lokacija: Novi Bgd.
Godina: Dipl.
Smer: IS
Meni nije jasno

_________________
Oni hipotetički kostrukti o kojima se može govoriti kao o konzistentnim i relativno trajnim dinamičkim sistemima koji objašnjavaju veći deo procesa motivacije, obuhvatajući i ciljeve i motive kroz njihove međusobne relacije, čime se mogu uslovno..


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 20.05.2003. 08:48:24 
Korisnikov avatar

Pridružio se: 12.05.2003. 19:44:44
Postovi: 53
Lokacija: Osladic(Valjevo), trenutno Lekino brdo
Godina: Apsolvent
Smer: IS
Ja stvarno ne znam da li ste Vi kolega programirali u programskom jeziku C. Ja sam poceo od skora i sa mojim skromnim znanjem mogu reci da je ovo STANDARDAN C!

Kada nam je nas profesor Sinisa Neskovic dao domaci zadatak on je rekao da iskljucivo implementiramo njegove procedure koje je on napisao pre 15 godina, sto znaci da je to najstandardnije moguce napisano.

A za brojac u svakom cvoru, pa kolega u eri smo kompijutera od 2 i vise GHz, memorija preko 1Gb i struktura sa po 2/4 bajta vise po cvoru nece sporije raditi od Vaseg resenja koje btw. nismo ni videli.

Da ne bi sirili dalje evo jednog predloga, koliko sam video postovali ste na svaku poruku u vezi jezika C, sada bi bilo lepo da nam prilozite Vase resenje drugog domaceg zadatka iz struktura podataka. Ako niste u toku radi se o implementaciji hashing metode, treba imati opcije ubaci, pretrazi, izbaci i statistika kolizija.

BugiVugi i ja domaci branimo u sredu 21. ali necemo ga postovati dok ne vidimo Vase resenje.

McEvich . BugiVugi

_________________
Bad Boy, Bad Boy, what you gonna do
What you gonna do when they come for you


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 20.05.2003. 10:51:03 

Pridružio se: 15.11.2001. 21:52:55
Postovi: 242
Lokacija: Sabac
Godina: Dipl.
Smer: IS
sta se prepucavate tu kao mala deca? ko hoce nek postuje resenje, ko ne zeli niko ga ne tera, a ne "necemo postovati nase resenje dok ne vidimo tvoje". pazi, molim te...


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 20.05.2003. 16:11:18 

Pridružio se: 17.01.2002. 01:08:22
Postovi: 261
Lokacija: /home/kruzer/
McEvich je napisao:
Ja stvarno ne znam da li ste Vi kolega programirali u programskom jeziku C. Ja sam poceo od skora i sa mojim skromnim znanjem mogu reci da je ovo STANDARDAN C!

eto,


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 20.05.2003. 16:30:42 
Korisnikov avatar

Pridružio se: 25.10.2001. 12:12:48
Postovi: 380
Lokacija: Beograd
Godina: Dipl.
Smer: IS
Prvo, decko se jedini iscimao i prezentovao svoj domaci javno, a onda se pojavi zlatko sa, izvinjavam se, perverzijama i neukusnim kritikama koje naginju ka provokaciji tipa ovde ti ova zagrada nosi tipku vise (a ni ne nosi jer bi morao da bude bar SPACE onda)... Ja sam da kvalitet foruma podignemo na neki zavidan kvalitet.
Drugo, molim da neko kaze da McEvich-ev zapis zaglavlja f-ja nije standardan C, a usput "ima staza" u C-u.
Trece, pozdravljam vas sve i mislim da cu poslusati savet Abraxas-a.

_________________
Zoran Marokanac: "Postojao je samo jedan Ljuba Zemunac. Svi drugi su obični krompiri."


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 20.05.2003. 20:06:14 
Moderator
Korisnikov avatar

Pridružio se: 13.11.2001. 08:45:08
Postovi: 4717
Lokacija: Novi Bgd.
Godina: Dipl.
Smer: IS

_________________
Oni hipotetički kostrukti o kojima se može govoriti kao o konzistentnim i relativno trajnim dinamičkim sistemima koji objašnjavaju veći deo procesa motivacije, obuhvatajući i ciljeve i motive kroz njihove međusobne relacije, čime se mogu uslovno..


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 21.05.2003. 00:21:33 
Imagine Cup Master
Korisnikov avatar

Pridružio se: 16.05.2003. 00:36:10
Postovi: 29
Eto vidite kako svi mozemo da zivimo u slozi i miru :D .
Aj sad da uradimo drugi domaci. :D :D :D :D

_________________
Slika


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 21.05.2003. 20:09:32 
Moderator
Korisnikov avatar

Pridružio se: 13.11.2001. 08:45:08
Postovi: 4717
Lokacija: Novi Bgd.
Godina: Dipl.
Smer: IS
[code]import sys

class HashMap:

def (self, velicina = 7): #ovde treba da pi

_________________
Oni hipotetički kostrukti o kojima se može govoriti kao o konzistentnim i relativno trajnim dinamičkim sistemima koji objašnjavaju veći deo procesa motivacije, obuhvatajući i ciljeve i motive kroz njihove međusobne relacije, čime se mogu uslovno..


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 23.05.2003. 16:29:28 
Moderator
Korisnikov avatar

Pridružio se: 13.11.2001. 08:45:08
Postovi: 4717
Lokacija: Novi Bgd.
Godina: Dipl.
Smer: IS
Kod:
// fajl: Par.java ////

import java.util.*;


public class Par implements Map.Entry, Comparable {
    Object kljuc, vrednost;

    Par(Object k, Object v) {
        kljuc = k;
        vrednost = v;
    }

    public Object getKey() {
        return kljuc;
    }

    public Object getValue() {
        return vrednost;
    }

    public Object setValue(Object v) {
        Object stara = vrednost;

        vrednost = v;
        return stara;
    }

    public boolean equals(Object o) {
        return kljuc.equals(((Par) o).kljuc);
    }
    
    public int hashCode() {
        return kljuc.hashCode();
    }

    public int compareTo(Object drugi) {
        return ((Comparable) kljuc).compareTo(((Par) drugi).kljuc);
    }
}


Kod:
// fajl: GlupaHashMapa.java ////

import java.text.MessageFormat;
import java.util.*;


public class GlupaHashMapa extends AbstractMap {
    private LinkedList[] niz;

    public GlupaHashMapa(int n) {
        niz = new LinkedList[n];
        
        for (int i = 0; i < n; i++) {
            niz[i] = new LinkedList();
        }
    }

    public GlupaHashMapa() {
        this(7);
    }

    public Object put(Object kljuc, Object vrednost) {
        int ind = (kljuc == null) ? 0 : h(kljuc.hashCode());
        Par par = new Par(kljuc, vrednost);

        Object stara = null;
        ListIterator it = niz[ind].listIterator();

        while (it.hasNext()) {
            Object iPar = it.next();

            if (iPar.equals((par))) {
                stara = ((Par) iPar).getValue();
                it.set(par);
                break;
            }
        }
        if (stara == null) {
            niz[ind].add(par);
        }
        return stara;
    }

    public Object get(Object kljuc) {
        int ind = (kljuc == null) ? 0 : h(kljuc.hashCode());
        Par trazeni = new Par(kljuc, null);
        ListIterator it = niz[ind].listIterator();

        while (it.hasNext()) {
            Object iPar = it.next();

            if (iPar.equals((trazeni))) {
                return ((Par) iPar).getValue();
            }
        }
        return null;
    }
    
    public Object remove(Object kljuc) {
        int ind = (kljuc == null) ? 0 : h(kljuc.hashCode());
        Par trazeni = new Par(kljuc, null);
        Iterator it = niz[ind].iterator();
        Object stara = null;

        while (it.hasNext()) {
            Object iPar = it.next();

            if (iPar.equals((trazeni))) {
                stara = ((Par) iPar).getValue();

                it.remove();
                break;
            }
        }
        return stara;
    }
    
    public void clear() {
        for (int i = 0; i < niz.length; i++) {
            niz[i].clear();
        }
    }

    public Set entrySet() {
        Set elementi = new HashSet();

        for (int i = 0; i < niz.length; i++) {
            if (niz[i].isEmpty()) {
                continue;
            }
            Iterator it = niz[i].iterator();

            while (it.hasNext()) {
                elementi.add(it.next());
            }
        }
        return elementi;
    }

    public String statistikaKolizija() {
        int punInd = niz.length;
        int suma = 0;

        for (int i = 0; i < niz.length; i++) {
            if (niz[i].isEmpty()) {
                punInd--;
            } else {
                suma += niz[i].size();
            }
        }

        Object[] rez = {new Integer(suma - punInd), new Integer(punInd),
                new Integer(niz.length), new Float(1f * punInd / niz.length)};

        return MessageFormat.format(
                "Broj kolizija: {0, number}\nPopunjenost: {1,number}/{2,number} ({3, number,##.## %})\n",
                rez);
    }

    private int h(int x) {
        return Math.abs(x % niz.length);
    }
}


Kod:
// fajl: Glavna.java ////

import java.util.GregorianCalendar;


public class Glavna {
    public static void main(String[] args) {
        Map hm = new GlupaHashMapa();

        hm.put(new Integer(17717117), new Integer(18));
        hm.put("adresa", "Pere Perica 12");
        hm.put("pi", new Float(3.14));
        hm.put(new Integer(1100), "Beograd");
        hm.put(new Float(99.4), "% slicnosti gena simpanze i coveka");
        hm.put(new Integer(36350), "036");

        GregorianCalendar vreme = new GregorianCalendar();

        hm.put(vreme, "Kako vreme brzo tece");
        System.out.println(hm);

        System.out.println("\nbroj parova u mapi je: " + hm.size());
        System.out.println("da li je mapa prazna? " + hm.isEmpty());
        System.out.println("da li mapa sadrzi kljuc 99.4? "
                + hm.containsKey(new Float(99.4)));
        System.out.println(hm.statistikaKolizija());

        System.out.println("Brisem vreme " + hm.remove(vreme));
        System.out.println("Brisem pi " + hm.remove("pi"));
        System.out.println("Brisem 99.44 " + hm.remove(new Float(99.4)));

        System.out.println("Adresa je: " + hm.get("adresa"));
        System.out.println("Pi je: " + hm.get("pi"));

        System.out.println("\nSada hash mapa izgleda ovako:\n");
        System.out.println(hm);

        hm.clear();
        System.out.println("\nPosle clear():\n" + hm);
    }
}


Evo he

_________________
Oni hipotetički kostrukti o kojima se može govoriti kao o konzistentnim i relativno trajnim dinamičkim sistemima koji objašnjavaju veći deo procesa motivacije, obuhvatajući i ciljeve i motive kroz njihove međusobne relacije, čime se mogu uslovno..


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 24.05.2003. 09:52:46 

Pridružio se: 23.05.2003. 23:47:29
Postovi: 3
Lokacija: Bg
Kod:
#include <stdio.h>
#include <malloc.h>
#include "domaci.h"

typedef struct cvor
{
   int info;
   struct cvor *sled;
}clan;
typedef struct zapis
{
   clan *hniz[m];
}hashniz;
typedef struct hashrep
  {
     hashniz *vrh;
  }hashr;

int hashmod(int broj)
{
   return broj % m;
}

void init(h)
hash h;
{
   int i;
   hashr *hr;
   hr=(hashr*)h;
   for (i=0;i<m;i++)
       hr->vrh->hniz[i]=NULL;
}

void ubaci(h)
hash h;
{
   int adr,br;
   clan *novi;
    hashr *hr;
   hr=(hashr*)h;
    for (;;)
   {
      printf("\nUnesite broj, za kraj unosa 0:");
      scanf("%d",&br);
      if (br==0)
         break;
      adr=hashmod(br);
      novi=(clan*)malloc(sizeof(clan));
      novi->info=br;
      novi->sled = hr->vrh->hniz[adr];
      hr->vrh->hniz[adr] = novi;
   }
}

void pretrazi(h)
hash h;
{
   int adr,br,izbor;
   clan *pom;
   hashr *hr;
   hr=(hashr*)h;
   for (;;)
   {
      printf("\nUnesite kluc za pretrazivanje:");
      scanf("%d",&br);
      adr=hashmod(br);
      if (hr->vrh->hniz[adr]==NULL)
         printf("\nElement ne postoji");
      else
      {
         pom=hr->vrh->hniz[adr];
         while (pom != NULL)
         {
            if (pom->info==br)
            {
               printf("\nPronadjen!!!");
               break;
            }
            pom=pom->sled;
         }
         if (pom==NULL)
            printf("\nElement ne postoji");
      
      }
      printf("\nDa li zelite da nastavite sa pretrazivanjem?");
      printf("\n1.Da\n2.Ne\nIzbor: ");
      scanf("%d",&izbor);
       if (izbor == 2)
         break;
   }
}
void kolizija(h)
hash h;
{
   int i,br1=0,br2=0;
   clan *pom;
   hashr *hr;
   hr=(hashr*)h;
   for (i=0;i<m;i++)
   {
      if (hr->vrh->hniz[i] != NULL)
      {
         br1++;
         pom=hr->vrh->hniz[i];
         while (pom !=NULL)
         {
            br2++;
            pom=pom->sled;
         }
      }
   }
   printf("\nOd ukupno %d ubacivanja ima %d kolizija",br2,br2-br1);
}


Ovo je domaci.c


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 24.05.2003. 09:55:54 

Pridružio se: 23.05.2003. 23:47:29
Postovi: 3
Lokacija: Bg
Ovde je glavni program: Hash.
Kod:
#include <stdio.h>
#include "domaci.h"

void main()
{   
   hash h;   
   init(h);
   ubaci(h);
   pretrazi(h);
   kolizija(h);
}

i jos domaci.h
Kod:
#define m 101
typedef void * hash;

void init(hash h);
void ubaci(hash h);
void pretrazi(hash h);
void kolizija(hash h);


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 24.05.2003. 10:25:39 

Pridružio se: 23.05.2003. 23:47:29
Postovi: 3
Lokacija: Bg
Profesor trazi da zadatak bude na istu foru kao i prvi. Zato
je mene vratio kada sam mu doneo samo domaci.c i domaci.h.

Za one koji ne znaju kompajliranje bi u ovom clucaju bilo:
xxx hash.c domaci.c
gde je xxx poziv vaseg kompajlera, naravno iz komandne linije.
.Exe se napravi od onog source-a u kome je main(). Drugi
ne smeju imati main().

PP.


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
Prikaži postove u poslednjih:  Poređaj po  
Započni novu temu Ova tema je zaključana, ne možete da menjate postove ili da odgovarate  [ 15 Posta ] 


Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 2 gostiju


Ne možete postavljati nove teme u ovom forumu
Ne možete odgovarati na teme u ovom forumu
Ne možete monjati vaše postove u ovom forumu
Ne možete brisati vaše postove u ovom forumu
Ne možete slati prikačene fajlove u ovom forumu

Pronađi:
Idi na:  
Copyleft FONForum 2001-2014 | Powered by phpBB © phpBB Group