Jo tak objekty mi docela chybi :D
Momentalne taky pouzivam kod ve stylu zasobniku, ale porad se mi to zda celkem tezkopadne
Jo tak objekty mi docela chybi :D
Momentalne taky pouzivam kod ve stylu zasobniku, ale porad se mi to zda celkem tezkopadne
Zdravím,
měl bych takový dotaz, možná na nějaké profíky v programování, jak řešíte, nebo ostatní v týmu ošetřování chyb při volání všelijakých funkcí ?
Teda zajímá mě to, protože teď řeším jednu úlohu (jazyk C na Linuxu), kde je hromada volání semaforů, mám tam několik procesů atd...
Kdejaká funkce může nečekaně selhat z kdoví jakých příčin... Neměl jsem možnost vidět zdrojáky reálných projektů a tak by mě zajímalo, jestli je třeba ošetřovat vše, nebo jen například volání jen na začátku programu a pokud nedojde k chybě, uvažovat, že další volání již selhat nemůže...
Je mi totiž jasné, že například 100 řádkový kód po ošetření všech možných chyb u systémových volání, může být i 10x delší...
Viz KIIV. Uceni veci nazpamet, jen proto aby mel clovek dobre znamky v testu je k nicemu, pokud i po delsi dobe z toho nic nema.
Z vlastni zkusenosti muzu rict, ze jsem taky vice mene sprt :D, ale misto toho abych jel na ciste Acka, staci klidne i C (jsem ted na vysce - IT). Misto toho abych se perfektne naucil jednu latku, tak ten cas vlozim i do dalsich veci, ktere s tim nejak souvisi a daji ti tak vetsi rozhled a cim vetsi rozhled, tim snadneji se uci nove veci (matika a IT je podle me na tohle idealni, tam jak rikal KIIV tam se ty navaznosti hledaji velice rychle). Navic kdyz pochopis PROC to funguje, vetsinou si to pamatujes uz na furt. Nez jen diky uceni nazpamet. A kdyz budes casem chtit, uz neni problem se na to zamerit a prostudovat to podrobneji.
Moje zkusenost ze stredni je takova, ze se soustredi jen na uzke zamereni z dane latky a ta se znamkuje. Tyto "male jednotlive" casti jsou ti pak vazne po skole k nicemu. Tim padem taky nedostanes ten rozhled jak jsem rikal a ktery je podle me v reseni problemu a podobnych veci zasadni.
Abych to ukoncil, sice nemam ty nejlepsi znamky, ale zatim jsem nenarazil na problem, ktery jsem nebyl schopny vyresit. Ale nekteri mi spoluzaci z gymplu s tim problemy maji a je to pro ne sok, kdyz se misto nazpamet, musi ucit princip. S odstupem casu vypustit zemepis a dejepis apod. na stredni proto beru jako rozhodnuti, ktere vazne litovat nemusim :D. Tot moje srovnani.
Takze pokud te to bavi a chtel bys to jednou delat, jenom do toho :)
Tak se omlouvám za předčasný dotaz, vyřešil jsem to jiným "nářadím". Stáhnul jsem si DJGPP linker, který vypadá že funguje.
Když se po překladu podívám na výsledný kód assembleru, vypadá to, že všechny instrukce jsou tak jak mají být.
Jen nemůžu linker přinutit, aby paměťová místa počítal od adresy 0x1000 (tam kde je můj kernel v paměti). Všechny adresy ve výsledné binárce jsou počítané od místa 0x0000. Neví někdo jak to změnit ?
Díky
Letmo jsem to pročetl, ale nejspíš bude chyba v tom středníku za příkazem for. Zkus tohle:
for (pz = 0; getchar() != EOF; ++pz)
printf("%.0f\n", pz);
Edit: Omlouvam se, ty cisla indexu jsem strelil od oka, samozrejme si je musis prizpusobit tvemu pripadu :)
Zkusil bych to takto (podobne jako ingiraxo, akorat to for_each se mi zda trochu jako raketomet na komara :), tedy jen muj nazor):
char* pole = "++Zdrojak_1++";
for(int a = 9; a < 11; a++)
cout << pole[a];
Ale pokud chces vypsat neco jako to cislo (libovolny retezec) za retezcem "zdrojak_" az do prvniho znaku "+", pridas jen podminku navic:
for(int a = 9; a<11, pole[a]!='+'; a++)
cout << pole[a];
Přiznám se, že nevím jak je to s Dev-c++ teď, ale vzpomínám si, že před pár lety se mluvilo o ukončení podpory pro tento program.
Měl mnoho chyb a konkurenční IDE měli daleko více funkcí.
A s těmi chybami nemyslím žádné maličkosti. Sám jsem narazil na případ, kdy buď špatně kompiloval kód nebo špatně fungoval debugger. To už si nepamatuji. Asi 4 dny jsem jsem strávil laděním a program stále nic ! Zkusil jsem to v MS Visual C++ a Eclipse a ejhle, šlapalo to jak hodinky. Od té doby jsem na DevC++ nesáhl.
Takže pokud jsi začátečník, tak ti také doporučuji ho nepoužívat, což ti umožní soustředit se na programování, než na hledání různých tipů co a jak v něm zprovoznit. nebo obejít. :)
Max frekvenci jsem nasel. Ale nejdrive jsem pouzil 2MHz, to spolu nekomunikovalo vubec. Kdyz jsem nastavil SPI na AVRku na 4MHz, tak to vypada, ze se neco deje, dokazal jsem precist i nektere kontrolni registry toho ENC.
Ale za boha nemuzu precist jakykoliv prijaty ramec. Stale mi to vraci stejny byte s hodnotou 0xfe. Coz byla mimochodem hodnota, kterou to vracelo pri 2MHz, z toho odvozuji, ze je chyba nekde v tom SPI.
Zdar borci,
Nemate nekdo zkusenosti s cipem ENC28J60, coz je cip pro ethernet ? Mam ho pripojeny k Atmega8 pres SPI rozhrani ale pokud ctu data z bufferu, pise mi to porad stejnou hodnotu prave precteneho bytu (Jsem si na 99%jisty ze je chyba v HW).
Mam podezreni ze je chyba v prave v SPI rozhrani. A tak by me zajimalo, jestli nevite jakou frekvenci bych mel nastavit pro spravnou komunikaci. V datasheetu jsem nic konkretniho nenasel. Ale nekde na netu jsem nasel zminku, ze Microchip ma nekde na strankach ma doporucenou nebo minimalni frekvenci, Bohuzel ani tuto stranku v tom jejich zmatku nikde nenasel.
Diky za jakoukoliv radu.
Jaký je přesně typ proměnných stack a graf ? Je to některý z kontejnerů STL knihovny ? A kde jsou alokovány, stack nebo heap ? Pokud jsou na stacku, tak standardně je max velikost asi 1MB, což u složitějších objektů hravě překročíš.
Pokud voláš stack.reserve(x) před stack.push_back, tak podle mě chyba ve funkci A nebude.
USBTinyISP jsem vzdal ... zkusil jsem vyměnit všechny součástky, změnit hodnoty rezistorů a nic.
Ale kdyby měl někdo podobný problém, podařilo se mi rozchodit původní sériový programátor pro Pony-Prog v avrdude a zápis 2kb pro Amega8 trvá zhruba 7 minut. Pořád nic moc rychlost ale pořád lepší jak jak 6-7kb za 40 minut.
Nevím, prý s rychlostí s tím převodníkem má více lidí.
Spoje jsem kontroloval asi 4x a nic jsem nenašel :/, jak přesně bych měl zkontrolovat tu komunikaci ?
Zdarec,
dříve jsem používal Pony-prog k programování procesorů AVR. Teď jsem si ale pořídil notebook a to jsem netušil co mě bude čekat. Má pouze USB porty a Pony-prog tedy nepřichází v úvahu. Zkoušel jsem i USB->RS232 převodník, ale programování trvá cca 40 minut!!!
Tak jsem se rozhodl postavit si USBTinyISP programátor, který má podporovat USB nativně. Postavil jsem to na nepájivé pole, nainstaloval nejnovější ovladače i software (usblib 1.2.1, avrdude 5.10). Mám Win7 a i ten programátor rozeznal a vše OK.
Ale jakmile zkusím přečíst paměť s avrdude, dostanu následující chybu bez i s připojeným mikroprocesorem k programátoru:
avrdude: error: usbtiny_receive: usb_control_msg: sending control message failed, win error: A device attached to the system is not functionning. (expected 4, got -5)
avrdude: AVR device initialized and ready to accept instructions
Reading: : 0% 0.00s
avrdude: error: usbtiny_receive: usb_control_msg: sending control message failed, win error: A device attached to the system is not functionning. (expected 4, got -5)
avrdude: error: usbtiny_receive: usb_control_msg: sending control message failed, win error: A device attached to the system is not functionning. (expected 4, got -5)
Reading: ########### :33% 0.17s
avrdude: error: usbtiny_receive: usb_control_msg: sending control message failed, win error: A device attached to the system is not functionning. (expected 4, got -5)
Reading: ################################# : 100% 0.27s
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connection and try again, or use -F to override this check
avrdude: error: usbtiny_receive: usb_control_msg: sending control message failed, win error: A device attached to the system is not functionning. (expected 4, got -5)
avrdude done. Thank you
Nesetkal se někdo s něčím podobným ? Díky za jakoukoliv radu
jo, na jednom z pinu jsem mel pripojen odpor s LEDkou na zem, ktera se tak rozsvitila. Nejspis je to vazne spalene :{
Ahoj,
Mam problem se spravnou funkci mikroprocesoru Atmel. Nechca jsem prehodil napajeni tak, ze na Vcc i na GND piny jsem pripojil +5V. Mohl se znicit i kdyz mezi Vcc a GND tak bylo stale 0V ??
Po nastavení routeru stále nic. Je možné, aby mi příchozí spojení blokoval poskytovatel internetu ?
Zdarec,
Zajímalo by mě jestli jde nějak nastavit Apache server, abych se mohl připojit ze vzdáleného PC i když mám dynamickou IP adresu. Je mi jasné, že si musím pořád dávat pozor jestli se moje adresa nezměnila, ale o to mi nejde. Svoji venkovní adresu zjišťuji pomocí stránky whatismyip.org, ale pokud tuto adresu zadám do vyhledavače (i když zkusím změnit port serveru a tento port se následně připojit), ohlásí mi to, že stránka nelze nalézt.
Doufám, že můj dotaz je trochu srozumitelný. Je tedy nějaká možnost jak to nastavit ?
Díky za jakoukoliv radu
Což vlastně nic neřeší, jen nahradím jeden řetězec za druhý ...
Tento přístup asi nemá smysl a upustím od toho, ale díky za odpověď :)
Pokud bych sůl posílal k uživateli nejdříve zahashovanou a byla by dostatečně dlouhá - řekněme 128 znaků + speciální znaky atd, zpětné získání soli by již bylo časově náročné nebo ne (rainbow tabulky pro tak dlouhé řetězce musejí být opravdu velké) ? A navíc by pak musel ještě získat samotné heslo. To už by mohlo laťku o něco zvýšit ...
Zdravím,
poslední dobou jsem experimentoval a napsal jsem přihlašovaní script využívající AJAX, který zažádá server o náhodné data, pomocí kterých se vytvoří unikátní hash hodnota z hesla. Ta se následně posílá zpět na server. Tím jsem chtěl eliminovat tu nevýhodu, že standardně se hesla z html formulářů posílají v textové formě a jsou tudíž "viditelné".
Ale o co mi jde. Mezi daty získané ze serveru je mimo jiné i sůl použitá k uložení hash hodnoty hesla do databáze. Sůl je tedy také potencionálně odhalitelná a mě by zajímalo, jak velký je to problém s ohledem na bezpečnost ? Je to pro útočníka stále relativně jednoduché získat originální heslo, když zná hodnotu soli ?
Zdarec,
pokud jste programátor jaká byla vaše první práce ? Popřípadě jak jste ji našli ? Například po škole apod.
Tyhle začátky mi připadají docela krušné...
Cau,
nevite nekdo o nejake licenci pro freeware projekt ? Ale nic jako GPL, abych nemusel sirit zdrojovy kod ? V techle vecech jsem vazne mimo.
Pripadne i o nejakem template, abych nemusel nic sloziteho sepisovat ?
Aha no jasně, už jsem to taky našel :-D, je to ta velikost Stacku, který je ve Visual C++ defaultně nastaven na 1 MB.
Ale pokud použiju pole[i][j], můžu mít M až 23170 (což je poté až 2 GB jestli se nepletu) a program se spustí normálně. Takže tam asi vzhledem k provádění kódu na pořadí indexu záleží... :smile13:
Ale dík, i tak je mi to trochu jasnější
Jasně, to mě také napadlo. Ale jaký je tedy limit velikosti pole pro staticky deklarované pole ?
A proč mi to v příkladu výše pracuje správně jen s tím jedním pořadím indexů ??
Zdravím,
právě čtu jednu knihu a narazil jsem na příklad kódu v souvislosti s přístupem do paměti. No a tak jsem se to rozhodl všelijak vyzkoušet a mám následující kód:
#include <iostream>
#define M 512
int main()
{
int i, j;
int pole[M][M];
for( i=0; i<M; ++i )
for( j=0; j<M; ++j )
pole[j][i] = 25;
system("pause");
return 0;
}
Zdarec,
a co to je presne za ulohu ?
Ještě mě například ze začátku pomáhali tyto stránky:
http://www.cplusplus.com/doc/tutorial/introduction/
nebo z těch v češtině:
http://www.sallyx.org/sally/c/
Na žádnou knihu pro začátečníky si zrovna nevzpomínám, ale pokud si C++ aspoň trošičku osaháte a nevadí vám angličtina, výborná kniha je Professional C++ (autoři: Nicholas A. Solter, Scott J. Klepper). Syntaxí jazyka apod. se zabývá jen okrajově, ale na internetu se dá najít plno tutoriálů na dané témata. Druhá část knihy je pak zaměřena více na strukturu kódu, objektové programování a jiných pokročilých částí jazyka C++.
Co jsem posledně viděl, tak DevC++ je již poměrně zastaralý a jeho vývoj už neprobíhá. Taky obsahuje některé bugy.
Pokud začínáš bude lepší ten VS, nebo CodeBlocks. Ten si ale nejspíš budeš muset nějakým způsobem nastavit.
Jaj, omlouvám se. Const int v tomto případě nejspíše opravdu nepomůže. Ale chvíli jsem si s tím hrál a pokud deklarujete proměnnou jako obyčejný int, tak MS Visual C++ to v tomto případě vyoptimalizuje tak, že za tuto proměnnou dosadí přímo hodnotu. Tedy jako by jste použil následující:
#define MaxPocetMist 4
Zdravim,
sice to nejspíše není odpověď přímo na váš dotaz a v C už jsem chvíli nedělal, ale první co mě zaráží je tento kousek kódu:
int MaxPocetMist=4;
...
char TestovaciRetezec[MaxPocetMist];
No, hlavni program obsahuje vlastne jen nekonecnou smycku, kde se ceka na data.
Nakonec to opravdu zpusobuje ten registr. Ale funguje to pokud pouzivam GIFR. I kdyz sam datasheet, rika ze je to EIFR. Zajimave.
Jinak dik, uz to funguje jak ma
Zdravim,
posledni dobou si hraji s attiny2313, a zkousim si naprogramovat vlastni jednoduchy seriovy prenos mezi dvema mikrokontrolery.
Pro prijem pouzivam INT1 externi preruseni. Vypada to zhruba tak, ze zmenou logicke urovne se zavola obsluha preruseni a po predem danych casovych intervalech se odebiraji vzorky na tomto pinu. Postupne je tak sestaven cely prijimany Byte.
Jenze toto preruseni se vola 2x za sebou, i kdyz zadna zmena logicke urovne na tomto pinu nenastala.
Zde je vetsina kodu:
;##### INT1 interrupt routine ########################
INT1_routine:
rcall wait_20ms ;Sycn with transmitter
ldi code, 0b00000001 ;start-bit
ldi loop, 0x07
ldi R25, 0b00000001 ; and make another zero
while:
rcall wait_50ms ;wait for another bit
lsl code ;shift code byte
in temp, PIND
lsr temp ;Our bit is on 4th position
lsr temp ; shift it to 1st
lsr temp
and temp, R25 ; by logical AND
add code, temp ;adding bit to code from the righ
dec loop ;Do the same for rest of the bits
cpi loop, 0
brne while
out PORTB, code ;Light LED diodes on PORTB
rcall wait_1sec ;Wait one second
ldi temp, 0xff ;and turn off the LED dispaly
out PORTB, temp ;before new number can be received
reti ;Jump out of interrupt
;and wait for another transmission
;====================================================
; ===== Wait for interrupt/transmission ============
wait:
rjmp wait
Jo, co je MUX/DMUX chápu, ale nevím k čemu je dobrý v těch převodnících...
Zdravím,
mám do číslicovky v rámci maturitní otázky vysvětlit použití multiplexerů (popřípadě demultiplexerů, z popisu tomu nerozumím :/) v A/D převodnících. Nevíte někdo k čemu tak slouží ?
Díky
Dobrý den,
kdysi dávno jsem narazil na jednu funkci, jde něco o sinus - ale kolem nuly je maximálně zhuštěná a směrem od nuly se její frekvence postupně zmenšuje. Nevíte někdo co to je zač ?
V poznámkách to nemůžu dohledat, budu vděčný za jakoukoliv pomoc :-D, díky
No jasně :smile1:
Díky
Zdravím,
Mohl by mi někdo ukázat jak spočítat tento příklad? :smile11:
Otázka zní:
Zaměstnanci jsou rozděleni do dvou skupin. První skupina má průměrný měsíční plat 45 000 Kč, druhá 30 000 Kč. Průměrný plat všech zaměstnanců je 32 400.
Kolik procent zaměstnanců je zařazeno do druhé skupiny ?
Napadlo mě to spočítat pomocí váženého průměru, ale pořád mi vychází jedna rovnice o dvou neznámých :smile11:
Díky za jakékoliv postrčení :smile1:
Zdravim,
chtel bych se zeptat jak presne funguji sockety ? Jde o to, ze programuji jednoduchy chatovaci program (pouzivam jednoduche blokovaci sockety, nebo jak se jim rika).
Jedna aplikace je server a druha klient. Pokud otevru obe aplikace, vse funguje jak ma, muzu posilat zpravy atd. Problem nastane pokud zavru klienta. Pokud ho znova otevru, jiz se k serveru nepripoji.
Jde mi vlastne o to, pokud zavru klienta, abych take nemusel restartovat server.
Tady je kousek pseudokodu ze zdrojaku serveru:
//Inicializace WSA...
SOCKET Socket;
while(true)
{
// Vytvoreni socketu pomoci funkce socket
SOCKADDR_IN SockAddr;
// Nastaveni struktury SockAddr
// Bind socketu na port a zavolani funkce listen(...)
// Nejaky dalsi kod, posilani zprav atd
// Klient poslal zpravu, ze byl ukoncen:
cout << "Pockat na dalsi pripojeni nebo ukoncit program ? (y/n)" << endl;
char ans[2];
cin.getline(ans, 2);
if(strcmp(ans, "y")) // pokud ano, opakovat smycku while(true)
break;
closesocket(Socket);
}
Zdravím,
nedávno jsem studoval spojitost a nespojitost funkce trochu blíže.
Mám tady definici kdy je funkce spojitá:
lim (x-> a) f(x) = f(a)
f(x)={2x+3, x>=0
-2x +3, x<0
Podíl komplexních čísel. V tom případě, pokud vydělím dva vektory jako komplexní čísla a výsledek je reálné číslo, měla by platit kolinearita nebo ne ?
Tím odpadá problém s vektory
A = [ 0, 3 ]
B = [ 0, 15 ]
Chápu, že pokud je poměr všech komponentů vektorů stejný jsou kolineární. Spíš mi jde o tuto rovnici s tím podílem vektorů
k=a/b
Zdravím,
ve škole se nám učitelka snažila vysvětlit kolineárnost dvou vektorů. Vzorec je jednoduchý
a=k*b
kde a, b jsou 2D vektory a k je reálné číslo. Tím pádem musí logicky platit:
k = a1/b1 = a2/b2
k=a/b
Zdravim,
snazim se zobrazit ve statickem prvku s SS_BITMAP vlastnosti bitmapu. Tuto mam nahranou ve zdrojich a pomoci tohoto kodu se snazim bitmapu zobrazit:
HBITMAP hBitmap = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BITMAP1));
SendDlgItemMessage(hwnd, IDP_PICTURE, STM_SETIMAGE, IMAGE_BITMAP, LPARAM(hBitmap));
Zdravim,
potreboval bych poradit pri reseni kolize dvou kruznic. Porad nejak nemuzu prijit na uhel odrazu. Od ceho se odvozuje uhel dopadu a odrazu ?. Pomyslna usecka dopadu je rovna usecce kolme k teto usecce od stredu ke stredu, spravne ?
Takze uhel dopadu je mezi vektorem pohybu kruznice a teto usecce. Je to tak ?
Tzn. ze pokud mam 2 kruznice o polomeru 50, a jedna ma vektor pohybu a=[0, 2] a druha b=[0, -2] a jejich umisteni na pozici Y 0 a 25, tak ze usecka od stredu kruznic svira k ose X 45°, jejich odraz by mel byt takovy, ze jedna kruznice se bude pohybovat nahoru a druha dolu ?
Dekuji aspon za maly naznak co mam spatne, protoze takto mi to v simulaci nefunguje a moje geometricke znalosti taky nejsou velke... :-(
To novacik : JJ tak to presne funkguje
Bool je typ promenne, ktera muze nabyvat pouze dvou stavu. Bud 1 nebo 0 (true, false). V tvem kodu prochazis smycku 'for' porad dokola a nakonci se kontrolue jestli je tvoje promenna 'konec' je 0 nebo 1. A vypada to, ze nejdrive mas nejakou nabidku funkci, ktere se maji provest, vyberes ukol a program to provede. Spravne ? no a pokud zadas, ze to chces ukoncit, nastavi se tvoje promenna 'konec' na true, tim padem se podminka v 'if' bude pravdiva a program vyskoci ze smycky. Nevim jestli jsem to napsal nejak pochopitelne ..
Co se tyce pouziti Bool - Moznosti je opravdu hodne. Hodi se napriklad pro indikaci jestli se neco v programu provedlo, nebo prave v techto smyckach co mas, kde se kontroluje nejaka udalost nez se muze pokracovat v programu dal atd ...
Jo diky moc. Jeste se zeptam, pokud bych mel, ale spustene pouze jednovlaknove aplikace, OS kazdou priradi do jineho jadra, takze porad dojde k nejakemu celkovemu zrychleni, nez pokud bych mel pouze jednojadrovy procesor, spravne ?
Zdravim,
nevim jestli je tento dotaz uplne vhodny do teto kategorie, ale nevedel jsem kam ho jinam umistit.
Mam otazku ohledne programovani pro vice jadrove systemy. Pokud mam napriklad vice jadrovy procesor, OS bere kazde jadro jako jeden procesor (zjednodusene receno), spravne ? A z C++ vim, ze lze v ramci aplikace vytvorit vice vlaken. Temto OS automaticky prirazuje procesorovy cas, a pokud to OS podporuje, sam i priradi ve kterem jadre vlakno nebo program spusti. Takze ja jako programator se nemuzu postarat, ve kterem jadre aplikace pobezi. Chapu to spravne ?
Ve skole nam ucitel tvrdil, dnesni aplikace nedokazi vyuzit kapacitu vicejadrovych procesoru. Myslel to v tom duchu, ze ja jako programator aplikace se musim postarat sam, aby aplikace bezeli na vice jadrech.
Pripada mi to cele zmatene, tak jestli mi to muze nekdo jednoduse vysvetlit bude velice vdecny :-), Diky
No to je ono, prave ze nekdy je tech informaci opravdu hodne a kdyz tomu clovek jeste moc nerozumi ...
to KIIV: Diky moc za odkaz...
Zdravim,
nedavno jsem zacal s assemblerem 8051. A chtel bych si zkusit nejake zapojeni s ATtiny2313 co mam doma. Ale chtel jsem se zeptat ohledne instrukcni sady pro tento jednocip. V datasheetu nejsou popsany napr. instrukce call a jmp (misto toho je tam rcall, rjmp, ijmp), nebo nejake "exoticke" instrukce jako breq, cp, cpi... Ale tyto intrukce muj program, ktery pouzivam, nedokaze prelozit a hlasi neznama instrukce. Jsou to nejake specificke instrukce pro dany jednocip a je na to potreba specialni prekladac a nebude problem s kompatibilitou kodu napsanym v 8051 ? Nebo jsem to zase pochopil nejak uplne jinak ? V tomhle docela plavu, takze predem diky za jakekoliv voditko
Rekl bych, ze zalezi na jednotlivci. Napriklad co napisu v C++ za 5 minut, to v Pascalu pisu nejmin pul hodiny a to kvuli podle me neprehledne syntaxi. Napriklad cyklu apod. Same dvojtecky, begin, end, jednou to strednik po me chce, jindy krici, ze tam byt nema ... Podle me prilis tezkopadne. Podle me neni spatny ten Python. Jednoduchy a elegantni co se tyce pochopeni algoritmu a nepotrebuje hlubsi znalosti napr. prace s pameti jako v C++.
Zdravim,
prave jako samouk zacinam s mikrokontrolerem ATtiny, a potreboval bych vedet jak presne se daji programovat... vsude je dost clanku o nejakych ISP programatorech a podobne, ale po pravde vubec nevim co to znamena ...
Nasel jsem schema zapojeni jak si vlastni programator vyrobit: http://narrow.ic.cz/index.php?typ=cl&id=26&nazev=atmel
Ale nejsem si jisty jestli to chapu dobre, bude mi to fungovat tak jak to je, a obvod naprogramuje kontroler, ktery je na schematu ? Nebo je ke schematu potreba jeste neco dalsiho ?
Predem diky za jakoukoliv napovedu, uz si nevim rady ... :-(
Zdravim,
potreboval bych poradit se zapisem cisla ve formatu Int do souboru. Podarilo se mi vygooglit tento kod:
unsigned int num = 2560;
stream.write((char *)&num, sizeof(num));
Tak uz sem na to prisel, no nedela to primo parametr, ale aktualni slozka se zmeni pri spatne nastavenem zastupci, nebo jak muj program vyuziva -Otevrit soubor v programu- v exploreru, nastavi se slozka souboru ne samotneho programu... :-
Ahoj,
potreboval bych poradit jak funguje otevirani soubor pomoci ifstream. Pokud zadam klasicky
ifstream soubor("soubor.txt");
Zdravím,
zrovna zkouším jak v c++ pracujou pointery a narazil jsem na něco co mě docela zmátlo. Mám kod:
char* text = "ahoj";
char* j = text;
cout << text << " ---- " << j << endl;
text= "nazdar";
cout << text << " ---- " << j;
Zkus se nejdrive podivat, jake parametry ma funkce DialogBox. Podle tveho prispevku sice nevim, jak to mas v odu presne vymyslene, ale vypada to, ze v tom je zmatek, http://msdn.microsoft.com/en-us/library/ms645452(VS.85).aspx
Ve zkratce prvni parametr je HINSTANCE handle tvoji aplikace, potom MAKEINTRESOURCE(IDD_DIALOG1), treti parametr je HWND handle rodicovskeho okna, a treti je procedura zprav pro dialog.
Nevim jestli existuje lepsi zpusob, ale tak me napadlo, zkopirovat si nekam zbytek souboru za prvnim radkem, potom presunout kurzor, zapsat co chces, a potom znova zapsat data, ktere sis zkopiroval ...
Zdravím, mám jednoduchou aplikaci, která používá dialog vytvořený pomocí funkce DialogBox(...). Je nějak možné, aby tento dialog zpracovával klávesové zkratky vytvořené pomocí LoadAccelerators ze zdrojů, popřípadě jak na to ? už to hledám skoro hodinu a nemůžu nic pořádného najít ?1
Díky
Zdravim,
snazim se vytvorit neco jako simulaci jizdy autem v realnem provozu, ale nejsem si jisty jak je to s krizovatkami se semafory. Presneji tehdy, pokud je vice pruhu v jednom smeru a nad kazdym pruhem je semafor. Napriklad pokud mam 3 pruhy a na krizovatce zastavim v prostrednim tak, ze stojim na hranici krizovatky a nevidim na semafor nad sebou. Ktery semafor potom mam sledovat ? Vlevo nebo v pravo u silnice ?
Diky
Ty hvezdicky jsou pointery ... strucne asi tak, ze vlastne nevolas hodnotu promene pozice[y], ale vlastne hodnotu, ktera je ulozena na adrese v pameti v teto promenne. Takze prakticky potom pristupujes k pameti, ke ktere tvuj program nema pristup. Proto to Windows shodi ...
Linker je dodávaný s CodeBlocks - MingW. Jinak jsem to kompiloval do BIN formátu bez nějakých knihoven apod ...
Spousta zajímavých článků, ale teď mám pro změnu problém s překladem (konkrétně jsem čerpal z tutoriálu http://osdever.net/tutorials/basickernel.php). Mám dva zdrojové soubory. Oba zvlášť přeložím do objektového souboru a když se snažím pomocí linkeru vytvořit výsledný spustitelný binární soubor, linker mi hlásí chybu:"file not recognized: File format not recognized". Na internetu jsem našel, že prý linker bere soubory podle přípony, ale už jsem zkoušel ledacos a pořád nic :-(
Díky moc, pročtu si to a uvidím ...
Zdravím,
potřebuji napsat program, který bude běžet bez OS - program bootuji z diskety. Boot loader mám napsaný v ASM, a chtěl bych se zeptat jak mám další kód v C/C++ vytvořit nebo zkompilovat tak, aby běžel bez OS ? Popřípadně nějaké odkazy na tutoriály. Používám Visual C++ Express Edition. Nevím jestli hledám špatně, ale nemůžu nic kloubného najít.
Předem díky
Zdravim,
Rad bych se zeptal co je presne ten router a Access Point ... Jde mi o to ze mam doma pripojeni k internetu pres antenu, z te jde kabel do nejake dalsi krabicky, nevim co to presne je, jen ze ma integrovany switch ci co, a z toho jdou 3 kabely do PC. Jeden bych rad zrusil a misto neho dal wifi pro Notebook. Jen teda nevim, co presne koupit ...
To KIIV : A jo takhle, tak to jsem měl celý algoritmus ze začátku špatně ... zkusím to podle tebe a uvidím ...
No přiznám se, že jsem to moc nepochopil ... tento postup počítá s tím, že bludiště je rozdělené na stejně velké čtverce tak, že celé bludiště je nějakám způsobem souměrné, nebo ne ?
Zdravím,
potřeboval bych zjistit nejkratší cestu mezi dvěma body. Jde vlastně o to, že chci naprogramovat jednoduchou aplikaci, ve které mám mapu naší malé obce a na ní vyznačené hlavní budovy (Pošta, obchod ...). Když vyberu libovolné dva objekty, chci nějak vypočítat nejkratší cestu mezi nimi. Zkoušel sem to tak, že sem označil "záchytné" body na mapě - objekty, rohy ulic ... A zkoušel jsem aplikovat Djikstrův algoritmus, ale jestli jsem ho nepochopil špatně, tak v základu počítá něco jiného než potřebuji. Nevěděl by někdo o nějakém algoritmu co by se dal použít ? Jde jen o jednoduchý výpočet nejkratší cesty mezi dvéma body ..
To dannyk : Ale jak na to ... možná jsem uvedený kod nepochopil správně, ale tady se hodnoty sloupců zadávají postupně v cyklu ... OK, ale tím právě problém s seřazením nijak nevyřeším ...
Zdravím,
používám v aplikaci ListView prvek, který má dva sloupce. U tohoto prvku mám styl LVS_SORTASCENDING takže se hodnoty automaticky seřazují podle abecedy. A v tom je problém. Když se snažím přidat nový řádek, přidám na konec novou hodnotu do prvního sloupce. Potom, když chci k této nové hodnotě přidat hodnotu do druhého sloupce, ten první se automaticky srovná podle abecedy a index již neplatí. Jestli jsem to teda vysvětlil správně, Nevěděl by někdo jak na to ? nebo nějaký tutoriál na internetu o ListView prvku ? nikde jsem nic kloubného nenašel ...
Zdravím,
Zrovna tu řeším jeden problém a nevím jak na to. Mám soustavu repráků, které jsou zapojeny seriově a nekteré paralelně. Je jich celkem 12 a potřebuju zjistit jaký výkon nebo příkon nebo co to je, celá soustava dokáže zpracovat, tak abych věděl jak moc silný zesilovač můžu připojit. De to vůbec nějak spočítat nebo se to měří ??
Zdravím,
Je možné nějak v c++ zapisovat a číst např. 4byty naráz, místo obyčejnou char - což je 1b ??
Potřebuji pracovat s hodnoutou Int, ale pokaždé, když ji chci zapsat do souboru, zapíše se toto číslo jako sekvence znaků ...
No nejsem v tomhle zrovna expert, ale nejlepší bude asi AMS v kombinaci s C.
ASM proto, protože potřebuješ napsat program do MasterBoot disku (HDD, disketa). A pokud vím, tak tohle v jiném jazyku napsat nejde... a tvůj program již můžeš mít prakticky v čem chceš.
O tom zaváděcím programu zkus google, je tam hodně tutoriálů jak si napsat pár takových programů a dokonce mini operačních systémů ...
To joe : Nějak podvědomě jsem to použil, protože char je velká jen 1B oproti jiným. :smile14: A dále tyto proměnné používám při zápisu do souboru - kdy se zapíšou jako byte a ne jako číslo (např. při int ...).
Ale po poravdě, jak je to s tou rychlostí netuším, to se klidně nechám poučit :smile1:
A jenom tak mimochodem, kdyby to někoho nakonec zajímalo, Visual C++ 2008 Express opravdu implicitně definuje char jako signed char. Ačkoliv ostatní programy mi to bralo jako unsigned char :smile14:
To KIIV : :-D tak tohle jsem si vůbec neuvědomil, děkuji za radu, už to funguje jak má
To KIIV : No pokud zadám proměnnou typu char, tak by se měla implicitně zadat jako unsigned char ne ? Teda aspoň mě to tak vždy fungovalo ... No podmínku mám a < 256, takže až 255 ... Pokud tam bude 256, podmínka již bude nepravdivá ...
Jo sakra, pardon místo b tam má být samozřejmě a ...
No pokud tuto podmínku umažu, všechno se vykoná napsrosto správně ...
Zdravím lidi, mám následující problém. Mám funkci a v ní "prázdnou" smyčku. Ale vždy, když má dojít k její spuštění, program se prostě zasekne a nic se neděje ... Už si s tím vůbec nevím rady ... :smile10:
void MakeTable(char heslo[])
{
char delka_hesla = strlen(heslo);
char new_size = 0;
char akt_znak = 0;
bool flag = 0;
// Nakopíruje znaky z 'hesla' do 'Table' bez opakujících se znaků:
//Postupně projede 'Table' (pouze bunky do velikosti hesla)
for(char a = 0; a < delka_hesla; a++)
{
//Postupně projede předcházející znaky v tabulce,
//a zjistí jestli další přidávaný znakjiž není obsažen
for(char j = 0; j<a; j++)
{
// Pokud ano, skočí na další znak v hesle a znovu porovnává
// s již zapsanými znaky do proměnné 'Table'
if(Table[j] == heslo[akt_znak])
{
akt_znak++;
// Pokud, ale další index již přesahuje proměnnou, vyskočí ven
// (již nezbývají další znaky k zapsání)
if(akt_znak >= delka_hesla-1)
{
flag=1;
break;
}
j=-1; // Zajistí nové opakování smyčky
}//if
}//for
if(flag) break; // Vyskočí, pokud již není další znak k dispozici
Table[a] = heslo[akt_znak];
new_size++; // přičte 1 k délce proměnné 'Table'
akt_znak++;
}//for(basic)
for(char a = new_size; b < 256; b++)
{
// Smyška, která zajišťuje pád programu
}
ofstream write("soubor.txt");
write << Table;
write.close();
}
Nejsem si jistý, ale mám pocit že Gimp podporuje pouze RGB model.
Zdravím, asi su úplně slepý nebo už vážně nevím. Stáhnul jsem si noGimp verzi 2.6.4 a nikde tam nemůžu najít ten dialog s uspořádáním vrstev jako jsem měl ve starších verzích ?! Tak by mě zajímalo, jestli to tato verze ještě má popř. kde to najít ... Předem díky
Používám Win XP, ale virus nemám v žádném případě ... No a jinak z těch ovládacích panelech nejde vypnout, jen částečně. Systém mám po formátu a nové instalace a pokaždé když se snažím otevřít nějaký soubor, tak mi prostě spadne průzkumník ...
No kdybych tu deb****í simulaci operačního systému nepotřeboval, taky už by mi tam dávno běžel Linux :-(
Nejde tato utilita nebo co ¨vlastně je nějak vynpout/odinstalovat ??? Už mě to tak nějak sere jak mi to pořád vypína aplikace, nebo obyčejného průzkumníka... Nevím vůbec k čemu je to dobré, když to takto furt něco vypíná. Předem dík za jakoukoliv radu
No zkus poslat aj kus toho zdrojáku kde se ti ta chyba zobrazuje ...
Zkoušel jsem 3 různá CD, ale i po zformátování HDD dokonce i po jeho výměně na nový nelze nainstalovat ? Nemůže to být i vadná zákl. deska ? To se mi, ale zdá hodně nepravděpodobné, protože při použivání Linuxu vše běží, aspoň jsem nezjistil žádný problém ...
Nj, mě jenom zajímalo jestli to nejde vyřešit nějak jinak, abych takto po každé nemusel instalovat Linux ?
No jde o to, že s Windows nemůžeš naformátovat disk na kterém to Win běží a při snaze naformátovat to s zotho Boot disku se to k formátování ani nedostanu ... jenom to restne komp ...
Zdarec,
potřeboval bych poradit, mám na svém PC Win XP, ale kompletně zavirovaný :-), a potřeboval bych ho reinstalovat. Problém je ale ten, že když nabootuju z CD - po nahrání ovladačů atd. - se mi PC restartuje (ještě než dojde vůbec k samotné instalaci nebo zobrazení nějakého menu). Paměti jsem odzkoušel, HDD ... všechno OK.
Při tom na tom samém PC např. Linux mi to nainstaluje v pořádku a lze normálně používat. Neví někdo proč mi to nechce ten Windows rozběhnout ?
Tak už jsem to vyřešil. Jelikož jsem měl v projektu zapnuté UNICODE, stačilo použít funkci WideCharToMultiByte.
Aha, no já jsem to vyřešil pomocí system(), ale mám název aplikace ke spuštění v proměnné TCHAR[20] app a když zadám system(app), kompilátor mi vyhodí chybu, že nelze konvertovat TCHAR[20] na const char*, ¨no nevím si s tím rady ...
Zdravím,
potřeboval bych spustit v programu externí .exe soubor, počkat až se program ukončí a poté zkontrolovat jeho návratovou hodnotu. Nevíte někdo jak na to ?
Eh, no moje programátorské zkušenosti nejsou zrovna největší, tak by mě zajímalo jak podle velikosti souboru poznám jestli je soubor binární nebo ne ?
Pozn. program by měl takto umět zakodovat a dekodovat jakykoliv typ souboru.
Aha, ale ještě mám jednu otázku. Vlastně se snažím napsat program, který bude fungovat něco jako velmi jednoduchý šifrovač. Prostě přečtě znak a odečte např. dvojku a zapíše (a při dekodování se zase ke znaku přičtě dvojka). Problém ale nastane, když se snažím otevřít binární soubor (např. exe soubor). Čtení souboru se pak ukončí dřív než by mělo.
To se dá odstranit když tuto podmínku vypustím. Tím pádem se ale zase zapisuje onen nesmyslý znak v obyčejném ASCII soubor jako je txt.
Není nějaké řešení jak ošetřit tuto situaci ?
dík
Aha, takže to znamená že je na konci ještě nějaký dodatečný znak co označuje konec souboru ?
Zdravím,
mám takový problém, který pořád nemůžu vyřešit. Snažím se napsat program, který čte znak po znaku ze souboru a tyto znaky postupně zapisuje do druhého výstupního souboru. Znaky ůspěšně zapíše tak jak má, jenom to nakonec souboru zapíše jeden nesmyslný znak navíc. Např. mám ve vstupním souboru text "Dobry den" ale ve výstupním souboru se mi nakonci např. " Dobry den' ". (Uvozovka nahoře)
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
ifstream read("input.txt");
ofstream write("output.txt");
if (!read) {
cerr << "Nelze otevrit souboru pro cteni" << endl;
exit(1);
}else if(!write) {
cerr << "Nelze otevrit soubor pro zapis" << endl;
exit(1);
}
while(read)
{
char znak;
znak = read.get();
write << znak;
}
read.close();
write.close();
cout << "writing done!\nPress Enter to quit ..." << endl;
system("PAUSE");
return 0;
}