HTML

Programozó Páternoszter

Ez a Programozó Páternoszter (PP) blogja, a programozásról szól. Aktualitása, hogy a Debreceni Egyetem Informatikai Kara Magasszintű programozási nyelvek 1-2, C++ esattanulmányok, Java esettanulmányok című kurzusainak blogja is egyben.

A vadászat

A Debreceni Egyetem Programozói Évkönyve: az UDPROG projekt. A szakmai fórumunk a Facebook-en. Az új előadások a prezin.
A régi előadások:
Prog1:
1. C bevezetés
2. C tárgyalás
3. C befejezés
4. C a gyakorlatban
5. C++ bevezetés
6. C++ tárgyalás
7. C++ befejezés
8. C++ a gyakorlatban
9. Java platform bevezetés
10. Kvantuminformatikai alg. bev.
Prog2:
1. Java bevezetés
2. Java tárgyalás
3. Java befejezés
4. Java a gyakorlatban
5. Software Engineering bev.
6. Java EE bevezetés
7. AspectJ bevezetés
8. BPMN-BPEL SOA programozás
9. C++ haladó
10. Tensorflow

Kövess engem!

Friss topikok

Linkblog

"Hey, Mikey, he likes it! Ready for more?" (2) *

2011.03.12. 11:43 nb

Íme a második hullám, de élvezd az elsőt is, még számos fraktálos, genomos, fehérjés és mindenféle 1-7 trófeás vad les itt is, a korábbi hullámban Rád! (Ha mást nem mondunk, akkor a szokásos "hegylakó szabály" van: csak egy maradhat, azaz az első vadászé a trófea.)

9 kisbajnokságos feladatok

8 kisbajnokságos feladatok

7 kisbajnokságos feladatok

  • (KÉSZ) A MINIX mikrokernel aktuális (vagy valamelyik korábbi) verziójában nyomkövesd, hogy melyik processz hány üzenetet küldött a többinek? (részletes, step by step help itt)
  • (KÉSZ) Az előző feladat alternatív megoldását készíts el (nem a PCB módosítása, hanem felmásoló rendszerhívás írása) (részletes, step by step help itt)
  • (KÉSZ) Az 5. előadás PolarGen osztályához készíts egy Qt-s hisztogramot, hogy ellenőrizni tudd, kiadja-e a haranggörbét! (help: www.tankonyvtar.hu/informatika/javat-tanitok-1-1-1-080904-1, a "1.19. példa - Hisztogram feladat")
  • (ÉLES) írj egy Qt-s Xterm-et! (help OSS*** könyv 284. o., l. a 6. előadás ajánlott irodalmát)

6 kisbajnokságos feladatok

5 kisbajnokságos feladatok

  • (KÉSZ) A PP 277 alapján írj egy saját egyszerű BogoMIPS programot!
  • (ÉLES) K&R feladat: 8.5 gyakorlat
  • (KÉSZ) OO-sítsd a Mandelbrotos szál osztályt komplex számok használatával, pl.:
    ... for(int k=0; k<szelesseg; ++k) {
                // c = (reC, imC) a háló rácspontjainak
                // megfelelõ komplex szám
    
                reC = a+k*dx;
                imC = d-j*dy;
    
                std::complex<double> c(reC, imC);
                // z_0 = 0 = (reZ, imZ)
    
                reZ = 0;
                imZ = 0;
    
                std::complex<double> z_n(reZ, imZ);
    
                iteracio = 0;
                // z_{n+1} = z_n * z_n + c iterációk
                // számítása, amíg |z_n| < 2 vagy még
                // nem értük el a 255 iterációt, ha
                // viszont elértük, akkor úgy vesszük,
                // hogy a kiinduláci c komplex számra
                // az iteráció konvergens, azaz a c a
                // Mandelbrot halmaz eleme            
                /*
                while(reZ*reZ + imZ*imZ < 4 && iteracio < iteraciosHatar) {
                    // z_{n+1} = z_n * z_n + c
                    ujreZ = reZ*reZ - imZ*imZ + reC;
                    ujimZ = 2*reZ*imZ + imC;
                    reZ = ujreZ;
                    imZ = ujimZ;
    
                    ++iteracio;
    
                }
                */
    
                while( std::abs(z_n) < 4 && iteracio < iteraciosHatar) {
                   z_n = z_n  * z_n + c;
                   ...
    
    s vesd össze a segességet a korábbival.
  • (ÉLES) A deriváló progit írd át úgy, hogy lehessen benne tetszőleges számokat használni, illetve a függvényeket a nevükkel, pl. sin, exp, pow stb.

4 kisbajnokságos feladatok

  • (KÉSZ) A pi-napi elosztott számítás eredménye részszámításonként egy-egy állomány a szerveren, írj olyan programot, ami ezeket a megfelelő sorrendben (ami a fájlnévből derül ki) összefésüli egyetlen állománnyá!
  • (ÉLES) K&R feladat: 4.6 gyakorlat
  • (KÉSZ) K&R feladat: 4.7 gyakorlat
  • (ÉLES) K&R feladat: 4.8 gyakorlat
  • (KÉSZ) Eddigi valamelyik olyan példánkba, ahol ki tudsz találni értelmes parancssor argumentumokat, oda dolgozz be ilyen átvételt:
    #include <stdio.h>
    #include <stdlib.h>

    int
    main (int argc, char *argv[])
    {
      char c;
      int iteracios_hatar;
      double a;

      while (--argc && *(*++argv) == '-')
        {
          switch (c = *((*argv++) + 1))
            {
            case 'i':
              iteracios_hatar = atoi (*argv);
              printf ("%d\n", iteracios_hatar);
              break;
            case 'a':
              a = atof (*argv);
              printf ("%f\n", a);
              break;
            default:
              printf ("%c ismeretlen opcio, hasznalat: ./pa -i 10 -a 5.5\n", c);
              return -1;
              break;
            }
          --argc;
        }
      return 0;
    }
  • (KÉSZ) K&R feladat: 5.14 gyakorlat

3 kisbajnokságos feladatok

2 kisbajnokságos feladatok

  • (KÉSZ) Írj egy SMTP levélküldő progit! (help: PP 137, onnan tudom, hogy sikerült, ha kapok egy mailt az országgyűlés elnökétől a kover.laszlo@parlament.hu email címről :)
  • (KÉSZ) Írd át az 5. előadás "Visszatekintés" fóliái alapján az első g.c-t C++-be úgy, hogy a szabványos adatfolyamokat (cin, cout) használod!
  • (KÉSZ) Az 5. előadás PolarGen osztályával generált számok átlagát és szórását számold ki!
  • (KÉSZ) Írj olyan programot, ami számolja a bemenetén a betűket, használd a lex-et, lásd 1. ea.
  • (KÉSZ) Írj olyan programot, ami számolja a bemenetén a számokat (nem a számjegyeket), használd a lex-et, lásd 1. ea.
  • (KÉSZ) Írj olyan programot, ami számolja a bemenetén a szavakat, használd a lex-et, lásd 1. ea.
  • (KÉSZ) Írj olyan programot, ami számolja a bemenetén a sorokat, használd a lex-et, lásd 1. ea.
  • (KÉSZ) K&R feladat: 2.3 gyakorlat
  • (KÉSZ)  Rajzolj Qt-s ablakba egy sakktáblát (az ablak konstruktorában kapja meg a kezdeti cella szélességet és magasságot) (help bevezetes/elsoQt/AreciboiUzenet az svn-ből).
  • (KÉSZ)  Rajzolj Qt-s ablakba egy sakktáblát (az ablak konstruktorában kapja meg a kezdeti cella szélességet és magasságot) (help bevezetes/elsoQt/AreciboiUzenet az svn-ből) a cellák méretét lehessen növelni/csökkenteni a K, N gombokkal (az előző és a Sejtauto-s hasonló bill. lenyomás figyelő kizáró feladatok).
  • (KÉSZ)  Rajzolj Qt-s ablakba egy malomtáblát (az ablak konstruktorában kapja meg a méret adatokat) (help bevezetes/elsoQt/AreciboiUzenet az svn-ből).
  • (KÉSZ) Rajzolj Qt-s ablakba egy malomtáblát (az ablak konstruktorában kapja meg a méret adatokat) (help bevezetes/elsoQt/AreciboiUzenet az svn-ből) a tábla méretét lehessen növelni/csökkenteni a K, N gombokkal (az előző 2 és a Sejtauto-s hasonló bill. lenyomás figyelő kizáró feladatok).
  • (ÉLES) A deriváló progit egészítsd ki osztással.
  • (ÉLES) A deriváló progit egészítsd ki olyan függvénnyel, ami még nincs benne (és amivel kommentként más még nem).

1 kisbajnokságos feladatok

  • (KÉSZ) Írj olyan függvényt, ami felcseréli hívója két egész változójának értékét, de nincs a forrásszövegben csillag! (help: 5. ea.)
  • (KÉSZ) Írj olyan progit, ami kiírja a környezeti változóit, de ne legyen benne getenv fgv. hívás! (help: PP 272, XIII.4.2 char **environ vagy man environ)
  • (KÉSZ) A pi-napi elosztott számítás eredményét ellenőrizd szúrópróba szerűen néhány helyen a progpater.blog.hu/2011/02/25/kapcsolat_isten_uzenete posztban mutatott pi.nersc.gov/ lappal.
  • (KÉSZ)  Az 5. előadás PolarGen osztályával generált számok átlagát számold ki!
  • (KÉSZ)  K&R feladat: 2.2 gyakorlat
  • (KÉSZ) A deriváló progit egészítsd ki kivonással.

Figyelem: élő közösségként, a vadászattal együtt élve tudjátok, hogy melyik feladat ÉLES, melyik kész, mert nem mindig tudom időben frissíteni!

Ha megtetszik egy feladat, de nem tudsz belekezdeni, vagy elakadtál, bátran kommenteld!

*: www.imsdb.com/scripts/Matrix,-The.html

**: Benedek Zoltán, Levendovszky Tihamér: Szoftverfejlesztés C++ nyelven, Budapest, 2007, Szak K.

***: Alan Ezust, Paul Ezust: An Introduction to Design Patterns in C++ with Qt 4, Prentice Hall (Open Source Series) 2006

283 komment

Címkék: vadászat

A bejegyzés trackback címe:

https://progpater.blog.hu/api/trackback/id/tr482732992

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Painkiller19910110 2011.03.13. 16:42:58

ÉLES) Írj olyan függvényt, ami felcseréli hívója két egész változójának értékét, de nincs a forrásszövegben csillag! (help: 5. ea.) Szerintem ennek is meg van a megoldasa.

imagerz.com/QFdDXFVRBAQ

forráskód:

#include <stdio.h>
void csere(int a,int b)
{
int m;
m=a;
a=b;
b=m;
printf("Csere utan: %d %d\n",a,b);
}

int main(void)
{
int c=8;
int d=16;
printf("Csere elott: %d %d\n",c,d);
csere(c,d);

return 0;
}
Illetve egy olyan változat ami már a bekérteket cseréli fel:#include <stdio.h>
void csere(int a,int b)
{
int m;
m=a;
a=b;
b=m;
printf("Csere utan: %d %d\n",a,b);
}
int main(void)
{
int c;
int d;
printf("Kerlek adj meg egy szamot: ");scanf("%d",&c);
printf("Kerlek adj meg egy masik szamot: ");scanf("%d",&d);
printf("Csere elott: %d %d\n",c,d);
csere(c,d);

return 0;
}

Painkiller19910110 2011.03.13. 16:44:20

(ÉLES) Írj olyan függvényt, ami felcseréli hívója két egész változójának értékét, de nincs a forrásszövegben csillag! (help: 5. ea.) Megvan szerintem a megoldása:

imagerz.com/QFdDXFVRBAQ

forráskód:

#include <stdio.h>
void csere(int a,int b)
{
int m;
m=a;
a=b;
b=m;
printf("Csere utan: %d %d\n",a,b);
}
int main(void)
{
int c=8;
int d=16;
printf("Csere elott: %d %d\n",c,d);
csere(c,d);

return 0;
}

Painkiller19910110 2011.03.13. 16:45:01

XD elöbb nem küldte el..... a legelsö az aktualis.

nb · http://fersml.blog.hu 2011.03.13. 19:24:39

@Painkiller19910110: ez pont, hogy nem jó, mert:

[morpheus@zion morpheus]$ ./p
Csere elott: 8 16
Csere utan: 8 16

#include <stdio.h>
void
csere (int a, int b)
{
int m;
m = a;
a = b;
b = m;
}

int
main (void)
{
int c = 8;
int d = 16;
printf ("Csere elott: %d %d\n", c, d);
csere (c, d);
printf ("Csere utan: %d %d\n", c, d);
return 0;
}

A válaszhoz vezető utat itt meg fogod találni:
www.inf.unideb.hu/~nbatfai/Prog1_5.pdf

Painkiller19910110 2011.03.13. 19:42:22

Most már jó lesz a cserélős amit az előbb küldtem.

forráskód:
#include <stdio.h>
void csere(int a,int b)
{
int m;
m=a;
a=b;
b=m;
printf("Csere utan: %d %d\n",a,b);
}
/*
int main(void)
{
int c;
int d;
printf("Kerlek adj meg egy szamot: ");scanf("%d",&c);
printf("Kerlek adj meg egy masik szamot: ");scanf("%d",&d);
printf("Csere elott: %d %d\n",c,d);
csere(c,d);

return 0;
}
*/
int main(void)
{
int c=8;
int d=16;
printf("Csere elott: %d %d\n",c,d);
csere(c,d);

return 0;
}

A fentebbi main bekér két számot ha ő aktív, az alsó meg megadott számokkal dolgozik.

nb · http://fersml.blog.hu 2011.03.13. 19:56:31

@Painkiller19910110: ilyet kéne kiírni, nem vitás, de úgy, hogy a forrásodban a két printf a csere hívása előtt és után van:

printf("Csere elott: %d %d\n",c,d);
csere(c,d);
printf("Csere elott: %d %d\n",c,d);

Painkiller19910110 2011.03.13. 20:13:37

#include <stdio.h>
void csere(int &a,int &b)
{
int m;
m=a;
a=b;
b=m;
}
int main(void)
{
int a=2,b=9;
printf("Csere előtt: a=%d b=%d\n",a,b);
csere(a,b);
printf("Csere után: a=%d b=%d\n",a,b);
return 0;
}

Painkiller19910110 2011.03.13. 20:40:38

#include <stdio.h>
void csere(int &a,int &b)
{
int m;
a=a-b;
b=a+b;
a=b-a;
}
int main(void)
{
int a=2,b=9;
printf("Csere előtt: a=%d b=%d\n",a,b);
csere(a,b);
printf("Csere után: a=%d b=%d\n",a,b);
return 0;
}

Egy lehetséges másik megoldása Prog1_5 alapján.

nb · http://fersml.blog.hu 2011.03.14. 10:00:43

@Painkiller19910110: Minek az m segédvált, ha úgyis nélküle cserélsz?

Painkiller19910110 2011.03.14. 11:21:08

Elnéztem az előzőt írtam át és abból maradt ott. A másik 2őt megnézte már tanár úr? amit az első hullámhoz küldtem be?

nb · http://fersml.blog.hu 2011.03.14. 11:24:40

@Painkiller19910110: a bogomips-esedet nézem éppen, mi is a másik?

Painkiller19910110 2011.03.14. 11:24:52

Az "m" segédváltozó nélkül a megoldás az jó?

nb · http://fersml.blog.hu 2011.03.14. 11:27:09

@Painkiller19910110: már rég növeltem a vadászok dobozban.

Painkiller19910110 2011.03.14. 11:27:40

Tegnap éselőtte összesen 3at küldtem be a BogoMipset a cserélőset és a környezeti változósat amiben * nélkül kell,
mind a 3 a 2.hullám feladatai közt van.

Painkiller19910110 2011.03.14. 11:28:35

"@Painkiller19910110: már rég növeltem a vadászok dobozban."
kicsivel a bejegyzés olvasása után vettem észre.

Painkiller19910110 2011.03.14. 11:29:18

A bogomips és a környezeti változós az első Mikey-s poszt kommentjei végén van.

Pato1111 2011.03.14. 14:51:15

Azt hiszem sikerült átírnom a g.c-t a bajnokságnak megfelelően
#include <stdio.h>
#include <iostream>

int
main (void)
{
char hexa_jegyek[] = {'A', 'B', 'C', 'D', 'E', 'F'};

int paratlan = 0, elso=0, masodik=0;
char c;
while(std::cin >> c) {

switch(c) {

case 'T':
masodik = 0;
break;
case 'C':
masodik = 1;
break;
case 'A':
masodik = 2;
break;
case 'G':
masodik = 3;
break;
}

if(paratlan) {

int jegy = 4*elso + masodik;

if(jegy<10)
std::cout << jegy;
else
std::cout << hexa_jegyek[jegy-10];

}
paratlan = !paratlan;
elso = masodik;
}
}

kallo@kallo-K52Jr:~/Asztal/szam$ ./g <fa.txt
1BA2A6E6959BA33BAA2036A08D84E6AF12895B6848AFA46A6A0B6BAAAA158EABCB9A8E63A2E6411A

nb · http://fersml.blog.hu 2011.03.14. 14:59:33

@Pato1111: elsőre jónak tűnik, de valami kérdéses, ezért önellenőrzésként: a kimenet fele akkora, mint a fa.txt, mert azt itt nem látni.

Pato1111 2011.03.14. 15:04:05

@nb:
kallo@kallo-K52Jr:~/Asztal/szam$ wc fa2.txt
0 1 280 fa2.txt
kallo@kallo-K52Jr:~/Asztal/szam$ wc fa.txt
1 1 560 fa.txt

fa2 a kimenet elmentve. fele annyi.

nb · http://fersml.blog.hu 2011.03.14. 15:18:07

@Pato1111: ott a 2 pont. Ha mehet a vadászok közé, volt korábban? Ha nem jöhetnek a könyvelési infók az off-line katalógus lapra.

Pato1111 2011.03.14. 15:25:58

@nb: nincs sok pontom, de mehet a vadászok közé is

nb · http://fersml.blog.hu 2011.03.14. 15:28:30

@Pato1111: ha megírod mennyi volt (vagy adatok az azonosításhoz), akkor az aktuálisat veszem fel a vadászok dobozba.

nb · http://fersml.blog.hu 2011.03.14. 16:04:31

@Painkiller19910110: kettőt szerintem már könyveltem, viszont a bogomips-esen gyúrni kell még szerintem, vesd össze a megoldásod az 5. ea. kapcsolódó 3 fóliájával pls.

Veyron007 2011.03.14. 18:41:01

(ÉLES) A pi-napi elosztott számítás eredményét ellenőrizd szúrópróba szerűen néhány helyen a progpater.blog.hu/2011/02/25/kapcsolat_isten_uzenete posztban mutatott pi.nersc.gov/ lappal.

-----------------------------

Első 4 elem: pi.nersc.gov/cgi-bin/pi.cgi?word=223F&format=hex

827-832. elem: pi.nersc.gov/cgi-bin/pi.cgi?word=7A3BE&format=hex

995-1001: pi.nersc.gov/cgi-bin/pi.cgi?word=0FEAD3&format=hex

Joe89 2011.03.14. 18:47:33

Megcsináltam a 3 kisbajnokságos feladatok közzűl ezt:
(ÉLES) K&R feladat: 4.3 gyakorlat

Itt van a progi:
dl.dropbox.com/u/13871711/kalk.c

Nagy részét a könyvből másoltam, de ahol belenyúltam, ott megjelöltem /***/ jelekkel és kommentáltam is ...

Itt a könyv az "Adott a kalkulátor program váza" alatt, a lengyel jelölésmóddal működő kalkulátorra gondolt, pár oldallal előrébb ugye??? ... Mert én azt módosítottam ... :P

nb · http://fersml.blog.hu 2011.03.14. 20:43:53

@Veyron007: vedd észre, hogy az első éppen azt mutatja, hogy nem találta meg a megfelelő helyen, mert az első két számjegy "hibás", azt hagyd ki, pl. 3f6a8885a3-re search string found at binary index = 8 azaz a 3. jegytől

ez ismert a PP-ből, a szervert 2-vel indítottuk, 1 kellett volna a teljes pontossághoz, de szerintem csak ebben az első két helyen okoz gondot a 2 (ezt kéne most ellenőrizni az általatok számolt és a gov-os lap helyenkénti összevetésével)

[morpheus@zion morpheus]$ ./pi 0 1000 1
243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89452821E638D01377 BE5466CF34E90C6CC0AC29B7C97C50DD3F84D5B5B54709179216D5D98979FB1BD1310BA698DFB5AC 2FFD72DBD01ADFB7B8E1AFED6A267E96BA7C9045F12C7F9924A19947B3916CF70801F2E2858EFC16 636920D871574E69A458FEA3F4933D7E0D95748F728EB658718BCD5882154AEE7B54A41DC25A59B5 9C30D5392AF26013C5D1B023286085F0CA417918B8DB38EF8E79DCB0603A180E6C9E0E8BB01E8A3E D71577C1BD314B2778AF2FDA55605C60E65525F3AA55AB945748986263E8144055CA396A2AAB10B6 B4CC5C341141E8CEA15486AF7C72E993B3EE1411636FBC2A2BA9C55D741831F6CE5C3E169B87931E AFD6BA336C24CF5C7A325381289586773B8F48986B4BB9AFC4BFE81B6628219361D809CCFB21A991 487CAC605DEC8032EF845D5DE98575B1DC262302EB651B8823893E81D396ACC50F6D6FF383F44239 2E0B4482A484200469C8F04A9E1F9B5E21C66842F6E96C9A670C9C61ABD388F06A51A0D2D8542F68 960FA728AB5133A36EEF0B6C137A3BE4BA3BF0507EFB2A98A1F1651D39AF017666CA593E82430E88 8CEE8619456F9FB47D84A5C33B8B5EBEE06F75D885C12073401A449F56C16AA64ED3AA62363F7706 1BFEDF72429B023D37D0D724D00A1248DB0FEAD3

[morpheus@
zion morpheus]$ ./pi 0 1000 2
223F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89452821E638D01377 BE5466CF34E90C6CC0AC29B7C97C50DD3F84D5B5B54709179216D5D98979FB1BD1310BA698DFB5AC 2FFD72DBD01ADFB7B8E1AFED6A267E96BA7C9045F12C7F9924A19947B3916CF70801F2E2858EFC16 636920D871574E69A458FEA3F4933D7E0D95748F728EB658718BCD5882154AEE7B54A41DC25A59B5 9C30D5392AF26013C5D1B023286085F0CA417918B8DB38EF8E79DCB0603A180E6C9E0E8BB01E8A3E D71577C1BD314B2778AF2FDA55605C60E65525F3AA55AB945748986263E8144055CA396A2AAB10B6 B4CC5C341141E8CEA15486AF7C72E993B3EE1411636FBC2A2BA9C55D741831F6CE5C3E169B87931E AFD6BA336C24CF5C7A325381289586773B8F48986B4BB9AFC4BFE81B6628219361D809CCFB21A991 487CAC605DEC8032EF845D5DE98575B1DC262302EB651B8823893E81D396ACC50F6D6FF383F44239 2E0B4482A484200469C8F04A9E1F9B5E21C66842F6E96C9A670C9C61ABD388F06A51A0D2D8542F68 960FA728AB5133A36EEF0B6C137A3BE4BA3BF0507EFB2A98A1F1651D39AF017666CA593E82430E88 8CEE8619456F9FB47D84A5C33B8B5EBEE06F75D885C12073401A449F56C16AA64ED3AA62363F7706 [morpheus@zion morpheus]$

Veyron007 2011.03.14. 21:27:00

@nb: Tehát hasonlítsam össze az 1-gyel és 2-vel indított eredmények egyes részeit a linkelt honlap segítségével?

Painkiller19910110 2011.03.14. 21:45:13

Megvan a Bogo Mipses eredménye kicsi páternoszter kicsi google és íme... Remélem jó lett.

forráskód:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <limits.h>
#include <math.h>

#define Maximalis_hurokszam 500000000

int main (void)
{
clock_t a, b;
float spd, dur;
long hurokpersec;
long lps;
a = clock();
for (lps = 0; lps < Maximalis_hurokszam; lps++ );
b = clock();

dur = b - a;
spd = dur / CLOCKS_PER_SEC;
hurokpersec = lps / spd;

printf ( "%ld 'hurok' vegrehajtasa ennyi masodpercbe kerul %f\n", lps, spd );
printf ( "%ld 'hurkot' haj vegre masodpercenkent.\n", hurokpersec);
return 0;
}

illetve a kép az enyámről:imagerz.com/QFdDXA0FClM

Painkiller19910110 2011.03.14. 23:51:44

Megvolnék a "ÉLES) Szorgos hódok: számítsd ki a BB(3)-at a saját C programoddal, azaz írj egy olyan "brute force" programot, ami legenerálja az összes 3 állapotú Turing gépet, leszimulálja a működésüket és megnézi, hogy üres szalaggal (csupa 0) indítva hány darab egyest tudnak max. kiírni. "

forráskódja:

#include <stdio.h>
#include <stdlib.h>

int main()
{
char bemenet[30]={'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'};
int j;
printf("\n");
printf("A bemenetnek hasznalt tomb BB3 elott: ");
for(j=0;j<30;j++)
printf("%d ",bemenet[j]-48);
printf("\n");
int i=15;
char belso_allapot='A';
printf("\n");

printf("Olvasott karakter Az 'i'valtozo pozicioja Belso allapot \n");
while(belso_allapot!='H')
{
printf(" %d %d %c\n", bemenet[i]-48,i,belso_allapot);

if((bemenet[i]=='0')&&(belso_allapot=='A'))
{

bemenet[i]='1';
i++;
belso_allapot='B';

}
else if((bemenet[i]=='1')&&(belso_allapot=='A'))
{
bemenet[i]='1';
i--;
belso_allapot='C';

}
else if((bemenet[i]=='0')&&(belso_allapot=='B'))
{
bemenet[i]='1';
i--;
belso_allapot='A';
}
else if((bemenet[i]=='1')&&(belso_allapot=='B'))
{
bemenet[i]='1';
i++;
belso_allapot='B';
}
else if((bemenet[i]=='0')&&(belso_allapot=='C'))
{
bemenet[i]='1';
i--;
belso_allapot='B';
}
else if((bemenet[i]=='1')&&(belso_allapot=='C'))
{
bemenet[i]='1';
i++;
belso_allapot='C';
printf("\nElerte a megallasi pontot!\n\nMivel a szabaly ugy szol ha a Belso allapota 'C' es '1'-es olvas bemenetnek akkor HALT-ba kerül!");
break;
}
};
printf("\n\nA bemenet ként hasznalt tomb BB3 utan: ");

for(i=0;i<30;i++)
printf("%d ",bemenet[i]-48);
printf("\n");
printf("\nTehat a BB(3)=6 mivel 6 darab nulla talalhato folytonosan egymas utan a tombben!\n");
return 0;
}

Kép:imagerz.com/QFdDXA0FUQI

Painkiller19910110 2011.03.15. 07:32:51

Az előző kommentembe annyi hibát találtam hogy az utolsó Else-IF nél BelsoAllapot ='H' kell legyen és akkor nem kell a break.

Painkiller19910110 2011.03.15. 07:42:20

Kész volnék a 2. hullám "Szorgos hódok: számítsd ki a BB(4)-et a saját C programoddal, azaz írj egy olyan "brute force" programot, ami legenerálja az összes 4 állapotú Turing gépet, leszimulálja a működésüket és megnézi, hogy üres szalaggal (csupa 0) indítva hány darab egyest tudnak max. kiírni"

forráskód:

#include <stdio.h>
#include <stdlib.h>

int main()
{
char bemenet[30]={'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'};
int j;
printf("\n");
printf("A bemenetnek hasznalt tomb BB4 elott: ");
for(j=0;j<30;j++)
printf("%d ",bemenet[j]-48);
printf("\n");
int i=15;
char belso_allapot='A';
printf("\n");

printf("Olvasott karakter Az 'i'valtozo pozicioja Belso allapot \n");
while(belso_allapot!='H')
{
printf(" %d %d %c\n", bemenet[i]-48,i,belso_allapot);

if((bemenet[i]=='0')&&(belso_allapot=='A'))
{

bemenet[i]='1';
i++;
belso_allapot='B';

}
else if((bemenet[i]=='1')&&(belso_allapot=='A'))
{
bemenet[i]='1';
i--;
belso_allapot='B';

}
else if((bemenet[i]=='0')&&(belso_allapot=='B'))
{
bemenet[i]='1';
i--;
belso_allapot='A';
}
else if((bemenet[i]=='1')&&(belso_allapot=='B'))
{
bemenet[i]='0';
i--;
belso_allapot='C';
}
else if((bemenet[i]=='0')&&(belso_allapot=='C'))
{
bemenet[i]='1';
i++;
belso_allapot='H';
printf("\nElerte a megallasi pontot!\n\nMivel a szabaly ugy szol ha a Belso allapota 'C' es '1'-es olvas bemenetnek akkor HALT-ba kerül!");
}
else if((bemenet[i]=='1')&&(belso_allapot=='C'))
{
bemenet[i]='1';
i--;
belso_allapot='D';
}
else if((bemenet[i]=='0')&&(belso_allapot=='D'))
{
bemenet[i]='1';
i++;
belso_allapot='D';
}
else if((bemenet[i]=='1')&&(belso_allapot=='D'))
{
bemenet[i]='0';
i++;
belso_allapot='A';
}
};
printf("\n\nA bemenet ként hasznalt tomb BB4 utan: ");

for(i=0;i<30;i++)
printf("%d ",bemenet[i]-48);
printf("\n");
printf("\nTehat a BB(4)=12 mivel 12 darab nulla talalhato folytonosan egymas utan a tombben!\n");
return 0;
}

Képek:

imagerz.com/QFdDXA0FVlQ

imagerz.com/QFdDXA0FVlU

imagerz.com/QFdDXA0FVlI

Painkiller19910110 2011.03.15. 07:45:33

:$ figyelmetlen vaok mert itt is van hiba mert miután megállt és a szabály kiírja ott 1-es helyett 0-nak kellene lennie.

Forest0 2011.03.15. 14:57:24

Elkészültem a (ÉLES) K&R feladat: 4.3 gyakorlat-al!
A modulusz operátort értelmezi, negatív szám esetén hibát jelez, és kiírja, hogy csak pozitív számok esetén használható. A 0-val való osztás problémáját is beleírtam a kódba.A teljes forráskódot gondolom felesleges bemásolni, így csak a megfelelő részletet írom le, valamint a módosításaimat:

[...]
int main( )
{
int tipus;
double op2;
double op1; // op 1 deklarálása
char s[MAXOP];
[...]

[...]
case '%':
op2 = pop();
op1 = pop();
// push((int)op1 % (int)op2);
if(op2 > 0 && op1 > 0){
push((int)op1 % (int)op2);}
else if (op2==0){
printf("Hiba: nullával való osztás!");}
else {
printf("Int csak poz. lehet! Negatívval a modulusz értelmezhetetlen!");}
//push(((int)pop( )) % ((int)pop ( )));
break;

[...]

Szépséghibája természetesen van a dolognak, ugyanis ha nem teljesül a (op2 > 0 && op1 > 0) feltétel, az üres verem miatt hibajelzést kapok. Esztétikai probléma, de ettől függetlenül a modulusz működik.

Joe89 2011.03.15. 17:22:54

@Forest0: Ezt már beküldtem kicsit feljebb .. :P ... Megcsináltam a %-t is, és a negatív számokat is ismeri ... :)

Forest0 2011.03.15. 17:52:44

@Joe89: Akkor azt hiszem, erről lecsúsztam. Pedig már kezdtem örülni, hogy nekem is lesz pontom a bajnokságokon :)

Joe89 2011.03.15. 17:54:48

@Forest0: Ez ilyen ... nemrég én is lecsúsztam egy 3 pontosról ... Szóval tudom mit érzel ... :) ... Am csinálj egy másikat ... Mondjuk a 4.4-es??? .. Írd meg és akk azt nem kezdem el ... :)

Forest0 2011.03.15. 18:01:58

@Joe89: Lehet, abba beletörne a fogam, szóval nekem ezzel lehet vége a vadászidénynek :D

Joe89 2011.03.15. 19:00:02

@Forest0: Ejjjj, nem kell ilyen könnyen feladni, ha ez a feladat sikerült, akk meg tod csinálni a többit is, csak szánni kell rá egy kis időt ... :)

nb · http://fersml.blog.hu 2011.03.16. 15:17:38

@Joe89: ok ez alapján: ezzel tesztelve néztem

[norbi@iam035 ~]$ ./h <t
0
[norbi@iam035 ~]$ more t
3 -4 + 3 + 2 %

nb · http://fersml.blog.hu 2011.03.16. 15:39:32

@Painkiller19910110: alakul, de az előadásban is domborított ((loops_per_sec / ticks) * CLOCKS_PER_SEC) / 500000) jellegű kiírás kéne...

nb · http://fersml.blog.hu 2011.03.16. 15:41:05

@Veyron007: Ti a 2-vel nyomtátok a szervert, ami az első két betűben hibázik, de szerintem többen nem, ezt kéne szórópróbaszerűen ellenőrizni az általatok elosztottan számoltban.

nb · http://fersml.blog.hu 2011.03.16. 15:42:57

@Painkiller19910110: a Bogomips-et se feledjük! De itt mi az eszme, lehet, hogy valami zseniális, de nem kéne látni az összes gépet legenerálva, mint nálam: www.inf.unideb.hu/~nbatfai/bb/On%20the%20Running%20Time%20of%20the%20Shortest%20Programs/

nb · http://fersml.blog.hu 2011.03.16. 16:27:18

@Veyron007: valami interpretáció is jó lenne :)

Veyron007 2011.03.16. 16:39:28

@nb: Az első linken a "A308" as hexaban ábrázolt PI jegyére keresek, és ezt megtalálta a 3065647744 bináris pozícióban.

nb · http://fersml.blog.hu 2011.03.16. 16:46:41

@Veyron007: hát ez nem bíztató, ha a mi 2-essel futó számításunkban van ez a a308, mert akkor először a 3065647744/4+1. betűtől van ez a minta, mi pedig addig szerintem nem mentünk el.

Veyron007 2011.03.16. 16:52:29

@nb: Az első 1000 jegy, 11-14. jegye az A308, a mi számításunkban.

nb · http://fersml.blog.hu 2011.03.16. 16:56:58

@Veyron007: jó lesz az mégis:

pi.nersc.gov/cgi-bin/pi.cgi?word=3F6A8885A308&format=hex

mert a "3f6a8885a308" mintát megtalálta a 3. betűtől:

search string = "3f6a8885a308"
search string found at binary index = 8

Veyron007 2011.03.16. 17:01:18

@nb: pi.nersc.gov/cgi-bin/pi.cgi?word=D313198A2E03707&format=hex

Valóban! :) Most már nekem is működik. A rövid hexa string kavart be neki valószínűleg, mivel előfordulhatott rövid szakaszon ismétlés.

Most már jár az 1 kisbajnokság? :)

Painkiller19910110 2011.03.16. 21:29:05

Sikerült kijavítanom a Bogo Mipset remélem sikeresen.

Kép: imagerz.com/QFdDXA0BVQU

Forráskód:

#include <stdio.h>
#include <time.h>
#define TOTAL_LOOPS 500000000
void
delay (unsigned long long int hurkok)
{
unsigned long long int i;
for (i = 0; i < hurkok; ++i)
;
}

int
main (void)
{
unsigned long long int hurok_per_sec = 1;
unsigned long long int ticks;
clock_t s, e;
float spd, dur;
long lps;
s = clock();
for (lps = 0; lps < TOTAL_LOOPS; lps++ );
e = clock();

dur = e - s;
spd = dur / CLOCKS_PER_SEC;
hurok_per_sec = lps / spd;
printf ( "%llu hurkot hajt vegre a masina egy masodperc alatt.\n", hurok_per_sec);
clock_t ticks1, ticks2;

ticks1=clock();
ticks2=ticks1;
while((ticks2/CLOCKS_PER_SEC-ticks1/CLOCKS_PER_SEC)<1)
ticks2=clock();

printf("%ld kettyent a belso ora egy masodperc alatt.\n\n",ticks2-ticks1);

while (hurok_per_sec <<= 1)
{
ticks = clock ();
delay (hurok_per_sec);
ticks = clock () - ticks;
printf (" %llu %llu\n", ticks, hurok_per_sec);
if (ticks >= (CLOCKS_PER_SEC))
{
hurok_per_sec = (hurok_per_sec / ticks) * CLOCKS_PER_SEC;

printf ("ok - %llu.%02llu BOGOMIPS\n", hurok_per_sec / 500000,(hurok_per_sec / 5000) % 100);
return 0;
}

}
printf ("I have failed master :( !");
return -1;
}

Rankerz 2011.03.16. 22:30:21

(ÉLES) Írj olyan programot, ami számolja a bemenetén a szavakat, használd a lex-et, lásd 1. ea.

%{
#include <string.h>
int szavak=0 ;
%}
%%
[0-9]+ {++szavak;}
[a-zA-Z][a-zA-Z0-9]* ++szavak;
%%
int
main()
{
yylex();
printf("Szavak száma: %d\n", szavak);
return 0;
}

(ÉLES) Írj olyan programot, ami számolja a bemenetén a számokat (nem a számjegyeket), használd a lex-et, lásd 1. ea.

%{
#include <string.h>
int szamok=0;
%}
%%
.
[0-9]+ ++szamok;
%%
int
main()
{
yylex();
printf("Számok száma: %d \n", szamok);
return 0;
}

(ÉLES) Írj olyan programot, ami számolja a bemenetén a betűket, használd a lex-et, lásd 1. ea.

%{
#include <string.h>
int betu = 0;
%}
%%
. ++betu;
[a-zA-Z][a-zA-Z0-9]* {betu += strlen(yytext);}
%%
int
main()
{
yylex();
printf("Betűk száma: %d\n", betu);
return 0;
}

nb · http://fersml.blog.hu 2011.03.17. 09:15:16

@Rankerz: van egy elv, amit követünk, hogy nagyon hasonló feladatokból csak egyet könyvelünk el. A hasonlóságot lehet érezni, s ilyenkor külön szoktam írni, hogy elfogadok belőle többet is, lásd pl. BB(3) és BB(4)-es feladatoknál. Ezért csak egyet könyvelek el és kérek egy screenshotot is szokásosan :)

nb · http://fersml.blog.hu 2011.03.17. 09:19:23

@Painkiller19910110:

[norbi@sgu ~]$ ./h
331125824 hurkot hajt vegre a masina egy masodperc alatt.
490000 kettyent a belso ora egy masodperc alatt.

1400000 662251648
ok - 946.00 BOGOMIPS

Rankerz 2011.03.17. 10:05:18

@nb: ó de kár :S de ez így most elég easy mód csak egy ctrl+c valakinek és megvan 2 ingyen trófea,nem?

noob.hu/2011/03/17/szamok.png

Rankerz 2011.03.17. 10:20:29

@nb: egy kérdés akkor pl ez a 2 bajnokság is üti egymást,és csak az egyiket lehet könyvelni
- Az 5. előadás PolarGen osztályával generált számok átlagát számold ki!
-Az 5. előadás PolarGen osztályával generált számok átlagát és szórását számold ki!

mellesleg lespóroltunk egy trófeát a vadász dobozban ,eddig volt nekem 5 most plusz 2 az nem 6 :D

nb · http://fersml.blog.hu 2011.03.17. 10:42:06

@Rankerz: valóban, tényleg 2 trófeás volt! A két polárgenes példa igen, üti egymást (2 nehezebbnek triviális része a könnyebb)

Pontod javítva, köszi.

hulala1 2011.03.17. 11:38:52

(ÉLES) Írj olyan programot, ami számolja a bemenetén a szavakat, használd a lex-et, lásd 1. ea.

%{
#include <string.h>
int szavak=0 ;
%}
%%
[0-9]+ {++szavak;}
[a-zA-Z][a-zA-Z0-9]* ++szavak;
%%
int
main()
{
yylex();
printf("Szavak száma: %d\n", szavak);
return 0;
}

nb · http://fersml.blog.hu 2011.03.17. 11:49:09

@nb: hol könyveljem a trófeáidat (persze ha felvetted a kurzust stb.)

hulala1 2011.03.17. 11:50:39

@nb: igen, megköszönöm

interfeca 2011.03.17. 11:57:54

(ÉLES) Írj olyan programot, ami számolja a bemenetén a betűket, használd a lex-et, lásd 1. ea.

%{
#include <string.h>
int betu = 0;
%}
%%
. ++betu;
[a-zA-Z][a-zA-Z0-9]* {betu += strlen(yytext);}
%%
int
main()
{
yylex();
printf("Betűk száma: %d\n", betu);
return 0;
}

nb · http://fersml.blog.hu 2011.03.17. 12:00:24

@interfeca: screenshot és könyvelési infó, pls.

nb · http://fersml.blog.hu 2011.03.17. 12:01:18

@hulala1: korábban van trófeád a katalógus lapokon.

nb · http://fersml.blog.hu 2011.03.17. 12:03:31

@interfeca: többieknél láttam a lex-es parancssort is...

interfeca 2011.03.17. 12:03:38

@nb: jöhet a vadászok közé és már van egy trófeám

hulala1 2011.03.17. 12:06:40

@hulala1: ezen kívül még nincs trófeám

Rankerz 2011.03.17. 12:41:33

K&R feladat: 2.2 gyakorlat
(Írjunk az előző for ciklussal egyenértékű ciklust, ami nem használja az && vagy || operátorokat!)

for (i = 0; i<lim-1;++i)
{
c = getchar();
if (c = '\n')
printf("Ez így nem jó\n");
else if (c = EOF)
printf("Ez így nem jó\n");
else
s[i] = c;
}

nb · http://fersml.blog.hu 2011.03.17. 12:47:20

@Rankerz: ezt kipróbáltad? Pl.az if(c=EOF) be is teszi a c-be az EOF-ot... de szokásosan egész progit kérek, screenshottal.

Rankerz 2011.03.17. 12:51:25

@nb: nem próbáltam ki,megnézem a dolgot

Veyron007 2011.03.17. 13:00:14

# (ÉLES) Írj olyan programot, ami számolja a bemenetén a sorokat, használd a lex-et, lásd 1. ea.

noob.hu/2011/03/17/sorok.png

Valamiért a program kiírja mégegyszer amit beírok, de ettől eltekintve jól működik.

Veyron007 2011.03.17. 13:37:57

(ÉLES) Írj egy SMTP levélküldő progit! (help: PP 137, onnan tudom, hogy sikerült, ha kapok egy mailt az országgyűlés elnökétől a kover.laszlo@parlament.hu email címről :)

-------------

./smtp kover.laszlo@parlament.hu nbatfai@inf.unideb.hu SMTP Sikerult
> 220 shrek.unideb.hu ESMTP Postfix (Debian/GNU)
> 250 shrek.unideb.hu
> 250 2.1.0 Ok
> 250 2.1.5 Ok
> 354 End data with <CR><LF>.<CR><LF>
> 250 2.0.0 Ok: queued as DB0B21F31B2
> 221 2.0.0 Bye

nb · http://fersml.blog.hu 2011.03.17. 15:05:44

@#Gerzson: látom az pow(2, 10) exp(1) és a szinuszt, de forrást is pls.

Painkiller19910110 2011.03.17. 15:17:49

Tanár Úr lenne egy kérdésem.

(2,0)->(2,1,2) turing gép esetén ezt úgy kell érteni hogy
(Belső álapot, Olvasott karakter)->
(új belső állapot, írott karakter, elmozdulás valamerre)

és még azt szeretném megtudni hogy az elmozdulásnál a (0,1,2) minek felel meg, pl: 0-marad,1-jobbra,2-balra?

Painkiller19910110 2011.03.17. 15:22:26

Lehet hogy nem megfelelő kérdés de mit jelent az hogy konstruátorába kapja meg a szélességet és magasságot, mert már a tábla kész van csak ez hiányzik :S :)

nb · http://fersml.blog.hu 2011.03.17. 15:36:02

@Painkiller19910110: biztos elgépeltem, ilyesmi legyen az ablak konstruktora:

Ablakod::Ablakod(int szelesseg, int magassag, QWidget *parent)
: QMainWindow(parent)

nb · http://fersml.blog.hu 2011.03.17. 15:36:40

@nb: lásd pl.: bevezetes/elsoQt/AreciboiUzenet/areciboablak.cpp és .h

nb · http://fersml.blog.hu 2011.03.17. 15:41:01

@Painkiller19910110: igen, nálam?

(state, read) -> (state, write, move)

és

// 0: <-
// 1: |
// 2: ->

Veyron007 2011.03.17. 16:13:01

(ÉLES) K&R feladat: 2.2 gyakorlat

-----

for (i = 0; (i<lim-1) == ((c = getchar ( )) != '\n') == (c != EOF); ++i)
s[i] = c;

Painkiller19910110 2011.03.17. 17:13:41

@nb: köszönöm a segítséget :)

Painkiller19910110 2011.03.17. 18:15:06

Lenne még 1 olyan kérdésem hogy a turing gép amikor elindul akkor a legelső belső állapotát meghatározza valami?

Painkiller19910110 2011.03.17. 18:16:29

Google szerint mindig (0,0) ról indul, ez jó lehet e?

nb · http://fersml.blog.hu 2011.03.17. 18:19:59

@Painkiller19910110: maradjunk ennek a definíciója mellett: arxiv.org/pdf/0908.1159

Definition 1 (Busy Beaver words). A Turing machine is a quadruple T =
(QT , 0, {0, 1}, fT ) where QT ⊂ N is the state alphabet, 0 ∈ QT is the initial state

azaz 0 legyen a kezdő persze

nb · http://fersml.blog.hu 2011.03.17. 18:20:50

@nb: a (0,0) másik nullája meg már a szalagról jön, mert azt csupa 0-val indítjuk

Joe89 2011.03.17. 18:39:18

Megcsináltam ezt: (ÉLES) K&R feladat: 4.4 gyakorlat
(3 kisbajnokságos feladatok)

dl.dropbox.com/u/13871711/kalk.c

a 'k','z','m','t' betűkre reagál ... a k kiírja a verem legfelső elemét, a z megcseréli a két felső elemet, az m csinál egy másolatot a verem legfelső eleméről, és a t törli a vermet ...

Én így teszteltem:
3 4 k
4
z
3
z
4
m
4
z
4
z
4
+
8
k
3
t
A verem törölve!

Joe89 2011.03.17. 18:40:45

@Joe89: Az "Én így teszteltem" résznél a tabulátorok eltűntek, szóval kicsit zavaros .. de kb annyi h a betűk a parancsok, a számok meg amit kiírt a parancs hatására ...

Rankerz 2011.03.17. 18:47:07

K&R feladat: 2.2 gyakorlat
(Írjunk az előző for ciklussal egyenértékű ciklust, ami nem használja az && vagy || operátorokat!)

Az "leghosszabb sort" kiválasztó progiban lévő for ciklust írtam át.

#include <stdio.h>
#define MAXSOR 1000

int agetline(char sor[], int maxsor);
void copy(char ba[], char bol []);
main()
{
int hossz;
int max;
char sor[MAXSOR];
char leghosszabb[MAXSOR];
max = 0;
while ((hossz = agetline(sor, MAXSOR)) > 0)
if (hossz > max) {
max = hossz;
copy(leghosszabb, sor);
}
if (max > 0)
printf("%s", leghosszabb);
return 0;

}
int agetline(char s[], int lim)
{
int c, i;
for (i = 0; (i<lim-1) == ((c = getchar ( )) != '\n') == (c != EOF); ++i)
s[i] = c;
if (c == '\n') {
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
void copy(char ba[], char bol[])
{
int i;

i = 0;
while ((ba[i] = bol[i]) != '\0')
++i;
}

képernyőkép: noob.hu/2011/03/17/for.png

"averzio" a kiinduló progi eredeti for ciklussal "bverzio" az átírt for ciklus

Rankerz 2011.03.17. 18:55:14

Valaki tudja hogy a B&L(**) feladat mi lenne vagy hol?

pi_zoli 2011.03.17. 19:16:56

A Minix processz nyomonkövetésre: dl.dropbox.com/u/22824655/Minix_kernel-%21pcb.jpg
A forráskód nyilvános de ha szükséges pendrive-ra is felrakhatom a Minixet és bemutathatom személyesen.

eiborn 2011.03.17. 19:51:15

@Rankerz: **: Benedek Zoltán, Levendovszky Tihamér: Szoftverfejlesztés C++ nyelven, Budapest, 2007, Szak K.

Rankerz 2011.03.17. 20:04:48

@eiborn: köszi ) ez e-bookként is megtalálható vagy ki kell kölcsönözni?

szimih 2011.03.17. 20:40:06

(ÉLES) Az előző feladat alternatív megoldását készíts el (nem a PCB módosítása, hanem felmásoló rendszerhívás írása) (részletes, step by step help itt)

Megoldás:img5.imageshack.us/img5/8199/minixproc2.png

Forrást hétfői laborra viszem.

Veyron007 2011.03.17. 21:07:22

@Rankerz: Én ezt már feljebb beküldtem, csak még nem kaptam rá választ

Rankerz 2011.03.17. 21:17:50

@Veyron007: azt hittem az nem jó mert nincs hozzá teljes progi meg printscreen,sajnálom ha már nem volt éles bonyolult itt követni az eseményeket =)

Rankerz 2011.03.17. 21:19:10

megcsináltam a 3 fájl a polárgenerátorhoz a cmake . parancsnál "does not appear to contain CMakeLists.txt" hibaüzenettel mit kell kezdeni? vagy ezt a fájlt nekem kéne létrehozni?

Veyron007 2011.03.17. 21:30:53

@Rankerz: Meghiszem azt. Mellesleg szerinbtem nem kell screen ill. teljes C forrás hiszen a feladat csak annyi volt, h írjuk át, úgy hogy ne legyen benne && és ||.

Rankerz 2011.03.17. 21:58:07

@Veyron007: szövegértés szerint nekem 3x2 trófeám lett volna a lex el példuál de tanárúr másként ítélte meg a helyzetet :D (szerencsére jó emberkék kapták a lepattanót:)
ezzel csak arra célzok hogy apróbb dolgokon is elcsúszhat a dolog és ha most ez lesz veled is kompenzállak valamivel(lásd sör bor pálinka) ha gondolod,nem akarok semmi fennakadást 1 trófea miatt xD

Painkiller19910110 2011.03.17. 23:07:12

Kész lettem a "Szorgos hódok: számítsd ki a BB(3)-at a saját C programoddal, azaz írj egy olyan "brute force" programot, ami legenerálja az összes 3 állapotú Turing gépet, leszimulálja a működésüket és megnézi, hogy üres szalaggal (csupa 0) indítva hány darab egyest tudnak max. kiírni. "

Txt amibe az eredményt kiírattam:
data.hu/get/3623390/a.txt
Illetve a forráskód:
data.hu/get/3623388/turing.c

UI: "Eléggé brute lett" :)

Painkiller19910110 2011.03.17. 23:24:01

:$ a turing.c legutolsó kiíratásánál nulla helyett egyes akart lenni :)

Veyron007 2011.03.17. 23:24:48

@Rankerz: Nem lesz itt semmi probléma :)

Painkiller19910110 2011.03.18. 00:27:13

Kész lettem az előző analógiájára a "Szorgos hódok: számítsd ki a BB(4)-et a saját C programoddal, azaz írj egy olyan "brute force" programot, ami legenerálja az összes 4 állapotú Turing gépet, leszimulálja a működésüket és megnézi, hogy üres szalaggal (csupa 0) indítva hány darab egyest tudnak max. kiírni. "

Txt amibe kiírattam az eredményt:
data.hu/get/3623561/bb4.txt
Forráskód:
data.hu/get/3623560/bb4.c

Futtatni széles terminál ablakban érdemes mind 2-t mert akkor lesz szép.

Painkiller19910110 2011.03.18. 12:39:23

Készen vagyok a "Rajzolj Qt-s ablakba egy sakktáblát (az ablak konstruktorában kapja meg a kezdeti cella szélességet és magasságot)"

Képek:
imagerz.com/QFdDXA0MB1c

imagerz.com/QFdDXA0MB1Q

imagerz.com/QFdDXA0MB1U

Illetve a forráskód:

Main.cpp

#include <QtGui/QApplication>
#include "sakk.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);

SakkAblak w(0,0);
w.show();
return a.exec();
}

sakk.cpp

#include "sakk.h"

SakkAblak::SakkAblak(int szelesseg,int magassag,QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle("Sakk Tablicsku");
int szel,mag;
std::cin>>szel;
std::cin>>mag;
this->magassag = mag*8;
this->szelesseg = szel*8;
cellaSzelesseg = szel;

cellaMagassag = mag;

setFixedSize(QSize(cellaSzelesseg*8, 8*cellaMagassag));
}
void SakkAblak::paintEvent(QPaintEvent*) {
QPainter qpainter(this);

for(int i=0; i<magassag; ++i) {

for(int j=0; j<szelesseg; ++j) {

if(((j % 2)!= 0)&&((i%2)==0))
qpainter.fillRect(j*cellaSzelesseg, i*cellaMagassag,
cellaSzelesseg, cellaMagassag, Qt::black);
else
qpainter.fillRect(j*cellaSzelesseg, i*cellaMagassag,
cellaSzelesseg, cellaMagassag, Qt::white);
if((j%2==0)&&(i%2!=0))
qpainter.fillRect(j*cellaSzelesseg, i*cellaMagassag,
cellaSzelesseg, cellaMagassag, Qt::black);

qpainter.setPen(QPen(Qt::gray, 1));
qpainter.drawRect(j*cellaSzelesseg, i*cellaMagassag,
cellaSzelesseg, cellaMagassag);
}
}

qpainter.end();
}

SakkAblak::~SakkAblak()
{

}

sakk.h

#ifndef SAKK_H
#define SAKK_H

#include <QtGui/QMainWindow>
#include <QPainter>
#include <string>
#include <iostream>
#include <QtGui/qevent.h>
#include <QInputEvent>
#include <ctime>
#include <cstdlib>
class Saktabla;
class SakkAblak : public QMainWindow
{
Q_OBJECT

public:
SakkAblak(int szelesseg, int magassag,QWidget *parent = 0);
~SakkAblak();
int cellaSzelesseg;
int cellaMagassag;
int szelesseg;
int magassag;
void paintEvent(QPaintEvent*);
void keyPressEvent(QEvent * event);

};

#endif // SAKK_H

szépen terminálban a qmake-el fordítani és futtatni,
./Sakktabla utan johatnek az erteker enterrel elvalasztva

Painkiller19910110 2011.03.18. 13:05:41

Kész van a "Rajzolj Qt-s ablakba egy sakktáblát (az ablak konstruktorában kapja meg a kezdeti cella szélességet és magasságot) (help bevezetes/elsoQt/AreciboiUzenet az svn-ből) a cellák méretét lehessen növelni/csökkenteni a K, N gombokkal (az előző és a Sejtauto-s hasonló bill. lenyomás figyelő kizáró feladatok)."

Forráskód:

sakk.h

#ifndef SAKK_H
#define SAKK_H

#include <QtGui/QMainWindow>
#include <QPainter>
#include <string>
#include <iostream>
#include <QtGui/qevent.h>
#include <QInputEvent>
#include <ctime>
#include <cstdlib>
class Saktabla;
class SakkAblak : public QMainWindow
{
Q_OBJECT

public:
SakkAblak(int szelesseg, int magassag,QWidget *parent = 0);
~SakkAblak();
int cellaSzelesseg;
int cellaMagassag;
int szelesseg;
int magassag;
void paintEvent(QPaintEvent*);
void keyPressEvent(QKeyEvent * event);

};

#endif // SAKK_H

sakk.cpp

#include "sakk.h"

SakkAblak::SakkAblak(int szelesseg,int magassag,QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle("Sakk Tablicsku");
int szel,mag;
std::cin>>szel;
std::cin>>mag;
this->magassag = mag*8;
this->szelesseg = szel*8;
cellaSzelesseg = szel;

cellaMagassag = mag;

setFixedSize(QSize(cellaSzelesseg*8, 8*cellaMagassag));
}
void SakkAblak::paintEvent(QPaintEvent*) {
QPainter qpainter(this);

for(int i=0; i<magassag; ++i) {

for(int j=0; j<szelesseg; ++j) {

if(((j % 2)!= 0)&&((i%2)==0))
qpainter.fillRect(j*cellaSzelesseg, i*cellaMagassag,
cellaSzelesseg, cellaMagassag, Qt::black);
else
qpainter.fillRect(j*cellaSzelesseg, i*cellaMagassag,
cellaSzelesseg, cellaMagassag, Qt::white);
if((j%2==0)&&(i%2!=0))
qpainter.fillRect(j*cellaSzelesseg, i*cellaMagassag,
cellaSzelesseg, cellaMagassag, Qt::black);

qpainter.setPen(QPen(Qt::gray, 1));
qpainter.drawRect(j*cellaSzelesseg, i*cellaMagassag,
cellaSzelesseg, cellaMagassag);
}
}

qpainter.end();
}
void SakkAblak::keyPressEvent(QKeyEvent *event)

{

if (event->key() == Qt::Key_N) {

// Duplázzuk a cella méreteit:

this->cellaSzelesseg *= 2;

this->cellaMagassag *= 2;

setFixedSize(QSize(cellaSzelesseg*8, 8*cellaMagassag));

}
else if(event->key() == Qt::Key_K)
{

//Felezzük a cella méretét

this->cellaSzelesseg /=2;

this->cellaMagassag /=2;

setFixedSize(QSize(cellaSzelesseg*8, 8*cellaMagassag));
}

update();
}

SakkAblak::~SakkAblak()
{

}

main.cpp

#include <QtGui/QApplication>
#include "sakk.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);

SakkAblak w(20,20);
w.show();
return a.exec();
}

Képek:

imagerz.com/QFdDXA0MBwA

imagerz.com/QFdDXA0MBlY

imagerz.com/QFdDXA0MBlc

imagerz.com/QFdDXA0MBlQ

A feladat szövegnek megfelelően lehet K és N betűkkel csökenteni és növelni a cella méreteket.

#Gerzson 2011.03.18. 14:08:37

(ÉLES) K&R feladat: 2.3 gyakorlat

noob.hu/2011/03/18/htoi.png
forrás mindjárt dobom :)

Painkiller19910110 2011.03.18. 17:09:09

A Qt-s Sakkos feladatokhoz...

Sakktabla.pro

QT += core gui

TARGET = Sakktabla
TEMPLATE = app

SOURCES += main.cpp\
sakk.cpp

HEADERS += sakk.h

Hozzatok letre a Sakktabla.pro nevű fájlt mehet bele a fenitebbi, és utánna parancssor:
qmake Sakktabla.pro
make
./Sakktabla
itt jön a bevitel enterekkel elválasztva
szam------>enter
szam------>enter

Remélem Rankerznek ez is segített.

Rankerz 2011.03.18. 21:05:04

(ÉLES) Az 5. előadás PolarGen osztályával generált számok átlagát számold ki!

screen (altag.cpp az átlagszámoló progi + terminálban megvalósítás)

noob.hu/2011/03/18/polaratlag.png

Veyron007 2011.03.18. 21:26:20

(ÉLES) Az 5. előadás PolarGen osztályával generált számok átlagát és szórását számold ki!

imagerz.com/QFdDXA0NV1Q

Painkiller19910110 2011.03.18. 21:46:49

@Rankerz: Látom te is programozással töltöd a szabad idődet :)

Painkiller19910110 2011.03.18. 21:53:21

Kész van a "Rajzolj Qt-s ablakba egy malomtáblát (az ablak konstruktorában kapja meg a méret adatokat) (help bevezetes/elsoQt/AreciboiUzenet az svn-ből)."

forráskód:

Malom.h

#ifndef MALOM_H
#define MALOM_H

#include <QtGui/QMainWindow>
#include <QPainter>
#include <string>
#include <iostream>
#include <QtGui/qevent.h>
#include <QInputEvent>
#include <ctime>
#include <cstdlib>
class Malomtabla;
class MalomAblak : public QMainWindow
{
Q_OBJECT

public:
MalomAblak(int szelesseg, int magassag,QWidget *parent = 0);
~MalomAblak();
int cellaSzelesseg;
int cellaMagassag;
int szelesseg;
int magassag;
void paintEvent(QPaintEvent*);
};
#endif // MALOM_H

Malom.cpp

#include "malom.h"

MalomAblak::MalomAblak(int szelesseg,int magassag,QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle("Malom tábla");
int szel,mag;
std::cin>>szel;
std::cin>>mag;
this->magassag = mag;
this->szelesseg = szel;
cellaSzelesseg = szel;

cellaMagassag = mag;

setFixedSize(QSize(szel,mag));
}
void MalomAblak::paintEvent(QPaintEvent*) {
QPainter qpainter(this);

qpainter.setPen(QPen(Qt::gray, 1));
qpainter.drawRect(cellaSzelesseg*0.125, cellaMagassag*0.100,cellaSzelesseg*0.750,cellaMagassag*0.800);
qpainter.drawRect(2*(cellaSzelesseg*0.125), 2*(cellaMagassag*0.100),cellaSzelesseg*0.500,cellaMagassag*0.600);
qpainter.drawRect(3*(cellaSzelesseg*0.125), 3*(cellaMagassag*0.100),cellaSzelesseg*0.250,cellaMagassag*0.400);
qpainter.drawLine(cellaSzelesseg*0.125,cellaMagassag*0.500,3*(cellaSzelesseg*0.125),cellaMagassag*0.500);
qpainter.drawLine(5*(cellaSzelesseg*0.125),cellaMagassag*0.500,7*(cellaSzelesseg*0.125),cellaMagassag*0.500);
qpainter.drawLine(4*(cellaSzelesseg*0.125),cellaMagassag*0.100,4*(cellaSzelesseg*0.125),3*(cellaMagassag*0.100));
qpainter.drawLine(4*(cellaSzelesseg*0.125),7*(cellaMagassag*0.100),4*(cellaSzelesseg*0.125),9*(cellaMagassag*0.100));
qpainter.end();
}
MalomAblak::~MalomAblak()
{

}

main.cpp

#include <QtGui/QApplication>
#include "malom.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MalomAblak w(20,20);
w.show();
return a.exec();
}

Ui: Teljesen szétcsúszás mentes.
Formálisan úgy műkszik mint a sakkos amit beküldtem, csak ez malom táblát rajzol :)

Képek:

imagerz.com/QFdDXA0NVlM

imagerz.com/QFdDXA0NVlA

imagerz.com/QFdDXA0NVlE

Have fun. :)

Rankerz 2011.03.18. 21:58:56

@Painkiller19910110: még a végén utolérlek pontokban :D

tanárúrral mi a helyzet amúgy? már-már feltűnően inaktív :_D

Painkiller19910110 2011.03.18. 22:00:08

Kész van a "Rajzolj Qt-s ablakba egy malomtáblát (az ablak konstruktorában kapja meg a méret adatokat) (help bevezetes/elsoQt/AreciboiUzenet az svn-ből) a tábla méretét lehessen növelni/csökkenteni a K, N gombokkal (az előző 2 és a Sejtauto-s hasonló bill. lenyomás figyelő kizáró feladatok)."

Forráskód:

Main.cpp

#include <QtGui/QApplication>
#include "malom.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MalomAblak w(20,20);
w.show();
return a.exec();
}

Malom.cpp

#include "malom.h"

MalomAblak::MalomAblak(int szelesseg,int magassag,QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle("Malom tábla");
int szel,mag;
std::cin>>szel;
std::cin>>mag;
this->magassag = mag;
this->szelesseg = szel;
cellaSzelesseg = szel;

cellaMagassag = mag;

setFixedSize(QSize(szel,mag));
}
void MalomAblak::paintEvent(QPaintEvent*) {
QPainter qpainter(this);

qpainter.setPen(QPen(Qt::gray, 1));
qpainter.drawRect(cellaSzelesseg*0.125, cellaMagassag*0.100,cellaSzelesseg*0.750,cellaMagassag*0.800);
qpainter.drawRect(2*(cellaSzelesseg*0.125), 2*(cellaMagassag*0.100),cellaSzelesseg*0.500,cellaMagassag*0.600);
qpainter.drawRect(3*(cellaSzelesseg*0.125), 3*(cellaMagassag*0.100),cellaSzelesseg*0.250,cellaMagassag*0.400);
qpainter.drawLine(cellaSzelesseg*0.125,cellaMagassag*0.500,3*(cellaSzelesseg*0.125),cellaMagassag*0.500);
qpainter.drawLine(5*(cellaSzelesseg*0.125),cellaMagassag*0.500,7*(cellaSzelesseg*0.125),cellaMagassag*0.500);
qpainter.drawLine(4*(cellaSzelesseg*0.125),cellaMagassag*0.100,4*(cellaSzelesseg*0.125),3*(cellaMagassag*0.100));
qpainter.drawLine(4*(cellaSzelesseg*0.125),7*(cellaMagassag*0.100),4*(cellaSzelesseg*0.125),9*(cellaMagassag*0.100));
qpainter.end();
}
void MalomAblak::keyPressEvent(QKeyEvent *event)

{

if (event->key() == Qt::Key_N) {

// Duplázzuk a cella méreteit:

this->cellaSzelesseg *= 2;

this->cellaMagassag *= 2;

setFixedSize(QSize(cellaSzelesseg,cellaMagassag));

}
else if(event->key() == Qt::Key_K)
{

//Felezzük a cella méretét

this->cellaSzelesseg /=2;

this->cellaMagassag /=2;

setFixedSize(QSize(cellaSzelesseg,cellaMagassag));
}

update();
}

MalomAblak::~MalomAblak()
{

}

Malom.h

#ifndef MALOM_H
#define MALOM_H

#include <QtGui/QMainWindow>
#include <QPainter>
#include <string>
#include <iostream>
#include <QtGui/qevent.h>
#include <QInputEvent>
#include <ctime>
#include <cstdlib>
class Malomtabla;
class MalomAblak : public QMainWindow
{
Q_OBJECT

public:
MalomAblak(int szelesseg, int magassag,QWidget *parent = 0);
~MalomAblak();
int cellaSzelesseg;
int cellaMagassag;
int szelesseg;
int magassag;
void paintEvent(QPaintEvent*);
void keyPressEvent(QKeyEvent * event);

};
#endif // MALOM_H

Képek:

imagerz.com/QFdDXA0NVgM

imagerz.com/QFdDXA0NVgA

imagerz.com/QFdDXA0NVVY

imagerz.com/QFdDXA0NVVc

imagerz.com/QFdDXA0NVVQ

Have fun. :)

Painkiller19910110 2011.03.18. 22:01:22

@Rankerz: Nem tudom de ha nem igyekszik el fogjuk havazni őt megoldott kisbajnokságokkal. :)

Painkiller19910110 2011.03.18. 22:02:41

Am ha gondolod cooperálhatunk is. :)

Rankerz 2011.03.18. 22:05:32

@Painkiller19910110: cooperálni? az mit takar magában? )

Painkiller19910110 2011.03.18. 22:14:57

kisbajnokságotkat közösen megoldani és úgy küldeni be a pontokért őket hogy fele fele jut mindenkinek.

Rankerz 2011.03.18. 22:27:33

@Painkiller19910110: van egy új facebook üzeneted :D

nb · http://fersml.blog.hu 2011.03.19. 16:56:11

@szimih: kicsit "gyanúsak" a számok, hogy túl homogének, nem?

nb · http://fersml.blog.hu 2011.03.19. 16:59:10

@Rankerz: SVN-t

svn co svn://hallg.inf.unideb.hu:2005/bevezetes

lehoztad? Abban ott van a CMakeLists.txt természetesen!

nb · http://fersml.blog.hu 2011.03.19. 17:00:42

@Veyron007: mindig kell, főleg azt akarom látni, hogy a hallgató nem beküld valamit, hanem pontosan tudja, mit küld be, ezzel ő maga is tanul és nekem sem kell fél napig néznem egy kommentet... :)

nb · http://fersml.blog.hu 2011.03.19. 17:03:34

@Rankerz: szokás szerint: "blogon, táblán, jegyzetben tipikusan hibás infók vannak", a hallgatónak mégis jól kell értenie :) mert az eredeti szándék is ez volt ... :)

Rankerz 2011.03.19. 17:03:45

(ÉLES) A deriváló progit egészítsd ki kivonással. Mivel a deriválós poszt szerint forrás nem kell így egy két példával tessztelt screen :

noob.hu/2011/03/19/derivalov2.png

Az SVN nálam nem akaródzik működni,de gugli és man segítségével felfogtam hogy műküdik a cmake

nb · http://fersml.blog.hu 2011.03.19. 17:08:56

@Painkiller19910110: alakul, de kicsit finomítsd, mert a GUI-s progiban már ne használj cin-t pl. Ha be kell kérni valamit (amit most nem kell) akkor majd egy GUI elemen keresztül. Az tökéletes, ha parancssor arg-ból jön a méret és látom, hogy van ilyen konstruktora az ablaknak.

nb · http://fersml.blog.hu 2011.03.19. 17:11:02

@Painkiller19910110: erre is meadom majd a pontot, de pusztítsd ki belőle a cin-eket :)

nb · http://fersml.blog.hu 2011.03.19. 17:13:57

@Rankerz: nem kell kézzel, nézd meg az svn-ben: ott vannak a cpp és a h források, de a qmake-qt4 -project paranccsal kezd, az megcsinálja a .pro fájlt!

nb · http://fersml.blog.hu 2011.03.19. 17:16:27

@Rankerz: beleírtam volna a teszt cpp-be, de így is ok.

nb · http://fersml.blog.hu 2011.03.19. 17:17:41

@Veyron007: kicsit legyen beszédesebb, mert forrás nincs, nem tudni mit látni...

nb · http://fersml.blog.hu 2011.03.19. 17:21:29

@Rankerz: azért egy kommentben jöhet átírva hagyományosra, gondolom Te sem reverse polishban ellenőrizted.

svn kapcsán már lerágott csont a shrek használata!

Painkiller19910110 2011.03.19. 17:26:15

@nb: Akkor most kapom rá a pontokat vagy sem, illetve érdekelne hogy amiket beküldtem a BB3 a BB4 a 2 sakkos illetve a 2 malmos ezek közül mire kaptam pontokat?

nb · http://fersml.blog.hu 2011.03.19. 17:27:19

@Painkiller19910110: ha úgyis kész a progid írd már ki a gépeket olyan formában, mint nekem van, hogy tudjam ellenőrizni: www.inf.unideb.hu/~nbatfai/bb/On%20the%20Running%20Time%20of%20the%20Shortest%20Programs/

pls

Painkiller19910110 2011.03.19. 17:31:07

@nb: A feladatot én úgy értettem hogy a konstruktor az a Ablakod::Ablakod(int szelesseg, int magassag, QWidget *parent)
: QMainWindow(parent)
ez pedig nállam a MalomAblak::MalomAblak(int szelesseg,int magassag,QWidget *parent)
: QMainWindow(parent) illetve a SakkAblak::SakkAblak(int szelesseg,int magassag,QWidget *parent)
: QMainWindow(parent) és itt kapják meg az értéket a programok.

Painkiller19910110 2011.03.19. 17:33:02

@nb: A txt fájlokat azért linkeltem melléük mert azokban a sorren megegyezik a tanárúr sorrendjével(www.inf.unideb.hu/~nbatfai/bb/On%20the%20Running%20Time%20of%20the%20Shortest%20Programs/
), teljes mértékben. Mind a BB3, mind a BB4.

nb · http://fersml.blog.hu 2011.03.19. 17:38:20

@Painkiller19910110: nem is ezzel van a gond, hanem, hogy GUI-s progiban le legyen cin.

Rankerz 2011.03.19. 17:39:08

@nb: ellenőrzéskor nem jó bekerült, kimaradt egy x. sztornó :P

a shrek nem tudom micsoda de rendben)

nb · http://fersml.blog.hu 2011.03.19. 17:39:32

@Painkiller19910110: ok, de a progiba az már elhanyagolható idő (az eddigihez képest) ha a gépeket is kiprinteled.

Ja a pontokat eddig a 3x2 GUI-sra írtam be esetedben.

Painkiller19910110 2011.03.19. 17:42:01

@nb: De akkor most cin nélkül kellene megoldani?

Másik meg azt szeretném kérdezni hogy 6 pont az nem 8 akart lenni amit kaptam most mert 2x2 a sakkosok és 2x2 a malmosok.

nb · http://fersml.blog.hu 2011.03.19. 17:45:48

@Painkiller19910110:

mint a bevezetes/elsoQt/AreciboiUzenet-ben a szelesseg, magassag jojjon egyszerűen a malmod példányosításakor, ott a main.cpp-be írva direktben.

azért ezek kizáró feladatok, írtam is:

"(az előző 2 és a Sejtauto-s hasonló bill. lenyomás figyelő kizáró feladatok)."

Painkiller19910110 2011.03.19. 17:50:01

@nb: Meg lehetne oldani a kizárós miatt ha már úgy is rá szántam az időt hogy a testvéremnek (@phloriaN) nak lenne a 2 pont beírva hogy családba maradjon a pont :)

Painkiller19910110 2011.03.19. 17:53:08

@nb: A truingosok jók lettek ?

Rankerz 2011.03.19. 18:41:57

(ÉLES) A deriváló progit egészítsd ki kivonással. Javítva

noob.hu/2011/03/19/derival_0.png

Első példa:
xxs-2p // az (x-sinx)ˇ2
2xxs-21-p*xc1*1-* // az pedig 2(x-sinx)(cosx-1)

Második példa
xs3- // az sinx-3
0xc1*- // az (cosx)-0

Műkszik,de ez a lengyel számolás bonyolultabb mint a feladat :D

Rankerz 2011.03.19. 18:51:29

@Rankerz: 2xxs-21-p*xc1*1-* // az pedig 2(x-sinx)(1-cosx)

szimih 2011.03.19. 18:56:30

@nb: Fúú, elírtam az indexelést, de javítottam hétfőn már a jót viszem:D

Veyron007 2011.03.19. 20:22:45

(ÉLES) A pi-napi elosztott számítás eredménye részszámításonként egy-egy állomány a szerveren, írj olyan programot, ami ezeket a megfelelő sorrendben (ami a fájlnévből derül ki) összefésüli egyetlen állománnyá!

------

Végre sikerült. Az eredmény "A_szamitasok_osszesitve.txt" fájlban található, feltöltöm a "Mindenki a PI-ért" posztban található weblapomra is.

Forrás:

#include <stdio.h>

int main ()
{
int i,j;
char filenev[50];
char tartalom[1000];

FILE *be;
FILE *ki;
ki = fopen("A_szamitasok_osszesitve.txt", "a");
for (i=0; i<472000; i+=1000)
{
sprintf (filenev, "PIH/%d-%d.pih", i, i+999);
be = fopen(filenev, "r");
for(j=0; j<1000; j++)
fscanf(be, "%s", tartalom);
fprintf(ki, "%s", tartalom);
}
fclose(be);
fclose(ki);
return 0;
}

A filenév azért PIH/stb... vel kezdődik, mert a PIH könyvtárban találhatóak a részszámítások. Amelyek szintén fent vannak a PI-s posztban linkelt weblapomon tömörítve

nb · http://fersml.blog.hu 2011.03.20. 15:11:44

@Painkiller19910110: azért kértem az olyan kimenetet, ami az enyémhez hasonló, hogy erre én is (könnyebben) választ kapjak :)

nb · http://fersml.blog.hu 2011.03.20. 15:21:27

@Veyron007: jó lesz, de kicsit még gyúrj rajta:

- a "be" fájlokat zárogasd be a ciklusban, ha kész vagy a beolvasásukkal

- a beolvasást, kiírást írd át ilyen formába:
-- lehet ilyen FILE*-osés fgetc/fputc szokásos getcgar/putchar jellegű móka EOF-ig
-- vagy alacsonyszinten pufferelt írás/olvasás, ilyet az EXOR kódtörésben csináltunk: m.blog.hu/pr/progpater/image/exor/e.png neked most nem a 0 és az egy kell, hanem a be és a ki (persze az int verzióik)

Ha mind a kettőt megcsinálod, adok 4+2 trófeát, de hogy nyitott maradjon a verseny, ha valaki megelőz, annak a +2-t kiadjuk (a 4 már neked fenntartott, mert ezt tesztelésnek veszem)

2011.03.20. 15:23:05

Küldöm a e-mail (ÉLES) (6+ trófeás) progpater.blog.hu/2011/03/11/alternativ_tabella feladatot.

Painkiller19910110 2011.03.20. 17:48:22

Sikerült végre megcsinálnom rendesen: Szorgos hódok: számítsd ki a BB(3)-at a saját C programoddal, azaz írj egy olyan "brute force" programot, ami legenerálja az összes 3 állapotú Turing gépet, leszimulálja a működésüket és megnézi, hogy üres szalaggal (csupa 0) indítva hány darab egyest tudnak max. kiírni.

forráskód: data.hu/get/3632615/bb3.c

Painkiller19910110 2011.03.20. 18:49:03

Sikerült végre ezt is jól megcsinálni "(KÉSZ) Szorgos hódok: számítsd ki a BB(4)-et a saját C programoddal, azaz írj egy olyan "brute force" programot, ami legenerálja az összes 4 állapotú Turing gépet, leszimulálja a működésüket és megnézi, hogy üres szalaggal (csupa 0) indítva hány darab egyest tudnak max. kiírni. "

forráskód:

data.hu/get/3632852/bb4.c

2011.03.20. 19:24:11

Itt van az (ÉLES) (6+ trófeás) progpater.blog.hu/2011/03/11/alternativ_tabella feladat.

Nem tudom, hogy mit kéne pontosan belinkelni, mert a program elég hosszú, de itt van néhány kulcsrészlet:

az alternatív tabella eredményei(megjegyzés: a program lefordításához kellett a gcc -o -lm:
noob.hu/2011/03/20/Screenshot.png
noob.hu/2011/03/20/Screenshot-1.png

Az L mátrix:
noob.hu/2011/03/20/Screenshot-3.png

nb · http://fersml.blog.hu 2011.03.20. 19:47:30

@Painkiller19910110: @Bandee90: mindkét feladat közel áll a szívemhez és már láttam screenshotokon, hogy dolgoztatok a feladatokkal. De fontos az önellenőrzés, azaz ebben a két esetben a programotok kimenetének összevetése az enyémmel és ezt kérem még bemutatni, hogy ne kelljen a programokat fordítanom, futtatnom, esetleg a forrásokat elemeznem. Tehát egyrészt Ti is így lehettek biztosabbak, hogy jó a megoldásotok és nekem sem kell órákat töltenem a források olvasásával. (Belenézni persze belenézek és ha van tanácsom jelzem.)

Rankerz 2011.03.20. 20:00:00

A deriváló progi kivonással kiegészítve nem jó?

Veyron007 2011.03.20. 20:22:40

@nb: #include <stdio.h>

int main ()
{
int i,j;
char filenev[50];
char tartalom[1000];

FILE *be;
FILE *ki;

ki = fopen("A_szamitasok_osszesitve.txt", "a");
for (i=0; i<472000; i+=1000)
{
sprintf (filenev, "PIH/%d-%d.pih", i, i+999);
printf ("%s \n", filenev);

be = fopen(filenev, "r");

j=0;
while ( tartalom[j] != EOF )
{
tartalom[j]=fgetc(be);
fputc(tartalom[j], ki);
j++;
}

fclose(be);
}

fclose(ki);

return 0;
}

Painkiller19910110 2011.03.20. 20:45:00

@nb: Kedves TanárÚr a legutóbbi BB3.c és BB4.c amiket a data.hura feltettem már úgy működnek hogy először a szabályt tolják ki a képernyőre utánna a bemenetei tömbök, utánna a rajta elvégzett műveleteket, és aztán a bemeneti tömb kinézetét a műveletek után, és ezt az összes lehetséges bb-re.
Illetve nem nagyon értem hogy mit szeretne még tanár úr, most arra gondolok hogy ./bb3 > bb3.txt-t kellene felraknom és belinkelnem?

Painkiller19910110 2011.03.20. 21:08:53

Ehhez szeretnék segítséget kérni "Szorgos hódok: ellenőrizd (szimuláld le) a arxiv.org/abs/0908.4013 5/c ábráján látható gépet!" ezen belül "http://arxiv.org/abs/0908.4013" az 5/c ábrát hol találom meg? Lehet csak én vagyok figyelmetlen :(

Rankerz 2011.03.20. 21:29:06

@Painkiller19910110: jobboldalt van egy download opció leszeded pdf ben és abban keresd szerintem.

Painkiller19910110 2011.03.20. 21:30:10

@Rankerz: Nem is azzal van a baj :) hanem azon beül még a CTRL+F se talál 5/c :) :(

Painkiller19910110 2011.03.20. 21:32:16

Az 5/c a Fugure 5-on belül jelentené a C -t?

Rankerz 2011.03.20. 21:34:02

@Painkiller19910110: Szerintem igen,alatta hivatkozik rá mint Figure 5(c)

Painkiller19910110 2011.03.20. 21:34:37

@Rankerz: Akkor egyre gondoltunk sztem :)

2011.03.20. 22:57:52

Mellékelem a két eredményt:

Az eredeti tabella a blogról:
data.hu/get/3634131/tabella_eredeti.txt

A C-ben írt program kimenete:
data.hu/get/3634127/tabella.txt

Ahogy én észrevettem egyezik a két tabella.

Painkiller19910110 2011.03.21. 01:03:29

Segítséget szertnék kérni TanárÚrtól mert elakadtam, a BB5 nél a transition rule (9, 0, 11, 1, 15, 2, 17, 3, 1, 4, 23, 5, 24, 6, 3, 7, 21, 9, 0)
mit jelent?

Painkiller19910110 2011.03.21. 08:25:45

@nb: Jól sejtel hogy a tömbökbe letárolt (belso állaop, olvasott karakterek) és (új állaopt, írottkarakter, lépék) párosok indexeit tartalmazzák?

nb · http://fersml.blog.hu 2011.03.21. 08:48:02

@Rankerz: mert, nem adtam rá meg az 1 pontot? Megadtam, nem?

nb · http://fersml.blog.hu 2011.03.21. 08:55:47

@Painkiller19910110: itt van részletezve egy másik cikkben: arxiv.org/pdf/0908.1159

4. oldal alja a definíció, a 23 oldalon van C nyelvi "példa".

nb · http://fersml.blog.hu 2011.03.21. 09:04:34

@Bandee90: tökéletes! (majd forrásokat is megnézem, de ettől függetlenül ott a pont(ok))

további 6 trófeát arathatsz, ha a wikipedia szócikket karban tartod! A progiban eleve olyan formában nyomtad ki, ami a wikipedia táblázat formátuma, nem kell mást tenned, mint regisztrálni a wikipediára és frissíteni a szócikket, a többi a moderátorok, lektorok dolga :)

nb · http://fersml.blog.hu 2011.03.21. 09:07:22

@Painkiller19910110: igen: 23.o.: arxiv.org/pdf/0908.1159

The array indexes contained in this code snipet may be used to decrypt the
names of Turing machines. For example, from the name (n, f1 , t1 , . . . , 2, 18,
. . . , fn , tn ) with indexes 2 and 18 we can decrypt the rule (1, 0) → (3, 0, ←).
#define NOF_FROM 10
#define NOF_TO 30
/* (state, read) -> */
int from[NOF_FROM][2] = {
{0, 0}, // 0
{0, 1}, // 1
{1, 0}, // 2

a 18. as indexűt nem vágom be... :)

Rankerz 2011.03.21. 09:49:21

@nb: a-a. a 0,5 trófeát kaptam utoljára a for ciklusos feladatra. ez a deriválós progi még nem könyvelt.

Painkiller19910110 2011.03.21. 12:07:41

@nb: A BB3 és BB4 már így kijavítva jók lesznek?

Painkiller19910110 2011.03.21. 15:27:12

Elkészültem ezzel is :) "Aki először (saját C progikkal) megfejti ezt a kódot."

forráskód: data.hu/get/3636042/arecibo.c

kimenet: data.hu/get/3636044/arecibo.txt

nb · http://fersml.blog.hu 2011.03.21. 15:55:14

@Painkiller19910110: de hol vannak az "így kijavítottak"?

Painkiller19910110 2011.03.21. 16:48:46

@nb:
BB3

forráskód: data.hu/get/3632615/bb3.c

kimenete: data.hu/get/3633649/bb3.txt

BB4

forráskód: data.hu/get/3632852/bb4.c

kimenete: data.hu/get/3633630/bb4.txt

Illetve egy frissen megcsinált feladat:
Elkészültem ezzel is :) "Aki először (saját C progikkal) megfejti ezt a kódot."

forráskód: data.hu/get/3636042/arecibo.c

kimenet: data.hu/get/3636044/arecibo.txt

Rankerz 2011.03.21. 17:32:53

Az deriválós progi /1 kisbajnokságos/ kizárja az összes többi deriválós bajnokságot?

nb · http://fersml.blog.hu 2011.03.21. 17:57:07

@Rankerz: nem, de függvényesből egy vadásztól egyet írok jóvá.

Rankerz 2011.03.21. 19:29:04

(ÉLES) A deriváló progit egészítsd ki osztással.
noob.hu/2011/03/21/oszt.png

Osztás jelként a ":" ot használtam.

példa
[deriválás szabály osztásra: g szer f derivált ból g derivált szor f osztva g négyzetével]

xs2: / az sinx:2
2xc1**0xs*-2*2
/ az 2*cosx - 0* sinx : 2*2 [magyarul 4]

Működik)

nb · http://fersml.blog.hu 2011.03.22. 11:50:45

@Painkiller19910110: a txt-már meggyőző volt, de a forrásod elbizontylanított, ha több időm lesz jobban megnézem: de mintha Te eleve fix gépeket írnál ki...

Mindenkinek: a BB-vel kapcsolatos feladatokból elfogadok 2-t, ha elég különböző, talán 3-at is...

Painkiller19910110 2011.03.22. 12:56:38

@nb: Igen Fix gépeket írok ki mert csak így tudtam megoldani. Remélem ez nem kizáró ok?
Illetve az arecibos jó let?

nb · http://fersml.blog.hu 2011.03.22. 14:29:16

@Painkiller19910110: nyilván az, hiszen maga a feladat az, hogy megkeressük a legtöbb egyest kiíró gépeket! De ne add fel!

Az arecibóst már egy hete tárgyaltuk az előadásban, így az maximum akkor nézem meg, ha Te még az én megoldásom előtt készítetted és a forrásokon látszik is, hogy nem az enyém.

Painkiller19910110 2011.03.22. 14:55:08

@nb: Mivel én nem járok előadásra ezért én meg se tudtam hallgatni a fent említettet, illetve az én verzióm igaz hogy az öné után készült de a megoldás nem hasonlít még közel se az önére.
A BB-sekre visszatérve akkor nem kapom meg a pontot?
Attól függetlenül hogy nem generálja le az összeset hanem fixen dolgozik velük ugyan úgy megcsinálja a feladatot, ugyanolyan jól.
Az arecibósra is szeretném tudni hogy jár e a pont vagy "feleslegesen" dolgoztam?

nb · http://fersml.blog.hu 2011.03.22. 15:03:56

@Painkiller19910110: szomorúan hallom, hogy nem jársz előadásra, pedig ha járnál talán tisztább lenne, hogy a BB feladatnál a gépek megkeresése a lényeg, hiszen ez a feladat: "brute force" jelleggel az összeset legenerálni és ezekből válogatni!

Esetedben honnan tudod, hogy mely gépekkel kéne "fixen dolgozni"????

Az arecibós feladatodat megnézem akkor. Azt nem vitatom, hogy van olyan, hogy az ember feleslegesnek érzi néha a munkáját, de ne essünk pánikba, tanulunk.

nb · http://fersml.blog.hu 2011.03.22. 15:12:58

@nb: Megnéztem a programot, itt megfejtésnek egy képet terveztem elfogadni, de a programodban mést nem látok, csak printf-es kiírásokat... esetleg 1/2 pontot adok azért az észrevételért, hogy két prím szorzatára bontottad a kód méretét és ekkora tömbbe tetted.

Rankerz 2011.03.22. 15:15:34

Az deriválós osztásosra kapok valamit vagy nem lett elfogadva?

nb · http://fersml.blog.hu 2011.03.22. 15:16:40

@Rankerz: a magamét sem fogadom el, mert van benne egy bug... pont az összeadásnál... :)

nb · http://fersml.blog.hu 2011.03.22. 15:17:46

erre müxik a Tiéd: 2x*3x*5x*--
(tudom, hogy ez korábbi, nyilván ha nem, akkor sincs semmi :)

Painkiller19910110 2011.03.22. 15:18:59

@nb: Elfogadom a 1/2 pontot, de a dekódolás alatt én azt értettem hogy nem csak 23x73 as mátrixot kell építeni hanem valami úton módon megmagyarázni azt hogy mit akar mondani ez az üzenet, és ez alapján írtam meg a programot nem kis időt beleölve, illetve igaz hogy nagyrészt printf-ekből áll a program de van ott még más is.
A BB-ken meg akkor még gyúrok egy picit.

Rankerz 2011.03.22. 15:20:46

@nb: őő akkor bugmentesíteni kell és addig bukta a deriválós bajnokságok vagy hogy?
most nem tudom megnézni hogy műkszik e a 2x*3x*5x*-- de mihelyt tudok rá időt szakítani megírom mi lett.

Veyron007 2011.03.22. 17:51:24

@Veyron007: Javítva:

>#include <stdio.h>
> int main ()
> {
> int i,j;
> char filenev[50];
> FILE *be;
> FILE *ki;
> ki = fopen("A_szamitasok_osszesitve.txt", "a");
> for (i=0; i<472000; i+=1000)
> {
> sprintf (filenev, "PIH/%d-%d.pih", i, i+999);
> printf ("%s \n", filenev);
> be = fopen(filenev, "r");
>
> char c;
> while ( c=fgetc(be) != EOF )
> {
> fputc(c, ki);
> }
> fclose(be);
> }
> fclose(ki);
> return 0;
> }

Rankerz 2011.03.22. 18:02:36

megnéztem ez lett belőle
./der 2x*3x*5x*--
10-3x*1*3x0*12*+*02x**+x*+-

Veyron007 2011.03.22. 23:32:07

Tisztelt Tanár Úr!

Végre elékészült a második módosítás is. Tesztelve, működik!

Forrás:

#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>

#define BUFFER_MERET 1000

int main ()
{
int i,j;
char filenev[50];

char ki, be;
ki = open("A_szamitasok_osszesitve.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);

for (i=0; i<472000; i+=1000)
{
sprintf (filenev, "PIH/%d-%d.pih", i, i+999);
printf ("%s \n", filenev);

be = open(filenev, O_RDONLY);
char buffer[BUFFER_MERET];
int olvasott_bajtok=0;

olvasott_bajtok = read (be , buffer, BUFFER_MERET);
close (be);

write(ki, buffer, olvasott_bajtok);
}
close (ki);
return 0;
}

Joe89 2011.03.22. 23:42:30

Megcsináltam ezt, még az első hullámból:
7 kisbajnokságos feladatok
(ÉLES) Szorgos hódok: számítsd ki a BB(3)-at a saját C programoddal, azaz írj egy olyan "brute force" programot, ami legenerálja az összes 3 állapotú Turing gépet, leszimulálja a működésüket és megnézi, hogy üres szalaggal (csupa 0) indítva hány darab egyest tudnak max. kiírni.

Tudom hogy Painkiller már beküldte, de későn vettem észre, és már majdnem kész volt a progi, szóval most befejeztem, és gondoltam beküldöm ...
Hátha megér 1-2 pontot ... :P :)

