Anonymní profil Marcus Aurelius – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Marcus Aurelius – Programujte.comAnonymní profil Marcus Aurelius – Programujte.com

 

Příspěvky odeslané z IP adresy 95.82.185.–

Java › Rada s úkolem k zápočtu
29. 10. 2014   #195377

Jestli chceš mít jednou magisterský titul, tak to prostě musíš zvládnout sám. Hlavně se snaž. Sežeň si kvalitní doučování, nebo pozvi kámoše na pivko do hospody, který ti to vysvětlí a pomůže ti s danou problematikou.

Mikrokontroléry › kompilace kódu v Atmel Studi…
20. 3. 2014   #188478

Ahoj,

jasně, máš pravdu. Trošku jsem to překombinoval. Děkuji za upozornění.

Dle mého ale na tebe bude char logo[] řvát. Není tam dimenze.

Mikrokontroléry › kompilace kódu v Atmel Studi…
20. 3. 2014   #188476

Zdravím,

1) máme tam hlavičkový soubor <avr/pgmspace.h>?

2) chybný zápis

- máme dvojí základní zápis toho, buď tam budeme mít hvězdičku (ukazatel), tedy
char * logo PROGMEM = {}

- nebo musíme určit přesný počet prvků bez hvězdičky (ukazatele) tedy
char logo[10] PROGMEM = {}

3) s největší pravděpodobností chybí const (píše se na začátek), tak jak píše překladač

Jo a jenom dodám, že lepší je použití unsigned char.
 

.NET › multithreading
8. 3. 2014   #187977

UTFG

MySQL › Jak pomocí PHP zobrazit obsa…
28. 2. 2014   #187782

Zdravím,

vždyť je jedno, kde se to vypisuje - kde to běží.

Pokud to běží na localhostu, tak to poběží i na ostrém serveru. Jediný rozdíl bude v připojení k databázi. Samozřejmě také musíme databázi na ostrém serveru založit/vytvořit, tak jak to máme na localhostu. Pak už stačí zkontrolovat, jestli data na ostrém databázovém serveru máme, tudíž zda-li se má co vypisovat.

PHP › Zmena URL adresy pri zmene o…
19. 2. 2014   #187524

Zdravím,

URL můžeme změnit dvěmi způsoby (bez refreshe a s refreshem). My potřebujeme pouze první způsob.

bez refreshe - všechno tedy zpracujeme na úrovni Javascriptu/Ajax, používáme # (hashtag)

document.location.hash = "about";

window.onhashchange = function() { 
	var myhash = document.location.hash; 
	if (myhash == "#about") about(); 
}
C / C++ › Problém s vlastním alokátorem
12. 2. 2014   #187367

Zdravím,

snaží se ti zde poradit největší bouráci (vitamin a hlucheucho) z problematiky vývoje tady na serveru programujte.com a spíše mám takový pocit, že se neumíš dobře postavit k problému. Mimochodem přenositelnost překladačů je velmi známý pojem. Až se vyřeší u tebe ta přenositelnost, tedy půjde to nahodit, tak máš vyhráno. Jiný problém doposud nevidím.

.NET › [C#] Refresh() / Zavření akt…
10. 2. 2014   #187296

Ano, takto jak to teď máme, tak se může opravdu zapříčinit to, že poběží na pozadí x formulářů (objektů) - což je fail pro paměť a aplikace by brzy zkolabovala - což nechceme.

My tedy chceme a potřebujeme, aby se nám držely dvě instance a to je celé. Není to příliš složité, jak jsem poznamenal, tak teď těch instancí může být x a to z toho důvodu, že voláme operátor new (vytvoření nové instance - formuláře) v té události Click (to tedy ideální není). Nám stačí si ukládat (vytvořit) ten odkaz (FormHraPrepnuti a FormMenuPrepnuti) třeba v konstruktoru a máme vystaráno. Pro ukázku:

public class MojeHerniTrida
{
    protected FormHra FormHraPrepnuti;

    public MojeHerniTrida()
    {
        FormHraPrepnuti = new FormHra();
    }
}

Rozumíme si?

 

.NET › [C#] Refresh() / Zavření akt…
9. 2. 2014   #187261

#3 laky941
1] Je úplně jedno, kam se to napíše.

2] Co je myšleno pod pojmem nahradí?

.NET › [C#] Refresh() / Zavření akt…
9. 2. 2014   #187249
CSS › Dva "stejné" parametry v div
8. 2. 2014   #187224

Zdravím,

pokud správně rozumím problému, tak se to dá opodmínkovat třeba v php:

<?php if (index) { ?>
	<link rel="stylesheet" href="css/style.css" type="text/css">
<?php } elseif (stranka) { ?>
	<link rel="stylesheet" href="css/stranka.css" type="text/css">
<?php } ?>

Já osobně tohle nikde neřeším, ale pokud to funguje tak jak má, tak to nech a nepředělávej to do té hrůzy, kterou jsem poslal.

C / C++ › Třídění struktury
14. 12. 2013   #185241

Kdyby byl další nějaký problém, tak stačí napsat do tohoto vlákna, nebo označ odpověď, která ti pomohla a toto vlákno uzamčeme jako úspěšné.

C / C++ › Třídění struktury
13. 12. 2013   #185229

Zdravím,

nešel jsem na pivko, tak jsem ti teď udělal celý program i s tím výpisem. Stačí prostě a jistě v tom Bubble sortu na začátku porovnávat ty číselné hodnoty té dané struktury (tedy čísla, ne řetězce) a pak se prohodí již celé ty struktury.

#include <iostream>
using namespace std;

struct Porucha 
{
       string zacatek;
       string konec;
       string poznamka;
};

int casNaMinuty(string retezec) {
    int h, m;
    sscanf(retezec.c_str(), "%d:%d", &h, &m);
    int minuty = (h * 60) + m;
    return minuty;
}

void seraditDleCasu(Porucha * p, int velikostPole) {
     bool seradit = true;
     while (seradit) {
           seradit = false;
           for (int i = 0; i < (velikostPole - 1); i++) {
               if ( casNaMinuty((*(p + i)).zacatek) > casNaMinuty((*(p + i + 1)).zacatek) ) {
                    seradit = true;
                    Porucha temp = (*(p + i));
                    (*(p + i)) = (*(p + i + 1));
                    (*(p + i + 1)) = temp;
               }
           }
     }
     return;
}

void vypsat(Porucha * p, int velikostPole) {
     for (int i = 0; i < (velikostPole); i++) {
         cout <<
         "start: " << (*(p+i)).zacatek << ", konec: " << (*(p+i)).konec << ", pozn.: " << (*(p+i)).poznamka << endl;
     }
}

int main(int argc, char *argv[]) {
    Porucha struktury[4] = {
            {"13:08", "13:55", "oprava 1"},
            {"11:59", "14:59", "oprava 2"},
            {"22:00", "23:00", "oprava 3"},
            {"08:02", "09:20", "oprava 4"}
    };
    
    seraditDleCasu(struktury, 4);
    vypsat(struktury, 4);    
    system("PAUSE");
    return EXIT_SUCCESS;
}
PHP › Integrace PayPal brány
4. 10. 2013   #181940

To vůbec, jsme tu od toho, abysme pomáhali -- když víme. Kolega KIIV Ti ještě něco odborného k té druhé problematice napíše. Já kdyžtak budu reagovat později (někdy odpoledne),

PHP › Integrace PayPal brány
4. 10. 2013   #181938
PHP › Integrace PayPal brány
4. 10. 2013   #181936

#29 Forest
Za málo. Opačný proces? Dovysvětli. :-)

PHP › Integrace PayPal brány
4. 10. 2013   #181934

No, já se spíš snažím naznačit, že pokud uděláme pouhé nabití peněženky, tedy něco ve smyslu:

$query = sprintf("UPDATE users SET penezenka = penezenka + $_GET['amt']
WHERE id_user = '%s'", mysql_real_escape_string($id_user));

Tak změníme sice hodnotu, ale zpětně nikdy nebudeme vědět za co.

PHP › Integrace PayPal brány
4. 10. 2013   #181932

Nezapomeň si někam ukládat historii transakcí. Tedy koncové stavy. A pak vidíš další stav peněženky a jaká akce se stala, to znamená:

ID_TRANSAKCE | AKCE | ID_USER | ODEBRANA_CASTKA | KONCOVY_STAV | DATUM
1 | DOBITI_PENEZENKY | 2 | 500 | 2000 | 4.10.2010
2 | DOBITI_PENEZENKY | 2 | 500 | 1500 | 4.10.2010

Jinak přes ten IF to taky můžeš udělat... :-)

