Tak jsem tu znovu, díky vše funguje jak jsem si představoval! Jen mám problém s tím, pokud mi vyskočí nějaké okno s dalšími výpočty a já je zavřu, zavře se mi všecko, jak to ošetřit? Díky!
Příspěvky odeslané z IP adresy 90.179.27.–
Díky:)
V knize jsem přeskočil kapitolu vícevláknové programování, pochopil jsem, že je to dobré tak leda pro servery, ne pro normálního uživatele a GUI (k tomu se vrátím). Chci se ještě zeptat, jakou knihu, popřípadě jaký zdroj je nejlepší na naučení se práce s databází v Javě? Tady z té knihy to pořádně nechápu a nic mi nefunguje (přeci jen je nějaký ten rok stará...) Potřebuji udělat jednoduchý program na vypsání, úpravu a hledání v dB... Děkuji
Zdrojovy kond, zkompilovana verze pod Win XP a "data" jsou zde: http://leteckaposta.cz/103828573
Tak ve Free Pascalu to zkompiluje vše OK, ale při spuštěn a zadání hodnot se prostě ukončí. Ten co je zkompilovaný pod Wind XP píše že verze souboru není kompatibilní se spuštěnou verzí OS... Ani režim kompatibility s Win XP, Win 95... nepomáhá...
JoDiK napsal:
a on pod tím W7x64 nefunguje?
Nene, program jsem dělal pod Win XP s Turbo pascal 7.0 a pak jsem EXE soubor zkopíroval na jiný PC s Windows 7 64bit a tam nešlape...
Tak jsem to s tou maticí ošetřil, poslední dotaz, jde nějak program zkompilovat, aby šlapal pod Windows7_x64? Díky
Tak mě napadlo ještě jedno uplně jednoduchý řešení, jak psal JODIK otevírám a zavírám soubor...
Kód jsem uploadoval jinam, ať to tu je trošku přehledné...
http://www.copypastecode.com/65717/
Hlavní dotaz, jak ošetřit to, aby RANDOM negeneroval vícekrát stejné čísla?
A mohu i tak poprosit o úpravu toho prvního kódu, abych se poučil ze svých chyb...
Děkuji :)
S maticema něco málo umím, ale neustále to hází chyby...
Program NAHODNY;
type int1 = 1..260;
retez = string[250];
pojmy = array [int1] of retez;
cisla = array [int1] of integer;
var pojem : retez;
cislo,i,c,p : int1;
spravne,spatne,uspesnost : real;
pocet,pocet2,x,pp : integer;
f : text;
odpoved : string;
begin
spravne :=0; spatne :=0;
writeln('Zadej kolik mas pripravenych pojmu : '); readln(pp);
writeln('Zadej kolik pojmu mam generovat: '); readln(pocet); pocet2:=pocet;
assign(f, 'c:\terminy.txt');
reset(f);
i:=1;
while not eof(f) do
begin readln(f, cislo,pojem);
cisla[i]:=cislo; pojmy[i]:=pojem; i:=i+1;
end;
repeat
randomize;
cislo:=random(pp);
writeln('Pojem ' ,cislo, ' ' ,pojmy[cislo]);
writeln('Mela jsi pojem spravne?');readln(odpoved);
if odpoved='ano' then spravne := spravne+1
else spatne:=spatne+1;
pocet:=pocet-1;
until pocet=0;
close(f);
Writeln('Pocet otazek: ',pocet2, ' z toho spravne ',spravne:4:0, ' spatne ',spatne:4:0);
uspesnost:=(spravne/pocet2)*100;
Writeln('Tvoje procentualni uspesnost je: ' ,uspesnost:4:2);
readln;
end.
Děkuji za rady a trpělivost :)
Jak mám na začátku ten RANDOM inicializovat, stačí pouze někam dopsat randomize;?
Mohu poprosit o ten kód jak to uložiy do POLE? Nenapadá mě jak to napsat...
Zdravím, potřebuji poradit jak to celý hodit do cyklu, aby to generovalo další a další pojmy a pak je tam ještě problém s tím, že mi to neustále generuje číslo 0, jde to nějak ošetřit?
Program NAHODNY;
type int1 = 1..1000;
retez = string[250];
var pojem : retez;
cislo : int1;
spravne,spatne,uspesnost : real;
pocet,pocet2,i,x,pp : integer;
f : text;
odpoved : string;
begin spravne :=0; spatne :=0;
writeln('Zadej kolik mas pripravenych pojmu : '); readln(pp);
writeln('Zadej kolik pojmu mam generovat: '); readln(pocet); pocet2:=pocet;
assign(f, 'c:\terminy.txt');
reset(f);
while pocet>0do begin /// cyklus se provádí, čísla odečítá, ale nevypisuje další pojmy...
x:=random(pp);
pocet:=pocet-1;
writeln(pocet);
while not eof(f) do
begin readln(f, cislo,pojem);
if cislo=x then begin writeln(x , pojem);
writeln('Mela jsi pojem spravne?');readln(odpoved);
if odpoved='ano' then spravne := spravne+1
else spatne:=spatne+1;
;end;
end;
end;
close(f);
Writeln('Pocet otazek: ',pocet2, ' z toho spravne ',spravne:4:0, ' spatne ',spatne:4:0);
uspesnost:=(spravne/pocet2)*100;
Writeln('Tvoje procentualni uspesnost je: ' ,uspesnost:4:2);
readln;
end.
a text:
0 Pojem 0
1 access control (řízení vstupu)
2 account (konto, účet)
3 akronymy
4 ActiveX
5 Adobe Acrobat
6 ADSL (Asymmetric Digital Subscriber Line)
7 Agent
8 alias
9 anchor
10 anonymous FTP
Děkuji za radu, popřípadě již úpravu kódu.
@Liborb: prosim, mohl by jsi to zakomponovat do toho mojeho příkladu a poslat hodit to sem? Díky
Dobrý den,
mám problém s tímto příkladem:
Máme třídu Zboží. Třída dále obsahuje neveřejné atributy zaznamenávající dobu přepravy a váhu samotného nákladu (celočíselné hodnoty). Dále máme třídu Potravina, která je potomkem Zboží. Třída Potravina obsahuje navíc neveřejné atributy určující dobu skladování v dozrávacím skladu a maximální dobu přepravy. Údaje jsou zadány pomocí parametrických konstruktorů.
Kontejner obsahuje v neveřejných atributech svoji váhu (celočíselná hodnota) identifikační číslo (textový řetězec) a odkaz na zboží, které je v něm uloženo. Pokud vznikne kontejner, musí mu být vytvořeno zboží nebo potravina, která je v něm uložena (řešte pomocí dvou konstruktorů). Pokud je kontejner zrušen, musí být zrušen i jeho obsah. Kontejner má metody VratDobuCesty() a VratVahu().
Platí následující: Metoda VratDobuCesty vrací pouze hodnotu doby přepravy, pokud je jedná o zboží. Pokud se jedná o potravinu, vrací délku cesty a délku skladování. Metoda VratVahu vrací váhu kontejneru a váhu nákladu. Pokud potřebujete k nějaké hodnotě v atributu přístup, vytvořte si příslušnou metodu.
Moje řešení:
http://pastebin.com/dgYZGNg1
nevím jak to dodělat ten konec VratDobuCesty() a VratVahu()....
Pardon na to jmeno, nevím jak se mi tam dostalo.... Vložil jsem to sem - zdá se mi to začátečnická otázka a nikde jsem to nenašel...
Jak spátvně napsat dělení?
cps - cena po slevě
zákazník ma slevu v celých číslech (20,30...)
vše je integer
cps = cena*(1-(zakaznik->vratSlevu()/100));
napadlo mě to takto... cps = 10 000 * (1-(20/100)) a vše normálně funguje, jen jak to udělat, aby mi to sežral kompilátor a správně vypočítal? Díky za rady!
Tak ja mam c++ zatim v prvnim semestru, jsem rad ze to vubec funguje... Jak se správně programuje objektově vlastně poradně nevím, vím jak se dělaj nějaky metody a znám pár funkcí a to je vše... Programování vidím poprvé, takže budu rád za kritiku, popřípadě nějaký dobrý odkaz na literaturu....
OK, pokusim se to tedy nějak udělat.... Snad je to poslední příspěvek a už to pošlape.... Díky moc všem za rady
Ono by stačilo cestování pouze 1* ... Chci mít 3 planety, jedna mě hned zabije, na druhé budu mít možnost - prozkoumat - ANO - NE pokud ANO tak se zavola metoda nasel a pak zase by byla možnost odletět pryč... Na té hlavní planetě by byly ty místa, kde kdyz zmáčknu B tak mi to zavolá metodu POTKAL (dosadím si koho) a metodu NASEL (opet nejak dosadim co) a takto prozkoumat cely svet a konec... :(
Dobrý den,
tak jsem tu po delší době a ty předchozí řešení jsou na mou hlavu až moc.... Vymyslel jsem svoje, ale nefunguje, můžete poradit, popřípadě to trochu poupravit??? Děkuji!
#include <iostream>
using namespace std;
class Mista{
private:
string bar;
string hotel;
public:
Mista(){
bar = "Bar u sileny kravy (b)";
hotel = "Hotel ***** (h)";
cout << "Vznikly mista"<<endl;
}
void vypisPopis(){
cout << "Nazev mista: "<< bar <<endl;
cout << "Nazev mista: "<< hotel <<endl;
}
};
class Planeta{
private:
string Jmeno;
Mista* mistaNaPlanete;
public:
Planeta(){
Jmeno = "zeme";
cout << "Vznikla planeta"<<endl;
}
void vypisPopis(){
cout << "Jsi na planete: " << Jmeno <<endl;
cout << "zde muzes jit do: " << endl;
mistaNaPlanete->vypisPopis();
}
};
class nepritel{
public:
int sila;
nepritel(){
sila=10;
cout << "Vznikl nepritel"<<endl;
}
};
class clovek{
public:
int zivot;
clovek(){
zivot=100;
cout << "Vznikl clovek"<<endl;
}
void cestuj(Planeta* planeta){
planeta->vypisPopis();
zacatek:
string x;
switch (x)
{
case 'b' :
cout << potkal(mutant);
break;
case 'h' : potkal(mutant2);
break;
default : cout<<"Jina klavesa, znovu";goto zacatek;
break;
}
}
void boj(nepritel* nep){
zivot = zivot - nep->sila;
}
void potkal(nepritel*nep){
cout << "Potkal jsi nepritele, chces s nim bojovat? (a) ANO - (n) NE"<<endl;
string rozhodnuti;
cin >>rozhodnuti;
if (rozhodnuti == "a"){boj(nep);}else{cout<<"OK tak jdi dal..."<<endl;}
}
};
int main()
{
Planeta* zeme = new Planeta();
Mista* jedna = new Mista();
nepritel* mutant =new nepritel();
nepritel* mutant2 =new nepritel();
clovek* cestovatel = new clovek();
jedna->vypisPopis();
zeme->vypisPopis();
cout << "Bezchybne zkompilovano..." << endl;
return 0;
}
]
@Matrix17: tak jsme na to ve škole s kámošem koukali a nikdo nevěděl jak tam to cestování bude fungovat (c++ máme první semestr) a hlavně jak tam dostat tohle (27.11.2010):
Příkad obsahu planety: Přicestoval jsi na Venuši, můžeš jít do kosmického baru U proražené helmy (klávesa H), do hotelu U natrhlého skafandru (S) nebo na policejní stanici (P). Tvoje volba:
A když bych třeba zmáčkl to H tak by mi to zavolalo nějakou metodu, dvě, které mám ve třídě HRDINA a něco vypsalo...
Nechce se mi sem dávat celý zdroják, protože je to přeci jen projekt ze školy a kdyby to někdo okopíroval, tak to asi nevysvětlím, ale pokud bude mít někdo stejnou část na přemisťování z planet, tak bych si to obhájil jednoduše, že jsem nevěděl, tak jsem potřeboval pomoct a tu jsem našel tady a vysvětlil bych mu co a jak funguje atd., proto to chci taky pochopit, nejen zkopírovat...
@Matrix17: Tak to už je na mě moc.... :-( Nejde to nějak jednodušeji? Nebo nějaký příklad, abych to okoukal? Díky...
Tak mi to pořád nejde, jak to udělat? Pokoušel jsem se to udělat přímo v MAINu a nic... ani pomocí nějakých metod mi to nechce fungovat, jak bych si přál :(...
Poraďte alespoň nějaký způsob jak to bude fungovat, ať vím kde hledat chybu, zda v mém kódu, nebo v myšlence...
pouze textová hra :)
Tak jsem se teď ještě zasekl u posledního problému, v zadání je, že musíme vytvořit několik planet :
Z planety na planetu lze cestovat pomocí hlavního menu hry nebo přímo z určité jiné planety.
Příkad obsahu planety: Přicestoval jsi na Venuši, můžeš jít do kosmického baru U proražené helmy (klávesa H), do hotelu U natrhlého skafandru (S) nebo na policejní stanici (P). Tvoje volba:
Nevím jak tohle udělat, nespíše nějakou třídu PLANETAX, ze které se bude dědit nějaké vlastnosti (spíše bych řekl metody, jediný atribut co by to mohlo mít je leda název) jako je ten CESTOVACI PORTAL, BAR, HOTEL.... a pak ke každé planetě mohu ještě přidat XY míst, kam se dá jít...
Tady však moje uvažování končí... Jak udělat to MENU hry a ten portal, nevím.... A jak pak udělt, že když jdu do baru, tak to vypíše "něco" a vygeneruje to tam nějaký předmět, nebo nepřítele? Nebo to nejde generovat a musím ručně napsat, že na té a té planetě v baru je nepřítel, ve zbrojovce dostane štít atd... ?
OK, to pole se pokusím udělat, pole umím zatím jen v Pascalu...
Další dotaz:
Mám třídu HRDINA a ta má metodu SOUBOJ a tuto POTKAL mohu nějak z metody POTKAL zavolat metodu SOUBOJ?
Díky
Zdravím,
mám do školy projekt a potřebuji generátor náhodných čísel 1-10, ale aby se generátor dal spustit vícekrát a vyřadil již použité číslo...
Použití je pro generování rozhovoru v textové adventuře, aby nebyl pokaždé stejný...
Zatím to mám takto, že to jede rozhovory od 1 do 3.....
void potkal(Nepritel* nepr){
if (nepr->vratIq()) {
int x;
x=x+1;
switch (x)
{
case 1 : cout<<"První rozhovor";break;
case 2 : cout<<"Druhý rozhovor";break;
case 3 : cout<<"Třetí rozhovor";break;
default : cout<<"Nejsi natolik inteligenti, aby jsi alespon trefil spravnou klavesu, jdi radeji hned bojovat!"; metoda boje; break;
}
}else{
cout << "zde bude metoda BOJE" <<endl;}
}
opět mám někde chybu, chjo.... :( Program by měl počítat znaky B v souboru
var
z,poc:real;
f:text;
begin
assign(f,'c:\TP\projekty\test2\text.txt');
reset(f);
while not eof(f) do
begin
read(f, z);
if z = 'b' then poc:=poc+1;
end
Opět hledám chybu... :(
Program by měl z textového souboru načíst data a pak je rozdělit do dvou na muže a ženy.
Soubory M a Z to vytvoří, ale nenaplní je to požadovaným obsahem (muži a ženy)
var jm,pr:string [10];
p,vz,vek:byte;
plat:real;
f,m,z:text;
pru,prum,pocet,mplat,rp,ppz,ppm,plz,plm:real;
begin
assign(f,'c:\TP\projekty\test2\text.txt');
reset(f);
assign(m, 'c:\TP\projekty\test2\m.txt');
rewrite(m);
assign(z, 'c:\TP\projekty\test2\z.txt');
rewrite(z);
while not eof(f) do
begin
readln(f, jm,pr,p,vz,vek,plat);
if (p=0) then begin
writeln(m, jm, pr, ' ',p,' ' ,vz, ' ' ,vek, ' ' ,plat:10:0);
end
else begin
writeln(m, jm, pr, ' ',p,' ' ,vz, ' ' ,vek, ' ' ,plat:10:0);
end;
end;
close(m);
close(z);
end.
text ze souboru:
10 znaků - 10 znaků - 1....
Jan Novak 1 1 39 10000
Pepa Novak 1 2 29 12000
Lojza Novak 1 3 32 22000
Jana Novakova 0 4 39 23000
Petra Novakova 0 1 44 30000
Olina Novakova 0 6 55 66000
OK, pole jsme se neučili ještě.... Děkuji všem za rady! Určitě se tu něco ode mne ještě objeví a když ne Pascal, tak C++ nějak v tom zatím lítám....
To je jedno, jestli to prvně vypíše to a nebo to... tam jde ale jen o prohození řádků ne?
Právě že kdyby stačilo pokaždé popsat jen tu pozici, tak tam vlastně vypíšu hodnotu proměnné PD....
Napadlo mě nějak ty čísla zapisovat do souboru a pak je z něj načíst, ale nevím jak to udělat... :(
@KIIV : ten kod nahore jsem dělal já!
Spíš nechápu tohle: v každém průchodu cyklem se inkrementuje
tak jak přiřadit hodnotu nějaké proměnné vím to je :=
tzn... udělal bych to, že do toho cyklu bych přidal něco jako a přidal další proměnou např CD (číslo dvojice) :
PD - počet dvojic (měl jsem to tam nachystané, ale nevím jak do té proměnné uložit více čísel než jedno)
PD:=PD+1;
a nějak bych změnil podmínku:
if a>b then begin
writeln('A je větší jak B');
CD:=PD // ale vůbec nevím jak to udělat, aby se neustále to CD nepřepisovalo, ale vždy se tam ta hodnota PD přidala
end;
else writeln('A není větší jak B');
tudíž ještě pro přehlednost by nový kód vypadal cca takto:
uses crt;
var a,b,PD,min :integer;
begin
min:=maxint;
PD:=0;
writeln('zadej A');
readln(a);
writeln('zadej B');
readln(b);
while ((a<>0) or (b<>0)) do
begin
PD:=PD+1;
if a>b then begin
writeln('A je větší jak B');
CD:=PD;
end;
else writeln('A není větší jak B');
if b<min then min:=b;
readln(a,b);
end;
writeln('minimální hodnota z B: ' ,min);
writeln('A>B ve dvojicích číslo: ' ,CD );
readln;
end.
Omlouvám se za zmatenost atd. Pascala se učím chviličku (popravdě pár nocí před testem).
Díky za rady!
Díky za radu, ale pořád nevím jak bych to do toho přidal, mohu tě poprosit o ten výsledný kód? Nebo něco co by mě nakoplo?