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

Anonymní profil m-> 29 – Programujte.comAnonymní profil m-> 29 – Programujte.com

 

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

C / C++ › Žádost o radu
25. 5. 2009   #101732

No neviem nakoľko si unavený, ale toto

if (BMI>18 && BMI>=25)
je divné :-/A všetky podobné kúsky.
Podmienka bude pravdivá iba ak
(BMI>=25)
A v takýchto konštrukciách sa používa if - else if- else, aby to zbytočne netestovalo každú podmienku. Teda pokiaľ to neprejde všetky vetvy.

EDIT: No niečo na ukážku :-)
#include <iostream>

using namespace std;
int main(void) {
float vyska;
int vaha;
int vek;
int BMI;

cout << "Zdravim te";
cout << "\nZde napis svuj vek: ";
cin >> vek;
cout << "\nZde napis svoji vahu v kilogramech: ";
cin >> vaha;
cout << "\nZde napis svoji vysku v metrech: ";
cin >> vyska;
cout << "\nVase vaha je: " << vaha << " kg, vase vyska je: " << vyska << " m, vas vek je: " << vek << "let";
BMI = (int)(vaha / ( vyska * vyska ));
cout << "\n\nVase BMI je: " << BMI ;
if(BMI>18)
cout << "Optimalni vaha";
else if(BMI>25)
cout << "mel by si se sebou neco delat!";
else if(BMI>30)
cout << "Obezita I.";
else if(BMI>35)
cout << "Obezita II.";
else if(BMI>40)
cout << "Obezita III.";
else
cout << "Jsi podvyziveny!!";

cin.get();
cin.get();
return 0;
}

C / C++ › Kod z pascalu do c
23. 5. 2009   #101627

To moje bolo myslené skôr v dobrom, to tvoje sa dá pochopiť aj ako urážka. Niekoho by napríklad nemuselo ani napadnúť, že existuje taký program, ktorý konvertuje z Pascalu do C, a nemusí to byť idiot ;-)

C / C++ › Kod z pascalu do c
22. 5. 2009   #101598
C / C++ › Structury
20. 5. 2009   #101511

No takže toto mi nedá aj keď sa do C++ moc nerozumiem: zamestnancy??? :-o WTF? Nie je tam náhodou mäkké y? To úplne kole oči aj takému pravopisnému netvorovi ako som ja :-D
No a aby som len nekecal. Som si aj hľadal čo robí cin.get() ale študovať to nemám čas, ale prečo to načítaš tým spôsobom? Prečo nie takto?

cin >> osoba[i].meno;	// osoba[i].meno by malo byť string 

EDIT: Tak som sa na to trošku pozrel a myslím, že by si to mohol zmeniť takto:
cin.get(osoba[i].meno,100); 

Potom som ešte pozeral, že tie for-i
for (j=0; j<=x; j++)
by som upravil na
for (j=0; j<x; j++)

C / C++ › Ošetření nuly a zaporného čí…
20. 5. 2009   #101508

No ja by som tam dal do-while, a mal by som to kratšie.

OS - Windows › CMD a špatné znaky diakritic…
20. 5. 2009   #101496

Santas napsal:
Stačí pohľadať. Riešilo sa to tu už niekoľkokrát.

No ja som hľadal a nič som nenašiel a tiež by ma celkom zaujímala taká diskusia. Keby ma trochu popostrčíš tak by som ti bol vďačný ;-)

C / C++ › Průběžné dotazy
19. 5. 2009   #101452

No to už neovplyvním, ale mne to ide - ten "dopis.txt" máš napevno v programe takže tam bude chyba. ten "dopis.txt" musí byť v tom istom priečinku ako ten spustiteľný EXE súbor a na tom poste čo si sem dával ti ho tam nevidím napr. - nakopíruj tam ten súbor a pôjde to ;-)

C / C++ › Průběžné dotazy
19. 5. 2009   #101449

Aby ti to čakalo tak tam musíš dať 2x getchar(); pretože ty načítaš znak, ktorý ti to má hľadať a potom dáš ENTER = znak '\n'. Tento znak '\n' ti potom ostane v buffri a načítaš ho druhým volaním getchar(); na konci - preto ti to nečaká. Už znak totiž zadávať nemusíš, načítalo '\n' :smile16: Čiže, aby som sa dopracoval k riešeniu... :-D treba dať na koniec dvakrát getchar(); asi takto:

#include <stdio.h>


#define SOUBOR "dopis.txt"

FILE *fr;

int main(void) {

...

if (fclose(fr) == EOF)
printf("Chyba pri zavirani souboru!\n");

getchar(); getchar();

return 0;
}
Ešte je možnosť pomocou skriptu teda, ako tu už niekto spomenul. Ak si súbor "run.bat" nakopíruješ do priečinku kde máš súbor "dopis.txt" aj súbor "vypocet_cetnosti_znaku.exe" a spustíš, tak to bude čakať aj bez tých dvoch volaní getchar(); ;-)

C / C++ › Průběžné dotazy
14. 5. 2009   #101199

Inak, ak začínaš, tak je výborná vec zapať si čo najviac varovaní a upozornení na chyby - dosť to pomáha myslím, nie len začiatočníkom ;-) ja používam gcc, neviem čo ty, ale ak ho používaš tiež, skús to prekladať takto:

gcc -std=c99 -pedantic -Wall -W subor.c -o subor

C / C++ › hladanie podla ev. cisla
13. 5. 2009   #101062

No mne tá funkcia od o-loxa ide. Je pravda, že som spravil malé úpravy (zmenil som ju na 1-parametrovú a vložil scanf() do funkcie na načítanie vstupu), tak aby sa podobala na tie ostatné funkcie. Ale, tá malá pomoc sa mi nezdá až taká malá. Ak nezvládneš takúto maličkosť a mala by si vedieť spraviť celý ten program sama, tak to ti odporúčam si čo to o C prečítať ;-)
http://www.sallyx.org/sally/c/

C / C++ › hladanie podla ev. cisla
12. 5. 2009   #101017
C / C++ › hladanie podla ev. cisla
12. 5. 2009   #101009

Daj sem čo máš + nejaký ten popis čo od toho čakáš okrem toho hľadania a niekto ti už pomôže :-)

C / C++ › Průběžné dotazy
12. 5. 2009   #101002

To nebolo myslené nejak zle. Ono, kým si osvojíš nejaké zaužívané konštrukcie tak to chvíľu trvá. A to si neosvojíš kým si nepopozeráš nejaké kódy druhých ľudí... Ale všeobecne sa drž toho, že nekonečné cykli a break; continue; by si mal používať málo. Hlavne teda tie cyklenia nekonečné. :-)

C / C++ › Průběžné dotazy
12. 5. 2009   #100977

Keď sa na to tak pozerám, nedá mi to...

#include <stdio.h>


int main(void) {
int c = 0, sum = 0;

while((c = getchar()) != '\n') {
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))
sum++;
}
printf("Pocet velkych a malych pismen, ktere jste zadali, je: %d", sum);

getchar();

return 0;
}

C / C++ › Problem s nacitanim zo suboru
12. 5. 2009   #100934

Tak som sa s tým trochu ešte hral: skús zmeniť riadok

Polozka[Pocet] = (OBJEDNAVKA *)malloc(STRUCT_SIZE);
za
Polozka[i] = (OBJEDNAVKA *)malloc(STRUCT_SIZE);
;-)

C / C++ › Problem s nacitanim zo suboru
12. 5. 2009   #100932

Skús zameniť riadky

scanf("%s", &fname);
za
scanf("%s", fname);
Keďže neviem ako vyzerá ten súbor program.txt tak to nemám ako testovať ale toto by malo pomôcť hádam ;-) Mimochodom
scanf("%s", fname);
je dosť na prt, pretože ti tam môžem kľudne napísať reťazec, ktorý má viac ako 5OO znakov a aj tak ti to padne. Dal by som tam toto napr.
scanf("%32s", fname);
a načíta to vždy len prvých 32 znakov ;-)

C / C++ › Zistenie počtu výskytu jedné…
11. 5. 2009   #100908

int pocet_znakov = 0;

for(int i=0; i<20; i++) {
if(pole[i] == 'a') { pocet_znakov++; }
}

C / C++ › Průběžné dotazy
11. 5. 2009   #100894

...tam mam proto, aby se to hned po zobrazeni vysledku nezavrelo

Na to ti stačí getchar();
Inak, to ti prekladač nevyhodí chybu alebo aspoň warning? to scanf("%d");

C / C++ › Průběžné dotazy
11. 5. 2009   #100886

Tipujem to na medzeru v scanf("%d %d", &i, &j); - bere ti to ako jedno cislo.

#include <stdio.h>


int main()
{
int i, j;
int vetsi, mensi;
printf("Zadejte dve cela cisla:\n");
scanf("%d %d", &i, &j);

mensi = ( i > j ) ? j : i;

printf("Mensi cislo: %d", mensi);

printf(""); // tymto si co chcel?
scanf("%d"); / a tymto?
return 0;
}

OS - Windows › CMD a špatné znaky diakritic…
7. 5. 2009   #100657

Konzola používa iné kódovanie ako celé prostredie. LATIN2 vs. WIN1250. Už je to tak a urobíš s tým asi prt :-(

C / C++ › Preskakovanie riadkov v súbore
4. 4. 2009   #98519

Nad mapovaním do pamäte som tiež rozmýšľal, ale zase ma odradila tá spotreba pamäte:-D Jednoducho som asi puntičkár :-| No nevadí, asi skúsim ten builtin čo písal KIIV, alebo vyzistiť to fscanf(file, "%*[\32- \255]\n")); myslím že táto konštrukcia len behá po znakoch a zahadzuje ich - nič neukladá. :-|
Už ale len čisto pre zaujímavosť, ako tie riadky preskočiť, lebo pomocou fgets mám už vyriešených kopu vecí ;-) Inak, dík všetkým za myšlienky.

C / C++ › Preskakovanie riadkov v súbore
4. 4. 2009   #98509

No tú maximálnu dĺžku poznám - dík teda za radu :-) Som si len myslel, že existuje aj lepšie riešenie :-(

C / C++ › prepis z Pascalu do c
4. 4. 2009   #98508

..tak si to napíšem :-p No končím, lebo len spamujem :-(
Keď je to úloha tak by si sa to mohol aj sám pokúsiť nie? Sa ti to zíde podľa mňa;-)

C / C++ › prepis z Pascalu do c
4. 4. 2009   #98502

A tu sa teda naskytla nová otázka: A čo za to? :smile20:

C / C++ › Preskakovanie riadkov v súbore
4. 4. 2009   #98500

Serus, nevie niekto ako efektívne preskočiť riadky v súbore? Teda, preskočiť ich nemám problém, ale moje dva nápady sa mi zdajú dosť neefektívne a ťažkopádne :smile13: Na nete sú rady, na ktoré by som prišiel aj sám, ako čítať riadok až kým sa nedostanem na ten čo chcem alebo hľadať po písmene konce riadkov... No momentálne sa rozhodujem medzi dvomi variantami:

fgets(buffer, MAX_DLZKA_RIADKU, file);   // príde mi neefektívne to stále zapisovať do pamäte


fscanf(params.file, "%*[ -˙]\n");

to fscanf mi zase príde, že to neprečíta všetky znaky, len ' '(medzera) až '\255'.
Neviem ako tam zadať aby mi to čítalo všetko, vrátane bielych miest (medzera, tabulátory, ...)
fscanf(params.file, "%*s\n"); mi skončí na medzere. Neviete o nejakom inom spôsobe ako preskočiť riadok/riadky?

Assembler › Potřebuji vytvořit maličký p…
8. 3. 2009   #96937

Tak ja som mal na priemyslovke takého Magora, že som vedel mov. A keď som sa naučil xchg tak som si myslel, že som pokročilý programátor :-D

Som si myslel, že je to pre PC-cvokov. No a na výške mi pekne vysvetlili čo a ako a nemal som problém. Jednoducho, ozaj z ničoho sa nedá. Kniha nie je taká ako keď to niekto vysvetlí a názorne predvedie.

C / C++ › Přehození znaků v řetězci
27. 2. 2009   #96123

strlen sa nikdy nepoužíva takto:

for (int i = 0; i < strlen(r); i++){}

Je to veľmi výpočtovo aj časovo náročné!! Tuná môj kód - hádam pomôže:-)
#include <stdio.h>

#include <stdlib.h>
#include <string.h>

void reverzia(char *text) {
int znakov = strlen(text);

for(int i=0; i<znakov/2; i++) {
text[i] ^= text[znakov-i-1];
text[znakov-i-1] ^= text[i];
text[i] ^= text[znakov-i-1];
}
}

int main(void) {
char text[] = "Pepek Namornik";
reverzia(text);
printf("%s\n", text);

return EXIT_SUCCESS;
}

Inzerce › Hľadáme PHP programátora
13. 2. 2009   #94827

Safo napsal:
Jezis ludia vy mate tolko optimizmu. :smile5:
Ved to nemusi byt nejaky super pokrocili programator. Dnes uz OOP a pracu s databazou pozna kadekto. A ked niekto nema co robit cez prazdniny, tak si myslim, ze je lepsie zabit cas programovanim ako hranim nejakych hier alebo podobne.

Kokos, ty si myslíš, že taký programátor čo sedí celý čas pri PC sa baví cez prázdniny programovaním? Ide konečne niekam von kurnik nie? A na druhej strane sú zase takí čo zostanú doma v zastretej miestnosti, ale tí sa zas nezahadzujú portálmi o hrách - tých trápia iné programátorské problémy;-)
PS: Sloboda prejavu je pekná vec:-D

m-> 29
Assembler › zvlastny uvod main()
13. 2. 2009   #94826

Skúšal som niečo takéto dať do C ale nefunguje to:

#include <stdlib.h>

#include <stdio.h>

int main(void) {

__asm {
mov eax, a
add eax, 200
mov a, eax
}

return 0;
}
Nemôže sa na to niekto pozrieť a povedať mi prečo? Vždy mi to vyhodí hlášku: syntax error before '{' token na riadku 6. Používam code::blocks a prekladám s parametrami -std=c99 -g -Wall -W -pedantic -O Moc by mi to pomohlo ak by mi nejaký geek poradil - dík

m-> 29
Assembler › Parametre príkazového riadku…
11. 2. 2009   #94695

Ta teda, ešte raz thx a lot :smile2: šupnem sem nahratie toho stringu do pola, keby to niekoho ešte trápilo;-)

   bits 16


segment code
..start:
mov ax,data
mov es,ax ; es = &argv

; zásobník
mov ax,stack
mov ss,ax
mov sp,stacktop

xor cx,cx ; cx = 0
mov cl,[80h] ; cl = počet znakov argumentov

mov si,82h ; si = &args
mov di,argv ; di = &argv

or cx,cx ; cmp(cx, 0)
jz no_args

cld ; set incremet si, di
dec cx ; prvý znak je medzera
rep movsb ; while(cx > 0) argv[di++] = args[si++];

no_args:
mov al,'$' ; al = ukončovací znak asm
mov [es:di],al ; argv[di] = '$' (ukonči reťazec)

mov ax,es
mov ds,ax ; ds = &argv

mov ah,09h ; služba výpis reťazca na adrese dx
mov dx,argv ; dx = &argv
int 21h ; vypíš reťazec ukončený '$'

mov ah,4Ch ; vráť sa do DOSu
int 21h

segment data
argv resb(256) ; char argv[256];

segment stack stack
resb 1000
stacktop:

m-> 29
Assembler › Parametre príkazového riadku…
11. 2. 2009   #94690

Veď som hľadal, a veľa. To mi môžeš veriť, a aj to, že som skúšal už všeličo:-D Každopádne mi to fakt pomohlo. Všetko som mal dobre, akurát ma naštartovala tá tvoja poznámka o neprepísaní "ds";-) na začiatku som "ds" hneď prepísal svojim vlastným data segmentom. Stačilo to odstrániť a už je to;-) dík moc - som si to neuvedomil:-)

m-> 29
Assembler › Parametre príkazového riadku…
11. 2. 2009   #94655

Mám taký problém s NASM (Net Assembler). Potreboval by som prečítať parametre príkazového riadku a nijak sa mi to nedarí. Skúšal som googliť, ale riešenia typu: parametre sú uložené na adrese 0X81, alebo na vrchole zásobníku mi nefungovali. A ani pár ďalších :( Mohol by mi niekto kto sa vyzná v Assemblery, konkrétne NASM, poradiť niečo funkčné? Potreboval by som len z

C:\> my_program.exe pepek namornik
prečítať string "pepek namornik". O rozsekanie do pola by som sa postaral (hádam) ;)

 

 

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