PHP › Integrace PayPal brány
4. 10. 2013   #181929

No vidíš to, přišla ti odpověď co se týče ID transakce (hash), status (tedy jestli na to měl dotyčný peníze, nebo co provedl za akci), částka, měna a id subjektu.

S tím se dá samozřejmě pracovat, a nemusíš ani nikam přesměrovávat jak píše KIIV. Prostě ten výstup zpracuješ (tedy zpracuješ výstupní url). Nikdo to URL neví, takže buď v pohodě -- protože to url je zašifrované... což je zabezpečovací proces.

Takže si uděláš pak switch v tom souboru něco jako:

if (isset($_GET)) {
	switch ($_GET['st']) {
		case "Completed": 
		// uložíme danému uživatelovi peníze na účet:
		$user->getUserById($id_user)->setVallet($_GET['amt']);
		break;
	}
}
PHP › Integrace PayPal brány
3. 10. 2013   #181897

Zdravím,

proč utrácíš dolary? Dá se tam použít ten testovací sandbox account, který nevezme nic.

Funguje to tak všude, klient pošle požadavek a ty dostaneš od paypal odpověď.

Jo a Tobě to vlastně nevrací zpět, narvi tam tento kus kódu ještě (nestačí jen tlačítko):

<input type='hidden' name='return' value='http://mysite.com/user_credits/purchase_credits'>
<input type='hidden' name='rm' value='1'>

A nebo prostě v tom nastavení musí být... udělej tyto kroky (je to anglicky):


1. Log in and click the Profile subtab under My Account.

2. Click the Website Payment Preferences link under Selling Preferences.

3. Click the On radio button to enable Auto Return.

4. Enter the Return URL. Note: You must meet the Return URL requirements in order to set up Auto Return.

Takže tak, snad nemusím překládat.
 

JavaScript, AJAX, jQuery › boční vyjížděcí panel
1. 4. 2013   #174238

Zdravím,

potřeboval bych odkazy na nějaké examples (ukázky) vyjížděcího panelu (slider). Abych upřesnil, mějme na levé straně div, kde je napsáno info. Když na něj najedem myší, tak vyjede. Já vím, že je to jako klasické menu, ale na boku... jen bych ho chtěl pěkné, s animací a aby mě nadchlo. Není důležité, aby plavalo s contentem (obsahem). Jenom tak úplně nevím, jaké keywords (slider?) zadat do G, díky.

Takhle to naznačím: http://mobilni-site.cz/bin/example-bar.png

Marcus Aurelius
JavaScript, AJAX, jQuery › slideshow fotek
25. 3. 2013   #173898
C / C++ › Načtení string do promene C
16. 2. 2013   #171584

Zdravím,

jde to třeba i funkcema fscanf() či getchar(). :) Jestli jsi začátečník, tak fgets(), jak píše KIIV. :)

C / C++ › Dll injection pro OpenGL
23. 1. 2013   #170558
JavaScript, AJAX, jQuery › videostreaming jako webová s…
14. 1. 2013   #170170

Zdravím,

nejspíš jsem měl tento dotaz směrovat spíše do sekce JavaScriptu, ale když PHP čte víc lidí, tak to hodím sem.

Má někdo zkušenosti s videostreamem/konferencí one to one na webovkách? Něco free. Tak, jak vlastně máme Skype, tak toto by byla webová služba. Něco podobného jsem našel kdysi na chatu http://chat.libimseti.cz.

Nechci to spouštet na žádném RS/CMS (Joomla, WordPress, ...), ale normálně na svém webu. Našel jsem (prozatím) pouze toto: http://www.tokbox.com a nově jquery webcam plugin: http://www.xarg.org/project/jquery-webcam-plugin.

Budu rád za každé rady, odkazy a zkušenosti, díky.

C / C++ › objekt v hlavičkovém souboru
3. 1. 2013   #169718

Zdravím,

i jednoduché sčítání dvou čísel se dá z hlediska objektů pokazit? Správně by měla být metoda součet bez parametrů.

C / C++ › Program ovládaný zvukem
1. 1. 2013   #169635

Zdravím,

můžeš použít Microsoft Speech API (SAPI). O jiných možnostech nevím.

C / C++ › Konec programu
25. 12. 2012   #169317

Zdravím,

těch možností je plno, ale jak píše KIIV, system("PAUSE") má strašně moc nevýhod. Nejvíc mi na tom vadí, že to tak učí na školách a kdekoliv možně...

Pro C používám f-ci getchar(). Pro C++ potom f-ci cin.get().

system("PAUSE") dělá v pár krocích:

  1. pozastaví se náš program 
  2. zavolá se OS  
  3. otevře se shell  
  4. OS musí najít příkaz PAUSE
  5. musí se alokovat paměť pro provedení 
  6. musí se spustit příkaz a čekání na stisk 
  7. navrátit paměť (dealokace) 
  8. ukončení práce s OS 
  9. obnovení programu

Jednoduchá funkce: 

void pause(void) 
{
  printf("\n Stisk klávesy pro ukončení...");
  fflush(stdout);
  while('\n' != getchar());
}
C / C++ › blokujici vs neblokujici fun…
11. 12. 2012   #168612

Zdravím,

rozhodně je lepší udělat vícevláknový (multithreaded). 

Pokud jsem Tě dobře pochopil, tak porozmýšlíš nad asynchronním vs. synchronním? Díky.

C / C++ › Algoritmus na nalezení všech…
10. 12. 2012   #168560

Zdravím,

já znám prohledávání do šířky (BFS – Breadth-First Search) a prohledávání do hloubky (DFS – Depth-First Search). Jedná se o grafové algoritmy.

C / C++ › Načítání čísel ze vstupu
5. 12. 2012   #168145

To je sice hezký, ale řeší se tu vstup, jako třeba: 25 55 68 41 5 8 9. To tvé bere int po intu. ;-)

C / C++ › Načítání čísel ze vstupu
5. 12. 2012   #168127

Jasně, tak nějak už vím, jak na to... Spíš se zeptám, jestli to budeme načítat ze souboru nebo z konzole? Protože mě zatrhlo, jak píšeš o zakončení sekvence EOF (End Of File), což je u souboru, díky.

C / C++ › Načítání čísel ze vstupu
5. 12. 2012   #168101

   

int size = 1;
int* arr = new int[1];

void resize() 
{
    size_t newSize = size * 2;
    int* newArr = new int[newSize];

    memcpy( newArr, arr, size * sizeof(int) );

    size = newSize;
    delete [] arr;
    arr = newArr;
}

Klasická funkce pro kopírování paměti - memcpy (je to v C). Trošku zaměňuji C a C++, ale to snad nevadí (viz. nahoře operátor new). V metodě main po každém načtení čísla zavoláš metodu resize.

C / C++ › Načítání čísel ze vstupu
5. 12. 2012   #168100

Zdravím,

jestli používáš C, tak použiješ f-ci realloc/memcpy, pokud C++ tak operátor new.

Ukážu jak to jde s tím memcpy (kopírování paměťi).

Java › Singleton v jave
27. 11. 2012   #167717

Na co tu druhou třídu? Normálně si vytvoříme metodu main, a do ní se to zkusí:

public static void main(String[] args) 
{
	Singleton s1, s2, s3;
	s1 = Singleton.getInstance();
	s2 = Singleton.getInstance();
	s3 = Singleton.getInstance();
}
Java › Singleton v jave
26. 11. 2012   #167694

Zdravím,

sleepy, jdeš na to dobře, ale... co třeba klíčové slovo static? To je dosti důležité při použití Singletona... ;)

Klasický postup je takový, že u té metody getInstance() hodíš teda static. Potom samozřejmě uděláš privátní konstruktor a kopírovací konstruktor (klon), aby nemohla být vytvořena instance jiným způsobem. ;)

Stačí takto:

private Singleton() { }
C / C++ › Součet dvou binárních čísel
26. 11. 2012   #167624

Vitamine, tohle nemůže zaslat jako domácí úkol. ;-)

C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167608

Takhle je to i s tím ošetřením, jde to?

#include <cstdlib>
#include <iostream>

using namespace std;

bool check(int long number)
{
     return ((number % 10 != 0) && (number % 10) != 1);
}

int main()
{
     long int bin1, bin2;
     int i = 0, zbytek = 0, sum[20];
        
     cout << "Zadejte prvni bin. cislo: ";
     cin >> bin1;
     while( check(bin1) )
     {
          cout << "Spatny vstup - zadejte znovu: ";
          cin >> bin1;
     }
        
     cout << "Zadejte druhe bin. cislo: ";
     cin >> bin2;
     while( check(bin2) )
     {
           cout << "Spatny vstup - zadejte znovu: ";
           cin >> bin2;
     }
        
     while ((bin1 != 0) || (bin2 != 0)) 
     {
           sum[i++] = ((bin1 % 10) + (bin2 % 10) + zbytek) % 2;
           zbytek = ((bin1 % 10) + (bin2 % 10) + zbytek) / 2;
           bin1 = bin1/10;
           bin2 = bin2/10;
     }

     if (zbytek != 0) sum[i++] = zbytek;
     --i;
    
     printf("Soucet dvou binarnich cisel je: ");
     while (i >= 0) printf("%d", sum[i--]);
    
     system("PAUSE");
     return 0;
}

Takhle je to neprofesionálně, v C++ by se to mělo dělat pomocí cin.fail a cin.clear (jak píše vitamin). Ale každopádně toto můžeš taky poslat.

C / C++ › Součet dvou binárních čísel
25. 11. 2012   #167604

Nechci se nějak dotknout vitamina, to co napsal pomocí stavového automatu je východisko a možné řešení, ale pro takto jednoduchý příklad stačí něco takového (zatím jenom hodně pseudo a z hlavy):

bool check(long int number, int search_1, int search_2)
{
    while (number > 0)
    {
        int digit = number % 10;
        number    = number / 10;
        if (digit != search_1 && digit != search_2) return false;
    }
    return true;
}

Poté tu funkci zavoláme:

std::cout << check(10101010, 1, 0) << " \n";

Takže teď to udělá to, že 10101010 to vezme, ale 10101012 to nevezme. Problém nastane, pokud zkusíme otestovat 00101010 (na začátku je nula, to pak reprezentuje oktanové číslo). To budu muset ještě promyslet. Je to vlastně to, co napsal vitamin výše... Zkoušel jsi to vitamine pro vstup 01010101?

Tak funguje, takže chválím nakonec vitamina za pěkné řešení!

Takže jenom zkrátím pro úplnost:

bool check(int long number)
{
     return ((number % 10 != 0) && (number % 10) != 1);
}
C / C++ › C++ nebo C#
16. 11. 2012   #166940

Zdravím,

už několikrát tu byly obdobné diskuse (co se týče tohoto serveru):

http://programujte.com/forum/vlakno/1487-programovani-her-v-c/

http://programujte.com/forum/vlakno/4435-programovani-os/

http://programujte.com/forum/vlakno/1857-programovani-her/

http://programujte.com/forum/vlakno/6825-c-nebo-c/

http://programujte.com/forum/vlakno/20855-c-nebo-c/

Jinak nechápu, proč v dnešní době si ty informace neumí člověk dohledat (Google). Zkus se seznámit s těmito pojmy:

OpenGL (GLUT), DirectX, SDL, Allegro.

Ale pro jednoduchou 2D hru postačí zmiňované SDL. Pro 3D potom OpenGL.

Programovací jazyk určitě C++.

C / C++ › program žiaci, pridávanie,od…
16. 11. 2012   #166923

Zdravím,

přesně tak jak píše ingiraxo. Je to pořád na stejné brdo.

Pokud máte použít STL, tak potom použiješ vector, nebo list. Pokud ne, tak si budeš muset poradit se spojovým seznamem sám. Častokrát se to řeší i třebas pomocí pole objektů, prostě jak je libo...

 Ale už jdu spát, takže jenom malý nástin:

class User
{
	private:
		string name;
		string surname;
		int age;
};

class MyLinkedList
{
	private:
		struct Node
		{
			Node * next;
			User * u;
		};
};

No a samozřejmě se dodělají metody nad tím listem (MyLinkedList), takže add, remove, atd. 

 

C / C++ › Součet dvou binárních čísel
15. 11. 2012   #166838

Zdravím, na pár řádků (a to čisté C nemám moc rád):   

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
        long int bin1, bin2;
        int i = 0, zbytek = 0, sum[20];

        printf("Zadejte prvni binarni cislo: ");
        scanf("%ld", &bin1);
        printf("Zadejte druhe binarni cislo: ");
        scanf("%ld", &bin2);

        while ((bin1 != 0) || (bin2 != 0)) 
        {
              sum[i++] = ((bin1 % 10) + (bin2 % 10) + zbytek) % 2;
              zbytek = ((bin1 % 10) + (bin2 % 10) + zbytek) / 2;
              bin1 = bin1/10;
              bin2 = bin2/10;
        }

        if (zbytek != 0) sum[i++] = zbytek;
        --i;
    
        printf("Soucet dvou binarnich cisel je: ");
        while (i >= 0) printf("%d", sum[i--]);
    
        system("PAUSE");
        return 0;
    }

Proč nad tím tak bádáte? Stačí se trochu zamyslet... To zbytečné uzávorkování tam být nemusí, pro přehlednost jsem raději doplnil. V C++ to jde napsat i do pěti řádků. :-)

C / C++ › Code::Blocks - neopravuje ch…
21. 10. 2012   #165051

Díky.

Stejně Code::Blocks nakonec vyhraje. I NB jsou dost pomalé... ;)

C / C++ › Code::Blocks - neopravuje ch…
21. 10. 2012   #165017

Zdravím,

zkouším teďkom C/C++ v Code::Blocks, nevím proč, ale tento editor mi za běhu neopravuje chyby (syntaktické, překlepy). Čím to? Věřím tomu, že tento editor to umět musí... Předem díky za odpovědi.

.NET › Algoritmus na zjištění výher…
3. 6. 2012   #158779

Zdravím,

jestli chceš zjistit o jakou výherní kombinaci jde, tak to není těžké zjistit.

Vezmeš hráčovy karty (2). Vezmeš všechny karty ze stolu (5).

Tudíž, budeš kombinovat a procházet ze 7 karet... :)

Já osobně bych to udělal tak, že bych si ke každé výherní kombinaci (vysoká karta, jeden pár, dva páry, trojice, postupka, barva, FH, poker, postupka v barvě a královská postupka v barvě) udělal metodu, která by vracela True, nebo False v rámci úspěšnosti. Je třeba si uvědomit, že pokud chytíme Full House, tak zároveň máme trojici. Proto musíme vyhodnocovat postupně dle priority.

Vidím, že to děláš v C#, tak zkusím tu myšlenku:

bool vysokaKarta()
{
	foreach($karty as $index => $hodnota) 
	{
    		// algoritmus pro hledání vysoké karty
		if (...) return true;
	}
	return false;
}

bool jedenPar()
{
	foreach($karty as $index => $hodnota) 
	{
    		// algoritmus pro hledání jednoho páru
		if (...) return true;
	}
	return false;
}

Pak někde v Mainu
=====

if (Poker.kralovskaPostupka()) 
{ 	
	máme královskou; 
};

if (Poker.postupkaBarva()) 
{ 
	máme postupku v barvě; 
};

a tak dále pro ostatní kombinace...

if (Poker.vysokaKarta()) 
{ 
	máme vysokou kartu;
};
DiabloWind
.NET › analýza zdrojového kódu
3. 6. 2012   #158775

Ahoj,

sháním kvalitní knihovnu nebo Tool, který nabízí analýzu zdrojového kódu. Vesměs mi jde o to, že chci hledat v kusu zdrojáku nějaké cílové věci... Jaké možnosti se nabízí?

Dělám v Microsoft Visual C# Express 2010.

.NET › třídní schéma
23. 5. 2012   #158325

Zdravím,

díky Libore, něco takového jsem potřeboval slyšet.

