![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Muszę wstawić dane z tablicy jednowymiarowej do wielowymiarowej, przy czym nie jest znana z góry długość tej pierwszej, jest to dopiero wpisywane w formularz przez użytkownika. Ta długość tablicy jednowymiarowej może być kwadratem liczby, czyli: 1, 4, 9, 16...
a tablica wielowymiarowa ma wyglądać odpowiednio: 1x1, 2x2, 3x3, 4x4. Czy da się to w ogóle zrobić? Każda pomoc się przyda... |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli tablica ma długość 1, 4, 9 itd to wykorzystaj funkcję sqrt(). Będziesz wiedział jaki ma być wymiar tej tablicy kwadratowej. Wypełnisz ją za pomocą dwóch zagnieżdżonych pętli. Jak dokładnie to Ci nie podpowiem póki się nie dowiem jaka jest konstrukcja formularza a ściślej mówiąc wpadających z niego danych.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
podaj przyklad danych i jak tabica ma wygladac.
Tak, da sie -------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Wielkość tablicy jednowymiarowej potraktuj sqrt a wynik zaokrąglij w górę. To da Ci ilośc wierszy i kolumn macierzy wynikowej. Teraz tylko w pętli zagnieżdżonej pętli for wypełniać ją elementami wektora. Problemem może być sytuacja gdy macierz ma więcej pól niż ma ich wektor startowy. Przykładowo 19-elementowa tablica daje nam macierz wynikową 5x5, ale wchodzi do niej tylko 19 pól wektora. Albo resztę uzupełniasz zerami, albo już na starcie wypełniasz całość zerami, a potem dopiero wpisujesz wektor.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli tablica ma długość 1, 4, 9 itd to wykorzystaj funkcję sqrt(). Będziesz wiedział jaki ma być wymiar tej tablicy kwadratowej. Wypełnisz ją za pomocą dwóch zagnieżdżonych pętli. Jak dokładnie to Ci nie podpowiem póki się nie dowiem jaka jest konstrukcja formularza a ściślej mówiąc wpadających z niego danych. Dane w formularzu pobierane są ze zmiennej tablicowej. Formularz jest taki:
Chodzi w zadaniu o to, że użytkownik podaje wymiar macierzy, wyskakuje mu wtedy odpowiednia ilość okienek, tam wpisuje dane no i potem ma być jeszcze liczony wyznacznik, stąd te dane muszą trafiać do tablicy. Mam już zrobione z tym że podaje wymiar i że wskakują okienka, ale nie wiem właśnie jak zrzucić to do tablicy ... Ten post edytował coco 22.10.2009, 08:52:32 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
No to taką samą pętlą musisz wrzucić do tablicy
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
No to taką samą pętlą musisz wrzucić do tablicy
Dziękuję za pomoc. Mam:
i działa tzn.wrzuca do tablicy. Tylko mam błąd w samej komunikacji: muszę 2 razy z rzędu wpisać ten sam wymiar w formularz i wtedy dopiero jest dobrze, bo po pierwszym kliknięciu trzyma jeszcze stare dane, a wrzuca już do nowej tablicy. Jak to naprawić? Ten post edytował coco 22.10.2009, 11:02:24 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
No bo masz formularz i obróbkę w jednym pliku, bez żadnych warunków. trzeba sprawdzić, czy są w tablicy superglobalnej $_POST, twoje dane z formularza. Jeśli tak to zrobić obróbkę, jeśli nie to wyświetlić formularz. Można też najpierw zrobić obróbkę, jeśli są dane a po d spodem wyświetlenie formularza. Czyli w odwrotnej kolejności niż u Ciebie.
-------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
No bo masz formularz i obróbkę w jednym pliku, bez żadnych warunków. trzeba sprawdzić, czy są w tablicy superglobalnej $_POST, twoje dane z formularza. Jeśli tak to zrobić obróbkę, jeśli nie to wyświetlić formularz. Można też najpierw zrobić obróbkę, jeśli są dane a po d spodem wyświetlenie formularza. Czyli w odwrotnej kolejności niż u Ciebie. a mogę prosić o jakiś przykład jak to zrobić, choćby taki zarys, bo szczerze mówiąc dalej nie bardzo wiem co i jak. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobiła tak:
albo
-------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 17.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobiła tak:
albo
Wstyd się przyznać, ale dalej mi wychodzi nie tak jak ma być (zapewne źle te części składam). Może to przez to, że to:
daję w złym miejscu? (na samym początku). |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
No tak ten kawałek powinien być przed podwójną pętlą tworzącą formularz.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.06.2025 - 11:09 |