Przenoszenie wartości z jednego StringGrida do innych.

0

Cześć,
Jestem noga z programowania i uczę się bardzo powoli programowania w Turbo Delphi wykonując zadanka, które podsyła mi kolega/znajduję w internecie. Zaciąłem się na jednym z nich:
StringGrid 2x5 - 3 guziki - losowanie, podział i sortowanie. Losowanie liczb od -10 do 10 do SG1. Liczby poniżej 0 kopiowane są do stringgrida 2, liczby powyżej 0 do stringgrida 3.
Losowanie do StringGrida rozumiem, ale jak się zabrać za podział nie mam pojęcia. Mniemam, że trzeba zastosować konstrukcję if, ale nie za bardzo wiem jak. Przy okazji mam pytanko a propos 3 linijek kodu, które zaznaczyłem **.

unit Unit16;
[...]
implementation

{$R *.dfm}

procedure TForm16.LOSUJClick(Sender: TObject);
var z, x, y, jedynka: integer;
     **TB1:array[0..9,0..4] of integer;**
begin
  randomize;
    for x := 0 to StringGrid1.RowCount - 1 do
    for y := 0 to StringGrid1.ColCount - 1 do
      begin
        z:= random(10 -(-10) +1) + (-10);
        StringGrid1.Cells[y, x]:= IntToStr(z);
        **jedynka:=random (2);
        TB1[x,y]:= jedynka;**
      end;

end;


procedure TForm16.StringGrid2Click(Sender: TObject);
begin

end;

end.

Czemu one służą?
Z góry dziękuję za pomoc. Przez takie błahe problemy wzrósł mój szacunek do programistów.

0

Przy okazji mam pytanko a propos 3 linijek kodu, które zaznaczyłem **.
Czemu one służą?

Mówisz że twój kod? Ah no tak, piszesz kod i nie wiesz do czego służy? Hmhm.

z:= random(10 -(-10) +1) + (-10);

Ja rozumiem że nie wszystko chce się liczyć a czasami wygląda lepiej jak się któregoś działania nie zwinie, ale to już moim zdaniem przesada.

Losowanie do StringGrida rozumiem, ale jak się zabrać za podział nie mam pojęcia. Mniemam, że trzeba zastosować konstrukcję if, ale nie za bardzo wiem jak.

Dobrze ci idzie z twoim kolegi kodem, może on za ciebie też zrobi ifa? Nie wiem jaki problem możesz mieć ze zrobieniem tak cholernie prostego ifa. Jeżeli nie umiesz go zrobić to znaczy że to nie ty uczyłeś się programować.

unit Unit16;

Czekamy na Unit99.

0
-123oho napisał(a):

[...]

Dziękuję za pomoc. Wyjaśniłeś mi bardzo wiele kwestii.

Tak, kod jest kolegi - wybacz że chcę się czegoś nauczyć zamiast wywalać wszystko jak leci.
Tak, nauczyłem się dziwnej metody, może pokażesz mi jak Ty byś to zrobił?
Tak, nie rozumiem podstaw. Domyślam się, że if, ale nie wiem jak napisać, że if x<0 to leci do StringGrida.

Kolega jest lepszy ode mnie - przyznaję. Trudno nie być, nie musisz tego udowadniać.

0
Mailosh napisał(a):

Dziękuję za pomoc. Wyjaśniłeś mi bardzo wiele kwestii.

Nie ma za co. Nie tędy droga że ci dam gotowca.

Tak, kod jest kolegi - wybacz że chcę się czegoś nauczyć zamiast wywalać wszystko jak leci.

Chyba chcesz czegoś nauczyć kolegi? Ty się nie nauczysz gdy kod pisze kolega. Dziwne, co nie?

Tak, nauczyłem się dziwnej metody, może pokażesz mi jak Ty byś to zrobił?

Jakiej dziwnej metody. Nie rozumiem.

Tak, nie rozumiem podstaw. Domyślam się, że if, ale nie wiem jak napisać, że if x<0 to leci do StringGrida.

A wiesz że podstawy są wymagane żeby robić bardziej skomplikowane rzeczy?
Jeżeli chcesz mieć podzielone wszystko na dwa słupki to robisz liczniki liczb zapisanych w obu kolumnach a gdy itemek wpada to zwiększasz licznik i zapisujesz wartość. Nie widzę większego problemu. Trzeba tylko myśleć i umieć zaimplementować algorytm. Nie wiem z czym ty masz problem. Może z tym że jesteś nieukiem i kursów poszukać za trudno?

Kolega jest lepszy ode mnie - przyznaję. Trudno nie być, nie musisz tego udowadniać.

I dlatego niech on Ci pisze kod, na pewno dużo się nauczysz.

0

Akurat teraz także zgadzam się z @-123oho:
Jeżeli nie masz pojęcia co ten kod robi - usuń go, wróć do książki/kursu/wtf i ręcznie napisz coś własnego.
Nie na tym polega nauka, aby ktoś Ci podsyłał gotowy kod (a w każdym razie póki nie rozumiesz składni języka, nic nowego się nie nauczysz z gotowców...).


Tutaj masz wytłumaczenie tego kodu, ale cóż - jak już mówiłem: nie na tym polega nauka...
**TB1:array[0..9,0..4] of integer;**

To jest tablica dwuwymiarowa o wymiarze 10x5.

**jedynka:=random (2);

Przypisywanie do zmiennej jedynka wyniku funkcji random wywołanej z parametrem 2.

TB1[x,y]:= jedynka;**

Przypisanie do tablicy TB1 na pozycję x, y wartości zmiennej jedynka.

0

Okej, w takim razie skoro nawet do sekcji Newbie trzeba mieć jakiś poziom, to mea culpa. Z kursów korzystam, gdyby nie one wiedziałbym jeszcze mniej. Kolega nie pisze mi kodów, dał mi parę swoich programików, z czasów kiedy on zaczynał, żebym mógł w ogóle zobaczyć jak to wygląda w praniu.
Delphi zacząłem uczyć się pierwszego sierpnia, pięć dni temu. Nie znam algorytmów, bo nigdy wcześniej czegoś takiego nie robiłem. Pewnie w czasie kiedy zapoznawałem się z pierwszym poradnikiem w internecie i komponentami w programie, ty z takim samym doświadczeniem jak ja napisałbyś już program łamiący enigmę albo komunikator internetowy.
Cóż, jeśli jednej rzeczy miałem się nauczyć z twoich postów (chociaż chyba nie o to ci chodziło) to to, że niepotrzebnie się w ogóle za cokolwiek zabieram bo i tak powinienem to rozumieć od samego początku.
Przepraszam i dziękuję.

@Patryk27
Okej, skoro już dwie osoby mówią, że nie tędy droga, to postaram się zmienić metodę uczenia się. Pisać własnoręcznie i tak zamierzałem, gotowce traktowałem jako wskazówki.

0

Cóż, jeśli jednej rzeczy miałem się nauczyć z twoich postów (chociaż chyba nie o to ci chodziło) to to, że niepotrzebnie się w ogóle za cokolwiek zabieram bo i tak powinienem to rozumieć od samego początku.

Nie wiem czy to było do mnie czy do @-123oho, ale odpiszę:
Nie tyle masz coś rozumieć od samego początku, tylko nie rzucaj się od razu na głęboką wodę...
Ucz się w swoim tempie, spokojnie czytaj tutoriale/książki dopóki nie zrozumiesz danej części.
Nauka na zasadzie czytania czyichś kodów nie jest zbyt dobrym pomysłem.

gotowce traktowałem jako wskazówki.

Póki jesteś początkujący nie jest to dobrym pomysłem. Jak zrozumiesz składnię języka i podstawowe funkcje, więcej się nauczysz czytając czyjeś kody, niżeli na początku.

0
Mailosh napisał(a):

Okej, w takim razie skoro nawet do sekcji Newbie trzeba mieć jakiś poziom, to mea culpa. Z kursów korzystam, gdyby nie one wiedziałbym jeszcze mniej. Kolega nie pisze mi kodów, dał mi parę swoich programików, z czasów kiedy on zaczynał, żebym mógł w ogóle zobaczyć jak to wygląda w praniu.

Tak, nawet tutaj trzeba mieć jakiś poziom bo o czym mamy rozmawiać? O szydełkowaniu? Jak masz problem, czegoś nie rozumiesz, to właśnie od tego jest dział newbie, ale nie dla leni którzy chcą kod. Usiądź przy kursie, poczytaj trochę, i napisz parę swoich programów NIE kopiując ich. Nie musi być to nic dużego, ważne że twoje.
Jeszcze polecę ci zamiast Delphi Lazarusa ( www.lazarus.freepascal.org ) który jest otwartoźródłowym odpowiednikiem. Na początku sobie pisz projekty typu konsolowego, lepiej uczą podstaw niż obiektowe VCL/LCL.
Gdy już napiszesz parę programów w których będziesz wszystko rozumieć (mówimy o konsolowych) to wtedy przejdź do Delphi. Będziesz się milion razy łatwiej poruszać i rozumieć problemy.

Delphi zacząłem uczyć się pierwszego sierpnia, pięć dni temu. Nie znam algorytmów, bo nigdy wcześniej czegoś takiego nie robiłem. Pewnie w czasie kiedy zapoznawałem się z pierwszym poradnikiem w internecie i komponentami w programie, ty z takim samym doświadczeniem jak ja napisałbyś już program łamiący enigmę albo komunikator internetowy.

Nikt nie mówi że po pięciu dniach nauki pisał pro programy. Natomiast chodzi o to że my się uczyliśmy a nie przepisywaliśmy kod kolegi.

Cóż, jeśli jednej rzeczy miałem się nauczyć z twoich postów (chociaż chyba nie o to ci chodziło) to to, że niepotrzebnie się w ogóle za cokolwiek zabieram bo i tak powinienem to rozumieć od samego początku.
Przepraszam i dziękuję.

Już komuś to mówiłem: Moich postów nie bierz zbyt do siebie bo to złe pojmowanie.

@Patryk27
Okej, skoro już dwie osoby mówią, że nie tędy droga, to postaram się zmienić metodę uczenia się.

Jedna osoba to nic, dwie to już para i należy słuchać? Eh.

0
Patryk27 napisał(a):

Nie wiem czy to było do mnie czy do @-123oho

Do oho. Twój styl odesłania mnie do książek był zdecydowanie mniej agresywny :P
Dzięki, zacznę od czegoś innego w takim razie, aż zacznę trybić jak to się w ogóle pisze.

Jedna osoba to nic, dwie to już para i należy słuchać? Eh.

Jedna osoba rozmiłowana w sarkazmie, trzeba nadmienić ^^
Dzięki za wskazówkę z lazarusem - to było pomocne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1