.NET › třídní schéma
21. 5. 2012   #158224

První a druhý zdroják chci nastínit do UML, třídní schéma.

.NET › třídní schéma
19. 5. 2012   #158158

Zdravím,

chtěl bych se zeptat, jak navrhnout toto:

Mám své dvě třídy, které v sobě uchovávají již hotovou a známou třídu Socket. Můžeme si to implementačně představit třeba takto:

class SocketClient : Form
{
	Socket sClient = null;
	SocketClient()
	{
		sClient = new Socket(...);
	}
};

class SocketServer : Form
{
	Socket sServer = null;
	SocketServer()
	{
		sServer = new Socket(...);
	}
};

Jak toto navrhnout? Myslím tím normálně diagramové vyjádření tříd, schéma.

Protože pak může klidně existovat i něco takového:

class SocketClient : Socket
{ 
};

class SocketServer : Socket
{
};

K tomuto bych přirovnal následující schéma: http://www.magic.ubc.ca/496/pmwiki/uploads/SSF09W-04/SocketClassDiagram.jpg

Na tomto URL se nachází přesně co? Zobecnění, nebo dědění?

Předem díky za přehledné objasnění.

Offtopic › tvorba diagramů pro software
12. 5. 2012   #157892

Díky, nějaké jiné tipy?

Offtopic › tvorba diagramů pro software
12. 5. 2012   #157889

Zdravím,

potřebuji pro software udělat tři diagramy:

  • Diagram případů užití (use case diagram);
  • Diagram tříd (class diagram);
  • Sekvenční diagram (sequence diagram).

Jaké programy doporučujete pro tvorbu zmíněných diagramů? 

.NET › Asynchronní metody
9. 5. 2012   #157603

Myslím tím metodu Send, která je už klasicky v API. Tato metoda je synchronní... nemusí být asynchronní. 

No, nejspíš jsem to myslel takto:

  1. Metoda BeginReceive vrací IAsyncResult a čeká na data;
  2. Pokud to vrátí (nastala událost - přišly data), zavolá se callback;
  3. Jedním z parametrů callbacku je IAsyncResult, kde si to vyzvedneme (jde vlastně o return BeginReceive);
  4. Zavoláme int receiveBytes = sock.EndReceive(asyn);
  5. Tím si přečteme, kolik jsme dostali bytů na socketu;
  6. V případě potřeby počkáme na další data (znovu BeginReceive).

Správná domněnka?

.NET › Asynchronní metody
9. 5. 2012   #157595

Zdravím,

děkuji oboum za vysvětlení.

Pokud tedy zavoláme metodu Send a odešleme data, jak probíhá asynchronní přijímání dat (bytů)? Především mě zajímá, jak bude pracovat trojice metod BeginReceive, EndReceive a Callback.

.NET › Asynchronní metody
8. 5. 2012   #157563

Zdravím,

od veškerých odborníků v branži IT jsem dostal různé odpovědi. Byl bych rád, kdybych si to mohl už konečně nějak reálně sjednotit a mohl na to koukat z jednoho úhlu.

Potřebuji přesně vědět, jak fungují asynchronní metody BeginReceive a EndReceive na socketové bázi. Setkáme se tedy s následujícími metodami:

  • BeginReceive,
  • EndReceive,
  • Callback.

Jde mi o celý postup principiálně:

  • co běží v hlavním vlákně, co v pracovním, 
  • jakým způsobem, kdy a proč se volá callback, 
  • jaké metody (viz. nahoře) jsou blokované, a které nejsou, 
  • pokud zavolám metodu Send, na co bude směřovat.

Nejvíc bych uvítal postup v rámci kroků, to jest:

  1. zmáčkneme spojku,
  2. zařadíme rychlost,
  3. pouštíme spojku, přidáváme plyn.

Pokud bude k mání i nějaký náčrt (image), další věc, co pomůže.


.NET › C# 3Dgrafika
19. 4. 2012   #156837

Technologie XNA je orientována víceméně na herní vývoj.

Technologie WPF je orientována na klasické desktopové aplikace s pěknou grafikou. (Je to jakási nástavba winforms). Ale buďme opatrní, jádro WPF funguje tak trošku jinak. Dá se vykreslovat 2D i 3D.

.NET › C# 3Dgrafika
19. 4. 2012   #156828

WPF a spojení s XAML.

.NET › zobrazení iterační proměnné…
19. 4. 2012   #156820

Zdravím,

potřeboval bych zobrazit proměnnou i (ve FOR cyklu) do Labelu každou sekundu, je to nějak možné? Potřeboval bych vědět, jaké se nabízí možnosti a jak to implementovat.

Protože pokud běží for cyklus od 0 do 9999, tak se mi zobrazí 9999. Jde to bez časovače?

Dle mě se nabízí:

  • zablokování (pausnutí) iterace každou sekundu,
  • použití časovače který updatuje UI každou sekundu.

Zkoušel jsem něco takového:

DateTime start = DateTime.Now;

for (int i = 0; i < 10000; i++)
{
   DateTime end = DateTime.Now;
   if (start.Second != end.Second)
   {
       start = end;
       label1.Text = i.ToString();
   }
}

Application.DoEvents? Díky.

Offtopic › Filtr na hledání domén
15. 4. 2012   #156651

Zdravím,
neznáte někdo (třeba online webový) NÁSTROJ/FILTR, který Vám vyhledá volné/obsazené domény na základě vašich klíčových slov?

Zadáte kupříkladu 5 klíčových slov (znaků) a ono se to bude snažit poskládat a vyhledat domény. Důležité je, aby to umělo OR, ne jenom AND. Je mi jedno v jakém jazyce to bude - více upřednostňuji EN. To, že Vás otravuji... to se samozřejmě omlouvám, ale nic kloubného jsem nevygůglil. Víc hlav víc ví...brainstorming.

Třeba tohle je (docela) dobrý: http://www.volne-domeny.info
Ale...
Hledá to zmíněným systémem AND, neumí to OR.

Vstup třeba (3 klíčová slova): chat i x

Výstup: 

  • chat.xxx,
  • ichat.xxx,
  • xchat.xxx
  • ixchat.xxx,
  • atd.

Díky.

PHP › Problém s funkcí GetImageSize
18. 3. 2012   #155153

Už mě napadla asi ta nejrychlejší varianta - myšlenka.

V databázi si udělám ještě WIDTH a HEIGHT column a z toho budu načítat. Pokud bude WIDTH OR HEIGHT NULL, zavolám funkci na přepočet (uložím do databáze) a zobrazím... Celý problém.

PHP › Problém s funkcí GetImageSize
18. 3. 2012   #155148

Zdravím,

o co jde? Mám na webu nějaké obrázky, resp. v databázi mám jenom URL a ty pak načítám. Mám funkci, která má konstantní velikost výšky a podle poměru nastavuje výšku. Problém je v tom, že to strašně dlouho trvá - je to pomalé. Jak se to dá obejít?

Ta funkce vypadá takto:

  function resizeImage($image_path, $new_height) {
         list($width, $height, $type, $attr) = getimagesize($image_path); 
       
         $ratio = $new_height/$height;
         $new_width = $ratio * $width;
            
         return $new_width;
  }
<img src=\"".$z['LINK_THUMBNAIL']."\" alt=\"".$z['NAME']."\" height=\"140\" width=\"".resizeImage($z['LINK_THUMBNAIL'], 140)."\" >

1) Podle mě to jde řešit tak, že tou funkcí projedu každý neupravený obrázek jenom jednou, ten si pak někam uložím a budu pouze načítat již ty upravené thumbnails... Nebudu zbytečně po každém reloadu volat tu funkci.

2) Pak jsem slyšel o BLOB objektu v Databázi - jenom z doslechu, o co jde?

Jiné náměty? RePRO.

MySQL › Dva dotazy
16. 3. 2012   #155077

Zdravím,

chtěl bych provést dva dotazy (snad jednoduché).

1. dotaz - Nejlépe hodnocené video

Budeme pracovat s jednou tabulkou VIDEO. Tam má sloupce VOTE_UP a VOTE_DOWN. No a já bych to potřeboval seřadit dle VOTE_UP - VOTE_DOWN. Tedy nějak ORDER BY rozdíl DESC mezi těmito dvěmi hodnotami.

