Delphi neumí sčítat – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Delphi neumí sčítat – Delphi – Fórum – Programujte.comDelphi neumí sčítat – Delphi – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Potkan
~ Anonymní uživatel
3 příspěvky
18. 1. 2011   #1
-
0
-

Dobrý den,
Dělám úkol do školy a mám problém s tím, že Delphi nedokáže sečíst dvě hodnoty:

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math, Grids;

type
TForm1 = class(TForm)
Button1: TButton;
StringGrid1: TStringGrid;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
x, y, a, b: integer;
p: array [0..11,0..10] of integer;
begin
p[0,10]:=0;
for y := 0 to 9 do begin
p[0,y]:=0;
for x := 0 to 10 do begin
p[x,0]:=0;
p[1,0]:=1;
p[x+1,y+1]:=p[x,y]+p[x+1,y];
end;
end;
for b := 0 to 10 do begin
for a := 0 to 11 do begin
StringGrid1.Cells[a,b]:=IntToStr(p[a,b]);
end;
end;
end;
end.


Hodnoty prvního řádku a prvního sloupce jsou zadefinovány. Nejprve se sečte první "buňka" prvního řádku pole s druhou, tzn. tou, která je vpravo od ní, a součet se zapíše pod druhou "buňku". Pokračuje součet druhé se třetí a zápis pod třetí atd. Jenže na druhém řádku v třetím sloupci se zobrazí číslo 100925443.

Prosím o radu. V čem mám chybu?

Předem děkuji.

Nahlásit jako SPAM
IP: 88.146.87.–
Reklama
Reklama
nervak0
Věrný člen
18. 1. 2011   #2
-
0
-

Ty v ničem, to přece Delphi neumí sčítat.
34

Nahlásit jako SPAM
IP: 213.211.51.–
Potkan
~ Anonymní uživatel
3 příspěvky
18. 1. 2011   #3
-
0
-

Ten titulek je takový schválně, aby upoutal. Ale vážně, co je tam špatně?

Nahlásit jako SPAM
IP: 88.146.87.–
KIIV+42
God of flame
18. 1. 2011   #4
-
0
-

To Potkan : s urcitou jistou pravdepodobnosti muzes napriklad scitat neco, co neni inicializovane... vypis si napriklad pred scitanim cele pole.. co v nem je.. pak teprve muzes nadava ze to neumi scitat

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
nervak0
Věrný člen
18. 1. 2011   #5
-
0
-

Vážně. Tím "34" jsem myslel číslo řádku.

Nahlásit jako SPAM
IP: 213.211.51.–
Honzc0
Stálý člen
19. 1. 2011   #6
-
0
-

To Potkan:
Zkus to pole nadefinovat jako dynamické.
Potom když mu procedurou SetLength() přiřadíš délku, tak se pole vyplní
automaticky v našem případě nulami.
Tady máš funkční kód:
procedure TForm1.Button1Click(Sender: TObject);
var i,j: Integer;
p: array of array of Integer;
begin
SetLength(p,12,11);
for i := 0 to 9 do
for j := 0 to 10 do
begin
p[1,0]:=1;
p[j+1,i+1]:=p[j,i]+p[j+1,i];
end;

for i := 0 to 10 do
for j := 0 to 11 do
StringGrid1.Cells[j,i]:=IntToStr(p[j,i]);
end;
Jinak mezi námi. To má asi (určitě) udělat Pascalův trojúhelník.
Ještě bych to snad vylepšil tak, že bych ten druhý cyklus napsal takto:
for i := 0 to 10 do
begin
p[0,i] := i;
for j := 0 to 11 do
StringGrid1.Cells[j,i]:=IntToStr(p[j,i]);
end;

Nahlásit jako SPAM
IP: 93.181.78.–
Potkan
~ Anonymní uživatel
3 příspěvky
19. 1. 2011   #7
-
0
-

Moc vám všem děkuji.
Chyba se opravdu týkala řádku 34. Asi si budu muset zvyknout, že Delphi není CSS.

To Honzc:
Ano, má to být Pascalův trojúhelník. Díky za praktické návrhy,

Nahlásit jako SPAM
IP: 88.146.87.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Podobná vlákna

Delphi 6 — založil mimi

C++ vs.Delphi — založil Dávid Ivan

Delphi 5 — založil seberm

Delphi Dělení — založil WiseGuy

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý