agnieszkaosw, miłe jest to że Wy(gr9) macie dostęp do eportalu, bo macie z dr Nieslerem laby, a gr11 nie, bo mamy wszystko z dr Wydmuch. Z tego co pamiętam to ma wysłać na maila, więc czekajmy
_________________ "Twoja opinia nie ma dla mnie znaczenia, chyba że masz wyższe IQ niż ja." - Walter Bishop, Fringe
-w systemie dwójkowym liczba jest parzysta, jeśli kończy się 0
-w ósemkowym i dziesiętnym jest parzysta, gdy kończy się na 0, 2, 4, 6
-w szesnastkowym, gdy kończy się na 0, 2, 4, 6, 8, A, C, E.
Wystarczy by algorytm sprawdzał powyższe warunki.
W 9 myślę, że wystarczy zwykła pętla sprawdzająca, czy dany znak jest mały i zmieniająca na duży.
Na zadanie 10 też mam pomysł, ale dość długi w opisywaniu.
Edit: Kenzi ma oczywiście rację, poprawiłem błędy.
Ostatnio zmieniony przez Jerzu 2010-10-10, 18:25, w ca³o¶ci zmieniany 1 raz
zrobiłem zad 10
Oto moja propozycja rozwiÄ…zania zadania.
Te trzy liczby wykorzystuję jako pamięć 3x32 bity, tak więc zapis będzie w systemie zero-jedynkowym :)
Ten sposób wykorzystuje maksymalnie 56 bitów przy szachownicy pełnej pionków. Resztę bitów można wykorzystać do przechowania informacji o tym, czyja teraz kolej, czasie gry itp.
Mój pomysł jest taki:
Numerujemy pola, na których się gra od 1 do 32.
Program zaczyna od pierwszego pola. Bierze pierwszy bit, gdy jest to zero przechodzi do drugiego pola, a gdy jedynka to znaczy, że w aktualnym polu jest jakiś pionek. Aby się dowiedzieć jaki to pionek, program bierze kolejny bit (0 - kolor biały, 1-kolor czarny). Teraz program zna adres, czy jest w tym polu pionek oraz jego kolor - więc program "stawia" ten pionek na szachownicy. Następnie zwiększa adres o 1 i znowu sprawdza jaki bit stoi kolejny... i tak aż adres będzie mieć wartość 64.
Np. dla początkowego rozstawienia szachownicy zapis będzie taki:
---11-----11----11----11
11----11-----11----11
---11-----11----11----11
0------0------0------0
----0------0----- 0-----0
10----10----10-----10
---10-----10----10----10
10----10----10-----10
no i algorytm:
int adres = 1;
int bit;
int bit2;
string kolor;
Zad 8, Zad 9 :
zgadzam siÄ™ z Jerzu,
Zad 10:
Pionki można stawiać na 32 polach, więc pierwsza liczba 32-bitowa ( w systemie dwójkowym) ustawienie pionków dla gracza nr 1, a druga to ustawienie pionków dla drugiego gracza, 1-gdy pionek na danej pozycji istnieje i 0-gdy nie istnieje.
W ten sposób jednoznacznie zapisujemy stan gry przy użyciu dwóch zmiennych,
w trzeciej zmiennej możemy np. zapisać czyj ruch następuje.
Potem algorytm czyta te dane i sprawdza warunki i ustala pola na podstawie tych dwóch liczb
(Ale algorytm odczytu to już nie jest nasza sprawa).
Co do zadania nr 9. Zauważyć należy, że małe litery w kodzie ASCII przyjmują wartości od 97 do 122, duże natomiast od 65 do 90. Wystarczy, więc wczytać literę, zamienić ją na odpowiednią wartość w kodzie ASCII, od tej wartości odjąć 32 i zwrócić odpowiadający otrzymanej wartości symbol. Ot cały algorytm, który można przedstawić w postaci listy kroków lub schematu blokowego
_________________ "Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota, choć nie jestem pewien co do tej pierwszej." A. Einstein
Go¶æ, pamiÄ™taj jak piszesz
Ostatnio zmieniony przez pit3r 2010-10-10, 00:04, w ca³o¶ci zmieniany 1 raz
-w systemie dwójkowym liczba jest parzysta, jeśli kończy się 0
-w ósemkowym i dziesiętnym jest parzysta, gdy kończy się na 0, 2, 4, 6, 8
-w szesnastkowym, gdy kończy się na 0, 2, 4, 6, 8, A, E.
Wystarczy by algorytm sprawdzał powyższe warunki.
Z małymi zastrzeżeniami:
- w ósemkowym oczywiście nie ma cyfry "8"
- w szesnastkowym jeszcze "C"
A co do 9 - skoro w ASCII to każda litera ma swój kod, więc po prostu pętla sprawdzająca, czy kod znaku należy do 97-122 (chyba, że w programowaniu mamy to zapisane hexem wtedy 61-7A) i odejmujemy od tego kodu wartość 32 (przy hexie 20).
_________________ ... Bo spotkać się nie chcę znowu z protestem,
Wracam tam i powiadam, niczym miły facet z gestem:
"Jestem Andrzej!" - wszystko jasne, nie mogłem trafić bardziej:
"Mój boże, to Piasek!"
jeśli chodzi o 8, nie zagłębiałbym się w szczegóły. W skrócie algorytm wyglądałby wg mnie następująco:
1. wczytaj podstawÄ™ systemu liczbowego "n".
2. wczytaj liczbÄ™ x.
3. jeśli n<>10 zamień daną liczbę na odpowiadającą jej w systemie dziesiętnym(na podstawie "n").
4. Jeśli x mod 2 = 0 - wyświetl "Liczba parzysta". W przeciwnym razie wyświetl "Liczba nieparzysta.
Dzielenie mod(modulo) oznacza dzielenie z resztÄ…. W Pascalu funkcja ta zwraca resztÄ™ z dzielenia.
_________________ "Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota, choć nie jestem pewien co do tej pierwszej." A. Einstein
Raczej Pascal miałby większy problem z przekonwertowaniem jednego systemu liczbowego na drugi niż z całością programu. A pisanie całego konwertera to sprawa o niebo dłuższa niż sam program. Rzecz jest raczej prostsza - olać jaki to system liczbowy - dokładnie działający program:
a) sprawdza czy w liczbie nie ma przecinka (bo wtedy automatycznie jest nieparzysta)
b) zamienia liczbę na ciąg znaków (string) i sprawdza czy ostatni znak (taka funkcja znajdzie się na pewno) jest równy 0, 2, 4, 6, 8, A, C, E
BTW: MOD to dokładnie "reszta z dzielenia", a nie "dzielenie z resztą" - zawsze :).
_________________ ... Bo spotkać się nie chcę znowu z protestem,
Wracam tam i powiadam, niczym miły facet z gestem:
"Jestem Andrzej!" - wszystko jasne, nie mogłem trafić bardziej:
"Mój boże, to Piasek!"
Kenzi, przeliczaniem zajmowałby się już odrębny algorytm dlatego napisałem, że nie bd zagłębiał się w szczegóły Jednak moje małe niedopatrzenie. Napisałem algorytm dla wszystkich systemów liczbowych(2,3,5,6... itd.), a że pod uwagę mamy brać tylko (2,8,10,16), w tym przypadku rzeczywiście wystarczy sprawdzać końcówki
_________________ "Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota, choć nie jestem pewien co do tej pierwszej." A. Einstein
8/lista 2 Wyrażenie "Jola ma kota" zawiera 12 znaków i teraz w zależności od systemu kodowania mnożymy przez odpowiednią ilość bitów, a potem dzielimy przez 8 i mamy bajty
a) 12*7=84b=10,5B
b) 12*8=96b=12B
c) 12*8=96b=12B
d) UTF-8 od 1 do 6 b od 12 do 72 b=1,5 do 9B
e) 12*2=24b=3B
Co do 7 to mój brat z informatyki na polibudzie zdziwił się, że mamy takie zadanie, bo wymaga skomplikowanych obliczeń.
Nie mo¿esz pisaæ nowych tematów Nie mo¿esz odpowiadaæ w tematach Nie mo¿esz zmieniaæ swoich postów Nie mo¿esz usuwaæ swoich postów Nie mo¿esz g³osowaæ w ankietach Nie mo¿esz za³±czaæ plików na tym forum Mo¿esz ¶ci±gaæ za³±czniki na tym forum