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

Anonymní profil Ryan99 – Programujte.comAnonymní profil Ryan99 – Programujte.com

 

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

Ryan99
C / C++ › Hádání čísel - smyčka proběh…
23. 8. 2015   #204500

Tak vyřešeno, stačí přidat mezeru do scanf(" %c").

Ryan99
C / C++ › Hádání čísel - smyčka proběh…
23. 8. 2015   #204499

S 2. máte pravdu, promyslím to tedy jinak. Co se týče:

1) Jak to můžu eliminovat? Napadá mě jedině použít int a vyžadovat zadání 1,2,3. Existuje nějaká možnost jak používat znaky a enter vynechat?

3) Můžu tedy použít jen char odpoved?

Ryan99
C / C++ › Hádání čísel - smyčka proběh…
23. 8. 2015   #204494

#1 Ryan99
Ještě dodám že to takto nefunguje, je nutné char odpoved[1] změnit na char odpoved. Také netuším proč. Potřebuji přece snímat pouze jeden znak...navíc nepomůže ani odpoved[2]...

Ryan99
C / C++ › Hádání čísel - smyčka proběh…
23. 8. 2015   #204493

Dobrý den,

mám jednoduchý program pro hádání čísel. Uživatel si myslí číslo a počítač hádá.

 double minimum = 0, maximum = 100;
  double interval = maximum - minimum;
  double polovina= interval/2;
  char odpoved[1];

  printf("Myslete si cislo od 0 do 100.\n");
  printf("Odpovidejte:\n");
  printf("m - mensi, v - vetsi, s - spravne\n\n");

//nekonečná smyčka (dokud 1 nebude 0 -> nikdy)
  while(1)
  {
    printf("Je Vase cislo %.0f?\n",pul);
    scanf("%c",&odpoved);

    if(odpoved == 'm')
    {
      maximum = polovina;
      interval = maximum - minimum;
      polovina= interval/2;
    }
    else if(odpoved == 'v')
    {
      minimum = polovina;
      interval = maximum - minimum;
      polovina= interval/2;
    }
    else if(odpoved == 's')
    {
      printf("Ohodl jsem!\n");
      return;
    }
    else
    {
    }
  }

Problém je v použití char, pokud bych použil int, problém je odstraněn, cyklus proběhne až po zadání znaku. Řekl bych že bere zadání i jako enter - mám pravdu? Pokud ano, jak to odflitruji? A druhý problém zřejmě souvisí, program reaguje zpožděně. Pokud zadám že je číslo menší než 50, vypíše že si myslí že číslo je 25. Teď dám větší, ale vypíše 13. Čili zadání se projeví až v dalším cyklu, jak je to možné?

Díky za pomoc

Ryan99
C / C++ › Přetypování proměnné znak ->…
28. 6. 2015   #203324

A ještě poslední dotaz. Je nějak možné přetypovat "zbytek onoho řetězce"? Např. mám:

char cisla[30] = "1230954";

S prvními 3 znaky pracuji, ale od 4 bych ho chtěl vypsat a použít, do proměnné bych tedy chtěl dostat řetězec "0954" a ten uložit jako int. Tedy nějakou fci která mi rozdělí řetězec od cisla[3] do konce. A potom předpokládám použiji funkci atoi().

Ryan99
C / C++ › Přetypování proměnné znak ->…
28. 6. 2015   #203323

Díky, opravdu funguje. V C datový typ string ale neexistuje, ne? Nebo se jako string počítá třeba char pomocna[10], tedy pole o 10 znacích = string?

pomocna = cislo[x];
atoi(pomocna);

Mohl byste mi prosím vysvětlit i Váš zápis? Od mého jednoho znaku odečítám jeden znak, který je 0, proč to? Jaktože se tak z jednoho znaku odečtením '0' stane číslo, které můžu zapsat do int?

PS: S Cčkem víceméně začínám, programuji v PHP a dělají mi problémy zejména tyto věci co se týče syntaxe, přetypování, trochu ještě i pointery. Doporučil byste mi nějakou vhodnou literaturu? Nerad bych s každou takovou blbostí jako dnes otravoval zde na fóru..

Ryan99
C / C++ › Přetypování proměnné znak ->…
28. 6. 2015   #203318

Dobrý den,

vytvářím převodník arabských čísel na římská a v jednom kroku  (přičítání M pro tisíce, desetitisíce atd.) bych potřeboval přetypovat proměnnou ze znaků, řetězce na int, kvůli for cyklu. Celé to procházím cyklem, takže potřebuji převést cislo[x] na int a uložit do druhé proměnné, zkoušel jsem to různě, např. takto, ale bohužel, vypisuje to nesmyslné hodnoty...

