|
| Autor |
Správa |
Palin0 Light Expert

Stav:  Založený: 21.09.2006 Príspevky: 64
Karma: 
|
Zaslal: 03 Jún 2008, 17:15 Predmet: priklad na znakove pole v C |
|
|
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. |
|
| Návrat hore |
|
 |
pheo Medium Expert


Pohlavie:  Stav:  Založený: 20.09.2005 Príspevky: 109 Bydlisko: moje hniezdo Karma: 
|
Zaslal: 03 Jún 2008, 17:35 Predmet: |
|
|
| Citácia: |
| PLS pomozte mi ak to viete. |
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 .......  |
|
| Návrat hore |
|
 |
Charger Medium Expert

Pohlavie:  Stav:  Založený: 18.01.2008 Príspevky: 133
Karma: 
|
Zaslal: 03 Jún 2008, 20:39 Predmet: |
|
|
| naco chodite na take skoly ked nevete a nemate azujem programovat... |
|
| Návrat hore |
|
 |
audiotrack Moderátor


Pohlavie:  Stav:  Založený: 09.09.2005 Príspevky: 7382 Bydlisko: Prievidza Karma: 
|
Zaslal: 03 Jún 2008, 20:42 Predmet: |
|
|
| 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ť? |
|
| Návrat hore |
|
 |
Palin0 Light Expert

Stav:  Založený: 21.09.2006 Príspevky: 64
Karma: 
|
Zaslal: 03 Jún 2008, 20:42 Predmet: |
|
|
| Charger napísal: |
| naco chodite na take skoly ked nevete a nemate azujem programovat... |
priemyselne skoly nie su len o programovaní, to skor noapak!!! |
|
| Návrat hore |
|
 |
Charger Medium Expert

Pohlavie:  Stav:  Založený: 18.01.2008 Príspevky: 133
Karma: 
|
Zaslal: 03 Jún 2008, 20:48 Predmet: |
|
|
| 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... |
|
| Návrat hore |
|
 |
juho Light Star


Stav:  Založený: 11.05.2007 Príspevky: 231
Karma: 
|
Zaslal: 04 Jún 2008, 11:13 Predmet: |
|
|
| 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 . |
|
| Návrat hore |
|
 |
Charger Medium Expert

Pohlavie:  Stav:  Založený: 18.01.2008 Príspevky: 133
Karma: 
|
Zaslal: 04 Jún 2008, 12:50 Predmet: |
|
|
Dnes som sa nudil. Upozornujem, ze v C++ som nikdy neprogramoval!
| Kód: |
#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... |
|
| Návrat hore |
|
 |
Vortex Novice

Stav:  Založený: 04.06.2008 Príspevky: 2
Karma: 
|
Zaslal: 04 Jún 2008, 14:29 Predmet: |
|
|
| tak si cout a cin nahrad printf a scanf a nas z c++ c |
|
| Návrat hore |
|
 |
Palin0 Light Expert

Stav:  Založený: 21.09.2006 Príspevky: 64
Karma: 
|
Zaslal: 04 Jún 2008, 14:31 Predmet: |
|
|
| Charger napísal: |
Dnes som sa nudil. Upozornujem, ze v C++ som nikdy neprogramoval!
| Kód: |
#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. |
|
| Návrat hore |
|
 |
Charger Medium Expert

Pohlavie:  Stav:  Založený: 18.01.2008 Príspevky: 133
Karma: 
|
Zaslal: 04 Jún 2008, 19:55 Predmet: |
|
|
| ak budes potrebovat este neco tak napis, potrebujem sa zdokonalit v cecku |
|
| Návrat hore |
|
 |
Palin0 Light Expert

Stav:  Založený: 21.09.2006 Príspevky: 64
Karma: 
|
Zaslal: 05 Jún 2008, 14:24 Predmet: |
|
|
| Charger napísal: |
| ak budes potrebovat este neco tak napis, potrebujem sa zdokonalit v cecku |
Okej dakujem |
|
| Návrat hore |
|
 |
pheo Medium Expert


Pohlavie:  Stav:  Založený: 20.09.2005 Príspevky: 109 Bydlisko: moje hniezdo Karma: 
|
Zaslal: 05 Jún 2008, 14:48 Predmet: |
|
|
| Charger napísal: |
Dnes som sa nudil. Upozornujem, ze v C++ som nikdy neprogramoval!
| Kód: |
#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 |
|
| Návrat hore |
|
 |
Charger Medium Expert

Pohlavie:  Stav:  Založený: 18.01.2008 Príspevky: 133
Karma: 
|
Zaslal: 05 Jún 2008, 17:34 Predmet: |
|
|
to su detaily, nevedel som kolko je znakov presne ja nesom ziadny profik v c++ nikdy sme sa to v skole neucili, to len tak som chcel skusit neco spravit a islo to  |
|
| Návrat hore |
|
 |
pheo Medium Expert


Pohlavie:  Stav:  Založený: 20.09.2005 Príspevky: 109 Bydlisko: moje hniezdo Karma: 
|
Zaslal: 05 Jún 2008, 17:53 Predmet: |
|
|
| Charger napísal: |
to su detaily, nevedel som kolko je znakov presne ja nesom ziadny profik v c++ nikdy sme sa to v skole neucili, to len tak som chcel skusit neco spravit a islo to  |
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í) |
|
| Návrat hore |
|
 |
|
|
 |
|