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

A harmadik labor anyaga - "Felvételt hirdet a CIA"

2013.02.24. 15:28 nb

A laborhoz ajánlott muzsika Stirlitz főcímzene: http://youtu.be/7H99FM6S8rU

A harmadik labor (márc. 4-i hét)

A KÖNYVből olvassuk el a

  • a 115-141 oldalt
  • a 142-187 oldalt

ahonnan 3 olyan dolgot kérdezz meg a binomodtól, amelyet nem, vagy nehezebben értesz, a binom pedig próbáljon meg válaszolni. Globális ellenőrző kérdések:

  • Mik kerülnek a szabad tárba?
  • Mi a const kulcsszó jelentése az alábbi man 3 strcpy idézetben?STRCPY(3) Linux Programmer's Manual STRCPY(3)
    NAME strcpy, strncpy - copy a string SYNOPSIS
    #include <string.h>
    char *strcpy(char *dest, const char *src);
    char *strncpy(char *dest, const char *src, size_t n);
  • Mit csinál ez az utasítás?

while(*p++ = *q++);

Laborkártyák

  • 1. ea., 110, 111.
  • 2. ea., 70-74.
  • KÖNYV, 113 o., 4.11.3, 4.11.5 (erre is írj programot)
  • 3. ea. 80-83.

A harmadik labor feladatai, poszt-pontjai

  • Stroustrup számológép: élesszük fel a laboron a KÖNYV 142. oldaltól bevezetett számológépét!
  • Végezzük el a Felvételt hirdet a CIA c. poszt gyakorlatait! (Az aktuális TANKÖNYVTÁRas link ez.)
Opcionális feladatok
  • A KÖNYV 139 oldali feladatai: 1-től 13-ig, pontozásuk most: (*SZAM -1) * 5 + 4
  • A KÖNYV 187 oldali feladatai: 1-től 23-ig, pontozásuk most: (*SZAM -1) * 5 + 3
  • 7 pont annak, aki először (laborra majd külön titkos szövegek lesznek) feltöri ezt a titkos szöveget (help a laboranyag CIA-s posztja.)
  • 25+feladat darabszám*4 pontért az általad elkészített (vadászatbeli) feladatokat foglald össze egy DocBook XML 5.0 dokumentumban! Minden feladat kapcsán a források szerepeljenek a megoldásban egy programlisting elemen belül és minden feladatnál legyen legalább pár mondatos magyarázat a feladathoz; az xml dokumentumot és a belőle a dblatex-el készített pdf-et oszd meg (mindkettőt nyilván valamilyen open source licenc-el) a társaiddal! (help: http://dblatex.sourceforge.net/, http://www.inf.unideb.hu/~nbatfai/#ppm )
  • 8 pont az első 10 hallgatónak, aki lejátszik egy meccset valamelyik Debrecen * Forest C++ csapattal; bizonyítékul 1 gólról kérek YouTube-ra felvételt (pl. a recordmydesktop progival) /help: a PROP könyvben/ (A Batfai_prog1 VB image használata esetén csak 3 pont).
    rflogo.png(kép forrása: PROP könyv)

225 komment

A bejegyzés trackback címe:

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

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.

DeeGort 2013.02.24. 16:00:27

KÖNYV 6.6 1. feladat
kepfeltoltes.hu/130224/6.6.1_www.kepfeltoltes.hu_.png

#include <iostream>
#include <vector>
using namespace std;

int main()
{
extern int i;
extern const int max_length;
extern vector<char> input_line;
extern int quest_count;

for (i=0; i<max_length; i++) if (input_line[i] == '?') quest_count++;

// While
while(i<max_length)
{
i = 0;
if (input_line[i] == '?') quest_count++;
i++;
}

// Pointer
typedef vector<char>::iterator vc;
for (vc p = input_line.begin(); p != input_line.end(); p++) if (*p == '?') quest_count++;

return 0;
}

(1-1) * 5 + 3 Pont

DeeGort 2013.02.24. 16:18:58

KÖNYV 6.6 8. feladat

Nullával való osztás:
kepfeltoltes.hu/130224/div0_www.kepfeltoltes.hu_.png

Túl- és alulcsordulás esetén, előlről vagy épp hátulral újraíródik a tárterület a maradékkal.
kepfeltoltes.hu/130224/alultul_www.kepfeltoltes.hu_.png

(1.5-1) * 5 + 3 Pont

Matthew03 2013.02.24. 16:22:51

RoboCup valamiért nekem nem akar bejönni, vagyis nem nagyon tudtam futtatni. Másnak van ilyen problémája?

DeeGort 2013.02.24. 16:33:10

@DeeGort: Hoppá elírtam:
KÖNYV 6.6 11. feladat

kepfeltoltes.hu/130224/1190020555hibak_www.kepfeltoltes.hu_.png

(1-1) * 5 + 3 Pont

DeeGort 2013.02.24. 16:47:24

KÖNYV 6.6 14. feladat
kepfeltoltes.hu/130224/rev_www.kepfeltoltes.hu_.png

#include <iostream>
#include <string>
#include <cstring>
using namespace std;
void rev(string &s)
{
char temp;
const int last = s.size() - 1;
for (int i = 0; i <= last / 2; i++)
{
temp = s[i];
s[i] = s[last-i];
s[last-i] = temp;
}
}
void rev(char s[])
{
char temp;
const int last = strlen(s) - 1;
for (int i = 0; i <= last / 2; i++)
{
temp = s[i];
s[i] = s[last-i];
s[last-i] = temp;
}
}
int main()
{
string s = "Hello World!";
char s1[] = "Hello World!";
rev(s);
rev(s1);
cout << s << endl;
cout << s1 << endl;
return 0;
}

(2-1) * 5 + 3 Pont

Matthew03 2013.02.24. 17:03:01

a robotfocinál a make parancsot nem akarja csinálni..

DeeGort 2013.02.24. 17:08:50

KÖNYV 6.6 23. feladat:
Összehasonlítottam a Doom 3 és gimp kód stílusát, lehet hogy semmi köze nincs a két kódnak egymáshoz, de egyértelműen látszódik a két kód stílusa: nevek, behúzások, komment... Főleg a függvény definíció térdelése az érdekes a gimp esetén.

kepfeltoltes.hu/130224/doom_www.kepfeltoltes.hu_.png

(2 -1) * 5 + 3

Matthew03 2013.02.24. 17:17:50

Van, akinek sikerült beüzemelni a robotfocit? Az legyen szíves segítsen, ha megkérhetem!
Előre is köszönöm!

DeeGort 2013.02.24. 17:25:10

KÖNYV 5.9 4. feladat:
kepfeltoltes.hu/130224/swap_www.kepfeltoltes.hu_.png

#include <iostream>
using namespace std;
void swap(int * first, int * second)
{
int temp = * first;
*first = *second;
*second = temp;
}
void rswap(int &first, int &second)
{
int temp = first;
first = second;
second = temp;
}
int main()
{
int a = 7, b = 1;
int c = 4, d = 8;
swap(&a, &b);
rswap(c, d);
cout << a << '\t' << b << endl;
cout << c << '\t' << d << endl;
return 0;
}

(1 -1) * 5 + 4 Pont

cellSigma 2013.02.24. 19:06:08

Titkos szöveg törve:

Kulcs: 01290129

A szöveg a GNU licenc, így kezdődik:

GNU General Public License (GPL)

3. változat, 2007. június 29.

Copyright (C) 2007 Free Software Foundation, Inc. <fsf.org/&gt;

A jelen licencdokumentumot bárki szabadon lemásolhatja és a pontos másolatait terjesztheti, de a módosítása tilos.
Előszó

A GNU GPL egy szabad, „copyleft” típusú [a szerzői jog egy részét fenntartó, más részéről lemondó] licenc szoftverekhez és más munkákhoz.

A legtöbb szoftver licencei azzal a szándékkal készültek, hogy minél kevesebb lehetőséget adjanak a szoftver megváltoztatására és terjesztésére. Ezzel szemben a GNU GPL célja, hogy garantálja a szabad szoftver másolásának és terjesztésének szabadságát, ezáltal biztosítva a szoftver szabad felhasználhatóságát minden felhasználó számára. A GPL szabályai vonatkoznak a Free Software Foundation legtöbb szoftverére, illetve minden olyan programra, melynek szerzője úgy dönt, hogy ezt használja a szerzői jog megjelölésekor. (A Free Software Foundation egyes szoftvereire a GNU LGPL érvényes.) Bárki használhatja a programjaiban a GPL-t a szerzői jogi megjegyzésnél.

A szabad szoftver megjelölés nem azt jelenti, hogy a szoftvernek nem lehet ára. A GPL licencek célja, hogy garantálja a szabad szoftver másolatainak szabad terjesztését (és e szolgáltatásért akár díj felszámítását), a forráskód elérhetőségét, hogy bárki szabadon módosíthassa a szoftvert, vagy felhasználhassa a részeit új szabad programokban; és hogy mások megismerhessék ezt a lehetőséget.

A szerző jogainak védelmében korlátozásokat kell hozni, amelyek megtiltják, hogy bárki megtagadhassa ezeket a jogokat másoktól, vagy bárki mást ezekről való lemondásra kényszerítsen.
Ezek a megszorítások bizonyos felelősségeket jelentenek azok számára, akik a szoftver másolatait terjesztik vagy módosítják.

Ha valaki például ilyen program másolatait terjeszti, akár ingyen vagy bizonyos összeg fejében, a szoftverre vonatkozó minden jogot tovább kell adnia a fogadó feleknek. Biztosítani kell továbbá, hogy megkapják vagy legalábbis megkaphassák a forráskódot is, valamint jelen dokumentumban lévő a licencfeltételeket is el kell juttatni hozzájuk, hogy tisztában legyenek a jogaikkal.

stb

DeeGort 2013.02.24. 20:56:05

KÖNYV 5.9 11. feladat:
kepfeltoltes.hu/130224/aabb_www.kepfeltoltes.hu_.png

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

vector<string> words;

void value(const string& s)
{
for(int i = 0; i < words.size(); i++)
if (s == words[i]) return;
words.push_back(s);
}
int main()
{
string buf;
while (cin>>buf && buf != "Quit") value(buf);
sort(words.begin(), words.end());
for(int i = 0; i != words.size(); i++)
cout << words[i] << '\n';

return 0;
}

(2 -1) * 5 + 4 Pont

Gabol91 2013.02.24. 21:33:39

Ajj, megint gyors a tempo :/ De a titkos szöveg érdekes volt, lesz esetleg még hasonló a jövőben?

DeeGort 2013.02.24. 21:54:49

KÖNYV 5.9 12. feladat:
kepfeltoltes.hu/130224/count_www.kepfeltoltes.hu_.png

#include <iostream>
using namespace std;

int count(const string &str, const string &sample)
{
int counter = 0;

for (int i = 0; i <= str.size() - sample.size(); i++)
{
if (sample[0] == str[i])
{
int j = 1;
while(sample[j] == str[i+j]) j++;
if (j >= sample.size())
counter++;
}
}
return counter;
}

int old_syle_count(const char str[], const char sample[])
{
int counter = 0;
int sample_len = 0;

for(; sample[sample_len] != '\0'; sample_len++);

for (int i = 0; i <= str[i + sample_len - 1] != '\0'; i++)
{
if (sample[0] == str[i])
{
int j = 1;
while(sample[j] == str[i+j]) j++;
if (j >= sample_len)
counter++;
}
}
return counter;
}

int main()
{
string str = "xabaacbaxabbab";
char cstr[] = "xabaacbaxabbab";

cout << count(str, "ab") << endl;
cout << old_syle_count(cstr, "ab") << endl;

cout << count(str, "bax") << endl;
cout << old_syle_count(cstr, "bax") << endl;

return 0;
}

(2 -1) * 5 + 4 Pont

cellSigma 2013.02.24. 22:02:36

@Matthew03: Ezen a linken találtam megoldást (ugyanaz volt a problémám, ami neked is):

sourceforge.net/p/sserver/discussion/76439/thread/e2264b27

Különösen az utolsó hozzászólás, ott leírja a telepítést 32 és 64 bites rendszerre egyaránt. Nálam különösen a dependenciák okoztak gondot (boost, qt4, flex, ezekre szükség van), illetve a ./configure kapcsolóira kellett odafigyelni. Remélem a fenti link segítségével menni fog az install :)