2. dotaz - Nejkomentovanější video

Budeme pracovat s dvěmi tabulkami.

První tabulka je VIDEO, druhá tabulka je KOMENT (ID_KOMENT, CIZI_KLIC_ID_VIDEO). A já bych potřeboval samozřejmě to seřadit dle SUMY STEJNÝCH CIZÍCH KLÍČŮ (tedy nějak asi ORDER BY SUM VŠECH STEJNÝCH CIZÍCH KLÍČŮ).

Jak to bude vypadat - jak to dát dohromady? Moc děkuji.

Offtopic › O co se zajímáš?
8. 3. 2012   #154539

O co se zajímáš právě ty? Dělám menší statistiku, díky.

programování webových aplikací (PHP, MySQL, JavaScript, jQuery, CSS, HTML, ...)
programování desktopových aplikací (Java, C#, Borland C++)
programování systémových aplikací (C/C++, ovladače, add-ons, OS, systémové prostředky, antivirové programy, komprese dat)

Můžeš klidně i popsat...

JavaScript, AJAX, jQuery › tinymce - načítání dat z DB
8. 3. 2012   #154535

KIIV, čauves. :)

Tohleto se načte (samozřejmě nenaformátované):

<body onload = "nactiText('<?php echo "Text ... můj Text"; ?>');">

Pokud se snažím o něco takového:

// Data z DB
$text = htmlentities($zaznam['obsah']);
<body onload = "nactiText('<?php echo $text; ?>');">

Tak se mi to nenačte prostě... Ve zdrojáku mám něco takového (ukázka konce - nevím, proč tam je ten konec té funkce?)

&lt;li&gt;m&amp;eacute; hodnocen&amp;iacute;: &lt;strong&gt;4/10&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;');">

Díky za snahu.

JavaScript, AJAX, jQuery › tinymce - načítání dat z DB
8. 3. 2012   #154533

   

function nactiText(text) {
    var editor = window.parent.tinyMCE.activeEditor;
    editor.setContent(text);
}

Jasně, ta funkce má být takto... Tak jsem jí i měl, ale dělal sem velké hokusy pokusy a nic nepomáhá.

Další nápady?

JavaScript, AJAX, jQuery › tinymce - načítání dat z DB
7. 3. 2012   #154510

Zdravím,

potřebuju načítat data do tinymce již naformátované...

Kde je problém? Pokud načítám kód, kde jsou "" (uvozovky), tak to nevalí. Pokud načítám z databáze holý text (bez uvozovek), tak ho načtu. Ale to není cílem, není to naformátované.

Kód:

<script type="text/javascript">
// inicializace tinymce
</script>

<script type="text/javascript">
  function nactiText(var text) {
  
    var editor = window.parent.tinyMCE.activeEditor;
    editor.setContent('text');
  }
</script>


// načtení dat z databáze (PHP)
...
$text = $zaznam['obsah'];
...
// Po načtení stránky by se měl obsah načíst do tinymce
<body onload = "nactiText('<?php echo $text; ?>');">

Jak sem psal. Bez uvozovek to načte. Funkce addslashes() nepomáhá :-(, nebo aspoň se mi to nepovedlo. Má někdo nějaké zkušenosti? Díky.

C / C++ › return int při void logikách
7. 3. 2012   #154469

Už vím, proč to řve. Když se dobře podíváme, tak struktuře BOD chybí koncový středník. No a teď co s tou návratovou hodnotou?

C / C++ › return int při void logikách
7. 3. 2012   #154465

Já si myslím, že ta návratová hodnota int u toho výpisu bude mít své kouzlo. Uvidíme, co napíšou další. Každopádně v Main (_tmain) funkci nic nezkouším. Nevím, proč to řve.

C / C++ › return int při void logikách
7. 3. 2012   #154461

Zdravím,

chci se zeptat, proč zadávající chce vracet int z funkce, když si představím klasický void?

Třeba funkce, která provádí jednouchý výpis:

struct BOD 
{
	int X;
}

int vypis(BOD *b)
{
	cout << b->X;
	return 0;
};

Navíc tohle na mě stejně řve: 'return' : cannot convert from 'int' to 'BOD'.

Věřím v tomu, že v dřívějších dobách (a je tomu i teď) se toto dělá právě pro otestování úspěšnosti nebo jak to mám říct. Nebo to má jiné důvody? Pokud ano, tak budu rád za příklad.

Díky za pomoc.

C / C++ › Rozdíl mezi referencí (&) a…
7. 3. 2012   #154453

KIIV:

Díky. Poslední věc... Ještě by mě zajímalo v jakých případech použít pointers a kdy ne? Já je používám skoro všude (C/C++), ale v C# je to dosti omezující, tam to musím házet do sekce [unsafe].

Btw: Někdy fakt magořím, co kam použít... [*], [&], [->], [.]. Ještě, že existuje IntelliSense. Bez toho ani krok... Co používáš pro vývoj C/C++? Pro školní projekty tu mám Dev-C++ (Grr). Jinak pro profi vývoj Code::Blocks a Microsoft Visual C++.

Ještě jedno btw. Jak se jmenuje ten třetí a čtvrtej operátor?  Mám za to, že ten třetí je operátor přístupu k prvku struktury nebo unionu s dereferencí. No a čtvrtej analogicky operátor přístupu k členu struktury nebo unionu. To víš, chci mít ve všem jasno.

Měj se.

RePRO

C / C++ › Rozdíl mezi referencí (&) a…
6. 3. 2012   #154444

crazy:

V parametru funkce máme ukazatel na int (*). Ve volání funkce pak očekáváme adresu proměnné (&).

Ukazuji ještě druhou možnost, kdy můžeme vrátit ukazatel na nově alokovanou paměť, kde máme výsledek.

:-)

int scitani1(const int *ax, const int *bx) {
    
    return *ax + *bx;
};

int* scitani2(const int *ax, const int *bx) {
    
    return new int(*ax + *bx);
};

int main(int argc, char *argv[])
{ 
  int a = 5;
  int b = 2;

  cout << scitani1(&a, &b);
  
  int *c = scitani2(&a, &b); 
  cout << *c << endl;
  delete c;
        
  system("PAUSE");    
  return 0;
}

Pro takto jednoduché věci jsou pointers zbytečné, ale... jenom pro demonstraci. :-)

C / C++ › Rozdíl mezi referencí (&) a…
6. 3. 2012   #154426

A pokud předáš ukazatel, proč by to nešlo? Resp. předá se adresa.

C / C++ › Rozdíl mezi referencí (&) a…
6. 3. 2012   #154424

Díky. Ještě přidávám ukázku bez funkcí:

U funkcí (a metod) mi přijde nejběžnější a nejlogičtější předávat referenci, pokud je přímo v definici funkce dereference.

	int a = 5;
	int *ukazatel = &a;
	// Vypíše adresu, kam ukazuje (tedy adresu obsahu)
	cout << ukazatel << endl;
	// Vypíše obsah, kam ukazuje ukazatel
	cout << *ukazatel << endl;
	// Vypíše adresu samotného ukazatele
	cout << &ukazatel << endl;
C / C++ › Rozdíl mezi referencí (&) a…
6. 3. 2012   #154417

Tak nějak s Tebou úplně nesouhlasím. Napsal si 2 typy, co dosazuješ za parametry. Vždy ale záleží na tom, co máš za výchozí proměnné:

1)
výchozí proměnná: *ukazatel
void funkce(&reference) { ... };
potom: funkce(*ukazatel);

2)
výchozí proměnná: normální
void funkce(*dereference) { ... };
potom: funkce(&normální);

3)
výchozí proměnná: normální
void funkce(&reference) { ... };
potom: funkce(normální);

4)
výchozí proměnná: *ukazatel
void funkce(*dereference) { ... };
potom: funkce(ukazatel);

Navíc si myslím, že "*" a "&" pracuje naprosto stejně - uvnitř je pointerová logika. Myslím, že největší rozdíl tkví v tom, že

  • "&" (reference) nepřiřadíme NULL a těžko se mění,
  • "*" (dereference) se přiřadí NULL a změní se kdykoliv (krom const).

Ty funkce budou fungovat analogicky. Jde pouze o syntakční stránku.

 

