Potřebuji poradit – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Potřebuji poradit – C / C++ – Fórum – Programujte.comPotřebuji poradit – C / C++ – Fórum – Programujte.com

 

Robert0
Duch
11. 5. 2006   #1
-
0
-

Chci se zeptat jestli se da v C++ napsat kod ktery by ,nebo jak by asi mel vypadat, abych tim kodem spustil nejakej program co mam na ploše, jako kdyz na klavesnici zmacknu enter nebo pouziju myš, nebo jde mi o to jak se da do zdrojoveho kodu napsat tlacitko enter aby se aktivovalo, poradte prosim.

Nahlásit jako SPAM
IP: ...–
some_one0
Návštěvník
11. 5. 2006   #2
-
0
-

Tady spíše jednodušší cesta povede přes WinAPI a zasílání zpráv - prostě oknu (třeba ploše) pošleš zprávu, že byl zmáčknutej enter, atp..

Nahlásit jako SPAM
IP: ...–
Honza0
Stálý člen
16. 5. 2006   #3
-
0
-
Nahlásit jako SPAM
IP: ...–
-- ian
Ond?ej ?pl?chal0
Posthunter
28. 5. 2006   #4
-
0
-

Taky sem nak nepochopil dotaz... zkus to lip vysvetlit ;-)

Nahlásit jako SPAM
IP: ...–
bbtrash0
Stálý člen
29. 5. 2006   #5
-
0
-

Ja bych taky potreboval odpoved nevim presne jak to mam udelat a kompilator mi hazi chybu.
Potrebuju proste otevrit soubor jako kdyby se na nej poklepalo 2x normalne ve WIN
treba mam soubor ping.bat a potrebuju ho otevrit.
zkousel sem:



#include<shellapi>
....
ShellExecute(handle, "open", <C:\ping.bat>, NULL, NULL, SW_SHOWNORMAL);