Matthew03 2013.02.24. 22:30:33

@cellSigma: nézegetem, most próbálom megcsinálni, hátha ez alapján jó lesz, köszönöm a válaszod!:)

Matthew03 2013.02.24. 22:47:57

@cellSigma: a maket még mindig nem akarja a kicsike

cellSigma 2013.02.24. 22:48:58

@Matthew03: Milyen hibával száll el?

Matthew03 2013.02.24. 22:58:27

@cellSigma: egyáltalán nem is találja meg, mintha nem lenne makefile.

cellSigma 2013.02.24. 23:00:14

@Matthew03: és előtte a ./configure lefut hiba nélkül? mert nekem sokáig azzal volt gond
ha a ./configure hiba nélkül megy, a make meg nem akar, akkor sajnos nincs ötletem :(

Matthew03 2013.02.24. 23:03:18

@cellSigma: na várjál, most részeredményre jutottam, a maketmegcsináltam:D

Matthew03 2013.02.25. 00:15:08

@cellSigma:na végleges siker, köszöntem!:)) Egy sörre a vendégem vagy.:)

cellSigma 2013.02.25. 04:54:22

KÖNYV 5.9.5:

#include <iostream>

using namespace std;

int main(){
char str[]="rövid karakterlánc";

cout << "mérete: " << (sizeof(str)*8) << " bájt" << endl; /* mert sizeof(char)=1*/

cout << "hossza: " << sizeof(str) << endl;

}

Kép:
tinypic.com/r/1zgf1j7/6

cellSigma 2013.02.25. 04:55:58

KÖNYV 5.9.11:

Kép: tinypic.com/r/msym95/6

#include <iostream>
#include <string>
#include<list>

using namespace std;

int main(){

list<string>inputStrings;
typedef list<string>::iterator stringIt;
string temp;

while(1){
getline(cin, temp);
inputStrings.push_back(temp);
if(inputStrings.back()=="Quit") break;

}

inputStrings.pop_back(); //pop Quit
inputStrings.sort();

for(stringIt i=inputStrings.begin(); i!=inputStrings.end(); ++i)
cout << *i << endl;

}

cellSigma 2013.02.25. 04:57:00

KÖNYV 5.12:

Kép: tinypic.com/r/2z673nc/6

#include <iostream>
#include <string>

using namespace std;

int string_keres(string hol, string mit){
int found=0, counter=0;

while((found=hol.find(mit, found))!=string::npos){

if(found!=string::npos)
++counter;

++found;
}
return counter;

}

int array_keres(char text[], char* pchar){
int counter=0;
char* copy=pchar;
for(char i=0; i!='0';++i){

if(text[i]==*copy)copy++;
else if(*copy=='\0'){
copy=pchar;
++counter;
}
else copy=pchar;

}

return counter;
}

int main(){
string p="xabaacbaxabb";
char array[]="xabaacbaxabb";

string keres="ab", keres2="abc";
char* op="ab";
char* op2="abc";

cout << "itt keresünk: " << p << " először: " << keres << " aztán: " << keres2 << endl;
cout <<"string keresés: " << string_keres(p, keres) << " tömbös: " << array_keres(array, op) << endl;
cout <<"új string keresés: " << string_keres(p, keres2) << "tömbös: " << array_keres(array, op2) << endl;

}

cellSigma 2013.02.25. 06:26:21

KÖNYV 5.1:

int main(){
char x='c';
int y=2; /*értékadáshoz charp-nak és pointerConst-nak*/

//it kezdődik a feladat
char* charp=&x;
int array[]={0,1,2,3,4,5,6,7,8,9};
char** charpp=&charp;
const int myConstInt=42;
const int* constIntPoint=&myConstInt;
int *const pointerConst=&y;
}

cellSigma 2013.02.25. 06:26:59

KÖNYV 5.3:

#include <iostream>

int main(){
typedef unsigned char myUnChar;
typedef const unsigned char myConstUnChar;
typedef int *myPoint;
typedef char **myCharpp;
typedef char (*chArray)[];
typedef int *specPoint[7];
typedef int **specPPoint[7];
typedef int *specPPPoint[8][7];

}

cellSigma 2013.02.25. 06:28:40

KÖNYV 5.4:

kép: tinypic.com/r/2z5vqmg/6

#include <iostream>
using namespace std;

void swap1(int* x, int* y){
int temp;
temp=*x;
*x=*y;
*y=temp;
}

void swap2(int& x, int& y){
int temp;
temp=x;
x=y;
y=temp;

}

int main(){

int a=13, b=25;
int c=28, d=45;
int *ap=&a;
int *bp=&b;
cout << "a: " << a << " b: " << b << endl;

swap1(&a,&b);

cout << "a: " << a << " b: " << b << endl;

cout << "c: " << c << " d: " << d << endl;
swap2(c,d);
cout << "c: " << c << " d: " << d << endl;
}

cellSigma 2013.02.25. 06:31:35

KÖNYV 5.10:

Kép: tinypic.com/r/k99gz5/6

#include <iostream>
#include <string>

using namespace std;

void printMonths(string*months){
int i=0;
while(i<12){
cout << *months << endl;
++i;
++months;
}

}

int main(){
string months[]={"january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"};

for (int i=0; i<12; ++i)
cout << months[i] << endl;
cout << endl;
printMonths(months);

}

cellSigma 2013.02.25. 06:34:16

KÖNYV 5.13:

Kép: tinypic.com/view.php?pic=2vwzrzk&s=6

#include <iostream>
using namespace std;
struct Date{int m; int y; int d;};

void getDate(Date* day){
cin >> day->y;
cin >> day->m;
cin >> day->d;
}

void putDate(Date* day){
cout << day->y << ' ' << day->m << ' ' << day->d << endl;
}

void setDate(Date* day, int year, int month, int dday){
day->y=year;
day->m=month;
day->d=dday;
}

int main(){

Date myDate;
Date* myDatep=&myDate;
getDate(myDatep);

putDate(myDatep);
setDate(myDatep, 2013, 2,25);
putDate(myDatep);

}

cellSigma 2013.02.25. 07:45:28

Szeretnék segítséget kérni az rcssmonitorral kapcsolatban. Az a problémám, hogy nem mozognak a játékosok, miközben a szerver szöveges kimenetén látszik, hogy folyik a meccs. Próbáltam újrafordítani, próbáltam régebbi verziót is, de nem akar működni. Neten nem találtam használható információt. Bárkinek bármilyen ötlete van, azt köszönettel veszem :)

Matthew03 2013.02.25. 10:39:11

@cellSigma: nekem sikerült megmozdítanom 5 játékost is! havonta egyszer még a labdát is eltalálják!:D

nb · http://fersml.blog.hu 2013.02.25. 11:25:53

@Gabol91: a 3. laboron ez lesz a főtéma mindenkinek (ott az első három kaszálhat), de legyen itt még egy globális poszt-törés 5 pontért (nyilván azoknak légyszi, akik nem vitték el az első 7 pontosat)

www.inf.unideb.hu/~nbatfai/p12013tavasz/titkos.szoveg2

nb · http://fersml.blog.hu 2013.02.25. 11:35:11

@cellSigma: sajnos ismerem a jelenséget... nekem még csak az segített, hogy angol nyelvű Linuxot tettem fel (hiába játszottam az LC_ALL stb.-vel, az nem segített).

Ettől még lesz magyar is a LInuxban másodlagosnak, de a telepítés elején az angolt választ.

Matthew03 2013.02.25. 12:35:13

@nb: már megy a rcssmonitor meg a server is, most már csak jobban kell konfigolnom és minden okés. Annyi a kérdésem, hogy hol, ki ellen kéne lejátszani egy meccset, levideózni és gólt lőni nekik?

nb · http://fersml.blog.hu 2013.02.25. 13:11:06

@Matthew03: Mi volt a megoldás?

Ott van a feladat kiírásában: Debrecen * Forest C++, lásd az ott linket PARP könyvet!

cellSigma 2013.02.25. 16:40:19

@Matthew03: Kész bajnokcsapatod van az én sóbálvány fc-mhez képest :D

cellSigma 2013.02.25. 16:41:17

@nb: Köszönöm a tanácsot, Tanár Úr, meg is próbálkozom vele!

Matthew03 2013.02.25. 17:18:57

@nb: miután letöltöttem a boost fileokat, már jó volt.:) és ezután már müködött a make

Smajdam 2013.02.26. 00:21:17

5.9.7 feladat: hónapok és hozzá tartozó napok kiírása karaktertömbbel, struktúratömbbel megvalósítva.
www.kepfeltoltes.hu/view/130226/5.9.7_honap_www.kepfeltoltes.hu_.png

ShuffleSource 2013.02.27. 08:29:36

Sikerült feltelepíteni és elindítani a robotfocit, sajnos magyar linuxom van, így a játékosok összeakadnak, így videót se tudtam készíteni, de délután újratelepítem.

Addig is a beküldési helyet fenntartanám:
kepfeltoltes.hu/130227/K_perny_k_p-6_www.kepfeltoltes.hu_.png

OroszL 2013.02.27. 10:53:17

Nekem a robotfocival lenne egy kis problémám. A ./configure parancs után rendre ezzel az üzenettel találkozok:configure: error: Could not link against !.

Nem tudom mit kellene tennem. Már olvastam az előttem lévő hozzászólásokat de sajnos nem segített.

Cvanger 2013.02.27. 12:23:48

Az órán szereztem 8 pontot.

OroszL 2013.02.27. 14:36:43

A mai laboron szereztem 3 pontot.

cellSigma 2013.02.27. 15:00:43

@OroszL: Az a baja, hogy nem látja a boost csomagokat, ezen a linken megtalálod, hogy kell megoldani (utolsó hozzászólás), nekem legalábbis gond nélkül felment így:

sourceforge.net/p/sserver/discussion/76439/thread/e2264b27

A ./configure parancs utáni kapcsolókra figyelj, azok kellenek, hogy a boostot linkelni tudja. Remélem ez segít :)