C / C++ › Rozdíl mezi referencí (&) a…
6. 3. 2012   #154412

Zdravím,
mohl by mi někdo vysvětlit rozdíl mezi těmito třemi funkcemi?
(http://pastebin.com/5M6jB7fL)
Programuji už léta, vždy jsem využil dereferenci. Ovšem, tady jsou tři funkce a v parametrech je jak reference (&) a dereference (*). Návratové hodnoty jsem taky změnil.
Všechno mi šlo přeložit (IDE: Microsoft Visual C++).

Vždycky jsem měl problémy, co se může dávat za parametry, takže to shrnu:

Pokud máme proměnnou dereferenci: *ukazatel

  1. funkce(*prom) – dáváme: funkce(ukazatel)
  2. funkce(&prom) – dáváme: funkce(*ukazatel)

Pokud máme proměnnou klasiku: klasika

  1. funkce(&prom) – dáváme: funkce(klasika)
  2. funkce(*prom) – dáváme: funkce(&klasika)

Nebo jsou i jiné možnosti?

Moje otázky
1) Jaký je tedy rozdíl mezi referencí a dereferencí? Přijde mi to dosti analogické. Můžu si stále používat dereferenci?
Jakožto reference je adresa proměnné, dereference je též adresa proměnné, akorát na ní směřuje ukazatel.
2) Jaký je rozdíl mezi druhou a třetí funkcí?

Doufám, že si už v tom udělám absolutní jasno, i když ho mám, ale ne zcela úplné. Dobrý programátor toto prostě musí umět dokonale – aneb práce s pamětí.
Tímto bych chtěl i pozdravit kolegu a kámoše Matrixe, pokud si toto vlákno čte a hodí mi sem třeba i dobrou radu nad zlato. ;-)

Díky a mějte se – pěkný den.

MySQL › Trigger
6. 1. 2012   #152020

Zdravím,

ano, TRIGGERS nejsou žádná věda, musíme si však ale uvědomit, že já mám každou tabulku v jiné databázi.

Použít USE? Jak se to řeší? Každopádně díky za skvělý odkaz.

MySQL › Trigger
6. 1. 2012   #152017

Přímo pro můj příklad to demonstrovat. ;)

MySQL › Trigger
6. 1. 2012   #152003

Zdravím,
mám dvě databáze (nazvěme je první a druhá).
Dejme tomu, že první databáze má tabulku usersBB, druhá databáze má tabulku jenom users.

Tabulka usersBB v první databázi vypadá následovně:
usersBB = [bbID, bbNickname, bbPassword, ... ]
Tabulka users v druhé databázi vypadá následovně:
users = [ID_user, nick, gender, pass, gravatar, mail, law, group, colorOfNick, last_activity, isOnline]

No já potřebuji zajistit následující:
Pokaždé, když se přidá, upraví, smaže řádek z první tabulky (první databáze), tak aby se to projevilo i u druhé tabulky (druhé databáze).


Takže, pokud se v první tabulce udělá třeba INSERT (nový uživatel), tak mi stačí naklonovat (zkopírovat) bbID, bbNickname, bbPasword, možná i některé další sloupce z tabulky usersBB do tabulky users.

To znamená prakticky (pseudojazykem) toto:
databáze2.users.ID_user = databáze1.usersBB.bbID
databáze2.users.nick = databáze1.usersBB.bbNickname
databáze2.users.pass = databáze1.usersBB.bbPassword

Vůbec nevím co s tím, používám PHP a MySQL.
Byl jsem odkázán na Trigger, potřeboval bych ukázku přímo k tomuto problému. Dynamicky to (nějak) zajistit.
Snad mi rozumíte. Nějaké rady, nápady?

Díky, RePRO.

.NET › C# připojení k DB
24. 11. 2011   #150414

Ten poslední odstavec neřeš. Myslel jsem, jestli se náhodou nedá v prostředí IDE C sharp 2010 express pracovat s DB na přímo (bez managmentu). Pořád v tom nevidím přímou spojitost.

Link:http:// http://imageshack.us/…ssageii.png/

.NET › C# připojení k DB
24. 11. 2011   #150412

Ta chyba je strašně dlouhá a nejde zkopírovat (možná bude chyba mezi židlí a klávesnicí)

Ohledně databáze (když jsem v IDE třeba C sharp 2010 express edition):

V sekci Data mi to pořád vybízí na Data source. Ve škole děláme DB s managmentem. Je nějaká spojitost přímo v IDE třeba C sharp express 2010? Potřebuju to přes DataReader (jak jsem psal). Přes DataSet ne (též jsem ale používal).

.NET › C# připojení k DB
24. 11. 2011   #150404

#2 liborb
Na mezery to vliv mít nebude - s mezerama to valí slušně v nějakých ostatních mých connection programech.

#3 djanosik
Má to být ex.ToString(); místo toho, co sem tam měl ex.Data.ToString();. Takže vím, kde je chyba. Nespojí se to! Ale proč? To nechápu! :-) Bude za tím (nejspíš) connection string, nebo ten soubor (kde přesně má být v mém projektu umístěn?)

Vím, mám to celé v jedné třídě, ale je to do školy. ;-) Učitel prostě chce načíst data pomocí DataReaderu a vypsat je (tak jak to mám). Kdybych to měl dělat jako velko-projekt, určitě bych to rozdělil na další podproblémy. Takhle je to dost odvážné.

.NET › C# připojení k DB
24. 11. 2011   #150389

Zdravím,

chci se jednoduše připojit k databázi (Northwind). Už několikrát jsem to zkoušel a povedlo se mi to (jak v GUI, tak v Console). Ale teď? Ani omylem... Je to nějaká prkotina, nebo už fakt nevím.

Používám klasicky: SqlClient -> DataReader. V obouch výjimkách mi to vyhodí do MessageBoxíku:

System.Collections.ListDictionaryInternal. To je nějaká chyba s kolekcemi, nebo co? Co to má společného s připojením, když volám metodu connect()? Asi jsem nepozorný nebo to bude hodně jalový kiks.

Díky moc. Jo, a abych nezapomněl, tak příkládám můj zdroják:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace Databaze
{
    public partial class MyDatabase : Form
    {
        private SqlConnection conn;
        private string connectionString = @"server = .\sqlexpress; integrated security = true; database = Northwind";
        private SqlDataReader reader = null;

        public MyDatabase()
        {
            InitializeComponent();
        }

        public void connect()
        {
            conn = new SqlConnection(connectionString);

            try
            {    
                conn.Open();
            }

            catch (Exception ex)
            {
                MessageBox.Show("Chyba připojení: " + ex.Data.ToString());
            }

            finally
            {
                lblStavShow.Text = conn.State.ToString();
            }
        }

        public void showData()
        {
            SqlCommand cmd = new SqlCommand(@"SELECT * FROM Employees", conn);
            
            try
            {
                reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    listboxData.Items.Add(reader[0].ToString() + "" + reader[1] + "" + reader[2] + "" + reader[3] + "" + reader[4]);
                }
            }
            
            catch (Exception ex)
            {
                MessageBox.Show("Chyba: " + ex.Data);
            }
            
            finally
            {
                reader.Close();
                conn.Close();
            }
        }

        private void btnDataReader_Click(object sender, EventArgs e)
        {
            showData();
        }

        private void btnConnect_Click(object sender, EventArgs e)
        {
            connect();
        }
    }
}
MySQL › jak na dotaz
18. 11. 2011   #150176

Zdravím,
mám 4 tabulky (user = uživatel, article = článek, comment = koment, confidence = důvěra).

- user (ID, nick);
- article (autor, reg);
- comment (autor, reg);
- confidence (idUser, hodnota);

A vše je spojené s hlavní tabulkou user, to znamená:
user.nick = article.autor;
user.nick = comment.autor;
user.ID = confidence.idUser;

A já potřebuju ZOBRAZOVAT toto:

<th>[#]</th> <th>[přezdívka]</th> <th>[důvěra]</th> <th>[napsal zpovědí]</th> <th>[napsal reakcí]</th>

Důvěra se pro každého uživatele vypočítá takto: duvera = soucetDuvery/pocetDuvery;
Potřebuji dotaz... Zkoušel jsem tento dotaz, ale někde jsou chyby:

  // a... user tabulka
  // b... článek tabulka
  // c... koment tabulka
  // d... důvěra tabulka
 

  $sqldotaz = mysql_query("SELECT a.nick,
                          (SELECT COUNT(*) AS pocetClanku  FROM article),
                          (SELECT COUNT(*) AS pocetKomentu FROM comment),
                          (SELECT COUNT(*) AS pocetDuvery, SUM(hodnota) AS soucetDuvery FROM confidence)
                           FROM user a
                           LEFT JOIN article b    ON a.nick = b.autor
                           LEFT JOIN comment c    ON a.nick = c.autor
                           LEFT JOIN confidence d ON a.ID = d.idUser
                           WHERE b.reg = '1'
                           AND c.reg = '1'       
                          ");
MySQL › Vnořený dotaz
1. 11. 2011   #149391

   

SELECT hrac_idhrac
FROM (
	SELECT hrac_idhrac, COUNT(*) AS pocet
	FROM turnajvysledek
	WHERE umisteni = 1
	GROUP BY hrac_idhrac
) s
ORDER BY pocet DESC
LIMIT 1
MySQL › Vnořený dotaz
1. 11. 2011   #149385

Zdravím,

mám tuto tabulku:

turnajvysledek

[ ID ] .... [ ID hráče ] .... [ Umístění ]

1                     2                1

2                     3                1

3                     2                1

4                     1                5

A já potřebuji dotaz: hráče s největším počtem vítězství (umístění = 1) ze všech hráčů, kteří jsou v tabulce. Takže pak budu potřebovat, aby mi to zobrazilo toto:

[ ID hráč ] .... [ Počet prvních míst ]

1                             0

2                             2

3                             1

A budu z toho chtít ještě vzít jednoho hráče... Takže to bych ošetřil tím LIMIT 1. Můžete poradit? Nastíním sem dotaz, co jsem spáchal... ale prostě něco je špatně.

SELECT DISTINCT b.hrac_idhrac,
                        (SELECT COUNT(a.umisteni) AS pocet
                         FROM turnajvysledek a
                         WHERE a.hrac_idhrac = b.hrac_idhrac
                         AND a.umisteni = '1')
FROM turnajvysledek b ORDER by pocet DESC LIMIT 1
Assembler › Jak naprogramovat budík v as…
18. 10. 2011   #148744

Zdravím,

nejsem až takový znalec v tomto oboru, ale zkusím něco nadhodit do éteru. ;-)

Bude se zobrazovat čas, datum a rok - fajn. Ale na čem? Na LCD displeji, LCD displeji řízeným mikroprocesorem, nebo na dynamickém displeji? Samozřejmě si myslím, že pro zobrazení nepostačí pouze 4 piny portu P3. Eh... A nemáte to náhodou na tom portu ovládat tlačítkama? Máš v tom asi pěkný guláš. Třebas:

  • P3.0: tlačítko (button) inkrementuje čas/hodiny
  • P3.1: tlačítko (button) dekrementuje čas/hodiny
  • P3.2: tlačítko (button) enter pro potvrzení nastavení
  • P3.3: tlačítko (button) pro nastavení

A jen tak mimochodem, kde se vezme čas? Navrhoval bych dvě (nevím, jestli možné) následující řešení:

  • Nastavení čítače/časovače pro počítání sekund a zvýšení některých proměnných (budou se nacházet v paměťovém prostoru 20H). Problém tohoto řešení je takový, že to není moc přesné. Proč asi? ;-) Protože málokdy se dopočítáš té správné předvolby. Někdy je to zcela nemožné vygenerovat jednu sekundu přesně touto metodou. Samozřejmě musíš dbát na správnou frekvenci (Hz) oscilátoru.
  • RTC (Real Time Clock) obvod/čip, což jsou klasické hodiny. Je to přesné. Myslím od Maxim Dallas.


Zadání si napsal dosti (působí to tak na mě) rozpačitě - sám vůbec nevíš, co od toho očekávat... Pokud tyto poznatky dáš do kupy, určitě Ti rádi poradíme. ;-) Navíc problém vidím i v tom, že nebudeš schopen toto celé dát ve strojovém kódu do kupy, RePRO.

JavaScript, AJAX, jQuery › Vyvolavacia lista na vyber r…
14. 10. 2011   #148627

Zdravím,

stačí trošku umět nabudit Googla. Zkus tam napsat třeba: CSS3 select.