cislo[15] = "15161212"

pomocna = atoi(cislo[x]);

Díky za rady

Ryan99
C / C++ › Podmínka pro pole
26. 6. 2015   #203286

Dobré odpoledne,

už si vážně nevím rady kde dělám chybu. Snažím se udělat převodník z římských čísel na arabská a opačně. Kupodivu jsem se opět zasekl u syntaxe, jako vždy. Cyklem procházím pole a pokud se ta daná hodnota rovná příslušnému římskému číslu, přičítám její hodnotu v arabských číslicích. Nicméně vyhodnocení podmínky je vždy jako nesplněná. Jak je to možné? Když si to v else vypíšu, vypíše to přesně to co je v podmínce...

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

char rim_cislo[8] = "XXX", neco;
char *uk = &rim_cislo;


int des_cislo, x;


des_cislo = 0;
int main(void)
{
for(x=0; x<=7; ++x){


if(rim_cislo[x] == "\0"){
break;
}


if(rim_cislo[x] == "X"){
des_cislo = des_cislo+10;
} else {
printf("%c \n", rim_cislo[x]);
}

if(rim_cislo[x] == "V"){
des_cislo = des_cislo+5;
printf("aaaa %d", des_cislo);
}
if(rim_cislo[x] == "I"){
des_cislo = des_cislo+1;
}
}

printf("%d", des_cislo); 
}

Ryan99
C / C++ › Hledám člověka na konzultace…
15. 4. 2015   #201453

Ano, jde o jednorozměrnou matici s X x Y prvků. Čili 2x5, 8x8 atd. Čili pokud to správně chápu tak nějak takto?

srand(time(NULL))

printf("Zadejte prvni rozmer matice:\n");
scanf("%d",&prvni);

printf("\nZadejte druhy rozmer matice:\n");
scanf("%d",&druhy);

rozmer = prvni*druhy;

int *ptr = malloc(sizeof(int)*rozmer);

int * ptr = matice;

for(c=1; c<=rozmer;c++){

    matice[c] = rand();

    }

int free(ptr);

S tím že srand zajistí to že fce rand() bude mít pokaždé jiné hodnoty. Potom čtu vstupy, vytvořím rozměr matice, např. 2x3 = 6. Alokuji paměť pro 6*int (čili 24B). Jak teď zajistím to aby v té vyhrazené paměti bylo to moje pole s maticí? Zápisem *ptr =matice[rozmer]? V tomto případě *ptr=matice[6]. Tím mám matici v paměti kterou jsem si alokoval. Teď cyklem zapíšu náhodné hodnoty (12ks) od 0 do 99. Je to tak, nebo se funkce rand() používá jinak? Je celý kód v pořádku?

Díky moc

Ryan99
C / C++ › Hledám člověka na konzultace…
15. 4. 2015   #201415

Teď si říkám že je to nesmysl, protože tam nikde nemám dáno že to pole bude v té vyhrazené paměti.

Takže tam bude ještě něco namísto klasického

int matice[rozmer] tam bude int matice* ptr?

Ryan99
C / C++ › Hledám člověka na konzultace…
15. 4. 2015   #201413

Aha, takže pokud to správně chápu, int zabírá 4B, čili pokud napíši malloc(sizeof(int)*5), vyhradím si paměť pro 5 čísel typu int.

Mám za úkol kde uživatel bude zadávat rozměry matice a podle toho se bude alokovat/uvolňovat paměť. Matici máme doplnit náhodnými čísly a uložit do jednorozměrného pole.

Načtu tedy od uživatele rozměr matice, třeba 4x3. Potřebuji tedy 12 prvků pole pro uložení všech čísel. Celé to bude v nekonečném cyklu, pro jednoduchost to tady udělejme bez něj. Bude to vypadat nějak takto?

printf("Zadejte prvni rozmer matice:\n");
scanf("%d",&prvni);

printf("\nZadejte druhy rozmer matice:\n");
scanf("%d",&druhy);

rozmer = prvni*druhy;

int * ptr = malloc(sizeof(int)*rozmer);


for(c=1; c<=rozmer;c++){

    matice[c] = c;

    }

int free(*ptr);

Pokud zadám 4 a 3 tak obsah pole[] bude "1,2,3,4,5,6,7,8,9,11,12"). Pokud bych chtěl čísla generovat náhodně, jak to udělat? Existuje nějaká funkce random?

Ryan99
C / C++ › Hledám člověka na konzultace…
15. 4. 2015   #201401

