C++ Abeceda - algoritmus

Programovacie jazyky, rady, poradňa...
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

C++ Abeceda - algoritmus

Príspevok od používateľa m_pro_m »

Ahojte ...
robím taký jeden program, no a potrebujem tam taký kus kódu, ktorý by spravil asi toto :
1. Zadáte 2 písmena.
2. On si ich musí zaradiť do abecedy
3. Vráti číslo, ktoré bude vzdialenosť tých 2 písmen v abecede

napr. Zadám M a F. Ono si ich nájde v abecede a vráti mi že sú od seba vzdialené 7 miest.

Ďakujem.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: C++ Abeceda - algoritmus

Príspevok od používateľa audiotrack »

stačí ti odrátať ich ordinálne hodnoty a výsledok dať do absolútnej hodnoty. Na prevod znaku na číslo použiješ funkciu atoi(), absolútna hodnota je abs()
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

Re: C++ Abeceda - algoritmus

Príspevok od používateľa m_pro_m »

prosím hodíš mi tu dajaký príklad ? nechápem tomu len tak z "poučky" :D
ďakujem
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: C++ Abeceda - algoritmus

Príspevok od používateľa audiotrack »

cout << "rozdiel je: " << abs(atoi(znak1) - atoi(znak2));

občas nemám slov
Aiden
Darca
Darca
Používateľov profilový obrázok
Príspevky: 2213
Registrovaný: 06 apr 2007, 14:28

Re: C++ Abeceda - algoritmus

Príspevok od používateľa Aiden »

pozri si ASCII tabulku...kazdemu znaku je tam pridelene cislo a urcity blok tvoria aj male (prip. velke) pismena

"a" prislucha 97 ak sa nemylim, tj. "c" bude mat hodnotu 99
ked urobis rozdiel tych cisel v absolutnej hodnote, dostanes ich vzdialenost |97-99|=2
Ing. Gandalf
Expert
Expert
Príspevky: 178
Registrovaný: 02 feb 2007, 19:46

Re: C++ Abeceda - algoritmus

Príspevok od používateľa Ing. Gandalf »

IMHO jednoduche. Staci odcitat od seba ordinalne hodnoty znakov. Mensiu od vacsej. Ak to nie je uloha do skoly, mozem to urobit v pascale.

//neskory... :lol:
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

Re: C++ Abeceda - algoritmus

Príspevok od používateľa m_pro_m »

ja viem ze som pako : ako ziskam z pola znakov (char pole[30]) napr prvy znak ? :D dlho som necital knihu :D dakujem
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: C++ Abeceda - algoritmus

Príspevok od používateľa audiotrack »

pole[0]
a na toto knihu netreba
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

Re: C++ Abeceda - algoritmus

Príspevok od používateľa m_pro_m »

omg .. ja som deb.il

//autoeditácia príspevku (24 Okt 2010, 20:42)
pls este jedna vec ...
srand((unsigned)time(NULL));
preco mi hadze chybu ? co mam includovat ? prosim ..
chyba je konkretne nieco s construktorom a destructorom ...
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: C++ Abeceda - algoritmus

Príspevok od používateľa audiotrack »

najprv napíš akú chybu ti hádže
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

Re: C++ Abeceda - algoritmus

Príspevok od používateľa m_pro_m »

uz som to spravil ... (to srand :D ) prva verzia (test) ide ... idem tam popridavat nejake prvky este tak nelockujte ! verim ze vas budem potrebovat

//autoeditácia príspevku (25 Okt 2010, 13:21)
no ...

mam :

char V = 'v';

a potom niekde inde

vysledokPismeno = abs(atoi(V) - atoi(meno[0]));

chyby pri kompilaci :
-> invalid conversion from `char' to `const char*'
-> initializing argument 1 of `int atoi(const char*)'
a to iste este raz ...

co som tam napisal zle ? musim tam nejako pouzit tu tabulku ASCII ?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: C++ Abeceda - algoritmus

Príspevok od používateľa audiotrack »

const char* V = "v";
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

Re: C++ Abeceda - algoritmus

Príspevok od používateľa m_pro_m »

kde to mam presne vlozit ?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: C++ Abeceda - algoritmus

Príspevok od používateľa audiotrack »

namiesto tvojho char V = 'v';
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

Re: C++ Abeceda - algoritmus

Príspevok od používateľa m_pro_m »

no to som spravil este pred tym ako som sa spytal ... no a uz tam je iba jedna ta chyba .. no proste 2 len oni boli 2x
metthal
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2475
Registrovaný: 26 jan 2006, 18:32
Bydlisko: Nitra / Brno

Re: C++ Abeceda - algoritmus

Príspevok od používateľa metthal »

To audiotrack: chyba! atoi() prevadza iba cisla z retazca znakov, cize ak mas retazec "v" a zavolas nanho atoi() tak ti to vrati hodnotu 0.

Tu ako by ten program vyzeral v C++ (bohuzial s standartnym C som uz davno nerobil, ale v nom by to malo vyzerat priblizne rovnako):

Kód: Vybrať všetko

#include <iostream>
using namespace std;

int main()
{
    char a, b;

    cin >> a;
    cin >> b;

    toupper(a);
    toupper(b);

    cout << "Su od seba vzdialene " << abs(int(a) - int(b)) << " miest";
    cin.get();
}
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

Re: C++ Abeceda - algoritmus

Príspevok od používateľa m_pro_m »

dakujem vsetkym .. wolf tvoje riesenie mi ide ! davam ti karmu+ ... DAKUJEM VSETKYCH a hlavne AUDIOTRACK-ovi za ochotu ;)
Napísať odpoveď