Matthew03 2013.02.27. 16:15:48

A robotfocinál a rcsslogplayer hova menti a videót?

nb · http://fersml.blog.hu 2013.02.27. 18:43:00

@Matthew03: az rcssserver menti az rcg (record game) fájlt abba a könyvtárba, ahoonnan indítod, ezt az rcg-t olvassa be az rcsslogplayer.

andr_design 2013.02.27. 19:37:15

@cellSigma: én is ez alapjánm a leírás alapján csinálom és nagyon jó! köszi ezt a hozzászólást :)

cellSigma 2013.02.27. 21:27:45

@andr_design: Igazán szóra sem érdemes, örülök, hogy hasznosnak találtad :)

nb · http://fersml.blog.hu 2013.02.28. 08:54:16

@Smajdam: a gól után honnan jön az a két oszlopos felállás?

Smajdam 2013.02.28. 18:59:27

@nb: Ja hogy ja, nem ezzel a csapattal kellett volna , most látom. majd akkor küldök még egy videót.

nb · http://fersml.blog.hu 2013.02.28. 19:54:42

@Smajdam: mert akkor ezek melyik csapatok? Mert lényeg, hogy ha csak a nevük a miénk és a csapat valójában nem, akkor azt a YouTube-ról is vedd le légyszi.

smajdam 2013.02.28. 20:46:32

@nb: a helios volt, és rendben, letöröltem.

andr_design 2013.02.28. 21:47:57

@cellSigma: hello! egy kis help-re lenne szükségem!:D

leszedtem a két csapatot /.configure && make, (a rcssserver meg montior fut, pálya bejön azzal nincs gond) innen hogyan tudnám a pályára vinni a két letöltött csapatot? :)

andr_design 2013.02.28. 21:53:22

bár lehet csak valami elnéztem és a könyvben benne van .. :D

andr_design 2013.03.01. 13:32:55

robotfoci videó:

www.youtube.com/watch?v=NQxbKqTdGuQ&feature=youtu.be

ez így megfelelő Tanár úr ?

8 pont

nb · http://fersml.blog.hu 2013.03.01. 16:31:17

@Smajdam: ez melyik csapat?, mert nagyon passzívan játszanak...

nb · http://fersml.blog.hu 2013.03.01. 16:58:12

@cellSigma: 42:10: warning: deprecated conversion from string constant to ‘char*’

smajdam 2013.03.01. 17:14:26

@nb: Debreceni Great Forest FC. de letöltöttem/ megcsináltam a deep foresttel is.

nb · http://fersml.blog.hu 2013.03.01. 17:15:36

@cellSigma: ez melyik lenne itt?

"10 egészbõl álló tömb referenciája"

Püsök Levente 2013.03.01. 19:47:46

5.9 1.

char karakter='k'
char *pk1=&karakter;
int a[10]={1,2,3,4,5,6,7,8,9,10};
int &r[]=a;
char karakterek[10]="abcdefghj"
char *pk2= &karakterek[0];
char **ppk=&pk1
const int allando=3,14;
const int* pall=&allando;
int b=2;
const int* pall1=&b;

Püsök Levente 2013.03.01. 19:50:07

@Püsök Levente:

Öö.. és most ugyanez pontosvessző hibák nélkül :))

char karakter='k';
char *pk1=&karakter;
int a[10]={1,2,3,4,5,6,7,8,9,10};
int &r[]=a;
char karakterek[10]="abcdefghj";
char *pk2= &karakterek[0];
char **ppk=&pk1;
const int allando=3,14;
const int* pall=&allando;
int b=2;
const int* pall1=&b;

Püsök Levente 2013.03.01. 20:02:32

Ha jól számolom 4 pont lenne, amennyiben helyes. (5.9 1.)

smajdam 2013.03.01. 20:10:25

@smajdam: ja igen , egy kis komment hozzá:
látszik hogy egy két sor kivételével ugyan azt a kódot hozta létre a fordító mindkét esetben, optimalizálással , és anélkül is.

Scrop 2013.03.01. 20:34:28

5.9.1: 4 pont
int main ()
{
char ch = '0';
char* p1 = &ch; //karakterre hivatkozó mutató
int egesz_tomb[10] = {0,0}; //10 egészből álló tömb
int& ref = *egesz_tomb; //10 egészből álló tömb referenciája
char* karakterlanc_tomb[10];
char** p2 = karakterlanc_tomb; //karakterláncokból álló tömbre hivatkozó mutató
char* karakter_mutato;
char** p3 = &karakter_mutato; //karakterre hivatkozó mutatóra hivatkozó mutató
const int egesz2 = 0; //konstans egész
const int *p4 = &egesz2; //konstans egészre vonatkozó mutató
int egesz3;
int *const p5 = &egesz3 ; //egészre vonatkozó konstans mutató

return 0;
}

nb · http://fersml.blog.hu 2013.03.01. 20:42:36

@Scrop: @Püsök Levente: ezek mit is jelentenek?

int a[10]={1,2,3,4,5,6,7,8,9,10};
int &r[]=a;

int egesz_tomb[10] = {0,0}; //10 egészből álló tömb
int& ref = *egesz_tomb; //10 egészből álló tömb referenciája

Püsök Levente 2013.03.01. 20:51:45

5.9 3.
Egy egy próbát megér, hátha helyes:D (4pont)

typedef unsigned char pozitivchar;

typedef const unsigned char pozitivchar_all;

typedef int* egeszmutato;

typedef char** karakterpp;

typedef char* ktombp;

typedef struct {int* p[7];} p7;

typedef struct {p7 pp[8];} pp8;

Scrop 2013.03.01. 21:03:44

@nb: Gondolom nem az egesz tömbel van a baj hanem a referneciával. Így ránézve látom, hogy az enyém nem jó, mert az, a tomb első elemének a referenciája. Püspök Levente kódja nekem nem fut

Scrop 2013.03.01. 21:09:02

@nb: De ha jobban belegondolok, ha referenciát ('álnevet') akarok 'készíteni' egy tömbről akor elég csak a tömb kezdő címét lemásolni egy pointerbe, de akkor az referenciának minősül e vagy sem?

Scrop 2013.03.01. 21:18:38

5.9.3 : 4 pont
typedef unsigned char poz_karakter;
typedef const unsigned char cuc;
typedef int* egesz_mut;
typedef char** ppc; //karakterre hivatkozó mutatóra hivatkozó mutató
typedef char* ctomb_p; //karakterrombre hivatkozó mutató
typedef int* egeszre_mutato_tomb[7]; //egészre hivatkozó mutatókbók álló 7 elemű tömb
typedef int** very_long[7]; //...
typedef int* sok_tomb_intre_mutat[8][7]; //...

Scrop 2013.03.01. 22:02:48

5.9.6 : 4 pont
A program alapból túlcsordulást jelent az uc (unsigned char) nak való 3300 as érték adásakor.
Az értéket a futás kedvéért 33 ra állítottam.
f fügvény:
mindhárom hívásra megengedett, és sehol nem használ segédválozót

g fügvény:
csak a sima char hívása megengedett , mivel a többi esetben nem megfelő a típus, és nem történik segédváltozó haználat.

h fügvény:
mindhárom esetben lefut azzal a küldönséggel hogy a uc és sc esetén segédváltozót használ.

PHP_Barbar 2013.03.01. 22:50:19

Próbáltam telepíteni a rcssmonitort, de hibát ír ki, pontosabban ezt:
"configure: error The QtCore library >= 4.3.0 could not be found."
Ilyenkor mi a teendő? Valaki tudna segíteni?

Püsök Levente 2013.03.01. 23:03:03

@Scrop: Nem akarok kukacoskodni, de Püsök a vezetéknevem :D a te kódod sem jó, lefordul, de nem nem működik.

Scrop 2013.03.01. 23:07:52

@Püsök Levente: Bocsi , tényleg nem szándékos volt :D

Scrop 2013.03.01. 23:11:22

@PHP_Barbar: terminal:
sudo apt-get install libqtcore4
700m szal el lesz vele :D

Scrop 2013.03.01. 23:12:31

@Scrop: de software-managerben is ott kell lennie ha rákeresel h qtcore

Püsök Levente 2013.03.01. 23:28:22

@nb: megszületett a helyes verzió

char karakter='k';
char *pk1=&karakter;
int a[10]={1,2,3,4,5,6,7,8,9,10};
int*b=a;
int*&ra=b;
char karakterek[10]="abcdefghj";
char *pk2= &karakterek[0];
char **ppk=&pk1;
const int allando=3,14;
const int* pall=&allando;
int b=2;
const int* pall1=&b;

Scrop 2013.03.02. 00:44:02

9.5.11 : 9 pont
kepfeltoltes.hu/view/130302/konnyv_9_11_www.kepfeltoltes.hu_.jpg

#include <iostream>
#include <string>

#define MAX_SZO 100

using namespace std;

void csere( string tomb[], int i, int j )
{
string seged = tomb[ i ];
tomb[ i ] = tomb[ j ];
tomb[ j ] = seged;
}

void minkival(string adat[], int n )
{
for (int i = 0; i < n - 1; ++i )
{
int min = i;
for (int j = i + 1; j < n; ++j )
if ( adat[ j ] < adat[ min ] )
min = j;
csere( adat, i, min );
}
}

int main()
{
string szavak[MAX_SZO];
int i = 0;
do
{
cin >> szavak[i];
if ( szavak[i] == "Quit\0"){--i; break; }

++i;
}while (i != MAX_SZO);

cout << "\nRendezetlen:" << endl;
for (int j = 0; j <= i; j++)
{
int db = 0;
for(int k = 0; k < j; k++)
if (szavak[j] == szavak[k]) db++;
if (db==0) cout << szavak [j] << endl;
}

minkival(szavak,i);

cout << "\nRendezve:" << endl;

for (int j = 0; j <= i; j++)
{
int db = 0;
for(int k = 0; k < j; k++)
if (szavak[j] == szavak[k]) db++;
if (db==0) cout << szavak [j] << endl;
}

return 0;
}

PHP_Barbar 2013.03.02. 01:15:27