a nejde win api nedelam a reseni pro ciste c++ sem zatim nenasel :((
diky vela moc jestli nekdo odpovi

Nahlásit jako SPAM
IP: ...–
Příspěvek nebyl psán Češtinou !
Jura_0
Stálý člen
29. 5. 2006   #6
-
0
-

bbtrash napsal:

Ja bych taky potreboval odpoved nevim presne jak to mam udelat a kompilator mi hazi chybu.
Potrebuju proste otevrit soubor jako kdyby se na nej poklepalo 2x normalne ve WIN
treba mam soubor ping.bat a potrebuju ho otevrit.
zkousel sem:



#include<shellapi>
....
ShellExecute(handle, "open", <C:\ping.bat>, NULL, NULL, SW_SHOWNORMAL);

a nejde win api nedelam a reseni pro ciste c++ sem zatim nenasel :((
diky vela moc jestli nekdo odpovi




ShellExecute(0, "open", "C:\\ping.bat", 0, 0, SW_SHOWNORMAL);

Prvni parametr je handle k rodicovskemu oknu(pokud neni zadate NULL)
Druhy paramaetr je opearce ktera se ma provest
Treti je cestak ke spousteni souboru. Pokud je cesta uvedena v promenne PATH neni potreba uvadet celou cestu. Takze pokud chcete pingnout nejaky server, tak staci zadat pouze ping.
Ctvrty parametr jsou parametry predavane spoustene aplikaci. A tady znovu, pokud chcete pingnout napr. Seznam.cz, tak staci zapsat www.seznam.cz.
Patym parametrem je cesta k defaultnimu(k prohledavanemu) adresari.
A posledni parametr specifikuje, jak bude program zobrazen.
Vice na msdn.
Jinak jeste doplnim pro priklad pingu serveru Seznam.cz(jen proto,ze vidim vasi snahu o spusteni ping)


#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{
ShellExecute(0, "open", "ping", "www.seznam.cz", 0, SW_SHOWNORMAL);
system("PAUSE");
return EXIT_SUCCESS;
}


Nahlásit jako SPAM
IP: ...–
29. 5. 2006   #7
-
0
-

pokud jde o prikaz ping, tak neni nic jednodussiho nez napsat



#include <iostream>

int main(){
system("ping www.seznam.cz");
system("pause");
return 0;
}

Nahlásit jako SPAM
IP: ...–
Ond?ej ?pl?chal0
Posthunter
29. 5. 2006   #8
-
0
-

A pokud de o otevreni souboru tak pouzij funkci ShellExecute() jak ji tu nadherne popsal Jura_ (musis includnout windows.h ...) ;-)

Nahlásit jako SPAM
IP: ...–
bbtrash0
Stálý člen
30. 5. 2006   #9
-
0
-

jo diky vela moc.
a primo o ping mi nejde ale urcite to nekdy potrebovat budu
ale v manualu psali shellapi.h mno nic odzkousim
zkratka - diky mooc.

Nahlásit jako SPAM
IP: ...–
Příspěvek nebyl psán Češtinou !
S.Salomon0
Newbie
23. 9. 2006   #10
-
0
-

zdarec mam takovy problem s tim to kodem :

#include <iostream>
using namespace std;
int main ()
{
cout << "Zadej mezni cislo M :n";
int m;
cin >> m;
if (m<0)
{
m = m*(-1);
cout <<"Cislo, ktere jste zadali bylo prevedeno na kladne.n";
}
if (m==0)
{
cout << "Toto cislo nebubu resit.n";
cin.get();
cin.get();
exit (1);
}
int tc=1;
int d=1;
int v;
int poc=0;
do
{
do
{
v = tc%d;
if (v==0)
{
poc=poc+d;
}
/*cout << d << " " << tc<< " "<<poc<<" "<< v<<"n";*/
d++;
}while (tc>d);
if ((poc-tc)==tc)
{
cout << "Cislo ["<<tc<<"]<< je dokonale.n";
}
poc=0;
tc++;
}while (m>=tc);
cin.get();
cin.get();
return 0;
}


Je to program, ktery ma najit vsechna dokonale cisla do cisla M(mezni cislo). (dokonale cislo je cislo napr 6 ... soucet jeho delitelu je roven cislu samotnemu 6= 3 + 2 +1 pochopitelne se nepocita samotny 6 ...dalsim dokonalym cislem je napr 28) No ale k veci program ma vzdy vzit testovaci cislo tc a pak ho videlit vsemi deliteli, ktery jsou mensi nez on sam a pak zvysit tc o jedna a tak dal a vypisovat jenom dokonala cisla ... to se, ale nedeje proc ??

Diky za odpoved

Nahlásit jako SPAM
IP: ...–
http://programujte.com/avatari/51.jpg
Jura_0
Stálý člen
23. 9. 2006   #11
-
0
-

Zde je tvuj opraveny kod:



#include <iostream>
using namespace std;
int main ()
{
cout << "Zadej mezni cislo M :n";
int m;
cin >> m;
if (m<0)
{
m = m*(-1);
cout <<"Cislo, ktere jste zadali bylo prevedeno na kladne.n";
}
if (m==0)
{
cout << "Toto cislo nebubu resit.n";
cin.get();
cin.get();
exit (1);
}
int tc=1;
int d=1;

int poc=0;
do
{
d = 1; // zapomnel jsi nastavit promennou d zpet na vychozi hodnotu
do
{
if (!(tc % d))
{
poc=poc+d;
}

d++;
}while (d < tc);
if (poc==tc)
{
cout << "Cislo ["<<tc<<"]<< je dokonale.n";
}
poc=0;
tc++;
}while (m>tc);
cin.get();
cin.get();
return 0;
}

Nebyl bych to ja, kdybych zase neco nezkritizoval. Ale neber to nijak osobne, jen se pro priste vyvaruj pouziti cyklu do{}while - neda se to cist. Radeji pouzij for, sam pak zjistis jeho vyhodu. Krome toho tento problem by se dal elegantne vyresit prave pomoci for:


#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
const int M = 100;
for(int i=1; i <= M ; ++i)
{
int sum = 0;
for(int j = 1; j < i; ++j)
if(!(i % j))
sum += j;
printf("%d %s perfect number.n", i, (sum == i)?"is":"isn't");
}
system("PAUSE");
return EXIT_SUCCESS;
}

Myslim, ze rozdil je patrny na prvni pohled.

Nahlásit jako SPAM
IP: ...–
S.Salomon0
Newbie
24. 9. 2006   #12
-
0
-

Díky za odpověď a hned mám další dotaz nejde mi cin.get ani cin.getline :

#include <iostream> // i když tam nechám jen #include tak to nejde
using namespace std;
int main ()
{
cout <<"Zadej cislo pro prevedeni: n";
int cislo[5]; // pole
cin.get(cislo, 5);
cout << cislo[1];
cout << cislo[4];
cin.get();
cin.get();
return 0;
}


A hned připojím další dotaz jak se dá v C++ nahradit odmocnina.

Díky za odpověď

Nahlásit jako SPAM
IP: ...–
http://programujte.com/avatari/51.jpg
Jura_0
Stálý člen
24. 9. 2006   #13
-
0
-

S.Salomon napsal:

Díky za odpověď a hned mám další dotaz nejde mi cin.get ani cin.getline :

#include <iostream> // i když tam nechám jen #include tak to nejde
using namespace std;
int main ()
{
cout <<"Zadej cislo pro prevedeni: n";
int cislo[5]; // pole
cin.get(cislo, 5);
cout << cislo[1];
cout << cislo[4];
cin.get();
cin.get();
return 0;
}


A hned připojím další dotaz jak se dá v C++ nahradit odmocnina.

Díky za odpověď.


Mno, vidim, ze by bylo nejlepsi, kdybys obetoval vice casu samostudiu. Jinak nic jako cin.get(int*, streamsize) neexistuje. Totiz existuji metody pouze pro char, char* . Tim padem ti nezbyva nic jineho nez je nacist rucne, tedy pres cyklus. A co se tyce odmocniny, tak si tedkom vubec nejsem jisty, co myslis tim nahradit? V C/C++ na to neexistuje zadny symbol, ale funkce sqrt, coz je druha odmocnina z cisla, a jestlize myslis jinou odmocninu, nez je prave sqrt, tak pouzij pow(cislo, 1.0/cislo_odmocniny).

Nahlásit jako SPAM
IP: ...–
S.Salomon0
Newbie
25. 9. 2006   #14
-
0
-

Hmm to jsem nějak přehlédl no další věc, která mi nedá spát: Jak postupně inkrementovat čísla prvkou u pole :



int a=0;
int vysledek[50];
.
.
.
int vysledek[a++]....; // to samozřejmě nejde



Jako vždy díky za odpověď.

Nahlásit jako SPAM
IP: ...–
http://programujte.com/avatari/51.jpg
Jura_0
Stálý člen
25. 9. 2006   #15
-
0
-

S.Salomon napsal:

Hmm to jsem nějak přehlídl no další věc, která mi nedá spát: Jak postupně inkrementovat čísla prvkou u pole :



int a=0;
int vysledek[50];
.
.
.
int vysledek[a++]....; // to samozřejmě nejde
?


Jako vždy díky za odpověď.


Naprosto stejne jako jakoukoliv promennou:


int pole[50];
++pole[0];
.
.
.
++pole[49];

Nahlásit jako SPAM
IP: ...–
S.Salomon0
Newbie
25. 9. 2006   #16
-
0
-

Tak už jsem přišel na to jak to inkrementovat(aspoň myslím), ale nevím jak tomu přiřadit hodnotu např.:



#include <iostream>
using namespace std;
int main ()

{
cout <<"Zadej cislo pro prevedeni: n";
int cislo;
cin >> cislo;
int zbytek=0;
int polohovac;
int vysledky[polohovac];
for (polohovac=0;cislo>=1;polohovac++)
{
zbytek=cislo%2;
vysledek[polohovac] = zbytek; // nejde
vysledek[polohovac] = {zbytek}; // nejde
cislo= cislo/2;
};
.
.
.




DZO

Nahlásit jako SPAM
IP: ...–
http://programujte.com/avatari/51.jpg
18. 10. 2006   #17
-
0
-

Chci poradit ja vytvorim nejakej program v dev C++ normalne ulozim vsecko a kdyz ho chci spustit tak ten program jen problikne a vubec se nezobrazi ,nevim cim to muze byt. Fakt diky jestli mi poradite ?:P?kdyztak mi to napiste na z.ondra@email.cz dik moc

Nahlásit jako SPAM
IP: ...–
xp0
Věrný člen
18. 10. 2006   #18
-
0
-
Nahlásit jako SPAM
IP: ...–
Není čas ztrácet čas
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 11 hostů

Moderátoři diskuze

 

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