Na początek polecam zaznajomić się z częścią pierwszą i drugą.

Dziś tylko jedno zadanie, za to stanowczo trudniejsze.

Zadanie VII

Na podstawie poprzednich zadań, napisz funkcję zwracającą tablicę z kwadratem magicznym o boku wielkości podzielnej przez cztery.

Na początek, dla niezorientowanych polecam zapoznać się czym jest kwadrat magiczny.

Ok, ponieważ nikt Dijkstrą się nie rodzi, oto algorytm jak taki kwadrat magiczny zrobić. Pochodzi on z książki Lilavati. Algorytm ten pozwala stworzyć kwadraty tylko o boku podzielnym przez 4 (stąd ograniczenie w zadaniu). W książce tej był też algorytm dla kwadratów o boku nieparzystym, niestety moja pamięć jest tu zawodna. Jeśli ktoś przypomni, będę wdzięczny.

Zaczynamy w lewym górnym rogu i przesuwamy się w kierunku prawym, w momencie zakończenia wiersza, przechodzimy do następnej linii. W kolejne komórki tablicy wpisujemy kolejne liczby (startując od 1). Nie wpisujemy ich jednak we wszystkie komórki. Część opuszczamy (ale liczymy), tworząc charakterystyczną, nieco nietypową szachownicę. Oto przykład dla wielkości krawędzi 8:

1 4 5 8
10 11 14 15
18 19 22 23
25 28 29 32
33 36 37 40
42 43 46 47
50 51 54 55
57 60 61 64

Czyli 1 wpisujemy, 2 nie wpisujemy, 3 nie wpisujemy, 4 wpisjemy, 5 tak, 6 nie, 7 nie, 8 tak 9 nie 10 tak 11 tak... itd.

W drugim kroku, powtarzamy tę samą operację, lecz zaczynamy od prawego dolnego rogu i poruszamy się lewo/góra. Wpisujemy liczby tylko tam gdzie ich jeszcze nie ma, zaczynamy oczywiście od niewpisania 1:

1 63 62 4 5 59 58 8
56 10 11 53 52 14 15 49
48 18 19 45 44 22 23 41
25 39 38 28 29 35 34 32
33 31 30 36 37 27 26 40
24 42 43 21 20 46 47 17
16 50 51 13 12 54 55 9
57 7 6 60 61 3 2 64

To wszystko na dziś, zapraszamy do następnego odcinka (jutro :))

Dodaj komentarz

Na początek zalecam zapoznanie się z poprzednią częścią.

Zadanie IV

Funkcję tworzącą tablicę z tabliczką mnożenia z zadania III, przerób tak, aby zamiast tabliczki mnożenia w komórkach tabeli były kolejne liczby (zaczynając od 1).

Oczekiwany wynik dla długości krawędzi równej 10:

12345678910
11121314151617181920
21222324252627282930
31323334353637383940
41424344454647484950
51525354555657585960
61626364656667686970
71727374757677787980
81828384858687888990
919293949596979899100


Zadanie V

Funkcję z zadania IV, przerób tak, aby liczby rosły w kolumnach a nie w wierszach.

Oczekiwany wynik dla długości krawędzi równej 10:

1112131415161718191
2122232425262728292
3132333435363738393
4142434445464748494
5152535455565758595
6162636465666768696
7172737475767778797
8182838485868788898
9192939495969798999
102030405060708090100


Zadanie VI

Funkcję z zadania IV lub V, przerób tak, wy wierszach parzystych wyświetlała tylko liczby parzyste, a w nieparzystych nieparyste (licząc wiersze od 1).

p>Oczekiwany wynik dla długości krawędzi równej 10:
13579
1214161820
2123252729
3234363840
4143454749
5254565860
6163656769
7274767880
8183858789
92949698100


To wszystko na dziś, zapraszamy do następnego odcinka (jutro :))

3 komentarze

Ostatnio, musiałem w szybkim tempie nauczyć kogoś programowania. Wymyśliłem do tego szereg zadań które kolejno wprowadzają różne pojęcia (pętla, warunek, funkcja). Dlatego postanowiłem złożyć to w mały kursik - mam nadzieję że komuś to pomoże.

Z założenia, zadania te przeznaczone są do realizacji w PHP i wymagają pewnej znajomości HTMLa.

Zadanie I

Napisz skrypt wyświetlający tabliczkę mnożenia w formie HTMLowej tabelki, przy użyciu pętli for.

Czyli, skrypt ma wyświetlić coś takiego:

12345678910
2468101214161820
36912151821242730
481216202428323640
5101520253035404550
6121824303642485460
7142128354249566370
8162432404856647280
9182736455463728190
102030405060708090100


Zadanie II

Zmodyfikuj to co zrobiłeś w zadaniu pierwszym, tak aby można było wyświetlić tabliczkę mnożenia dowolnej wielkości (np. do 21). Zrób z tego funkcję do wielokrotnego wykorzystania, która jako parametr przyjmuje wielkość tabliczki mnożenia.

Zadanie III

Podziel funkcję z zadania drugiego na dwie funkcje: jedną która wylicza dane tabliczki mnożenia i zwraca tablicę ją zawierającą (array), oraz drugą która wyświetli tę tablicę zadaną jako parametr.

Czyli jedna z funkcji powinna wyglądać mniej więcej tak:

function tabliczkamnożenia ($wielkosc)
{
	...
	...
	...

	return $tablica;
}
Zaś druga funkcja powinna wyglądać mniej więcej tak:
function wyswietl ($tablica)
{
	...
	...
	...
}

To wszystko na dziś, zapraszamy do następnego odcinka (jutro :))

4 komentarze

If an entry on Jogger exists, and there is no comment from Darky, it ain't worth reading.

5 komentarzy

Creative Commons License Powered by Jogger.PL and Tarski · Ported by alberht (ze zmianami)