@Scrop: Telepítve van. De ahogy néztem a legújabb verziója. 4.8.3, és a 4.3.0-át keresi. Nem tudom, hogy ez számít e egyáltalán. De így sem okés, hogy telepítve van, mert továbbra is ugyanazt írja ki. :(

nb · http://fersml.blog.hu 2013.03.02. 09:03:44

@PHP_Barbar:

- parancssorban könnyű feltenni az összes Qt...* csomagot, hátha bejön...

- felteheted külön is a Qt, akár az 5.0.0-t is, forrásból, pár picit sokáig fordul, qt-project.org/

- próbálhatsz játszani a configure script paraméterezésével, ahol pl. itt láthatod: www.inf.unideb.hu/~nbatfai/konyvek/MIRC/mirc.book.xml.html#sw2

(help-re nézd meg a Qt-s opciókat)

- s ha már soccerwindow, soccerwindow2 az iménti opcióban, akkor ezeket a japán sourcefoge-s progikat is használhatod a megjelenítésre, még szofisztikáltabbak is

nb · http://fersml.blog.hu 2013.03.02. 09:45:34

@Cvanger: éljünk együtt a játékkal! Nem az egy lapot kell ugye, hanem az egész gráfot!

Scrop 2013.03.02. 11:53:21

Eggyetlen egy aprócsak kérdésem lenne a robotfocival kapcsoltaban:
honnan tudom letölteni a csapatokat? PROP-ban nem találtam Debreceni csapatokat, vagy lehet hogy csak az én figyelmemet kerülte el?

nb · http://fersml.blog.hu 2013.03.02. 12:11:20

@Püsök Levente: gondok vannak ezzel a tömb referenciával, ezért feldobtam egy ilyen laborkártyát az utolsó posztban, adnék 7 pontot annak, aki szépen elmagyarázza.

PHP_Barbar 2013.03.02. 13:40:37

@nb: Megpróbáltam. És kiírta, hogy nincs elég szabad hely.
50 gigát hagytam a meghajtón, oda telepítettem az Ubuntut. Terminálba beírtam a baobab parancsot. Kiadta, hogy a fő kötet csak 5 giga, és majdnem be van telve. De alatta ott van maga a meghajtó teljesen kihasználhatatlanul. Most mit csináljak? :/ A meghajtón egy mappa van csak lost+found néven.

Scrop 2013.03.02. 14:11:44

Esetleg valaki megtudná mondani miért nem találtom
a start.sh fájlokat egyik rcssser...tar.bz2 file-ban sem?
kicsomagolás megolt, ./configure megvolt, make és make install is, de egyik "állomsánál" sem találtam ojan filet, így nem tudom betölteni a csapatokat.

Püsök Levente 2013.03.02. 14:19:31

@nb: A könyvben a referencia résznél nem találtam olyan részt, ahol egy komplett tömb referenciájáról lenne szó, így azt gondoltam, hogy ez közvetlenül nem is lehetséges és így jutottam el a kódig amit leírtam, tesztelgettem és végül is a szerepét betölti, csak nem közvetlen. Viszont ahogy most megnéztem a következő hétre vonatkozó posztban az erről készült laborkártyát, olyan módszereket meg eszközöket látok, amiket a könyv nem adott a kezünkbe, viszont az egyik feladata mégis csak így, ezekkel oldható meg ez elég kiábrándító :(

nb · http://fersml.blog.hu 2013.03.02. 14:50:07

@Püsök Levente: www.inf.unideb.hu/~nbatfai/Prog1_1.pdf

egyik mottóját idézve:

„Nem tudok kimerítő leírást adni arról, hogy hogyan tudsz megtanulni programozni -- nagyon összetett tudásról van szó. Egyet azonban elárulhatok: a könyvek és tanfolyamok nem érnek túl sokat (sok, valószínűleg a legtöbb hacker autodidakta). Aminek van értelme: (a) kódot olvasni és (b) kódot írni.” - Eric Steven Raymond: How To Become A Hacker

A magyar fordítás: esr.fsf.hu/hacker-howto.html

:-)))))

nb · http://fersml.blog.hu 2013.03.02. 14:53:59

@Scrop: mert a csomag a make dist-bzip2 paranccsal készül és alapban a start.sh nincs beletetetve :)

De ott van a bolyongó SE-től:

#!/bin/bash

host=${1-localhost}
port=${2-6000}
team=${3-Prog1Vedes}

for ((i=0;i<11;++i))
do
src/rcssclientprog1 -host $host -port $port -team $team&
sleep 1
done
exit 0

www.inf.unideb.hu/~nbatfai/konyvek/PROP/prop.book.xml.html#bolyongose

nb · http://fersml.blog.hu 2013.03.02. 14:57:11

@nb: ha akarsz coach-ot is:

#!/bin/bash

host=${1-localhost}
portp=${2-6000}
portc=${3-6002}
team=${4-RForestFC++}

for ((i=1;i<12;++i))
do
src/rcsslightclient -host $host -port $portp -team $team -squad $i&
sleep 1
done
src/rcsslightclient -host $host -port $portc -team $team -squad 0&
exit 0

innen: www.inf.unideb.hu/~nbatfai/konyvek/PROP/prop.book.xml.html#id494709

cellSigma 2013.03.02. 17:16:20

6.6.18 (8 pont) :

Forrás (elég hosszú, azért így):
www43.zippyshare.com/v/16662406/file.html

Kép:
tinypic.com/r/er04gk/6

DeeGort 2013.03.02. 18:07:16

Még mindig nem sikerült binomot szerezni a szerdai 12 órás csoportban, kiírtam facebookra is és nem jött válasz. Láttam órán, hogy vannak még néhányan akiknek nincs binomjuk. Akinek nincsen még, írjon már egy PM-et pls...

DeeGort 2013.03.02. 18:51:37

Kerestem még nem megcsinált feladatot, így összesítés után:

KÖNYV 6.6 13. feladat:
kepfeltoltes.hu/130302/cat_www.kepfeltoltes.hu_.png

(2 -1) * 5 + 3 pont

Scrop 2013.03.02. 19:01:27

6_6_1 : 3 pont
kepfeltoltes.hu/view/130302/6_6_1_www.kepfeltoltes.hu_.jpg

#include <iostream>
#include <string.h>

using namespace std;

int main()
{
char input_line[] = "Most kérdezek valamit. Hány évig tartott a 100 éves háború? 50? Netalálántán 9.999? Jól gondold meg!";
const int max_length = strlen(input_line);
int quest_count = 0;

for (int i=0; i<max_length; i++) if (input_line[i] == '?') quest_count++;
cout << "Az eredeti program álltal számolt érték " << quest_count << endl;

quest_count = 0;
int i = 0;
while(i<max_length)
{
if (input_line[i] == '?') quest_count++;
i++;
}
cout << "\nWhile ciklussal számolt érték: " << quest_count << endl;

quest_count = 0;
char *p = input_line;
for (; *p != '\0' ;) if (*p++ == '?') quest_count++;
cout << "\nFor ciklus mutatóval: " << quest_count << endl;

quest_count = 0;
i = 0;
p = input_line;
while(*p != '\0')
{
if (*p++ == '?') quest_count++;
}
cout << "\nWhile ciklussal pointerrel: " << quest_count << endl;

return 0;
}

Scrop 2013.03.02. 19:52:44

6_6_2 : 3 pont
(a =((( b + (c * d)) << 2) & 8))
(a & (077 != 3))
(((a == b )||( a == c ))&&( c < 5))
(c = (x != 0))
((0 <= i) < 7)
((f(1,2))+3)
(a = (((- 1) +( + (b --))) - 5 ))
(a = (b == (c ++)))
(a = (b =( c = 0)))
(a[4][2] *= ((* b) ? c : (* (d * 2))))
((a-b),c=d)

Scrop 2013.03.03. 04:29:56

6_6_4 : 3 pont
kepfeltoltes.hu/view/130303/6_6_4_www.kepfeltoltes.hu_.jpg
#include <iostream>

using namespace std;

void muvelet_vegez(string nev ,const char muvelet)
{
cout << nev << " muvelet:\n";
for(int i = 0; i < 2; ++i)
{
if (muvelet == '!') cout << "!" << i << " = " << (!i) << endl;
for (int j = 0; j < 2; ++j)
switch(muvelet)
{
case '|' : cout << i << " | " << j << " = " <<( i | j) << endl; break;
case '&' : cout << i << " | " << j << " = " <<( i | j) << endl; break;
case '^' : cout << i << " | " << j << " = " <<( i | j) << endl; break;
}
}

}

int main()
{

muvelet_vegez ("VAGY",'|');
muvelet_vegez ("ÉS",'&');
muvelet_vegez ("XOR",'^');
muvelet_vegez ("NEM",'!');

return 0;
}

Scrop 2013.03.03. 04:31:17

6_6_10 : 8 pont
kepfeltoltes.hu/view/130303/6_6_10_www.kepfeltoltes.hu_.jpg
#include <string>
#include <iostream>

#define EXIT_SUCCES 0
#define EXIT_NOT_SUCCES -1

using namespace std;

int strlen(const char *minek )
{
int i = 0;
for(i = 0; minek [i] != '\0'; i++);
return i;
}

int strcpy(const char *mit, char *hova)
{
int i = 0;
for(i ; mit[i] != '\0'; i++)
hova[i] = mit[i];
hova[i] = '\0';

return EXIT_SUCCES;
}

bool strcmp (const char *mit, const char *mivel)
{
int i = 0;
while ((mit[i] == mivel[i]) && ( mit [i] != '\0' || mivel[i] != '\0') ) i++;
if ((mit[i] == '\0') && ( mivel[i] == '\0')) return true;
else
return false;
}

int main()
{
char ch[] = "Ezt vizsgáljuk!";

int hossz = strlen(ch);
cout << hossz << endl;

char ch2[20] = "";

strcpy (ch, ch2);
cout << ch2 << endl;

char ch3[] = "Ezt vizsgáljuk!";
char ch4[] = "Ezt nem egyezik!";

if (strcmp(ch, ch3)) cout << "Egyeznek!" << endl;
else cout << "Nem egyeznek!" << endl;

if (strcmp(ch, ch4)) cout << "Egyeznek!" << endl;
else cout << "Nem egyeznek!" << endl;

return 0;
}

Scrop 2013.03.03. 04:32:19

6_6_13 : 8 pont
kepfeltoltes.hu/view/130303/6_6_13_www.kepfeltoltes.hu_.jpg
#include <iostream>
#include <string.h>
#include <stdlib.h>

#define BUFFER_MERET 100

using namespace std;

char two_in_one[BUFFER_MERET];

char* cat(char* ch, char ch2[] )
{
if (strlen(ch) + strlen(ch2) > BUFFER_MERET)
{
cout << "Növeld a BUFFER_MERET - et" << endl;
exit (1);
}
int i = 0;
for(i ; ch[i] != '\0';++i)
two_in_one[i] = ch[i];
for(int j = 0; ch2[j] != '\0' ;++i,++j)
two_in_one[i] = ch2[j];

return two_in_one;

}

int main()
{
char one_ch[] = "Fagylalt";
char two_ch[] = "oskocsi";

char *cp = new char[sizeof(cat(one_ch,two_ch ))];
cp = cat(one_ch,two_ch );
cout << cp << endl;

return 0;
}

Scrop 2013.03.03. 04:33:22

6_6_14 : 8 pont
kepfeltoltes.hu/view/130303/6_6_14_www.kepfeltoltes.hu_.jpg
#include <iostream>
#include <string.h>
#include <stdio.h>

using namespace std;

void rev(char *mit)
{

int hossz = strlen (mit);
char seged[hossz];
int i = 0;
while (i <= hossz)
seged[hossz-1-i] = mit[i++];
i = 0;
while (i < hossz)
mit[i] = seged[i++];

}

int main()
{
char cserelni[] = "Ez most visszafele lesz kiirva! ...le dsavlo tzE";

rev (cserelni);

cout << cserelni << endl;
return 0;
}

Scrop 2013.03.03. 04:35:51

6_6_16 : 8 pont
képet rosszul cmíeztem de a forrás jó rakta:
kepfeltoltes.hu/view/130303/6_6_15_www.kepfeltoltes.hu_.jpg
#include <string>
#include <iostream>
#include <math.h>
#include <string.h>

