Wątek przeniesiony 2014-12-14 21:51 z przez furious programming. Powód: Wątek dotyczący podstaw

Sumowanie parzystych i nieparzystych liczb w StringGrid

Odpowiedz Nowy wątek
2014-12-14 17:41
0

Witam. Piszę z prośbą o pomoc. Chce zrobić stringgrida z randomowymi liczbami od (-20 ; 20) i potem zsumować parzyste i nieparzyste liczby.

Pierwsza część wygląda tak.

Var I,J : Integer ;
begin
 for I := 0 to stringgrid1.Rowcount-1 Do
for J := 0 to stringgrid1.Colcount-1 do
stringgrid1.Cells[J,I] :=
Inttostr(Random(40)-20) 

I tu zaczynają się schody. Chciałbym w edit1.text i edit2.text umieścić sume parzystych i nieparzystych liczb.

Znam algorytm na liczbe parzystą

n mod 2 = 0

tylko nie wiem jak to połączyć z liczbami w stringgridzie
Z góry dziękuje za pomoc.

Pozdrawiam

edytowany 1x, ostatnio: furious programming, 2014-12-14 19:01
Wątek przenoszę do Newbie, bo widzę że masz problemy z podstawami programowania w Delphi; - furious programming 2014-12-14 21:51

Pozostało 580 znaków

2014-12-14 17:48
3
var tb:array[0..1]of Int64;
var v:Integer;
 
for y := 0 to stringgrid1.Rowcount-1 do
begin
  for x := 0 to stringgrid1.Colcount-1 do
  begin
    v:=StrToInt(StringGrid1.Cells[x,y]);
    Inc(tb[(v)mod(2)],v);
  end;
end;

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
po co Ci te nawiasy przy mod? - abrakadaber 2014-12-14 22:24
ponieważ spacjami oddzielam instrukcje, na Inc(tb[v mod 2],v); jakoś mi się wzrok zatrzymuje, czyta mi się jakieś 10 razy dłużej niż z nawiasami. - _13th_Dragon 2014-12-14 22:33

Pozostało 580 znaków

2014-12-14 19:28
0

Udało mi się zsumować liczby parzyste.

Problem jest z liczbami nieparzystymi. Czy mógłbym prosić o pomoc w dokończeniu kodu ?

 var x,y,i,j, pom,np: integer;
 
begin
 x:=0;
 y:=0;
 
for i:=0 to stringgrid1.rowcount-1 do
for j:=0 to stringgrid1.ColCount-1 do
begin
stringgrid1.cells[j,i]:=inttostr(random(40)-20);
pom:=strtoint(stringgrid1.cells[j,i]);
    if pom mod 2=0
    then
    x:=x+pom
 
 else
Dostałeś dokończony w poście wyżej. v->pom; tb[0]->x; tb[1]->y; - _13th_Dragon 2014-12-14 19:30

Pozostało 580 znaków

2014-12-14 21:40
1

Jak już koniecznie chcesz w ten sposób, to rób to z głową:

begin
  x := 0;
  y := 0;
 
  for i := 0 to StringGrid1.RowCount - 1 do
    for j := 0 to StringGrid1.ColCount - 1 do
    begin
      pom := Random(40) - 20;
      StringGrid1.Cells[j, i] := IntToStr(pom);
 
      if pom mod 2 = 0 then
        Inc(x, pom)
      else
        Inc(y, pom);
    end;
end;

Zakładając, że to y to ma być suma liczb nieprzystych, a x parzystych; Poza tym kod te identyfikatory kompletnie nic nie mówią o przeznaczeniu zmiennych, więc zmień je na sensowniejsze.


edytowany 1x, ostatnio: furious programming, 2014-12-14 21:43

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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