NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Problém s maticí (přesunutá diskuse)

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
28tomino
Člen
Avatar
28tomino:9.5.2013 15:53

zdravim, nechcem zakladat novu temu, tak sa opytam sem, neviete preco mi nechce vykreslit maticu v C++, my to rozhadze do 2 riadkov a milin stlpcov , syntax je podobny ako v C.

for(i=0; i<pole; i++)
{
cout<<"\n";
for(j=0; j<pole; j++)
{
cout<<"a"<<po­le[i][j];
}
}

 
Odpovědět
9.5.2013 15:53
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na 28tomino
Lukáš Hruda:9.5.2013 16:11

Ty používáš název pole pro zjištění jeho velikosti nebo špatně vidím? :D
Respektive i < pole, j < pole je hloupost, název pole nevrací počet prvků, ale pointer na první prvek.

 
Nahoru Odpovědět
9.5.2013 16:11
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na 28tomino
David Hartinger:9.5.2013 16:56

Příště prosím založ nové téma, od toho tu témata jsou. K vložení zdrojového kódu je tlačítko Vložit zdrojový kód.

Nahoru Odpovědět
9.5.2013 16:56
New kid back on the block with a R.I.P
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na David Hartinger
Lukáš Hruda:9.5.2013 17:11

Já to pak přesunu, ale až se to vyřeší, aby nehledal odpověď jinde než je jeho otázka.

 
Nahoru Odpovědět
9.5.2013 17:11
Avatar
28tomino
Člen
Avatar
28tomino:9.5.2013 17:16

pole to je "matica prvkov" o neakom rozmere int pole[10][10]

 
Nahoru Odpovědět
9.5.2013 17:16
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na 28tomino
Lukáš Hruda:9.5.2013 17:24

V tom případě to musíš napsat takhle:

for(i=0; i<10; i++)
{
  cout<<"\n";
  for(j=0; j<10; j++)
  {
    cout<<"a"<<pole[i][j];
  }
}
 
Nahoru Odpovědět
9.5.2013 17:24
Avatar
28tomino
Člen
Avatar
28tomino:9.5.2013 18:37

ani takto to nesprvi maticu, a nevypise tam ten znak, ale uz rozmyslam nad nahradou.
pomocou funkcie gotoxy viem pohybovat kurzor, otazka ako definujem staly pohyb po urcitej trase (kruh, obdlznik) viem len nahodny random a o jedno po stlaceni klavesi

 
Nahoru Odpovědět
9.5.2013 18:37
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na 28tomino
Lukáš Hruda:9.5.2013 18:56

Možná by bylo dobré sem dát větší část kódu a napsat o co se vlastně snažíš. Mimochodem, přesouvám diskusi sem: http://www.itnetwork.cz/…18bd519c5448#…

 
Nahoru Odpovědět
9.5.2013 18:56
Avatar
28tomino
Člen
Avatar
28tomino:9.5.2013 19:27

zdrojak tu upnem neskor, ale ide mi v podstate o to sprvit pohyb (vlak) po neakej drahe, a chel som to spravit na sposob ruleti co som robil v C, neaky bod by sa pohyboval do okola a uzivatel by menil len jeho rychlost a najlepsie riesenie sa mi zdalo dvojrozmerne pole(matica)

 
Nahoru Odpovědět
9.5.2013 19:27
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na 28tomino
Lukáš Hruda:9.5.2013 19:32

Co má pohyb vlaku společného s ruletou? Ty chceš aby ten vlak jezdil jenom dokola?

 
Nahoru Odpovědět
9.5.2013 19:32
Avatar
28tomino
Člen
Avatar
28tomino:9.5.2013 20:47

presne tak, a v rulete(C) som mal lopticku a teraz to ma byt akoze vlak, ktori ma neake prvky ktore uzivatel moze ovladat, rychlost, brzdy, svetla .... teraz som videl jeden program ktori mal mapu vykreslenu cez "cout" (pomocou -/\) ale smer pohybu urcoval uzivatel

 
Nahoru Odpovědět
9.5.2013 20:47
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na 28tomino
Lukáš Hruda:9.5.2013 21:09

A v čem že je tedy problém?

 
Nahoru Odpovědět
9.5.2013 21:09
Avatar
28tomino
Člen
Avatar
28tomino:10.5.2013 12:09

problem je v tom ze neviem ako definovat ten staly pohyb po tej trase(jedno akeho tvaru)

 
Nahoru Odpovědět
10.5.2013 12:09
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na 28tomino
Lukáš Hruda:10.5.2013 12:17

Udělej si pole a do něj ulož souřadnice postupně, tak jak jdou v té trase za sebou.

 
Nahoru Odpovědět
10.5.2013 12:17
Avatar
28tomino
Člen
Avatar
28tomino:10.5.2013 23:34

for(i=0; i<10; i++)
{
cout<<endl;
for(j=0; j<10; j++)
{

pole[i][j] = ' ';

if (i == 0 || j == 0 || i == 9 || j == 9)
{
pole[i][j] = 'x';
}

cout << " " << (char)pole[i][j];
}
}
asi takto neako chcem aby mi vyzerala "matica" ale ten pohyb po tom obvode tam neako neviem docielit, skusam to cez gotoxy ale neviem neako sa mi nedari,
ako si to myslel ty s tym ukladanim suradnic??

 
Nahoru Odpovědět
10.5.2013 23:34
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na 28tomino
Lukáš Hruda:11.5.2013 1:50

Myslel jsem to tak, že si do nějakého pole uložíš souřadnice za sebou přesně v tom pořadí, ve kterém se po nich ten daný objekt má pohybovat. Nejdřív ale musíš mít nějaký systém pro zakreslení nějakého objektu na konkrétní souřadnice v konzoli.

 
Nahoru Odpovědět
11.5.2013 1:50
Avatar
28tomino
Člen
Avatar
28tomino:11.5.2013 14:46

natrafil som na dalsi problem, mam uz pole, aj pohybujuci sa bod v poli, len som to chcel spravit tak ze pocas toho pohybu budem moct este menit rychlost tochto pohybu, a prepinat hodnoty(bool) (true false) co neviem neako zluzit do kopy, neviete niekto neaky trik :)

 
Nahoru Odpovědět
11.5.2013 14:46
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na 28tomino
Lukáš Hruda:11.5.2013 14:51

Ten pohyb máš počítám v nějaké smyčce, na jejímž konci je nějaká pauza a pak se vše překreslí. Tak pouze tu pauzu zkracuj nebo prodlužuj podle toho, jak rychlý má být pohyb.

 
Nahoru Odpovědět
11.5.2013 14:51
Avatar
28tomino
Člen
Avatar
28tomino:13.5.2013 20:52

čím, resp ako sa da nahradiť "return 0;" c++

 
Nahoru Odpovědět
13.5.2013 20:52
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na 28tomino
Lukáš Hruda:13.5.2013 21:04

Teď vůbec nechápu, jak to myslíš.

 
Nahoru Odpovědět
13.5.2013 21:04
Avatar
28tomino
Člen
Avatar
28tomino:13.5.2013 21:10

mám metodu(funkciu) ktora je volana do main.cpp z triedy.cpp ktora sa vykonava (takmer navždy) a potrebujem ju ukončiť, ked dam return 0; tak mi vypisuje neaku chybu ze to nemozem pouzit kvoli _sleep(); to iste mi pise aj pri pouzite exit(); break;
D:\codeblockspro­jekt\Letny semester C++\SEMESTRALKA VLAK\Vlak.cpp|63|e­rror: return-statement with a value, in function returning 'void'|

 
Nahoru Odpovědět
13.5.2013 21:10
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na 28tomino
Lukáš Hruda:13.5.2013 22:18

Funkce deklarovaná jako void nemůže vracet hodnotu, ukončíš jí tak, že napíšeš jenom return bez hodnoty.

 
Nahoru Odpovědět
13.5.2013 22:18
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 22 zpráv z 22.