Turbo delphi - program liczący

0

Witam. Potrzebuję pomocy z programem, który składa się ze stringgridu 5x5, Tbutton'a oraz 2x Tedit.
Program ma za zadanie po kliknięciu na button wypełnić stringgrid losowymi liczbami od 0 do 50, a następnie w polach edycyjnych wpisać ilość liczb parzystych i nieparzystych.

Do wypełniania stringgridu już doszedłem, tak samo jak do tego, jak znaleŹć liczbę parzystą (przynajmniej tak mi się wydaje).

Co do wypełniania stringgridu kod mam taki:

var I,J:INTEGER;
BEGIN
FOR I:=0 TO STRINGGRID1.ROWCOUNT-1 DO
FOR J:=0 TO STRINGGRID1.COLCOUNT-1 DO
STRINGGIRD1.CELLS[I,J]:=INTTOSTR(RANDOM(50))
END;

co do znajdowania przystych to doszedłem do czegoś takiego:

IF (I MOD 2=1) THEN Edit1.text:=..........

Czy ktoś mógłby mi powiedzieć co dalej z tym zrobić, jak napisać taki program, poprawić błędy w obecnym kodzie?

Chcę jeszcze zaznaczyć, że kod jest pisany na sucho, gdyż nigdzie nie mogę znaleŹć Turbo Delphi, nawet trialowej wersji. Jakby ktoś posiadał link do takowego programu to byłbym bardzo wdzięczny.

0
Caastiv napisał(a)

STRINGGIRD1.CELLS[I,J]:=INTTOSTR(RANDOM(50))

Komórki wypełnią się liczbami w zakresie 0..49

A program możesz wypróbować na którejkolwiek wersji Delphi, niekoniecznie Turbo Delphi.
Jeżeli chcesz programować na sucho - to zrezygnuj z takiego pomysłu.

0
pelsta napisał(a)
Caastiv napisał(a)

STRINGGIRD1.CELLS[I,J]:=INTTOSTR(RANDOM(50))

Komórki wypełnią się liczbami w zakresie 0..49

A program możesz wypróbować na którejkolwiek wersji Delphi, niekoniecznie Turbo Delphi.
Jeżeli chcesz programować na sucho - to zrezygnuj z takiego pomysłu.

co do komórek to może być :D

a do delphi to dzięki, zawsze to jakaś podpowiedź ;D

0

Po pierwsze to wyłącz CapsLock; Po drugie... masz wyszczególnione co masz zrobić, wiesz jakich komponentów użyć, jakieś algorytmy masz już napisane, więc w czym problem?

Masz procedurę wypełniającą komórki kontrolki z klasy TStringGrid:

var I,J:INTEGER;
 BEGIN 
 FOR I:=0 TO STRINGGRID1.ROWCOUNT-1 DO
 FOR J:=0 TO STRINGGRID1.COLCOUNT-1 DO
 STRINGGIRD1.CELLS[I,J]:=INTTOSTR(RANDOM(50))
 END;

napisana niestety niedbale, no ale trudno... Wystarczy ją ewentualnie nieznacznie poprawić:

procedure TForm1.FillStringGrid();
var
  I, J: Integer;
begin
  for I := 1 to StringGrid1.ColCount - 1 do
    for J := 1 to StringGrid1.RowCount - 1 do
      StringGrid1.Cells[I, J] := IntToStr(Random(50) + 1)
end;

Dzięki dodaniu do wylosowanej liczby 1 będziesz miał liczby zawsze z przedziału 1 .. 50;

Masz także coś nabazgrane jeśli chodzi o sprawdzenie parzystości liczby z komponentu:

IF (I MOD 2=1) THEN Edit1.text:=..........

Tyle, że masz to napisane na sucho, więc dupa... Jak już czujesz się tak pewnie i wiesz, że jak napiszesz program w notatniku to będzie działał - napisz cały kod programu, a nie tylko nic w sumie nie rozwiązujące urywki, które po skopiowaniu do edytora i tak nie będą działać;

Napisz sprawdzanie parzystkości liczby w porządny sposób:

function NumberEven(iNumber: Integer): Boolean;
begin
  Result := iNumber mod 2 = 0;
end;

Prawda, że elegancko? Przynajmniej działa; No a jak teraz sprawdzić parzystość liczby? A no tak:

if NumberEven(StrToInt(StringGrid1.Cells[I, J])) then
  //jeśli liczba jest parzysta
else
  //jeżeli liczba jest nieparzysta

No i tyle; Mam pewne obawy, że nie rozumiesz i nie znasz podstaw programowania aplikacji okienkowych w delphi, stąd nie masz żadnego kodu; Polecam zapoznać się z materiałami zamieszczonymi w tym serwisie;

0
Furious Programming napisał(a)

Po pierwsze to wyłącz CapsLock; Po drugie... masz wyszczególnione co masz zrobić, wiesz jakich komponentów użyć, jakieś algorytmy masz już napisane, więc w czym problem?

Masz procedurę wypełniającą komórki kontrolki z klasy TStringGrid:

var I,J:INTEGER;
 BEGIN 
 FOR I:=0 TO STRINGGRID1.ROWCOUNT-1 DO
 FOR J:=0 TO STRINGGRID1.COLCOUNT-1 DO
 STRINGGIRD1.CELLS[I,J]:=INTTOSTR(RANDOM(50))
 END;

napisana niestety niedbale, no ale trudno... Wystarczy ją ewentualnie nieznacznie poprawić:

procedure TForm1.FillStringGrid();
var
  I, J: Integer;