To jsem původne chtěl, ale nevím zda toho nebude na veřejné fórum příliš :d , máme asi 10 úkolů a zaseknul jsem se na 3. kde máme udělat alokaci paměti podle toho kolika rozměrnou matici si uživatel vyžádá. Pokud si vyžádá menší, tak paměť uvolnit. Potřebuji tak trochu nakopnout správným směrem abych to dokázal pochopit.

Já chápu princip malloc(), že mi vyhradí místo v paměti a vrátí ukazatel na začátek. Vyhradí mi tedy třeba místo od 69000 do 70000. A vrátí ukazatel na 69001. Pokud bych použil calloc() tak je to to samé, jen v paměti všude přepíše hodnoty na 0.

Ale problém je s tím použitím, našel jsem použití:

void *malloc(size_t size);

Čemuž už nerozumím. Void se používá jako parametr funkce pokud žádný nechci main(void), ale tady je jako proměnná ve které mám ten ukazatel? Size_t (vím že musí být inicializována speciální knihovna) je vlastní datový typ, hodně velký, místo toho size napíšu počet bitů které chci vyhradit? Čili třeba void *malloc(size_t 256) mi vyhradí 256 míst v paměti? A ukazatel tedy vrátí hodnotu třeba 8000 a paměť bude vyhrazena do 8256?

Ryan99
C / C++ › Hledám člověka na konzultace…
15. 4. 2015   #201396

Dobrý den,

našel by se někdo kdo by mi za nějakou rozumnou hodinovku po skypu pomohl pochopit základy Cčka? Mám nějaké úkoly se kterými bych potřeboval pomoci.

Pokud ano, můj email: olomoucak1@email.cz , pokud připojíte i svůj skype, vše tím urychlíme.

Ryan99
C / C++ › Jak v C ošetřit vstupy pouze…
18. 3. 2015   #200391

Díky moc kluci, v Cčku se začínám učit tak doufám že neavdí že se tu objeví víc takových triviálních dotazů...

Ryan99
C / C++ › Jak v C ošetřit vstupy pouze…
17. 3. 2015   #200368

Dobrý den,

chtěl bych se zeptat na začátečnickou otázku, nikde se mi nedaří najít odpověď. Jak je možné ošetřit vstup pouze na čísla? Jde mi o to, aby při chybě (zadání znaku) program znovu vyzval k zadání čísla. Zkoušel jsem různé cykly, např.:

while((scanf("%g", &a) != 1)){
        printf("Znovu, musite zadavat pouze cisla!");
        }

při zadání čísla je to v pohodě, ale při zadání textu se to zacyklí, musím tu proměnnou zase nějak vymazat, nebo jak to upravit?

Díky

Inzerce › Nabízím tvorbu webovýh stránek
13. 3. 2009   #97234

Tocimanko
Bohužel, právě grafik moc dobrý nejsem, jdnoduchý design v gimpu udělám, složitější mi dělá kamarád, ale photoshop nepoužívám. Jsem spíše kodér a částečně programátor.

Inzerce › Nabízím tvorbu webovýh stránek
13. 3. 2009   #97228

JIstě, vážný zájemce se na emailu dovzví referecne i cenu za jeho projekt. Upřímě, přesný ceník ti nabídne asi 40% webdesignérů.

Inzerce › Nabízím tvorbu webovýh stránek
13. 3. 2009   #97225

CrAzY
To ne, ale je to na jednom projektu, reference jen vaznym zajemcum na emailu. Az budu mit nejake jine, pokud se najde nekdo kdo bude chctit web, tak je sem muzu dat.

Inzerce › Nabízím tvorbu webovýh stránek
13. 3. 2009   #97222

Pawlik
Kvůli tomu abych uměl dobře kódovat musím mít vlastní doménu? Jednu mám, ale ta se k tvorbě webů příliš nehodí takže jsem využil email u seznamu, který mi prozadím vyhovuje. Reference na emailu pokud máte zájem.
Když vám vadí neregistrovaní uživatelé, zaregistroval jsem se (toto fórum neznám, takže jsem se předtím neregistroval).

Hitman
Inzerce › Nabízím tvorbu webovýh stránek
13. 3. 2009   #97218

Nabízím tvorbu kvalitních webových stránek se základní SEO optimalizací. Žádný ceník nemám, weby tvořím individuálně, na ceně se nějak dohodneme.
Pokud máte zájem, kontaktujte mně na kvalitni-weby@seznam.cz.

Anonymní uživatel
JavaScript, AJAX, jQuery › Odpočet
27. 6. 2008   #78255

Chtěl poradit jak vytvořit odpočet času.Napište prsím přesný kód i s názvem souboru.Např.

<body...........>
........................
........................

uložit do souboru pocitadlo

.....................
....................
ulozit do index

 

 

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