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/tr382732992

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.

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