begin
  for I := 1 to StringGrid1.ColCount - 1 do
    for J := 1 to StringGrid1.RowCount - 1 do
      StringGrid1.Cells[I, J] := IntToStr(Random(50) + 1)
end;

Dzięki dodaniu do wylosowanej liczby 1 będziesz miał liczby zawsze z przedziału 1 .. 50;

Masz także coś nabazgrane jeśli chodzi o sprawdzenie parzystości liczby z komponentu:

IF (I MOD 2=1) THEN Edit1.text:=..........

Tyle, że masz to napisane na sucho, więc dupa... Jak już czujesz się tak pewnie i wiesz, że jak napiszesz program w notatniku to będzie działał - napisz cały kod programu, a nie tylko nic w sumie nie rozwiązujące urywki, które po skopiowaniu do edytora i tak nie będą działać;

Napisz sprawdzanie parzystkości liczby w porządny sposób:

function NumberEven(iNumber: Integer): Boolean;
begin
  Result := iNumber mod 2 = 0;
end;

Prawda, że elegancko? Przynajmniej działa; No a jak teraz sprawdzić parzystość liczby? A no tak:

if NumberEven(StrToInt(StringGrid1.Cells[I, J])) then
  //jeśli liczba jest parzysta
else
  //jeżeli liczba jest nieparzysta

No i tyle; Mam pewne obawy, że nie rozumiesz i nie znasz podstaw programowania aplikacji okienkowych w delphi, stąd nie masz żadnego kodu; Polecam zapoznać się z materiałami zamieszczonymi w tym serwisie;

Dzięki Ci o Wielki :)

Co do Twoich obaw to niestety masz rację, zajęcia wyglądały mniej-więcej w taki sposób: przychodziła babka, pisała na tablicy gotowy kod, który trzeba było tylko przepisać, nic nie tłumacząc. A niestety albo stety (zależy z czyjej perspektywy patrząc) nie mam ambicji bycia programistą, informatykiem itp. Studiuje zupełnie inny kierunek.

0
Caastiv napisał(a)

A niestety albo stety (zależy z czyjej perspektywy patrząc) nie mam ambicji bycia programistą, informatykiem itp. Studiuje zupełnie inny kierunek.

To na cholere Ci ten program? Powiedz to tej babce, może nie każe Ci ich pisać;

0
Furious Programming napisał(a)
Caastiv napisał(a)

A niestety albo stety (zależy z czyjej perspektywy patrząc) nie mam ambicji bycia programistą, informatykiem itp. Studiuje zupełnie inny kierunek.

To na cholere Ci ten program? Powiedz to tej babce, może nie każe Ci ich pisać;

cała grupa jej to mówiła, ale się uparła.
Program w ramach zaliczenia...

0
Caastiv napisał(a)

cała grupa jej to mówiła, ale się uparła.

A co Ty byś zrobił na jej miejscu? Też upierałbyś się, bo nie po to przychodzi Was uczyć, żebyście w kółko narzekali, że to jest niepotrzebne, głupie, bla bla bla... Skoro masz lekcje programowania to widać są one na Twoim kierunku potrzebne; Biorąc pod uwagę fakt, że komputery są wszędzie, i nawet na złomowiskach korzysta się z programów, to nie ma kierunku, w którym programowanie by się nie przydało;

Swoją drogą - jaki kierunek studiujesz?

0

Mam deja vu, bo ostatnio identyczne zadanie było podane przez kogoś tylko, że w zakresie liczb -50 do 50. Ale poszło do kosza, zresztą tam je przeczytałem patrząc z ciekawości co tam trafiło. A chcialem tylko napisać, że Caastiv otrzymałeś tutaj konkretną pomoc dlatego, że pokazałeś iż sam coś próbowałeś napisać, a nie jak ten kogo post trafił do Kosza. Chyba, że to Ty się poprawiłeś. Jednak dodam jeszcze, że nie uwierże iż ktoś zapodał kod na tablicy i nic nie tłumaczył. Sam skończyłem studium policealne o profily technik - informatyk i wprawdzie ważniejsze było tam aby opłacić czesne na czas (dla właścicieli) niż abyśmy się dużo nauczyli, ale na przedmiocie Programowanie Obiektowe dostaliśmy materiały z podstawami, były zajęcia praktyczne w pracowni, ale wiadomo jak system jest na przykład zaoczny to dużo trzeba się samemu dokształcać i da się przedmiot zaliczyć. Jednak wiele osób z którymi uczęszczałem, nie interesowało za bardzo programowanie i mieli z tym pierwszy raz do czynienia, ale jak ktoś by bardzo chciał to by to ogarnał. Jeżeli taki ptoblem jest z wykładowcą że faktycznie by nie tłumaczył albo nie dawał materiałów do nauki ani ich nie pomagał znaleźć to taki przypadek można zglosić dyerkcji czy dziekanowi. Tymbardziej jeżeli uczelnia niezaleznie od jej rodzaju była by płatna. Mieliśmy taki przypadek z wykładowcą Systemów Operacyjnych, który miał dobrze przygotowane materiały poglądowe, ale nie chciał nam ich udostępnic, a co robiła bez marudzenia pozostała kadra ucząca nas, bo w koncu też za to płaciliśmy. Już po tylu latach nie pamiętam jak to się skończyło, ale rozmowy z dyrekcją sprawiła, że wykładowca zmienił podejście.

0
BEGIN 
 FOR I:=0 TO STRINGGRID1.ROWCOUNT-1 DO

co to kurde, COBOL?

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