Egyébként én teljesen máshogy csináltam mint Painkiller, nekem a program legenerálja az összes gépet, megnézi hogy melyik nem végtelen, és hogy melyik tudja kiírni a legtöbb egyest ...

Itt a program kimenete:
dl.dropbox.com/u/13871711/kimenet.txt

És itt van a program:
dl.dropbox.com/u/13871711/bb.c

Painkiller19910110 2011.03.23. 00:06:40

Elkészültem ezzel "(ÉLES) Írj olyan programot, ami számolja a bemenetén a sorokat, használd a lex-et, lásd 1. ea."

sorokszama.c

%{
#include <string.h>
int sorokszama=0;
%}
%%
\n ++sorokszama;
%%
main()
{
yylex();
printf("\n%d darab sorbol all a fajl!",sorokszama);
}
yywrap()
{
return -1;
}

futtatása:
lex sorokszama.c
gcc -o sorokszama lex.yy.c
./sorokszama < valami.txt

kép: imagerz.com/QFdDXA4AAwI

Painkiller19910110 2011.03.23. 00:17:22

Ezzel is elkészültem "ÉLES) Írj olyan programot, ami számolja a bemenetén a szavakat, használd a lex-et, lásd 1. ea."

szavakszama.c

%{
#include <string.h>
int szavakszama=0;
%}
%%
[a-zA-Z][a-zA-Z0-9]* ++szavakszama;
%%

main ()
{
yylex ();
printf("\n%d darab szobol all a fajl!",szavakszama);
}
yywrap ()
{
return 1;
}
futtatása:
lex szavakszama.c
gcc -o szavakszama lex.yy.c
./szavakszama < valami.txt

kép: imagerz.com/QFdDXA4AAlY

Painkiller19910110 2011.03.23. 00:30:20

Ezzel is elészültem "(ÉLES) Írj olyan programot, ami számolja a bemenetén a betűket, használd a lex-et, lásd 1. ea."

betukszama.c

%{
#include <string.h>
int betukszama=0;
%}
%%
[a-zA-Z] ++betukszama;
%%

main ()
{
yylex ();
printf("\n%d darab betubol all!",betukszama);
}
yywrap ()
{
return 1;
}

futtatása:
lex betukszama.c
gcc -o betukszama lex.yy.c
./betukszama < valami.txt

kép:imagerz.com/QFdDXA4AAlU

kecske20 2011.03.23. 00:51:08

Kedves Tanár úr, és bloggerek!

A következő feladatban szeretnék kérni egy kis indító löketet: (ÉLES) Módosítsuk úgy a Qt Mandelbrotos példát, hogy szép biomorfokat is rajzoljon!

A biomorfokról a Mandelbrot halmazban annyit már tudok, hogy kis sejtekre hasonlítanak. Ezt különböző számítással tudjuk kiszámolni persze, (amit ha jól gondolom a négyzetes számítás helyére kell beírni) pl log, vagy sin függvény használatával. Arra gondoltam, hogy a komplex számoknak vesszük a trigonometrikus alakját, mivel azzal lényegesen könnyebb a számolás. Itt kezdődtek a problémáim...
Valahogy sosem sikerül a komplex szám trigonometrikus alakját felírni, pláne hogy nem sikerült emiatt a probléma miatt hozzáfűzni a programhoz.

Ebben kérném a segítséget. Köszönöm.

Painkiller19910110 2011.03.23. 07:37:59

@kecske20: Nem tudom googleval próbálkoztál-e? www.google.com/search?client=ubuntu&channel=fs&q=komplex+sz%C3%A1mok+trigonometrikus+alakja&ie=utf-8&oe=utf-8
Itt a második találat egy pdf abban van jóféle anyag.
Am meg a komplex szám hossza és szöge amit a Re tengellyel bezár egyártelműen megadja a számot.

Rankerz 2011.03.23. 08:49:44

@Painkiller19910110: a lexes bajnokságok már mind kész vannak

Rankerz 2011.03.23. 09:15:21

@Painkiller19910110: hulala,interfeca és veyron már korábban beküldte,csak nem frissült a kiírás szerintem

Rankerz 2011.03.23. 09:25:50

Ehhez kérnék helpet
"Eddigi valamelyik olyan példánkba, ahol ki tudsz találni értelmes parancssor argumentumokat, oda dolgozz be ilyen átvételt:"
Olyan átvitelt hogy gondolatjelekkel lehessen megadni az argumentumot? vagy itt most mi lenne a hangsúlyos?

2011.03.23. 09:53:35

Frissítettem a wikipédián az alternatív tabella cikket.

Minden frissítést jelezzek itt a blogon, vagy tanárúr le tudja ellenőrizni a wikipédián a laptörténetben?

wikipedián az azonosítóm: Banderas90

nb · http://fersml.blog.hu 2011.03.23. 14:33:08

@Veyron007: legyen elegánsabb, olvasott_bajtok = read (be , buffer, BUFFER_MERET); for ciklusban, miközben BUFFER_MERET kisebb, pl. 256 legyen! pls

nb · http://fersml.blog.hu 2011.03.23. 14:38:08

@kecske20: std::sin() megy komplexre (bár láthatod, hogy eléggé belassul, ha átírod complex osztályosra, l. van ilyen kódcsipet fent)

nb · http://fersml.blog.hu 2011.03.23. 14:39:10

@Rankerz: igen a -nev=értek vagy valami ilyesmi formátum ami tetszik -n értek stb.

nb · http://fersml.blog.hu 2011.03.23. 14:41:58

@Bandee90: +1 kint, érdemes itt jelezni, mert egyrészt fontos infó :) másrészt nem felejtem el majd a +1 pontokat hozzáírni.

hu.wikipedia.org/w/index.php?title=Alternat%C3%ADv_tabella&stable=0&redirect=no

látom picit romlottunk, de már a 2. vagyunk, majd további infókat is írj, hogy a szurkolók lássák, hogy mikoriak az adatok (hanyadik forduló vagy dátum stb.).

Rankerz 2011.03.23. 15:16:33

@nb: köszönöm. a deriválós osztásossal akkor mi legyen? a bugos eredeti forráskódra hivatkozva nem lett elfogadva, de végülis készen van és működőképes.

nb · http://fersml.blog.hu 2011.03.23. 18:13:19

@Rankerz: a minuszosra adtam már, a fgv.-eset még nem néztem, de valszeg először a bugot irtom majd :)

Rankerz 2011.03.23. 20:20:11

@nb: Rendben. A harmadik hullám ezen a héten lesz vagy jövőhéttől egyébként?=)

nb · http://fersml.blog.hu 2011.03.23. 20:22:52

@Rankerz: már dolgozok a poszton, holnap estére publikálom.

Rankerz 2011.03.23. 20:30:48

@nb: lehetne benne hivatkozás az előző hullámok még éles kisbajnokságaira,hogy egy helyen legyen. pl az első hullámból már alig van valami a másodikból 1-2-3 trófeásak nagy része kész. persze ez plusz idő és munka,csak felvetés a könnyebb áttekinthetőséghez)

Veyron007 2011.03.23. 21:35:45

@nb:
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>

#define BUFFER_MERET 200

int main ()
{
int i;
char filenev[50];

char ki, be;
ki = open("A_szamitasok_osszesitve.txt", O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);

for (i=0; i<472000; i+=1000)
{
sprintf (filenev, "PIH/%d-%d.pih", i, i+999);
printf ("%s \n", filenev);

be = open(filenev, O_RDONLY);
char buffer[BUFFER_MERET];
int olvasott_bajtok=0;

while (olvasott_bajtok = read (be , buffer, BUFFER_MERET) )
{
write(ki, buffer, olvasott_bajtok);
}
close (be);
}
close (ki);
return 0;
}

Közeben sikerült megértenem a kérését.
Jár a +2 pont ? :))))

Painkiller19910110 2011.03.23. 22:15:41

(ÉLES) K&R feladat: 8.1 gyakorlat

forráskód:

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#define maxhosz 256
int feldolgozas ()
{

double t = 0.0;
int n,k=0;;
int be;
char buf[maxhosz];
be = open ("valami.txt", O_RDONLY);
while ((n = read (be, buf, sizeof (buf))))
{
if(n==EOF) break;
write (1, buf, n);
k++;
}
close (be);
}
int
main ()
{
feldolgozas();
return 0;
}

A valami.txt-t mellé kell létre hozni és mehet bele a szöveg ő meg getchar putchar nélkül dolgozik.

nb · http://fersml.blog.hu 2011.03.23. 22:25:18

@Rankerz: nem lenne könnyű, szerintem "élő rendszerként" életképesebb: ha megtetszik egy feladat, a vadász nyom egy kommentbeli kérdést és a társak tipikusan naprakészek, hogy mi szabad és melyik vad van már kilőve. Magam is címkézgetek, de a jó válaszok mindig a közösségben vannak.

Rankerz 2011.03.23. 22:30:20

@nb: nekem megfelel,csak felvetettem) biztos van elég munka a nélkül is,lassan társzerkesztőt kell bérelni :D

Pato1111 2011.03.23. 22:34:26

Az 5. ea. utolsó robotfocis fáliájának (cout-ra a módosításos copyright üzenet) ...

kepfeltoltes.hu/110323/foci_www.kepfeltoltes.hu_.png

Painkiller19910110 2011.03.24. 14:33:26

TanárÚr A 4 kommenttel feljebb beküldött feladatom jó?

nb · http://fersml.blog.hu 2011.03.24. 17:48:43

@Painkiller19910110: alakul, de a hivatkozott cat az összes parancssor argumentumát másolja és ugyancsak fontos része a feladatnak a sebességteszt.

Rankerz 2011.03.25. 17:49:32

5.10. gyakorlatban megakadtam[..kiértékeli a parancssor-argumentumban megadott fordított lengyel jelölésmódú kifejezést..]
megcsináltam úgymond a program vázát(verem,argumentumok kiértékelése) de valahogy a parancssor argumentumra 48 tól kezdődően dobál vissza értékeket. 0 ra 48 1 re 49 et dob vissza és így tovább. hogy kerülhetett ilyen érték a verembe?

nb · http://fersml.blog.hu 2011.03.25. 20:18:40

@Rankerz: könnyebb lenne válaszolni, ha látnánk a forrást... :)

Rankerz 2011.03.25. 20:56:48

@nb: gondoltam rá,de időközben elhárítottam a problémát. a 0 karakter ascii kódtábla szerint decimális 48 ...

Painkiller19910110 2011.03.25. 22:10:10

@nb: "összes parancssor argumentumát másolja" ez a rész mit takarnea mert nem nagyon értem :(
illetve a 3. hullámba már 3-at beeküldtem azok jók lettek?

nb · http://fersml.blog.hu 2011.03.26. 15:41:13

@Painkiller19910110: K&R könyvben nézted a hivatkozott részt?

Rankerz 2011.03.27. 20:24:10

3 kisbajnokságos feladatok
(ÉLES) B&L(**) feladat: 3.5 feladat, 31. o.

noob.hu/2011/03/27/fifo.png

fifo.h

#define FIFO_H

#include <cstdlib>
#include <cmath>
#include <ctime>
#include <stdio.h>

class IntFifo
{
int* data;
unsigned int size;
unsigned int count;
public:
IntFifo();
IntFifo(unsigned int size);
IntFifo(const IntFifo& fifo);
~IntFifo();
void Put(int item);
bool Get(int& item);
void Print();
int Count() {return count;}
bool IsEmpty(){return count==0;}
};

fifo.cpp

#include <cstdlib>
#include <cmath>
#include <ctime>
#include <stdio.h>
#include "fifo.h"

IntFifo::IntFifo()
{
data=NULL;
size=0;
count =0;
}
IntFifo::IntFifo(unsigned int size)
{
data=NULL;
this->size=size;
count=0;
if(size!=0)
data= new int[size];
}
IntFifo::~IntFifo()
{
delete[] data;
}
void IntFifo::Put(int item)
{
if (count >= size)
{
int* temp = new int[count+1];
for (unsigned int i =0; i < count; i++)
temp[i] =data[i];
temp[count] = item;
++count;
delete[] data;
data= temp;
}
else
{
data[count]= item;
++count;
}
}
bool IntFifo::Get(int& item)
{
if (count==0)
{
fprintf(stderr, " Üres Fifo\n");
return false;
}
item = data[0];
--count;
if(size<= count)
{
if (count==0)
{
delete[] data;
data=NULL;
return true;
}
int* temp= new int[count];
for( unsigned int i =0; i < count; i++)
temp[i] = data[i+1];
delete[] data;
data=temp;
}
else
{
for(unsigned int i =0; i< count; i++)
data[i] = data[i+1];
}
return true;
}

fifomain.cpp

#include <cstdlib>
#include <cmath>
#include <ctime>
#include <stdio.h>
#include "fifo.h"

main()
{
unsigned int *d;
int j;
IntFifo fifo(3);
for (j=1;j<=5;j++)
{
scanf("%d",d);

fifo.Put(*d);
}
for (j=1;j<=5;j++)
{
int i;
fifo.Get(i);
printf("%d\n",i);
}
}

nb · http://fersml.blog.hu 2011.03.28. 19:32:08

@Rankerz:spéci, de másoló konstruktort nem implementálsz? Elegánsabb lenne cin-ről olvasni.

Rankerz 2011.03.28. 20:52:32

@nb: // Másolókonstruktor
fifo.cpp
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <iostream>
#include <cstdio>
#include "fifo.h"
IntFifo::IntFifo()
{
data=NULL;
size=0;
count =0;
}
IntFifo::IntFifo(unsigned int size)
{
data=NULL;
this->size=size;
count=0;
if(size!=0)
data= new int[size];
}
IntFifo::~IntFifo()
{
delete[] data;
}
void IntFifo::Put(int item)
{
if (count >= size)
{
int* temp = new int[count+1];
for (unsigned int i =0; i < count; i++)
temp[i] =data[i];
temp[count] = item;
++count;
delete[] data;
data= temp;
}
else
{
data[count]= item;
++count;
}
}
bool IntFifo::Get(int& item)
{
if (count==0)
{
fprintf(stderr, " Üres Fifo\n");
return false;
}
item = data[0];
--count;
if(size<= count)
{
if (count==0)
{
delete[] data;
data=NULL;
return true;
}
int* temp= new int[count];
for( unsigned int i =0; i < count; i++)
temp[i] = data[i+1];
delete[] data;
data=temp;
}
else
{
for(unsigned int i =0; i< count; i++)
data[i] = data[i+1];
}
return true;
}
IntFifo::IntFifo(const IntFifo& fifo)
{
size = fifo.size;
count = fifo.count;

unsigned int actualSize=(size >count)?size:count;
if(fifo.data==NULL)
{
data=NULL;
}
else
{
data=new int[actualSize];
for (unsigned int i=0; i<count; ++i)
data[i]=fifo.data[i];
}
}

fifomain.cpp

//cin

#include <ctime>
#include <iostream>
#include <cstdio>
#include "fifo.h"

main()
{
int d;
int j;
IntFifo fifo(3);
for (j=1;j<=5;j++)
{

std::cin >> d;
fifo.Put(d);
}
for (j=1;j<=5;j++)
{
int i;
fifo.Get(i);
std::cout << i <<std::endl;
}
}

screen:

noob.hu/2011/03/28/fifocin.png

kecske20 2011.03.29. 21:05:12

(ÉLES) OO-sítsd a Mandelbrotos szál osztályt komplex számok használatával.

OO-sítottam, láthatóan lassú a számolás. Feltételezem, hogy a komplex számok használata miatt, mivel itt végülis 2 számot kell külön "kiszámolni", hogy kijöjjön a "teljes" komplex szám. A komplex síkban nehezebb keresni egy komplex számot, mivel ez a sík megszámlálhatatlanul végtelen elemet tartalmaz. Ezek a számok lehetnek pozitív, és negatívak.

Ez lenne az elméletem :)

