[c++] kilka progamów...funkcje i nie tylko

natkoza
Użytkownik
Użytkownik
Posty: 2278
Rejestracja: 11 kwie 2007, o 18:49
Płeć: Kobieta
Lokalizacja: Dąbrowa Górnicza
Podziękował: 41 razy
Pomógł: 602 razy

[c++] kilka progamów...funkcje i nie tylko

Post autor: natkoza »

1. Napisac funkcje typu całkowitego i przyjmujaca pojedynczy argument całkowity, która w
wyniku zwraca liczbe powstała z argumentu poprzez bitowe przesuniecie w prawo, az do
napotkania pierwszego bitu ustawionego lub zero dla argumentu zerowego. Przykład: jesli
argument bedzie równy \(\displaystyle{ 8(= 01000_2)}\), to w wyniku powinnismy dostac \(\displaystyle{ 1(= 0001_2)}\), zas jesli
argument bedzie równy \(\displaystyle{ 26(= 11010_2)}\), to w wyniku powinnismy otrzymac \(\displaystyle{ 13(= 11012_2)}\).
2. Napisac funckje odwracajaca zawartosc tablicy bez pomocy tablicy pomocniczej.
3. Napisac funkcje o nazwie max diff, która dla niepustej listy \(\displaystyle{ [x_1, . . . , x_n]}\) znajdzie maksymalna
wartosc \(\displaystyle{ |x_i-x_j|}\) dla \(\displaystyle{ 1\leq i\leq j\leq n}\)
4. Napisac program sprawdzajacy czy dwa podane słowa sa anagramami. (Słowa sa anagramami
jesli jedno z nich powstaje z drugiego przez pewna permutacje liter).
5. Napisac funkcję
* transponująca podaną macierz kwadratową
* dodającą dwie podane macierze
* mnożącą dwie macierze.
6. Napisać funkcje wyszukujące element najmniejszy i największy w podanej tablicy.
7. Napisać program do równoczesnego wyszukiwania elementu najmniejszego i największego
w tablicy.
8. Napisać program obliczający procentowa częstotliwość występowania zadanego przez użytkownika znaku w linii tekstu.
9. Zamiana z systemu dziesiętnego na system o innej podstawie

Z góry dziękuje za pomoc, bo nie wiem zupełnie jak się do tego zabrać
Awatar użytkownika
Szemek
Użytkownik
Użytkownik
Posty: 4819
Rejestracja: 10 paź 2006, o 23:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 43 razy
Pomógł: 1407 razy

[c++] kilka progamów...funkcje i nie tylko

Post autor: Szemek »

Pomysły do zadań:
1.
" >> " - przesunięcie bitowe w prawo
Osobiście bawiłbym się z jakąś pętlą i dzieleniem modulo.

2.
Na pętli for zamienić elementy: pierwszy z ostatnim, drugi z przedostatnim i tak dojechać do połowy tabeli. Tabele przekazujemy do funkcji przez referencję.

Widziałem gdzieś jeszcze sposób na wskaźnikach.
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

[c++] kilka progamów...funkcje i nie tylko

Post autor: kadiii »

3. Wyznaczyć min i max.
4. tu nie mam pomysłu narazie, można po kolei sprawdzać literki czy istnieją odpowiadające
5. Tu to tylko trzeba wiedziec jak to robić, a to chyba łatwo znaleźć.
6.

Kod: Zaznacz cały

min=t[0];
    id=0;
    for(i=1;i<n;i++) if(min>t[i])
    { 
     min=t[i]
     id=i;
    }
7. Jak powyżej lub bardziej rozbudowanie używając rekurencji i zasady dziel i zwyciężaj(podział zbioru poszukiwań i korzystanie z wyniku porównań poszczególnych par)
8.

Kod: Zaznacz cały

ile=0; 
    for(i=0;i<strlen(slowo);i++) if(slowo[i]==szukany_znak) ile++;
    cout<<ile/strlen(slowo)*100<<"%";
9. dziel liczbę przez podstawę nowego systemu i spisuj resztę z dzielenia aż do 0, czytana od tyłu będzie liczbą w danym systemie.
Awatar użytkownika
Szemek
Użytkownik
Użytkownik
Posty: 4819
Rejestracja: 10 paź 2006, o 23:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 43 razy
Pomógł: 1407 razy

[c++] kilka progamów...funkcje i nie tylko

Post autor: Szemek »

4. Może coś pokombinować z next_permutation() z biblioteki
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

[c++] kilka progamów...funkcje i nie tylko

Post autor: kadiii »

Można też posortować najpierw oba słowa i potem sprawdzić czy suma modułów różnic kodów odpowiadających liter jest równa zero.
Awatar użytkownika
Undre
Użytkownik
Użytkownik
Posty: 1430
Rejestracja: 15 lis 2004, o 02:05
Płeć: Mężczyzna
Lokalizacja:
Podziękował: 3 razy
Pomógł: 92 razy

[c++] kilka progamów...funkcje i nie tylko

Post autor: Undre »

Tylko po co tak kombinowac ? Nie mozna juz po prostu dwoch tablic statycznych odpowiadacych mozliwym symbolom terminalnym sieknac i po prostu tam zliczac ilosc wystapien kazdego symbolu, po czym pod koniec w petli sprawdzic wystapienia w obu tabelach ? Moze brzmi zmudnie, ale przynajmniej wiadomo jak to machnac, jak kto wprawny to i szybko nawet pojdzie ;P
Zreszta potem mozna to przerobic to od razu 8 bedzie.
nivwusquorum
Użytkownik
Użytkownik
Posty: 93
Rejestracja: 31 maja 2007, o 17:53
Płeć: Mężczyzna
Lokalizacja: Chojnice
Podziękował: 1 raz
Pomógł: 3 razy

[c++] kilka progamów...funkcje i nie tylko

Post autor: nivwusquorum »

1. Jeżeli chodzi o pierwszą to dla argumentu a wywołujemy rekurencyjnie funkcje na a>>1, do momentu aż a==0, lub (a%2==1)
ODPOWIEDZ