Strona 1 z 1
[C++] Losowanie z tablicy
: 5 kwie 2013, o 13:53
autor: barbak1992
czesc
mam do napisania taka funkcje :
napisz funkcje w ktorej utworzysz tablice o zadanym rozmiarze i wypełnij ja losowo literami alfabetu;
Kod: Zaznacz cały
void Alfa(char* tabl, int roz)
{
int* tabl=new int;
int losowanie=tabl[rand()%25];
}
int main()
{
int roz;
cout<<"podaj rozmiar tablicy"<<endl;
cin>>roz;
char alfa[25]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','v','x','y','w','z'};
system("pause");
return 0;
}
ktos mi poprawi ten kod blagam, nie wiem jak sie losuje znaki z tablicy...
[C++] Losowanie z tablicy
: 5 kwie 2013, o 14:13
autor: Errichto
Kod: Zaznacz cały
char tab[100];
for(int i=0;i<roz;i++) tab[i]=alfa[rand()%25];
[C++] Losowanie z tablicy
: 5 kwie 2013, o 15:26
autor: barbak1992
jeszcze cos mi nie gra
Kod: Zaznacz cały
void Alfa(char* tabl, int roz)
{
int* tab=new int; //takie pytanie czy nie powinno tutaj byc int *char=new char?? czy to zawsze jest int?? i czy to powinno byc w mainie czy moze byc tutaj??
char tab[100];
for(int i=0;i<roz;i++)
tab[i]=tabl[rand()%25];
cout<<tab[i]; //czy tak mam wyswietlic te wylosowane liczby??
}
int main()
{
int roz;
cout<<"podaj rozmiar tablicy"<<endl;
cin>>roz;
char tabl[25]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','v','x','y','w','z'};
system("pause");
return 0;
}
oprocz tego czy ta funkcja powinna byc void? wydaje mi sie ze tak ale nie jestem pewnien bo niby zwraca wylosowane wartosci?? i czy mam jeszcze jakies bledy??
[C++] Losowanie z tablicy
: 5 kwie 2013, o 15:33
autor: Errichto
Jeśli w treści zadania nie ma, że funkcja ma zwracać tę tablicę, to może zostać void (ale nie musi). Gdzieś w main przydałoby się jeszcze tę funkcję wywołać. Nie rozumiem co ma robić linijka "int* tab=new int; " więc co do tego się nie wypowiem. Wypisywanie musisz dać w pętli - obecnie ta funkcja wypisuje jedną zmienną i za bardzo nie wiadomo jaką - tab, gdzie nie znamy i.
[C++] Losowanie z tablicy
: 5 kwie 2013, o 15:39
autor: barbak1992
int* tab=new int; ta linijka ma tworzyc tablice o zadanym rozmiarze( alokacja tablicy dynamicznej??)
-- 5 kwi 2013, o 15:44 --
działa!
Kod: Zaznacz cały
void Alfa(char* tabl, int roz)
{
char* tab=new char;
for(int i=0;i<roz;i++)
{tab[i]=tabl[rand()%25];
cout<<tab[i]<<endl;
}
}
int main()
{
int roz;
cout<<"podaj rozmiar tablicy"<<endl;
cin>>roz;
char tabl[25]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','v','x','y','w','z'};
Alfa(tabl,roz);
system("pause");
return 0;
}
dzieki za pomoc:)
[C++] Losowanie z tablicy
: 5 kwie 2013, o 15:59
autor: Errichto
Jeszcze dwie rzeczy dodam, takie drobiazgowe już:
1) alfabet ma 26 literek czyli coś zgubiłeś
2) Zamiast wypisywać literki możesz całkowicie wywalić tablicę trzymającą alfabet i zmienić linijkę z losowaniem na taką:
Po wylosowaniu np. piątki pojawi się
\(\displaystyle{ a+5=f}\)
ale to tylko taka ciekawostka.
[C++] Losowanie z tablicy
: 22 kwie 2013, o 21:26
autor: Ser Cubus
Errichto, indeks o numerze 0 jest pierwszy, tak więc mamy 26 pozycji
[C++] Losowanie z tablicy
: 22 kwie 2013, o 21:45
autor: Errichto
a ostatni jest \(\displaystyle{ 24}\) więc dalej obstawiam \(\displaystyle{ 25}\) pozycji czyli jedną za mało. Brakuje literki 'q' konkretnie.
[C++] Losowanie z tablicy
: 22 kwie 2013, o 21:54
autor: Ser Cubus
ehh, chyba muszę odpocząć
oczywiście masz rację