priklad na znakove pole v C

Programovacie jazyky, rady, poradňa...
Palin0
Medium Expert
Medium Expert
Príspevky: 100
Registrovaný: 21 sep 2006, 17:57

priklad na znakove pole v C

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

Caute potreboval by som spravit program ktoreho zadanie je:

Nacitaj slovo ako pole znakov (max.12). Vypiste na monitor nacitane slovo, potom v opacnom poradi a ci sa v danom poli sa nachadza jeden znak viackrat a ked hej tak vypis aky a kolko krat


PLS pomozte mi ak to viete.
pheo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 212
Registrovaný: 20 sep 2005, 16:53
Bydlisko: moje hniezdo
Kontaktovať používateľa:

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

PLS pomozte mi ak to viete.
:D to tu v poslednej dobe pekne upadá. Vaša úloha nie je nič iné ako základná praca s poľom ! Je naozaj problém si prečítať 10 strán o C - vstup, api pre prácu s poľom a výstup ?

Vytvoriť pole o veľkosti 12 (prípadne 13 a 13 znak bude ukončovací znak 0 teda '\0')
Načítať
Vypísať od konca
Na ten výpis multiplicity existuje viac postupov, napr.:
Prechod pola postupne od zaciatku
narazim na znak v ascii hodnote nasledne zvacsim hodnotu patricneho prvku pola "znaky" , tj. znaky[znak] +=1 (znaky - velkost 256 (staci bajtov) - dovod sa asi nepredpoklada ze pokryjete cely unicode a bude vam stacit ASCII) a patricne miesto sa zvacsi o 1, tak prejdem cele slovo. Na konci skontrolujem pole znaky a je to

Primitívny jednoprechodový algoritmus, stací trošku praxe a ani rozmýšľať netreba ....

Btw. na tomto nič nie je sú to len primitvne technológie = staci si to len precitat na tom nie je nic tazke a samozrejme nemôžete čakať že to budete vedieť hneď perfekne, ale asi tak ako ked sa niekto prvy krat postavy na lyže = nevie čo robí. => Skúšať, skúšať, skúšať a nevyhovárať sa málo času, ten sa vždy nájde, skôr vôľa chýba, vtedy je samozrejme jednoduchšie napisat na podobne forum a cakat ze Vam to nejaky tutko napíše :)
Jaj aky by bol svet krásny keby lenivosť kvitla ....... :)
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

naco chodite na take skoly ked nevete a nemate azujem programovat...
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

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

Charger napísal:naco chodite na take skoly ked nevete a nemate azujem programovat...
načo píšete keď neviete a nemáte záujem poradiť?
Palin0
Medium Expert
Medium Expert
Príspevky: 100
Registrovaný: 21 sep 2006, 17:57

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

Charger napísal:naco chodite na take skoly ked nevete a nemate azujem programovat...
priemyselne skoly nie su len o programovaní, to skor noapak!!!
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

audiotrack napísal:načo píšete keď neviete a nemáte záujem poradiť?
A ty si poradil?? Rozmyslaj co pises, Farar vodu kaze ale vino pije...
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

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

Palin0 napísal:priemyselne skoly nie su len o programovaní, to skor noapak!!!
ehň .. to akoze programovanie je o priemyselnych skolach?

staci to dat cez niekolko for a mas to .
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

Dnes som sa nudil. Upozornujem, ze v C++ som nikdy neprogramoval!

Kód: Vybrať všetko

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char text[12];
    int pocet[250];
    for(int i;i<250;i++)pocet[i]=0;
    
    cout << "Zadajte text\n";
    cin >> text;
    
    int len = strlen(text);
    
    for(int i=len-1;i>=0;i--)
    {
            cout << text[i];
            int znak = text[i];
            pocet[znak]+=1;      
    }
    cout << "\n\n";

    for(int i;i<250;i++)
    {
            if(pocet[i]>=2)
            {
                           char znak = i;
                           cout << "Pocet znaku " << znak << " je " << pocet[i] << "\n";
            }
    }
    cout << "\n";                          
    system("PAUSE");
    return EXIT_SUCCESS;
}
funguje to, aspon mne...
Vortex
Novice
Novice
Príspevky: 2
Registrovaný: 04 jún 2008, 14:19

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

tak si cout a cin nahrad printf a scanf a nas z c++ c
Palin0
Medium Expert
Medium Expert
Príspevky: 100
Registrovaný: 21 sep 2006, 17:57

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

Charger napísal:Dnes som sa nudil. Upozornujem, ze v C++ som nikdy neprogramoval!

Kód: Vybrať všetko

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char text[12];
    int pocet[250];
    for(int i;i<250;i++)pocet[i]=0;
    
    cout << "Zadajte text\n";
    cin >> text;
    
    int len = strlen(text);
    
    for(int i=len-1;i>=0;i--)
    {
            cout << text[i];
            int znak = text[i];
            pocet[znak]+=1;      
    }
    cout << "\n\n";

    for(int i;i<250;i++)
    {
            if(pocet[i]>=2)
            {
                           char znak = i;
                           cout << "Pocet znaku " << znak << " je " << pocet[i] << "\n";
            }
    }
    cout << "\n";                          
    system("PAUSE");
    return EXIT_SUCCESS;
}
funguje to, aspon mne...
Dik za pomoc. Ale ja som to chcel iba v C, ale to newadi ajtak velmi pekne dakujem.
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

ak budes potrebovat este neco tak napis, potrebujem sa zdokonalit v cecku
Palin0
Medium Expert
Medium Expert
Príspevky: 100
Registrovaný: 21 sep 2006, 17:57

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

Charger napísal:ak budes potrebovat este neco tak napis, potrebujem sa zdokonalit v cecku
Okej dakujem
pheo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 212
Registrovaný: 20 sep 2005, 16:53
Bydlisko: moje hniezdo
Kontaktovať používateľa:

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

Charger napísal:Dnes som sa nudil. Upozornujem, ze v C++ som nikdy neprogramoval!

Kód: Vybrať všetko

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char text[12];
    int pocet[250];
    for(int i;i<250;i++)pocet[i]=0;
    
    cout << "Zadajte text\n";
    cin >> text;
    
    int len = strlen(text);
    
    for(int i=len-1;i>=0;i--)
    {
            cout << text[i];
            int znak = text[i];
            pocet[znak]+=1;      
    }
    cout << "\n\n";

    for(int i;i<250;i++)
    {
            if(pocet[i]>=2)
            {
                           char znak = i;
                           cout << "Pocet znaku " << znak << " je " << pocet[i] << "\n";
            }
    }
    cout << "\n";                          
    system("PAUSE");
    return EXIT_SUCCESS;
}
funguje to, aspon mne...
Ak sa nenahneváte, tak budem mať pár poznámok :
-> magické čísla (12, 250) -> nahradiť konštantou, keď sa vyskytuje iba 1 krat tak aspon pridat nejaky komentar.
-> chybaju komentare ( to patri ku kazdemu kodu )
-> na miesto 250 by som volil 256 -> vystavujete sa potencionálnemu riziku ze vam tam niekto vlozi neosetreny znak a nastane memory violation
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

to su detaily, nevedel som kolko je znakov presne :lol: ja nesom ziadny profik v c++ nikdy sme sa to v skole neucili, to len tak som chcel skusit neco spravit a islo to 8)
pheo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 212
Registrovaný: 20 sep 2005, 16:53
Bydlisko: moje hniezdo
Kontaktovať používateľa:

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

Charger napísal:to su detaily, nevedel som kolko je znakov presne :lol: ja nesom ziadny profik v c++ nikdy sme sa to v skole neucili, to len tak som chcel skusit neco spravit a islo to 8)
To su detaily ktore presvedčia zakaznika o tom aby vam za vas kod zaplatil ;), neviem ako vy ale ja sa snažím vždy k tomu dopracovať :) Kod už nema byť len funkčný ale aj znovu použiteľný, vtdy niečo ako konvencie a komentáre sú na nezaplatenie, hlavne ak máte prevziať kód po niekom inom ;)

Inak 256 je tam preto lebo standartny vstup v C je kodovany ASCII kodovaním (viac google, pripadne wikipedia s klucovim slovom ascii) ktoré je ulozený po 1 bajte = 8 bytov (2^8 = 256 kombinácií)
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

ja aj tak nechapem jak to nemohol sam spravit ked sa to v skole ucia, ja som sa nikdy neucil cecko a sa mi to podarilo napisat za 10 minut
pheo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 212
Registrovaný: 20 sep 2005, 16:53
Bydlisko: moje hniezdo
Kontaktovať používateľa:

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

Charger napísal:ja aj tak nechapem jak to nemohol sam spravit ked sa to v skole ucia, ja som sa nikdy neucil cecko a sa mi to podarilo napisat za 10 minut
Ako som už písal
Jaj aky by bol svet krásny keby lenivosť kvitla .......
Ja neviem čo by malo priniesť toto forum druhym, ale si myslim že kod by si mal pisať každý programátor sám, a prípadne ak mu nie je jasná nejaká technológia tak si ju naštuduje , pripadne vyhlada cez google. V poslednej dobe sa to tu zmenilo prosebnik , napiste my program v pascali , v C , v C++ . Ja si myslím ze o tom programovanie nie je, a na tych zadaniach bolo jasne vidieť to že im sa proste do toho nechce , ked nie je zaujem na druhej strane u mna urcite tiez nebude .......
Takze v skratke to tu zhrniem :
Na to aby niekto mohol niečo naprogramovať, musi si najprv dany jazyk(technologiu naštudovať) , to že niekto zistil tyždeň pred maturitou že nevie pascal tak to je len dôsledok lenivosti patričnej osoby... Chodiť menej chľastať a radšej si o tom prečítať. Keby to bolo niečo ťažké, naučiť sa technologiu to si myslim ze dokaže aj pepa z prasačinca (ergo cvičená opica :) ) (naučiť sa vetviť program, alebo pouzivat komponenty to nie je vobec tazke), co je na programovani tazke je algoritmicky myslieť, paralelné programovanie a vytvaranie vlastnych algoritmov (v štýle quicksort , neurónové siete , ocr ), inak povedane zapojenie vlastnych napadov, kreativita , ...... veda - to si dovolim povedať vie maloktory programator.
Charger
Zablokovaný
Zablokovaný
Príspevky: 227
Registrovaný: 18 jan 2008, 15:32

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

to je vsetko len o tom ci to niekoho bavi a ma k tomu vztah, ja som ani nematuroval z inf a inf som mal v prvaku a to sme sa nic podstatne neucili a omnoho viac viem ako ti maturanti co sa cele 4 roky s tym bavili, mna to proste bavi, pascal sa ucili dva roky a kludby vy som to zvladol za jeden vikend. Ja mam bohove zaklady, 1,5 roku som skriptoval mody pre SA multiplayer v jazyku pawn - c-like jazyk a to my hodne vela dalo prijatelnou cestou
Napísať odpoveď