JavaScript, AJAX, jQuery › postupně aktivní selekty (ko…
1. 10. 2011   #148143

   

soubor: index.html

 
 <!DOCTYPE html>
   <html lang = "cs-cz" dir = "ltr">
       <head>
          <meta charset = "UTF-8">
          <title>Závislý select</title>
        
          <script type = "text/javascript" src = "http://code.jquery.com/jquery-latest.js"></script>
          <script>
          $(document).ready(function() {
              $("#select1").change(function() { 
                  
                  var r = getSelected('#select1');
                  $('#select2').removeAttr('disabled');
                  
                  $.get('test.php', {param: r}, function(data) {
                  
                        $('#select2').html(data);
                  });    
              });
          });
        
          function getSelected(selectId) {
              
              $select = $(selectId);
              var str = "";
              
              $('option:selected', $select).each(function () {
                        
                        str += $(this).text() + " ";
              });        
          return str;
          }
          
          </script>
        
          </head>
          <body>
          
          <select name = "select1" id = "select1">
          <option selected = "selected"> --  </option>
          <option name = "cesko" value = "cesko"> Česká republika  </option>
          <option name = "spanelsko" value = "spanelsko"> Španělsko </option>
          </select>
          
          <select name = "select2" id = "select2" disabled = "disabled">
          </select>
            
       </body>
   
   </html>

===
soubor: test.php

<?php
  switch (trim($_GET['param'])) {
      case 'Španělsko': echo "<option name = \"madrid\" value = \"madrid\" selected = \"selected\">Madrid</option>
                              <option name = \"sevilla\" value = \"sevilla\">Sevilla</option>";
      break;
      case 'Česká republika': echo "<option name = \"praha\" value = \"praha\" selected = \"selected\">Praha</option>
                                    <option name = \"olomouc\" value = \"olomouc\">Olomouc</option>";
      break;
  }
?>
JavaScript, AJAX, jQuery › postupně aktivní selekty (ko…
30. 9. 2011   #148060

Ale potřebuji to nějak upravit... resp. pracovat s tou proměnnou R. Nevím, jak jí zakomponovat do toho postu:

  <script>
          $(document).ready(function() {
	            $("#select1").change(function() { 
		                var r = getSelected('#select1');
                    $('#select2').removeAttr('disabled');
                    $('#test').text(r);
                    
                    $.post('nactiDataDB.php', null, function(data) {
                  
                         $('#select2').html(data);
                    });    
	            });
          });
        
          function getSelected(selectId) {
            $select = $(selectId);
            var str = "";
            
            $('#select1 option:selected').each(function () {
                str += $(this).text() + " ";
            });
                    
            return str;
          }
          
          </script>
JavaScript, AJAX, jQuery › postupně aktivní selekty (ko…
30. 9. 2011   #148059

Těžko říct, snad něco na tento způsob... zkusím teď něco večer vymyslet, ale možná budete rychlejší... 

$(document).ready(function() {
	$("#select1").change(function() { 
		$('#select2').removeAttr('disabled');
	});
});
JavaScript, AJAX, jQuery › postupně aktivní selekty (ko…
30. 9. 2011   #148058

Zdravím,

dejme tomu, že máme dva selekty (stát a město). No a mě by zajímalo, jak by se dalo udělat následující (elegantně - nejlépe snad jQuery):

1. Select stát bude aktivní (Select město nebude aktivní - nelze otevřít).

2. Vybere se Česká republika (v prvním selektu) a druhý selekt se aktivuje (to znamená: pokud je aktivovaný první selekt, může být aktivovaný i druhý selekt (snad chápete) - je to logické).

3. Příklad: 

  • Dejme tomu, že vybereme Česká republika (v první selektu), poté budeme mít výčet (ve druhém selektu) následující:
  1. Praha
  2. Liberec
  3. Brno
  4. ...

---

  • Dejme tomu, že vybereme Španělsko (v prvním selektu), poté budeme mít výčet (ve druhém selektu) následující:
  1. Madrid
  2. Valencia
  3. Barcelona
  4. ...

Nejraději budu, pokud sem někdo hodí odkaz na Sample, nebo vlastní Sample. Vyvarujte se prosím obecným kecům - moc to nemám v oblibě. :) Já raději kódy - to jest praxe. 

S pozdravem,

RePRO.

C / C++ › aplikace typu matice
29. 9. 2011   #148010

Jenom taková technická (neberte mě za blázna), dokázali byste to napsat čistěji? (je to v céčku)

Plno lidí (...neprogramátorů...) se snaží psát podobné typy aplikací bez ukazatelů a adres (a je to zcela nesmyslné - věříte mi?). Takže se zeptám jinak, je tu něco, co se Vám nelíbí?

#include <stdlib.h>
#include <stdio.h>
 
#define MATRIX_SIZE 3
 
typedef double TMatrix[MATRIX_SIZE][MATRIX_SIZE];
 
void readMatrix(TMatrix* matrix); 
void add(TMatrix* matrix, const TMatrix* matrix1, const TMatrix* matrix2); 
void sub(TMatrix* matrix, const TMatrix* matrix1, const TMatrix* matrix2); 
void printMatrix(const TMatrix* matrix);
 
int main(int argc, char** argv) {
        TMatrix A, B, C;
 
        printf("Matice A:\n");
        readMatrix(&A);
 
        printf("Matice B:\n");
        readMatrix(&B);
 
        add(&C, &A, &B);
 
        printMatrix(&C);
        
        system("PAUSE");
        return (EXIT_SUCCESS);
}
 
void readMatrix(TMatrix* matrix) {
        for(int i = 0; i < MATRIX_SIZE; i++) {
                for(int j = 0; j < MATRIX_SIZE; j++) {
                        printf("Pozice %d %d: ", i, j);
                        scanf("%lf", matrix[i][j]);
                }
        }
}
 
void add(TMatrix* matrix, const TMatrix* matrix1, const TMatrix* matrix2) {
        for(int i = 0; i < MATRIX_SIZE; i++) {
                for(int j = 0; j < MATRIX_SIZE; j++) {
                        *matrix[i][j] = *matrix1[i][j] + *matrix2[i][j];
                }
        }
}
 
void sub(TMatrix* matrix, const TMatrix* matrix1, const TMatrix* matrix2) {
        for(int i = 0; i < MATRIX_SIZE; i++) {
                for(int j = 0; j < MATRIX_SIZE; j++) {
                        *matrix[i][j] = *matrix1[i][j] - *matrix2[i][j];
                }
        }
}
 
void printMatrix(const TMatrix* matrix) {
        for(int i = 0; i < MATRIX_SIZE; i++) {
                for(int j = 0; j < MATRIX_SIZE; j++) {
                        printf("Pozice %d %d = %f\n", i, j, *matrix[i][j]);
                }
        }
}
C / C++ › programovani v c++ mikroproc…
28. 9. 2011   #148008

Zdravím,

v AVR jsme dělali teď v semestru (dokonce ho mám nainstalované - a to AVR Studio 4). A programovat mikrokontroléry v C++ je zbytečné a dělá se to většinou v holém C, jak píše kolega KIIV. Je tam nástroj (program) AVR GCC, co Ti umožní psát programy přímo v C.

Programovali jsme ATMEL ATmega644. Pokud budeš chtít zaslat programy, které jsme dělali na cvičení, klidně je mohu zaslat. 

Vzdělání › FIT x FI MUNI
20. 9. 2011   #147695

Zdravím,

a nechceš zkusit Aplikovanou informatiku v Jihlavě? Škola stojí za prd, ale programuje se tu celkem dost.

1. semestr:

  • C

2. semestr: 

  • C++

3. semestr:

  • C++ více dopodrobna (více algoritmizace)

4. semestr:

  • Mikroprocesorová technika (programy pro ATMega644 v C
  • Počítačová grafika (grafika v OpenGL - GLUT)
  • Programování Win32 aplikací (Win API - C++ Builder)
  • Tvorba WWW (PHP)

No a teď mě v 5. semestru čeká:

  • Java
  • .NET (C#) 
  • Programování ASP aplikací
  • Mikroprocesory RISC (programy pro PIC18F452 v assembleru)

Tady je odkaz na studijní plán: https://is.vspj.cz/studijni-plany/index/plan/14 [musíš sjed dolů].

Jinak máš tady předměty i Počítačové sítě 1 i 2 (které jsem absolvoval a pohodička).

Docela na pytlačku jsou ty elektro zaměřené předměty, s těma mají studenti většinou potíže [elektrotechnika 1, elektrotechnika 2, číslicové systémy]. Tak jsem udělal trošku mini propagaci našemu oboru a mohu zase odejít. :-)

.NET › keywords: [virtual a abstract]
7. 9. 2011   #147229

Zdravím,

napište sem jednoduše rozdíl mezi těmito klíčovými slovy. Jelikož v jiných programovacích jazycích je buď pouze abstract, nebo virtual. V C# (sí-šárpu) jsou obě tyto klíčová slova (...)

Já to celé chápu takto: Abstraktní metody jsou vždy virtuální. Nemají zajištěnou implementaci.

To je hlavní rozdíl, no a to potom dále znamená (nejspíš - z hlediska mého programovatelského):

  • Abstraktní metoda:
  1. Pokud třída obsahuje abstraktní metodu, musí být tato třída deklarována jako abstraktní.
  2. Abstraktní metoda nemá implementaci (jsou zobrazeny pouze definice metod).
  3. Tedy třídy, které vyplývají (dědí) z této abstraktní třídy, tak metody uvnitř této třídy musí být implementovány.

a také:

  • Virtuální metoda:
  1. Pokud třída obsahuje virtuální metodu, není tato třída deklarována jako virtuální.
  2. Virtuální metoda implementaci.
  3. Tedy třídy, které vyplývají (dědí) z této virtuální třídy, tak metody uvnitř této třídy můžou být přepsány (override), ale nemusí (již jsou implementované).

Díky za postřehy, RePRO.

JavaScript, AJAX, jQuery › tabulátor - doplnění proměnné
24. 8. 2011   #146683

Díky moc. Akorát bych ještě chtěl přidat svůj seznam slov. V PHP mám napsanou svou funkci getUsers, která vrací pole. Tak jak to do toho zakomponovat... Ty si hodně zkušenej člověk přes jQuery. Kdybys byl reglej, už máš u mě reputaci.

JavaScript, AJAX, jQuery › tabulátor - doplnění proměnné
13. 8. 2011   #146185

Zdravím,

pokud znáš chaty (xchat.cz, lide.cz, libimseti.cz), tak určitě znáš tu kravinku, že pokud napíšeš třeba RE, a poté stiskneš klávesu TAB, tak se Ti doplní celá přezdívka -- třeba RePRO.

  • Neví někdo jak na tento zapeklitý skript? :-)

Díky, RePRO.

JavaScript, AJAX, jQuery › refresh - načítání z DB
12. 8. 2011   #146106

Vlastní tvorba? Tak to obdivuji. Dost se mi to líbí (včetně grafiky - jak to děláš? :D) a muselo to dát plno práce. Na druhou stranu pokud člověk umí skvěle použít jQuery (jedinečná knihovna) - je všechno tak jednoduché... Pár řádků kódů a ta funkčnost (dynamičnost) včetně zabezpečení. 

Chápu to -- jak to myslíš, že při každém refreshi budu vytahovat jenom příspěvky, které mají třeba isSee = 0. Ale co s těma ostatníma? Já chci vidět i ty ostatní, kde máš isSee = 1. Ale nechci je tahat z DB... v tom je problém.

BTW: Jak si mi napsal, zkusil jsem tedy LIMIT, a pomáhá to samozřejmě... ale ještě bych to rád optimalizoval tou metodou výše. Když to nepůjde - nepůjde.

Jenže teď jsem si vzpomněl, texty jsou texty - tam dáš třeba LIMIT 10 a jsi v cajku, ale co výpis online users? Tam je nemůžeš zkrouhnout limitem - vždy musíš vypsat všechny online usery. Tam pak je na místě ta metoda.

Díky.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý