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ą:

Kod: Zaznacz cały

tab[i]='a'+rand()%26;
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ę