#define NOT_SUCCES -1

using namespace std;

int atoi(const char *mit) //csak c beli stringekre és csak 10 es számrendszert
{
int szam = 0;
for(int i = 0; mit[i] != '\0'; i++ )
{
switch(mit[i])
{
case '0': case '1' : case '2' : case '3' : case '4' :
case '5' : case '6' : case '7' : case '8' : case '9' :
szam += (int(mit[i]) - int('0'))*(int)pow(10,strlen(mit)-1-i);
}
}

return szam;
}

int tizenhatos(string mit)
{
int szam = 0;
int i = 2 ;
int hex = 0;
for(i; mit[i] != '\0'; i++ )
{
switch(mit[i])
{
case '0': case '1' : case '2' : case '3' : case '4' :
case '5' : case '6' : case '7' : case '8' : case '9' :
szam += (int(mit[i]) - int('0'))*(int)pow(16,mit.length()-1-i); break;

case 'a' : case 'A' : hex = 10; szam += hex*(int)pow(16,mit.length()-1-i); break;
case 'b' : case 'B' : hex = 11; szam += hex*(int)pow(16,mit.length()-1-i); break;
case 'c' : case 'C' : hex = 12; szam += hex*(int)pow(16,mit.length()-1-i); break;
case 'd' : case 'D' : hex = 13; szam += hex*(int)pow(16,mit.length()-1-i); break;
case 'e' : case 'E' : hex = 14; szam += hex*(int)pow(16,mit.length()-1-i); break;
case 'f' : case 'F' : hex = 15; szam += hex*(int)pow(16,mit.length()-1-i); break;
default : cout << "nem 16-os számrendszerbeli szám" << endl; return NOT_SUCCES;

}
}

return szam;
}

int atoi2(const string mit) //c és c++ beli stringekre és kezeli a 8 as és 16 os számrendszerbeli alakot is
{
int szam = 0;
int base = 10;
int i = 0 ;

if (mit[0] == '0')
if ((mit[1] == 'x' ) || (mit[1] == 'x')) { return tizenhatos (mit);}
else {base = 8; i = 1;}

for(i; mit[i] != '\0'; i++ )
{
switch(mit[i])
{
case '0': case '1' : case '2' : case '3' : case '4' :
case '5' : case '6' : case '7' : case '8' : case '9' :
if ((base == 10) && ( int(mit[i] - int('0')) > 9 )) { cout << "A szám nem 10 as számrendszerbeli" << endl; return NOT_SUCCES; }
else
if ((base == 8) && ( int(mit[i] - int('0')) > 7 )) { cout << "A szám nem 8 as számrendszerbeli" << endl; return NOT_SUCCES; }
else
szam += (int(mit[i]) - int('0'))*(int)pow(base,mit.length()-1-i);

}
}

return szam;
}

int main()
{
char ch[] = "456";
string str = "0x9421";

cout << atoi(ch) << " "<< atoi2(str) << endl;

return 0;
}

Scrop 2013.03.03. 12:23:19

5_9_10 : 4 pont
kepfeltoltes.hu/view/130303/konnyv_9_10_www.kepfeltoltes.hu_.jpg

#include <iostream>
#include <string>

#define MAX_HONAP 12

using namespace std;

void kiir(string mit[], int maxn)
{
for(int i = 0; i < maxn; ++i)
cout << mit[i] << endl;

}

int main()
{
string month[MAX_HONAP] = {"Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"};

kiir (month, MAX_HONAP);

return 0;
}

Scrop 2013.03.03. 15:01:44

6_6_16 : 8 pont
kepfeltoltes.hu/view/130303/6_6_17_www.kepfeltoltes.hu_.jpg
#include <iostream>
#include <math.h>
#include <string.h>

#define MAX_INT_LEN 12
using namespace std;

int max_ch(int a)
{
int i = 0;
for (; ((double)(a / pow(10,i)) >10) || (((double)(a / pow(10,i))) < -10 );++i );
if (a < 0) return i+2;
else return i+1;

}

char *kulso;

char* atoi(int szam, char hova[])
{
int meret = max_ch(szam);
for (int i = 0; i < MAX_INT_LEN ; ++i) hova [i] = '\0';
int i = meret;
if ( szam < 0)
{
hova[0] = '-';
szam *= -1;
--i;

}
int seged = szam;
for (i; i != 0; --i)
{
int j = 1;
for (; j <= 10; ++j)
{

if (seged < pow(10,i-1) * j)
break;
}

hova [meret - i] = char(j-1 + int('0'));
seged -= (j-1)*pow(10,i-1);
}

kulso = hova;
return kulso;
}

int main()
{

char int_to_ch [MAX_INT_LEN];
atoi (-2258, int_to_ch);
cout << int_to_ch << endl;

atoi (-258, int_to_ch);
cout << int_to_ch << endl;

cout << atoi (-9999, int_to_ch) << endl;

cout << atoi (1235258, int_to_ch) << endl;

return 0;
}

Scrop 2013.03.03. 15:09:20

@Scrop: Rosszul írtam a fügvény nevet, de gondolom nem ojan óriási baj, szal inkább nem töltöm fel újra ha nem muszály :D

Smajdam 2013.03.03. 17:10:59

készítettem egy pdfet 11 feladatból:
www.dropbox.com/s/wmtggpwo0pb9r7f/progfeladatok.pdf?m

forrás:
www.dropbox.com/s/tltyrp8841da6dz/progfeladatok.xml?m

Remélem Tanár Úr valami ilyesmire gondolt!
Ha valaki hibát talál benne akkor légyszives jelezze itt, vagy e-mail-en: smajda_m93@msn.com
köszi

Még egy kérdés: további plusz pontokért ezt még lehet majd bővíteni? (további laborokat is beleértve)

nb · http://fersml.blog.hu 2013.03.03. 17:25:25

@Smajdam: csak formailag néztem, de éppen ilyesmire gondoltam; igen jól néz ki.

Esetleg még az dobhatná fel, ha azt is bemutatnád, hogyan kell futtatni és mi az eredmény, pl. a karakteres kimenetet simán bevágva egy www.docbook.org/tdg5/en/html/screen.html elembe.

Persze, ezt karban tarthatod az egész félévben (sőt, tipikus, hogy a hallgató az adott korlát feletti pontjait viszi a prog2-re is, így igyanezt a pdf-et még a prog2-ben is bővítheted.)

Ahogy alakul, néha írd meg a blogra, hogy hány pontot kell jóváírni és ezzel párhuzamosan persze oszd meg a többiekkel az anyagodat.

smajdam 2013.03.03. 17:40:26

@nb: Rendben van, akkor fejlesztgetem tovább:)

Scrop 2013.03.04. 16:22:53

Üdv!
Valaki megtudná mondani hogy ha beállítom a nyelvet az XML file gyökér elemére hogy lang="hu", akkor miért nem veszi figyelmebe és mindent angolul csinál? dblatex el hozom létre a pdf et de az istenért sem akar magyar lenni. Kersegettem is de minenhol csak ennyit írtak h lang="hu" . Nem olyan fontos h magyar legyen de azért piszkál a dolog.

Scrop 2013.03.04. 19:04:26

6_6_18 : 8 pont
kepfeltoltes.hu/view/130304/6_6_18_www.kepfeltoltes.hu_.jpg
#include <iostream>
#include <string>
#include <map>
#include <cctype>
#include <sstream>

using namespace std;

enum Token_value {
NAME,
NUMBER,
END,
PLUS='+',
MINUS='-',
MUL='*',
DIV='/',
PRINT=';',
ASSIGN='=',
LP='(',
RP=')'
};

double expr(bool);
double term(bool);
double prim(bool);
Token_value get_token();
double error(const string&);

int no_of_errors;
double number_value;
string string_value;
map<string,double> table;
Token_value curr_tok = PRINT;

double expr(bool get)
{
double left = term(get);

for (;;)

switch (curr_tok) {
case PLUS:
left += term(true);
break;
case MINUS:
left -= term(true);
break;
default:
return left;
}
}

double term(bool get)
{
double left = prim(get);

for (;;)
switch (curr_tok) {
case MUL:
left *= prim(true);
break;
case DIV:
if (double d = prim(true)) {
left /= d;
break;
}
return error("Nullával nem lehet osztani");
default:
return left;
}
}

double prim(bool get)
{
if (get) get_token();

switch (curr_tok) {
case NUMBER:

{
double v = number_value;
get_token();
return v;
}

case NAME: {
double& v = table[string_value];
if (get_token() == ASSIGN) v = expr(true);
return v;
}
case MINUS:

return -prim(true);
case LP: {
double e = expr(true);
if (curr_tok != RP) return error(") szükséges");
get_token();

return e;
}
default:
return error("elemi szimbólum szükséges");
}
}

double error(const string& s)
{
no_of_errors++;
cerr << "hiba: " << s << '\n';
return 1;
}

Token_value get_token()
{
char ch;
do {

if(!cin.get(ch)) return curr_tok = END;
} while (ch!='\n' && isspace(ch));
switch (ch) {
case ';':
case '\n':
return curr_tok=PRINT;
case 0:
return curr_tok=END;

case '*':
case '/':
case '+':
case '-':
case '(':
case ')':
case '=':

return curr_tok=Token_value(ch);
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '.':
cin.putback(ch);
cin >> number_value;
return curr_tok=NUMBER;
default:

if (isalpha(ch)) {
string_value = ch;
while (cin.get(ch) && isalnum(ch)) string_value.push_back(ch);
cin.putback(ch);
return curr_tok=NAME;
}
error("rossz szimbólum");
return curr_tok=PRINT;

}
}

istream * input;

int
main(int argc, char* argv[])
{
switch(argc) {
case 1 :
input = &cin;
break;
case 2:
input = new istringstream(argv[1]);
break;
default:
error("Túl sok paraméter");
return 1;
}

table["pi"] = 3.1415926535897932385;
table["e"] = 2.7182818284590452354;
while (*input) {
get_token();
if (curr_tok == END) break;
if (curr_tok == PRINT) continue;
cout << expr(false) << '\n';
}
if (input != &cin) delete input;

return no_of_errors;
}

cellSigma 2013.03.04. 21:39:29

Docbook:
www.dropbox.com/s/ciro37vvxc1mnm9/mydock.pdf?m

12 feladattal, folyamatos fejlesztés alatt.

(73 pont.)

nb · http://fersml.blog.hu 2013.03.05. 08:36:54

@cellSigma: a pdf-ben miért nem syntax highlighting-os a kód vajon?

cellSigma 2013.03.05. 10:38:00

@nb: Javítva, a programlisting attribútumát
kellett beáálítani:

www.dropbox.com/s/8ifi2g7yp1uocke/mydock.pdf?m

Illetve természetesen folyamatosan javítom, fejlesztem tovább.

Cvanger 2013.03.05. 23:30:26

ha jól számoltam még belefértem a pontozásba

DeeGort 2013.03.06. 10:44:44

KÖNYV: 6.6.18
kepfeltoltes.hu/130306/calc_www.kepfeltoltes.hu_.png