#Gerzson 2011.03.30. 00:48:37

(ÉLES) A deriváló progit írd át úgy, hogy grafikus felületen lehessen megadni a deriválandó függvényt.

img36.imageshack.us/img36/8136/kijells012.png

nb · http://fersml.blog.hu 2011.03.30. 09:17:22

@kecske20: számolni mi is ugyanazt kiszámoljuk, mint ahogy a complex osztály, amiért lassú az az, hogy Ő egy osztály (a magasabb absztrakciós szintért, azaz az általánosításokért: sokat tudó dolgokért a sebességgel fizetünk, lásd fenti Java virtuális gépes válaszom.)

A számosságos dolgot nem látod jól, mert R és C is kontinuum számosságú. (azaz pl. a [0,1] intervallumban ugyanannyi pont van, mint az egész komplex vagy valós síkban, mert bijekció van köztük, azaz definíció szerint megegyezik a számosságuk)

de a matek itt lényegtelen.

más: nyomd fel magasra az iterációs határt és kézzel stopperrel nyomj egy sebeségtesztet pls.

nb · http://fersml.blog.hu 2011.03.30. 09:24:59

@#Gerzson: nem erre gondoltam, hanem, hogy gombokat is kiteszel, mint egy számológép, hogy x + pow stb. Ajánlatom: adtam most 4-et és ha továbbfejleszted a most említettre további +3, azaz 1-el jól jössz ki belőle :)

kecske20 2011.03.30. 17:48:39

@nb:

Az eredeti program ~32mp alatt futott le 32000-es iterációs határ mellett.

Az OO-sított program pedig ~4p08mp alatt, ugyanezen az iterácios határ mellett.

Tanár úr válaszát pedig köszönöm, valószínüleg még párszor átkell gondolnom a komplex számokról alkotott képemet.

Rankerz 2011.04.01. 17:32:19

régi kérdés,de mikor lesz elkönyvelve a deriválós osztásos bajnokságom? tudom hogy bugmentesíteni kell a főforrást először de azóta már fogadott el tanárúr ahhoz kapcsolódó feladatot szóval én is behajtanám a +2 t ha lehet =)

kecske20 2011.04.01. 21:01:38

@nb: igen, már megkaptam.

nb · http://fersml.blog.hu 2011.04.02. 13:54:54

@Rankerz: igen, de ott a Qt-s felölet volt a lényeg, nem maga a rekurzív deriválgatás.

Rankerz 2011.04.05. 19:21:07

4 kisbajnokságos feladatok/(ÉLES) K&R feladat: 5.14 gyakorlat:

5.14. gyakorlat. Módosítsuk a rendezőprogramot úgy, hogy kezelni tudja a -r jelzést, amivel a fordított (csökkenő) irányú rendezést írjuk elő! Biztosítsuk, hogy a -r működjön a -n opcióval együtt is!

screen: noob.hu/2011/04/05/reverse.png

Rankerz 2011.04.05. 22:06:36

@Rankerz: javítottam az -n operátorral való együttműködést

noob.hu/2011/04/05/reve.png

Rankerz 2011.04.05. 23:15:53

(ÉLES) Eddigi valamelyik olyan példánkba, ahol ki tudsz találni értelmes parancssor argumentumokat, oda dolgozz be ilyen átvételt:

itt nem volt túl konkrét kikötés így improvizáltam.rakhattam volna még bele több opciót de szerintem ennyi is elég.

screen: noob.hu/2011/04/05/argument.png

Rankerz 2011.04.07. 08:32:43

(ÉLES) K&R feladat: 5.10 gyakorlat /Írjuk meg az expr programot, amely kiértékeli a parancssor-argumentumban megadott fordított lengyel jelölésmódú kifejezést!/

A program egyedüli szépséghibája hogy a * speciális karakter parancssorban többletjelentéssel bír így a szorzás végrehajtásához '*' ként kell jelölni,ettől függetlenül műkszik.
screen: forráskód lényegi része + teszt + mellette kiszámítás is

noob.hu/2011/04/07/lengyel.png

nb · http://fersml.blog.hu 2011.04.07. 12:15:34

@Rankerz: nem kellenének számok is a teszt sztringek elejére?

nb · http://fersml.blog.hu 2011.04.07. 12:19:20

miért nem szorzol az x-el vagy bármi mással, de OK.

Rankerz 2011.04.07. 14:18:53

@nb: számok? az eredeti rendező programban sem használt így gondolom átalakításba se kell.

Rankerz 2011.04.07. 20:39:18

A Qt-s Xterm feladathoz kérnék helpet. A logwindowhoz kell pár egyéb class,azokat leszedtem.
"Create a shell/environment variable CPPLIBS that contains the absolute path of projects/libs."
ezt viszont nem tudom hogyan kell.

phloriaN 2011.04.07. 21:30:43

(ÉLES) Rajzolj Qt-s ablakba egy malomtáblát (az ablak konstruktorában kapja meg a méret adatokat) (help bevezetes/elsoQt/AreciboiUzenet az svn-ből) a tábla méretét lehessen növelni/csökkenteni a K, N gombokkal (az előző 2 és a Sejtauto-s hasonló bill. lenyomás figyelő kizáró feladatok).

Mivel még éles gondoltam lecsapok rá :) Screenshotok:
img641.imageshack.us/img641/8008/screenshotbs.png
img848.imageshack.us/img848/2946/screenshot1nv.png
img845.imageshack.us/img845/9440/screenshot2iq.png

Rankerz 2011.04.08. 23:46:44

(ÉLES) K&R feladat: 8.1 gyakorlat

screen:futás és speedtest felkommentelve

noob.hu/2011/04/08/upcat1.png
noob.hu/2011/04/08/upcat2.png

//ucpcat.c forrás

#include <stdio.h>
#include <fcntl.h>
main(int argc, char *argv[])
{
char buf[BUFSIZ];
int fp;
if (argc ==1)
{
int m;
while ((m = read(fp, buf, BUFSIZ)) > 0)
write (1, buf, m);
}
else
while (--argc > 0)
{
fp= open(*++argv,O_RDONLY, 0);
int n;
while ((n = read(fp, buf, BUFSIZ)) > 0)
write (1, buf, n);
close (fp);
}
return 0;
}

Joe89 2011.04.10. 20:05:25

Végre elkészültem a BB(4) generátorral, és nagyon "Brute" ... Azért tartott ennyi ideig, mert azt hittem hogy valahol végtelen ciklusba futok, de rájöttem hogy csak végtelennek tűűűnő ciklusról van szó. Naaaagyon sokáig futott a progi. Próbáltam párhuzamosítani hogy gyorsabb legyen de nem volt hozzá elég időm/csokim. Szóval elindítottam és csináltam a dolgaimat máshol.

Itt van a kimeneti fájl:
dl.dropbox.com/u/13871711/BB4_kimenet.txt

A C progi szinte ugyan az mint a BB(3)-as amit beküldtem, csak kibővítettem 4-esre. De azért itt van:
dl.dropbox.com/u/13871711/bb4_2.c

Itt például az is más, hogy a temp_gepek tömb, amibe az eddig legtöbb egyest kiíró gépeket gyűjtöm, 100 elemű és ha az index túllépi a 100at akkor lenullázom. Tehát feltételezem hogy a keresett turinggépekből kevesebb mint 100 db van.

Joe89 2011.04.12. 19:52:48

Összehoztam ezt is:
(ÉLES) Szorgos hódok: ellenőrizd (szimuláld le) a arxiv.org/abs/0908.4013 5/c ábráján látható gépet!

Igaz ez még nem a bináris verzió (dolgozom azon is, csak hogy meglegyen az is) de a kisbajnokság feltételeinek megfelel, szóval beküldöm, nehogy véletlenül vki más is beküldje, mielőtt kész vagyok ... :) :P

Itt van:
dl.dropbox.com/u/13871711/bb5.c

Ha ez így OK, akkor nekem is megvan az 50 pont ... :D

nb · http://fersml.blog.hu 2011.04.15. 14:06:12

@Rankerz: Itt jól gondolom, hogy az automatikus fp értéke nulla az if(argc==1 ágban? Mert ha az, akkor az csak véletlen, a tuti: int fp=0

nb · http://fersml.blog.hu 2011.04.15. 14:10:53

@Bandee90: majd figyelj, hogy a hu.wikipedia.org/w/index.php?title=Alternat%C3%ADv_tabella&stable=0&redirect=no táblázat fejléce is változzon, hogy kiderüljön az érdeklődőknek, mikori az adat?

Adtam már a +1-et?

nb · http://fersml.blog.hu 2011.04.15. 14:16:34

@Joe89: miért kell a tömbös gyűjtés: ki a kimenetre, azt meg átnyomjuk fájlba pl.

nb · http://fersml.blog.hu 2011.04.15. 14:24:00

@Joe89: de ez nem az 5/c gép, hanem a arxiv.org/PS_cache/arxiv/pdf/0908/0908.4013v3.pdf 3/c gépe, a Schult-féle:

" (0, 0)(1, 1, 2)
(0, 1)(2, 0, 0)
(1, 0)(2, 1, 2)
(1, 1)(3, 1, 2)
(2, 0)(0, 1, 0)
(2, 1)(1, 0, 2)
(3, 0)(4, 0, 2)
(4, 0)(2, 1, 0)
(4, 1)(0, 1, 2)

Lepesek szama: 134466
Szalag:
1101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101111
Egyesek szama: 501
"

Rankerz 2011.04.15. 15:23:56

@nb: bizonyára csak figyelmetlenségi hiba,remélem attól még jár a pont.

mellesleg mióta tanárúr nem pontozott 29 trófeányi bajnokságot adtam be, hogy lehet hogy csak 3 pontot kaptam? ez azért durva

nb · http://fersml.blog.hu 2011.04.15. 15:28:37

@Rankerz: ez a +6 igen, a hiányzóak kapcsán melyik poszt végén vannak?

nb · http://fersml.blog.hu 2011.04.15. 15:32:14

Nyugalom! Fél órája kezdtem nézni a posztokat. Ha valakinek olyan érzése van egy óra múlva, hogy nem látja a megfelelő számú trófeát, akkor jelezze, nem árt egy link a kommentre.

Általában ha nem fogadok el valamit, vagy kiegészítést kérek, azt jelzem. De simán lehet, hogy elkerüli a komment a figyelmem, a blog.hu az oldaldobozt kicsit késve frissíti stb.

Rankerz 2011.04.15. 15:32:30

@nb:
Kettes hullámban:
-a Rendezős feladat[ K&R feladat: 5.14 gyakorlat] még nem lett elkönyvelve.

Hármas hullámban:
-Counter1
-Ikersárkány
-LZWCPP 1: a naiv első átiratban legyen külön headerben az osztálydefiníció!

nb · http://fersml.blog.hu 2011.04.15. 15:34:50

@Rankerz: ezeket még nem néztem most, egyedül a Counter1 egyeztetést láttam: hogy a vadászok együtt élnek a játékkal.

(Az ikersárkány képeket korábban már láttam, de még nem dolgoztam fel most.)

Joe89 2011.04.15. 20:48:12

Megint összehoztam ezt:
(ÉLES) Szorgos hódok: ellenőrizd (szimuláld le) a arxiv.org/abs/0908.4013 5/c ábráján látható gépet!

Azt hittem az 5/c azt jelenti hogy az 5. oldalról a c gépet kell. Még csodálkoztam is, hogy nem is olyan durva az a turinggép.

Most azt szimuláltam le, ami a 7. oldalon a c ... remélem arra gondolt tanárúr. Ez 4097 egyest tud kiírni 70.740.809 lépésből.

Itt a progi:
dl.dropbox.com/u/13871711/bb5_binaris.c

Ez már full binárisan megy, nagyon büszke vagyok rá ... XD

Itt a kimenet is: (bár nekem hamar lefutott)
dl.dropbox.com/u/13871711/bb5_kimenet.txt

Ha ez sem az a turinggép amire tanárúr gondolt, akkor sincs semmi gond, mert egy pillanat alatt át lehet írni a progit. (Jól van megírva ... :D)

nb · http://fersml.blog.hu 2011.04.16. 10:52:38

@Joe89: ez az a gép. Gratulálok, de mivel blogolunk, annyit írok: "Respect".

Szóval magam is büszke vagyok, hogy születnek ilyen megoldások (forrást még tüzetesen nem néztem, ezért nem részletezem).

3. hullámban is van BB feladat, Neked a meglévőkből kis munka lenne lecsapni rá...

aka801 2011.04.26. 20:17:56

4 kisbajnokságos feladatok/(ÉLES) K&R feladat: 4.8 gyakorlat:
Tegyük fel, hogy soha nem akarunk egynél több karaktert „visszaírni” a bemenetre. Módosítsuk ennek megfelelően a getch és ungetch függvényeket!

int buf; /*az ungetch puffere */
int bufp=0;/* mutatja hogy írtunk e a pufferbe*/
int getch(void) /* a következő (esetleg korábban visszaírt) karakter bevétele */
{int c=0;
if (bufp!=0)
{c=buf;
buf=0;
bufp=0;
return c;
}
else getchar();
}

void ungetch(int c) /* visszaír egy karaktert a buf-ba */
{
buf = c;bufp=1;
}

eiborn 2011.04.30. 22:14:58

(ÉLES) K&R feladat: 4.7 gyakorlat:
Írjunk ungets(s) néven függvényt, amely egy teljes karaktersorozatot „visszaír” a bemenetre! Az ungets függvény kezelje közvetlenül a buf és bufp változókat, vagy egyszerűen csak használja az ungetch függvényt?

#define BUFSIZE 100

char buf[BUFSIZE];
int bufp = 0;

int getch(void)
{
return (bufp > 0) ? buf[--bufp] : getchar();
}

void ungetch(int c)
{
if(bufp >= BUFSIZE)
printf("ungetch: puffertulcsordulás\n");
else
buf[bufp++] = c;
}

void ungets(const char *s)
{
size_t i = strlen(s);

while (i > 0)
ungetch(s[--i]);
}

pi_zoli 2011.05.01. 17:03:39

K&R 8.5
/* fsize: kiírja a nev nevű állomány méretét */
void fsize(char *nev)
{
struct stat stbuf;

if (stat(nev, sstbuf) == -1) {
fprintf(stderr, "fsize: nem hozzáférhető %s\n", nev)
return;
}
if ((stbuf.st_mode & S_IFMT) == S_IFDIR)
dirwalk(nev, fsize);
printf("%81d %hi %s\n", stbuf.st_size, stbuf.st_uid, nev);
}

A lényeges módosítás a printf-ben van. Egyszerűen kiírunk mégegy elemet a beolvasottakból.

nb · http://fersml.blog.hu 2011.05.03. 15:15:28

@aka801: egész progi, screenshot a futásról?
süti beállítások módosítása