#include <iostream>
#include <string>
#include <map>
#include <cctype>
#include <sstream>
using namespace std;

enum Token_value
{
NAME, NUMBER, END,
PLUS = '+', MINUS = '-', MUL = '*', DIV = '/',
PRINT = ';', ASSIGN = '=', LP = '(', RP = ')'
};

double expr(bool);
double term(bool);
double prim(bool);
double error(const string&);
Token_value get_token();

Token_value curr_tok = PRINT;

map<string, double> table;
double number_value;
string string_value;

int no_of_errors;

double expr(bool get)
{
double left = term(get);

for(;;)
switch (curr_tok)
{
case PLUS:
left += term(true);
break;
case MINUS:
left -= term(true);
break;
default:
return left;
}
}

double term(bool get)
{
double left = prim(get);

for(;;)
switch (curr_tok)
{
case MUL:
left *= prim(true);
break;
case DIV:
if (double d = term(true))
{
left /= d;
break;
}
return error("Nullaval nem lehet osztani");
default:
return left;
}
}

double prim(bool get)
{
if (get) get_token();

switch (curr_tok)
{
case NUMBER:
{
double v = number_value;
get_token();
return v;
}
case NAME:
{
double &v = table[string_value];
if (get_token() == ASSIGN) v = expr(true);
return v;
}
case MINUS:
return -prim(true);
case LP:
{
double e = expr(true);
if (curr_tok != RP) return error(") szukseges");
get_token();
return e;
}
default:
return error("elemi szimbolum szukseges");
}
}

Token_value get_token()
{
char ch = 0;

do
{
if (!cin.get(ch)) return curr_tok = END;
} while(ch != '\n' && isspace(ch));

switch (ch)
{
case 0:
return curr_tok = END;
case ';':
case '\n':
return curr_tok = PRINT;
case '*':
case '/':
case '+':
case '-':
case '(':
case '=':
return curr_tok = Token_value(ch);

case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
case '.':
cin.putback(ch);
cin >> number_value;
return curr_tok = NUMBER;
default:
if(isalpha(ch))
{
string_value = ch;
while (cin.get(ch) && isalpha(ch)) string_value.push_back(ch);
cin.putback(ch);
return curr_tok = NAME;
}
error("rossz szimbolul");
return curr_tok = PRINT;
}
}

double error(const string& s)
{
no_of_errors++;
cerr << "hiba: " << s << '\n';
return 1;
}

istream* input; // mutato bemeneti adatfolyamra

int main(int argc, char *argv[])
{
switch (argc)
{
case 1:
input = &cin;
break;
case 2:
input = new istringstream(argv[1]);
break;
default:
error("tul sok parameter");
return 1;
}

table["pi"] = 3.1415926535897932385;
table["e"] = 2.7182818284590452354;

while(*input)
{
get_token();
if (curr_tok == END) break;
if (curr_tok == PRINT) continue;
cout << expr(false) << '\n';
}

if(input != &cin) delete input;
return no_of_errors;
}

8 Pont

szelepsapka 2013.03.06. 10:48:30

laboron kercerece törés kipróbálás (3pont)

szelepsapka 2013.03.06. 11:06:21

laboron titkos2013.szoveg törés (5 pont)

Atka001 2013.03.06. 11:29:27

Laboron kercerece törés kipróbálás (3 pont)

Gergo0720 2013.03.06. 12:35:19

Laboron szereztem 9 pontot a számológép felélesztésére, illetve a titkos2013.szoveg pontos találatára 7 pont.

kepfeltoltes.hu/130306/Screenshot_from_2013-03-06_12_31_51_www.kepfeltoltes.hu_.png

szelepsapka 2013.03.06. 12:50:20

@Gergo0720: a titkos2013.szoveg nem csak 5pont volt?

Gergo0720 2013.03.06. 13:04:20

@szelepsapka: Az 5 pont, de az, hogy csak pontosan azt az egyet találja meg, ami jó az 7 pont.

szelepsapka 2013.03.06. 13:07:20

@Gergo0720: kosz hogy szoltal, akkor nekem is modositanom kell a pontom

szelepsapka 2013.03.06. 13:09:22

@szelepsapka: akkor Gergo0720 informalasa alapjan nekem is 7pont!

km92 2013.03.06. 15:20:54

Jó napot ! Az előadáson elhangzott " határidő-csúsztatás " -ból kifolyólag bátorkodok felrakni néhány feladatot egy kevéske pont reményében :)

1. előadás 106. fólia :

#include <stdio.h>
#include <iostream>

int main (void)
{
int i = 0;
double r, s = 0.0;

while (scanf("%lf", &r) > 0 )
{
++i;
s += r;
}
printf("%lf\n", s / i );
return 0;

}

Deklarálunk egy i egész, valamint egy r, és s lebegőpontos számot, s-et 0.0 kezdőértékkel. Scanf-fel beolvassuk a bemenetet az r változóba, és amíg ez az érték nagyobb mint 0, az i-t növeljük. Ezután az s értéke s+r lesz. A végén pedig kiíratjuk az s és i hányadosának értékét.

"chapter 2: egy pont, aki lefordítja, lefuttatja a 2. fejezet progiját."
4.11.1 www.kepfeltoltes.hu/view/130306/K_perny_k_p___2013-03-06_15_02_03_www.kepfeltoltes.hu_.png

5.9.4 Swap függvény
www.kepfeltoltes.hu/view/130306/K_perny_k_p___2013-03-06_14_49_54_www.kepfeltoltes.hu_.png

DeeGort 2013.03.06. 16:40:20

@nb: Volt egy kis hiba a számológépemben, de megtaláltam, lemarad a case ')', így már működik ami órán nem működött. A teljes kód a fentebbi kommentemben van.
kepfeltoltes.hu/130306/calc1_www.kepfeltoltes.hu_.png

Token_value get_token()
{
char ch = 0;

do
{
if (!cin.get(ch)) return curr_tok = END;
} while(ch != '\n' && isspace(ch));

switch (ch)
{
case 0:
return curr_tok = END;
case ';':
case '\n':
return curr_tok = PRINT;
case '*':
case '/':
case '+':
case '-':
case '(':
case ')':
case '=':
return curr_tok = Token_value(ch);

case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
case '.':
cin.putback(ch);
cin >> number_value;
return curr_tok = NUMBER;
default:
if(isalpha(ch))
{
string_value = ch;
while (cin.get(ch) && isalpha(ch)) string_value.push_back(ch);
cin.putback(ch);
return curr_tok = NAME;
}
error("rossz szimbolul");
return curr_tok = PRINT;
}
}

Scrop 2013.03.07. 18:30:26

Labor feladatai:
titkos2013.szoveg feltorése megtörtén :D 10 pont

kepfeltoltes.hu/view/130307/titkos2013_www.kepfeltoltes.hu_.jpg

kercerece bemutatása 3 pont

összesen 13 pont

Scrop 2013.03.08. 09:38:09

Pontok összesítés:
vadász feladatok pontjai: 84.5 pont
robotfoci: 8 pont
docbook : 85 pont
labor : 13 pont

Ha valamit elszámoltam volna nyugottan szóljatok nem fogok megharagudni érte :D

Összesen 190.5 pont

Tasnádi Dániel 2013.03.08. 10:48:04

Szerzett pontjaim (eddig összesen ennyi):

- 15 pont a QCSS youtube-os bemutatására
- 9 pont a számológépre
- 3 pont a "Bús..." Huszt kódolás-dekódolásra

= 27 pont

cellSigma 2013.03.08. 11:34:09

Pontösszesítés:

Eddig szerzett: 80.5

Ezen a héten:
Docbook: 73 pont

Feladatok:
6.6.18: 8 pont
7.10.3: 5.5
7.10.4: 5.5
7.10.6: 8
7.10.9: 8

Kvantumfoci videó: 15 pont
10 egészből álló tömb referenciája laborkártya: 7pont
A héten összesen: 130 pont
Eddig szerzettekkel együtt: 210.5 pont

PHP_Barbar 2013.03.08. 13:37:43

9 pont a számológépre
3 pont a "Bús..." Huszt kódolás-dekódolásra

Összesen: 33 pont.

Pumuckl 2013.03.08. 15:35:23

Eddig 18 pont.
A szerdai 12-14 óráig tartó laboron a számológép felélesztése másodikként nem tudom hány pont (az itteni kommentek alapján talán 9).

nb · http://fersml.blog.hu 2013.03.09. 15:15:22

@Scrop: ez melyik feladat? Mert a 9.5.11 nálam ez:

"(*2,5) A külsõ beépítésfigyelõ olyan programelem, amely a megfigyelt fájlon kí-
vül végzi az ellenõrzést, és fordításonként csak egyszer végez beépítést. Készít-
sünk egy ilyen szerkezeti elemet, tervezzünk módszert a tesztelésére, és fejtsük
ki elõnyeit és hátrányait a §9.3.3-ban leírt „állomány-õrszemekkel” szemben.
Van-e a külsõ beépítésfigyelõknek bármilyen jelentõs futási idõbeli elõnye
a rendszerünkben?"

nb · http://fersml.blog.hu 2013.03.09. 15:28:09

@Scrop: kicsit még gyúrjunk ezen a feladaton
- hol az összehasonlítás?
- olyanok legyenek a függvények, amelyeket az összehasonlításnál említ a könyv
- +2 pont (Neked vagy az első 3 olvasónak) aki az strlen olyan változatát mutatja be (forrás+futtatás) amely nem használja a segág int változót

nb · http://fersml.blog.hu 2013.03.09. 15:30:36

@Scrop: a cat ne használjon ilyen buffert (eleve mi van, ha ez egy függvénykönyvtár és egyszerre hívják többen... gondolj csak bele: a cat meg ugyanabban a bufferben dolgozik...) szóval a szabad tárban foglaljon a cat és azt adja vissza, a hívó pedig a végén ne felejtsen el delete

nb · http://fersml.blog.hu 2013.03.09. 15:35:09

@Scrop: itt a progit nem néztem egyelőre, mert a képi bizonyíték rossz, nem?

Pl. "tzE"-re kellene végződnie...

nb · http://fersml.blog.hu 2013.03.09. 15:37:14

@Smajdam: a mágikus 12-t elimináljuk!

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

@Scrop:

- van ilyenre pl. hogy átadom a buffert, de itt indokolatlan, csinálja lokálban az atoi

- miért nem ez a szignatúra:
NAME
atoi, atol, atoll, atoq - convert a string to an integer

SYNOPSIS
#include <stdlib.h>

int atoi(const char *nptr);

- ez a rész hol van?

"kezelje a C++ oktális és hexadecimális je-
lölését is, az egyszerû, tízes számrendszerbeli számokkal együtt. Módosítsuk
a függvényt úgy is, hogy kezelje a C++ karakterkonstans jelölést is."

nb · http://fersml.blog.hu 2013.03.09. 16:04:11

@Scrop: az aktuális pontszámhoz kell az az infó, hogy a szereplő feladatok közül mennyi az elfogadott, amivel kvázi itt nem volt kommentem?

nb · http://fersml.blog.hu 2013.03.09. 16:05:44

@szelepsapka:

- kicsi a kép
- forrás?
- tömbre fer biztosan error, lásd már tárgyaltuk, tettem is ki forráscsipetet a 4-5 labor posztjába

nb · http://fersml.blog.hu 2013.03.09. 16:15:12

@Gergo0720: tetszik a segédváltozó nélküli megoldás, +10 pont, ha elmagyarázod egy kommentben (vagy bárki további első 3 elmagyarázza, annak +5).

kun.t1992 2013.03.09. 16:44:01

A PROP könyv "5.3.2. A sampleclient/client.cpp módosítása" résznél valamiért a módosított clientprog1.cpp nem fordul le a make-nél. Legjobb tudásom szerint azt tettem amit a könyv mond. Előtte már működött a server a monitor és a client is. Ha valaki tudna segíteni annak örülnék.

E-mail címem: kun.t1992@gmail.com

Scrop 2013.03.09. 16:54:51

@nb: igen, az a 5_9_11 es lenne :D csak felcseréltem a két számot

Scrop 2013.03.09. 17:05:11

@nb: A képi bizonyíték nem rossz. a karater lánc végén "tzE" van ha azt visszafelé írjuk akkor kapjut hogy "Ezt", így nem értem mi a baj a képi bizonyítékkal.

Scrop 2013.03.09. 17:16:06

@nb: kepfeltoltes.hu/view/130309/6_6_13_jav_www.kepfeltoltes.hu_.jpg

javáts megrötént :D, látszik h még akkor kezdtem a c++ ot használni :D, de már tisztul a kép.

#include <iostream>
#include <string.h>
#include <stdlib.h>

using namespace std;

char* cat(char* ch, char * ch2 )
{
char *two_in_one = new char[strlen(ch) + strlen(ch2)];

int i = 0;
for( ; ch[i] != '\0'; ++i)
two_in_one[i] = ch[i];
for(int j = 0; ch2[j] != '\0' ; ++i,++j)
two_in_one[i] = ch2[j];

return two_in_one;

}

int main()
{
char one_ch[] = "Fagylalt";
char two_ch[] = "oskocsi";

char *cp = new char[sizeof(cat(one_ch,two_ch ))];
cp = cat(one_ch,two_ch );
cout << cp << endl;
delete [] cp;

return 0;
}

Scrop 2013.03.09. 17:19:04

@nb: Én is csodálkoztam h nem volt egyikhez sem kommentem, vagyis eggyhez volt :D , és majdnem elhittem h mind jó :D. és most meg javítgathatok :D
És amúgy most mire és mennyi pontot adtál? mert ebből a 90.5 ből nem sokat tudok leszűrni.

Gergo0720 2013.03.09. 17:21:07

@nb: Nos kizáró vagy művelettel lett megcserélve a két változó értéke, amit egy példán keresztül megpróbálok megmagyarázni.

Legyen a = 10101 , b = 11001

Kizáró vagy művelettel a következőképpen tudjuk megcserélni. Először a = a ^ b, ahol ^-jel jelenti a kizáró vagy műveletet(továbbiakban xor). Tehát a-t össze xor-oljuk b-vel. Ugye xor-nál akkor kapunk 1-est, ha különböznek az azonos helyen álló számjegyek, egyébként 0. 10101 ^ 11001 = 01100 -> ez lett az 'a' változó új értéke. Ezután b = b ^ a, vagyis b-t xor-olom össze az "új" a-val. 11001 ^ 01100 = 10101 -> ez lett a 'b' tartalma, ami eddig 'a'-ban volt, tehát félig készen vagyunk. Végül a = a ^ b , az "új" a-t xor-olom az "új" b-vel 01100 ^ 10101 = 11001 -> ez kerül a-ba. Tehát végül az 'a'-ba került a 01100 b-be pedig az 11001

Scrop 2013.03.09. 17:23:46

@nb: A segág int az segéd int változó lenne?

Smajdam 2013.03.09. 17:24:22

@Gergo0720:Magyarázat a xor-os felcserélésre:
A kizáróvagy akkor ad vissza igazat, ha vagy az egyik, vagy a másik operandusa 1, de egyszerre maximum csak 1. Ezt lehet kihasználni itt is, és az exor törésnél is pl.

Egyszerű példa a megértéshez:
X=0001, Y=1111

1. lépés: X = X ^ Y
0001
1111
X=1110

2. lépés: Y = X ^ Y
1110
1111
Y=0001

3. lépés: X = X ^ Y
1110
0001
X=1111

X=1111, Y=0001
_____________________________________________

Smajdam 2013.03.09. 17:29:36

@nb: a 12 csak azért írtam oda, mert előre tudtam hogy csak a hónapokat fogja kiírni, abból meg ugye mindig 12 van. De itt a javítás:

#include <iostream>
#include <string>
using namespace std;

void kiir( string str[], int size )
{
for(int i = 0; i < size; i++)
cout << str[i] << endl;
}

int main(void)
{
string str[] = {"január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"};

for(int i = 0; i < ( sizeof(str) / sizeof(str[0]) ); i++)
cout << str[i] << endl;

kiir(str, ( sizeof(str) / sizeof(str[0])) );

return 0;
}

Scrop 2013.03.09. 17:36:54

@nb: Egy kérdés:
semmilyen segéd változót nem használhatunk?
azaz ez sem lenne jó megoldás? :
int strlen(const char *minek )
{
const char *p = minek;
while (*minek++ != '\0');

return minek - p - 1;
}

Scrop 2013.03.09. 17:57:53

@nb: Javított 6_6_10 es feladat, ahol a cmp-t kicsit félre értettem :D
kepfeltoltes.hu/view/130309/6_6_10_jav_www.kepfeltoltes.hu_.jpg
#include <string>
#include <iostream>

#define EXIT_SUCCES 0
#define EXIT_NOT_SUCCES -1

using namespace std;

int strlen(const char *minek )
{
const char *p = minek;
while (*minek++ != '\0');

return minek - p - 1;
}

int strcpy(const char *mit, char *hova)
{
int i = 0;
for(i ; mit[i] != '\0'; i++)
hova[i] = mit[i];
hova[i] = '\0';

return EXIT_SUCCES;
}

int strcmp (const char *mit, const char *mivel)
{
int i = 0;
while ((mit[i] == mivel[i]) && (mit[i] != '\0') && (mivel[i] != '\0'))
++i;
if ((int)mit[i] > (int)mivel[i])
return (int)mit[i] - (int)mivel[i];
else
if ((int)mit[i] < (int)mivel[i])
return (int)mivel[i] - (int)mit[i];

return 0;

}

int main()
{
char ch[] = "Ezt vizsgáljuk!";

int hossz = strlen(ch);
cout << hossz << endl;

char ch2[20] = "";

strcpy (ch, ch2);
cout << ch2 << endl;

char ch3[] = "Ezt vizsgáljuk!";
char ch4[] = "Ez nem egyezik!";
cout << strcmp(ch3, ch4) << endl;
cout << strcmp(ch, ch3) << endl;
return 0;
}

Gergo0720 2013.03.09. 18:51:37

@nb: Elnézést, hogy újra postoltam, de utolólag vettem észre, hogy elírtam. Javítás:

Nos kizáró vagy művelettel lett megcserélve a két változó értéke, amit egy példán keresztül megpróbálok megmagyarázni.

Legyen a = 10101 , b = 11001

Kizáró vagy művelettel a következőképpen tudjuk megcserélni. Először a = a ^ b, ahol ^-jel jelenti a kizáró vagy műveletet(továbbiakban xor).

Tehát a-t össze xor-oljuk b-vel. Ugye xor-nál akkor kapunk 1-est, ha különböznek az azonos helyen álló számjegyek, egyébként 0.

10101 ^ 11001 = 01100 -> ez lett az 'a' változó új értéke.
Ezután b = b ^ a, vagyis b-t xor-olom össze az "új" a-val. 11001 ^ 01100 = 10101 -> ez lett a 'b' tartalma, ami eddig 'a'-ban volt, tehát félig készen vagyunk.

Végül a = a ^ b , az "új" a-t xor-olom az "új" b-vel 01100 ^ 10101 = 11001 -> ez kerül a-ba.

Tehát végül az 'a'-ba került a 11001, b-be pedig az 10101

nb · http://fersml.blog.hu 2013.03.09. 19:03:59

@szelepsapka: hogy az alapszöveg törése mennyit ért, azt a laboron a licit határozta meg, ez tipikusan más és más laboronként.

Scrop 2013.03.09. 20:17:20

@nb:
Az hogy kezelje az oktális és hexadecimális jelölést nem azt takarná, hogy ha beírok egy 0123 számot azt nyolcasként kezelje és a 0xFF52 számot pedig 16 os ként kezelje, márcsak azért kérdem mert azt az fügvényem kezeli. A c++ beli stringet pedig szintén kezeli hiszen ez is a paramétere: (const string mit)
Tudom hogy maga a kód ocsmány, de még a 7végén megírom szebben az atoi, atol, atoll al eggyüt, viszont az atoq -t nem tartom lényegesnek, hiszen ahogy olvastam a "man atoq" - ban ez az atoll egy elavult változata. És majd holnapra fel is töltöm akkor a végleges eddigi pont táblázatomat, hogy tiszta legyen a dolog. :D

sency 2013.03.10. 13:04:41

Kedves Kollégák!
RCSS problémám van, miszerint Ctrl+K után az összes játékos befut a pálya hossztengelyére, valamint a felezőpályát nem lépik át. Magyar nyelvű Ubuntu, boost, stb. minden telepítve. Találkozott valaki hasonló problémával?
web.unideb.hu/~netid21/felallas.png
web.unideb.hu/~netid21/ctrl_k_utan.png

Scrop 2013.03.10. 13:42:42

@sency: Véletlenül nem magyarul raktad fel az ubuntut, úgyértem amikor telepítetted: kiválasztottad azt h magyar? Mert akkor ez a probléma , ugyanis az ubuntut angolul kell felrakni majd telepítés után kell a nyelvet átállítai amire szeretnéd. És csak ebben az esetben nem lesz bugos az RCSS.

sency 2013.03.10. 13:55:48

@Scrop: Fogalmam sincs, pár éve már fent van. Viszont ha csak ez lehet a probléma, akkor feldobom az angol verziót. Köszönöm a tippet!

nb · http://fersml.blog.hu 2013.03.10. 14:07:54

@sency: ha menni fog, akkor azt úgy veszem, hgy megy az 1 pont Scorp-nak. (Ha valami más miatt mégis gond lenne, akkor legvégső esetre itt a "BatfaiProg1" VB image: www.inf.unideb.hu/~nbatfai/Batfai_Prog1.ova )

Scrop 2013.03.10. 15:59:02

@nb: Most esik le h az nem a 6_6_16 os feladat lenne hanem a 6_6_17, azért volt zavaró a dolog,
1: mert elírtam a feladat számát
2: még a fügvény nevet is elírtam amit egy kommentel lejebb írtam is :D

Scrop 2013.03.10. 16:24:00

A tisztán látás kedvéért itt van megint a 6_6_17 ami itoa és nem atoi ahogy először írtam
kepfeltoltes.hu/view/130310/9232945986_6_17_www.kepfeltoltes.hu_.jpg
#include <iostream>
#include <math.h>
#include <string.h>

using namespace std;

int max_ch(int a)
{
int i = 0;
for (; ((double)(a / pow(10,i)) >10) || (((double)(a / pow(10,i))) < -10 ); ++i );
if (a < 0) return i+2;
else return i+1;

}

char* itoa(int szam, char hova[])
{
int meret = max_ch(szam);

int i = meret;
if ( szam < 0) {
hova[0] = '-';
szam *= -1;
--i;

}
int seged = szam;
for (i; i != 0; --i) {
int j = 1;
for (; j <= 10; ++j) {

if (seged < pow(10,i-1) * j)
break;
}

hova [meret - i] = char(j-1 + int('0'));
seged -= (j-1)*pow(10,i-1);
}

static char * stat_ch;
stat_ch = hova;
return stat_ch;
}

int main()
{
char int_to_ch[32] = "";
cout << itoa (-9999, int_to_ch) << endl;
cout << itoa (1235258, int_to_ch) << endl;

return 0;
}

Scrop 2013.03.10. 16:36:24

Ezek után ha már nem adódik tömb gond akkor itt van a végleges pontzámom, az előzőbe am sem számoltam bele a már meglévőt:
docs.google.com/file/d/0By5wCYSBTSJAMmNLVGNNSmhGdTg/edit

összesen : 210.5 pont

nb · http://fersml.blog.hu 2013.03.10. 16:57:41

@Scrop: Köszi. A DocBook sornál nem látok linket, ebből hol találom az aktuálisat?

gyzsolt 2013.03.10. 21:27:25

6-án 12 órási Laboron kercerecen kipróbálása ( 3 pont )

Scrop 2013.03.11. 18:35:23

@nb: Tanár úr , ha szépen megkérném átírna pontszámomat az aktuálisra? Csak h nehogy megfeletkezzünk róla. :D

nb · http://fersml.blog.hu 2013.03.11. 18:39:22

@Scrop: nyugalom, hetenként bufferelem a feldolgozatlan kommenteket, s péntek-szombat magasságában vezetem át a blogra. (Persze, ha most valami miatt elkerülné a figyelmemet, akkor majd egy megszakításban javítom, de nem valószínű, mert a DocBook-os feladatok kapcsán külön is figyelek.)

A blogot úgy tekintem, mint egy "elosztott adatbázist", amelyből, ha kell, ki tudjuk bányászni az infót, tehát szerintem biztonságban vagy :)

Cvanger 2013.03.13. 14:49:52

A 6. fejezet feladatai a KÖNYVből:
6.6.1: 3 pont
kepfeltoltes.hu/130313/6.6.1_www.kepfeltoltes.hu_.png

6.6.2: 3 pont
lásd a 6.6.4-nél lejjebb

6.6.3: 8 pont
kepfeltoltes.hu/130313/6.6.3_www.kepfeltoltes.hu_.png

6.6.4: 3 pont
kepfeltoltes.hu/130313/DSCF2427_www.kepfeltoltes.hu_.jpg

6.6.7: 8 pont
kepfeltoltes.hu/130313/6.6.7_www.kepfeltoltes.hu_.png

6.6.9: 3 pont
kepfeltoltes.hu/130313/6.6.9_www.kepfeltoltes.hu_.png

6.6.10: 8 pont
kepfeltoltes.hu/130313/6.6.10_www.kepfeltoltes.hu_.png

6.6.11: 3 pont
kepfeltoltes.hu/130313/6.6.11_www.kepfeltoltes.hu_.png

6.6.12: 8 pont
kepfeltoltes.hu/130313/6.6.12_www.kepfeltoltes.hu_.png

6.6.13: 8 pont
kepfeltoltes.hu/130313/6.6.13_www.kepfeltoltes.hu_.png

6.6.14: 8 pont
kepfeltoltes.hu/130313/6.6.14_www.kepfeltoltes.hu_.png

6.6.12: 10,5 pont
kepfeltoltes.hu/130313/6.6.22_www.kepfeltol
tes.hu_.png

A 3. laboron kaptam 3 pontot egy otthonról hozott progira és még 3-t az exor törő oda vissza való működtetésére.

Összesen: +79.5 pont

Cvanger 2013.03.13. 14:50:12

A 6. fejezet feladatai a KÖNYVből:
6.6.1: 3 pont
kepfeltoltes.hu/130313/6.6.1_www.kepfeltoltes.hu_.png

6.6.2: 3 pont
lásd a 6.6.4-nél lejjebb

6.6.3: 8 pont
kepfeltoltes.hu/130313/6.6.3_www.kepfeltoltes.hu_.png

6.6.4: 3 pont
kepfeltoltes.hu/130313/DSCF2427_www.kepfeltoltes.hu_.jpg

6.6.7: 8 pont
kepfeltoltes.hu/130313/6.6.7_www.kepfeltoltes.hu_.png

6.6.9: 3 pont
kepfeltoltes.hu/130313/6.6.9_www.kepfeltoltes.hu_.png

6.6.10: 8 pont
kepfeltoltes.hu/130313/6.6.10_www.kepfeltoltes.hu_.png

6.6.11: 3 pont
kepfeltoltes.hu/130313/6.6.11_www.kepfeltoltes.hu_.png

6.6.12: 8 pont
kepfeltoltes.hu/130313/6.6.12_www.kepfeltoltes.hu_.png

6.6.13: 8 pont
kepfeltoltes.hu/130313/6.6.13_www.kepfeltoltes.hu_.png

6.6.14: 8 pont
kepfeltoltes.hu/130313/6.6.14_www.kepfeltoltes.hu_.png

6.6.12: 10,5 pont
kepfeltoltes.hu/130313/6.6.22_www.kepfeltol
tes.hu_.png

A 3. laboron kaptam 3 pontot egy otthonról hozott progira és még 3-t az exor törő oda vissza való működtetésére.

Összesen: +79.5 pont

Cvanger 2013.03.13. 14:50:23

A 6. fejezet feladatai a KÖNYVből:
6.6.1: 3 pont
kepfeltoltes.hu/130313/6.6.1_www.kepfeltoltes.hu_.png

6.6.2: 3 pont
lásd a 6.6.4-nél lejjebb

6.6.3: 8 pont
kepfeltoltes.hu/130313/6.6.3_www.kepfeltoltes.hu_.png

6.6.4: 3 pont
kepfeltoltes.hu/130313/DSCF2427_www.kepfeltoltes.hu_.jpg

6.6.7: 8 pont
kepfeltoltes.hu/130313/6.6.7_www.kepfeltoltes.hu_.png

6.6.9: 3 pont
kepfeltoltes.hu/130313/6.6.9_www.kepfeltoltes.hu_.png

6.6.10: 8 pont
kepfeltoltes.hu/130313/6.6.10_www.kepfeltoltes.hu_.png

6.6.11: 3 pont
kepfeltoltes.hu/130313/6.6.11_www.kepfeltoltes.hu_.png

6.6.12: 8 pont
kepfeltoltes.hu/130313/6.6.12_www.kepfeltoltes.hu_.png

6.6.13: 8 pont
kepfeltoltes.hu/130313/6.6.13_www.kepfeltoltes.hu_.png

6.6.14: 8 pont
kepfeltoltes.hu/130313/6.6.14_www.kepfeltoltes.hu_.png

6.6.12: 10,5 pont
kepfeltoltes.hu/130313/6.6.22_www.kepfeltol
tes.hu_.png

A 3. laboron kaptam 3 pontot egy otthonról hozott progira és még 3-t az exor törő oda vissza való működtetésére.

Összesen: +79.5 pont

Cvanger 2013.03.13. 14:51:34

Hát ezt nem hiszem el, valamiért 2-szer hibát ad az elküldésre, majd utána meg elküldi 3-szor... :S

nb · http://fersml.blog.hu 2013.03.17. 15:29:06

@kun.t1992: az előtte működöttet úgy kell érteni, hogy forrásból a sima szerver fordult?

nb · http://fersml.blog.hu 2013.03.17. 15:40:22

@Scrop: kicsit még alakítottam (egyszerűsítettem) rajta, ha ezt bekkomentezve megmagyarázod, akkor +3 pont:

norbi@colossus:~/Documents/P1/Scrop$ g++ -Wall scorp.cpp -o scorp
norbi@colossus:~/Documents/P1/Scrop$ ./scorp
4
4
norbi@colossus:~/Documents/P1/Scrop$ more scorp.cpp
#include <iostream>
#include <cstring>

namespace sajat
{

int strlen (const char *minek)
{
const char *p = minek;
while (*minek++);

return minek - p - 1;
}

}

int
main ()
{
std::cout << sajat::strlen ("alma") << std::endl;
std::cout << std::strlen ("alma") << std::endl;
return 0;
}
norbi@colossus:~/Documents/P1/Scrop$

kun.t1992 2013.03.17. 15:45:14

@nb: Minden működött de amikor a PROP könyv 5.3.2. részénél létrehozom a clientprog1.cpp-t akkor a make-nél elvileg észre kellene vennie ezt és lefordítani. Ettől függetlenül a sima client-et fel tudom rakni a server megy a monitoron látszik ha felrakok egy embert.

nb · http://fersml.blog.hu 2013.04.07. 11:20:43

@I.Csaba: Vajon miért nem sintaxis kiemelésesek a forráskódok megjelenései a pdf-ben? programlisting elemben vannak?

I.Csaba 2013.04.07. 11:31:51

igen, programlisting-ben vannak.

nb · http://fersml.blog.hu 2013.04.07. 12:00:07

@nb: nem nevezném hibának, hiszen ha valid az xml-ed, akkor nyilván nem hiba, de mindenképpen segíti az olvasó társaid szemét, akik érdeklődéssel forgatják a könyvedet.

B.Norbi93 2013.04.07. 13:35:21

KÖNYV 6.6.1 (3 pont)
imagerz.com/QE8QWEtvAwMBB1gcGQVQ

KÖNYV 6.6.2 (3 pont)
imagerz.com/QE8QWEtvAwMBB1gcGAVQ

KÖNYV 6.6.4 (3 pont)
imagerz.com/QE8QWEtvAwMBB1geQgVQ
mivel 1 db biten nem lehet logikai műveletet végezni, "negált 'a' " kiíratását egy kicsit máshogy oldottam meg

KÖNYV 6.6.10 (8 pont)
imagerz.com/QE8QWEtvAwMBB1gcQwVQ

KÖNYV 6.6.13 (8 pont)
imagerz.com/QE8QWEtvAwMBB1gcQgVQ

KÖNYV 6.6.14 (8 pont)
imagerz.com/QE8QWEtvAwMBB1gcRAVQ

KÖNYV 6.6.16 (8 pont)
imagerz.com/QE8QWEtvAwMBB1gcRwVQ

KÖNYV 6.6.17 (8 pont)
imagerz.com/QE8QWEtvAwMBB1gfEQVQ

KÖNYV 6.6.18 (8 pont)
imagerz.com/QE8QWEtvAwMBB1gfEAVQ (2 db részlet)
imagerz.com/QE8QWEtvAwMBB1gfEwVQ (terminal)
süti beállítások módosítása