| 
        
    
		
			| 
			
        		| chernaja 
 
   Новичок
 |               спасибо)
 |  
				| Всего сообщений: 4 | Присоединился: май 2009 | Отправлено: 8 июня 2009 1:01 | IP
 |  |  
			| 
			
        		| TERRATOR 
 
   
   Новичок
 |               Помогите пожалуста найти ошибку, прога должна считывать суммы елементов квадратной матрицы ниже побочной диагонали.
 
 
 {unit Unit1;
 
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Grids, StdCtrls, Buttons;
 
 type
 TForm1 = class(TForm)
 Edit3:TEdit;
 StringGrid1: TStringGrid;
 Button1: TButton;
 Button2: TButton;
 Label1: TLabel;
 procedure Button1Click(Sender: TObject);
 procedure Button3Click(Sender: TObject);
 procedure Button2Click(Sender: TObject);
 
 private
 { Private declarations }
 public
 { Public declarations }
 end;
 const t=8;
 var
 i,j:Integer;
 Form1:Tform;
 implementation
 
 {$R *.dfm}
 
 
 procedure TForm1.Button1Click(Sender: TObject);
 var  i,j:Integer;
 begin
 with StringGrid1 do
 begin
 for i := 0 to t do begin
 Cells[i,0] := IntToStr(i); end;
 for j := 0 to t do begin
 Cells[0,j] := IntToStr(j); end;
 end;
 randomize;
 with StringGrid1 do
 begin
 for i := 1 to t do
 for j := 1 to t do begin
 Cells[i,j] := IntToStr(random(5)+1);
 end;
 end;
 end;
 
 
 procedure TForm1.Button3Click(Sender: TObject);
 begin
 If CloseQuery then Close;
 end;
 
 procedure TForm1.Button2Click(Sender: TObject);
 var x:Integer; i,j:Integer;
 begin
 x:=0;
 
 with StringGrid1 do
 begin
 for i := 1 to t do
 for j := 1 to t do begin
 StrToInt(StringGrid1.Cells[i,j]);
 end;
 for i:=1 to j do
 for j:=t downto RowCount-i+1 do begin
 Edit3.Text:=intToStr(StrToInt(Cells[i,j])+(x));
 end;
 end;
 end;
 
 end. }
 |  
				| Всего сообщений: 4 | Присоединился: май 2009 | Отправлено: 11 июня 2009 12:57 | IP
 |  |  
			| 
			
        		| Dale 
 
   
   Участник
 |                  1)Button2Click
 
 Code Sample:
  for i := 1 to t do
 for j := 1 to t do begin
 StrToInt(StringGrid1.Cells[i,j]);
 end;
 
 
 вам ничего не дает, можете удалить
 
 2)Ваша ключевая ошибка:
 Edit3.Text:=intToStr(StrToInt(Cells[i,j])+(x));
 
 Переменная x всегда равна нулю, а прибавляя к нулю cells[i,j],
 вы ничего не добьетесь. В итоге у вас выведется значение последней прибавляемой ячейки.
 Так что если вы используете для подсчетов текстовые окна, то делайте это до конца без всяких левых переменных. То есть вместо
 x:=0;
 пишите
 Edit3.Text:=inttostr(0);
 а вместо стороки
 Edit3.Text:=intToStr(StrToInt(Cells[i,j])+(x));
 напишите
 Edit3.Text:=inttostr(strtoint(edit3.text)+strtoint(cells[i,j]));
 и по-идее все заработает.
 А вообще, вы написали не в тот раздел форума. В следующий раз пишите сюда:
 http://exir.ru/cgi-bin/ikonboard/topic.cgi?forum=3&topic=214
 
 (Сообщение отредактировал Dale 12 июня 2009 4:51)
 |  
				| Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 12 июня 2009 4:40 | IP
 |  |  
			| 
			
        		| DELUZA 
 
   
   Новичок
 |                помогите составить блок схему
 program z3;
 uses Crt;
 function areFriends(a1,a2: longint): boolean;
 var b: boolean;
 s1,s2: longint;
 i: longint;
 begin
 b:=false;
 
 s1:=0;
 for i:= 1 to (a1 div 2) do if a1 mod i = 0 then s1:=s1+i;
 s2:=0;
 for i:= 1 to (a2 div 2) do if a2 mod i = 0 then s2:=s2+i;
 if ((a1=s2) and (a2=s1)) then b:=true;
 
 areFriends:=b;
 end;
 var
 k,i,j: longint;
 begin
 repeat
 clrScr;
 Write('Vvedite 4islo K= ');
 readln(k)
 until k>1;
 writeln('Rezultat(dozdites nadpisi o zavershenii raboti):');
 
 for i:=1 to k-1 do
 for j:=i to k-1 do
 if areFriends(i,j) then writeln(i,'        ',j);
 
 writeln('Programma zavershila svou rabotu!');
 readln;
 end.
 
 
 (Сообщение отредактировал DELUZA 18 июня 2009 0:38)
 |  
				| Всего сообщений: 8 | Присоединился: июнь 2009 | Отправлено: 18 июня 2009 0:37 | IP
 |  |  
			| 
			
        		| Dale 
 
   
   Участник
 |                  DELUZA  , прогресс на лицо! Вы научились писать маленькими буквами!!!)))
 Получите конфетку)
 внешняя ссылка удалена
 
 |  
				| Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 18 июня 2009 2:56 | IP
 |  |  
			| 
			
        		| DELUZA 
 
   
   Новичок
 |                спасибо большое
 |  
				| Всего сообщений: 8 | Присоединился: июнь 2009 | Отправлено: 19 июня 2009 20:02 | IP
 |  |  
			| 
			
        		| DELUZA 
 
   
   Новичок
 |                помоги еще сделать блок схему на эти задачи
 
 program z2;
 uses Crt;
 function isSimple(x: longint): boolean;
 var i: longint;
 b: boolean;
 begin
 b:=true;
 i:=2;
 if x>2 then
 while i<x do
 if x mod i=0 then begin b:=false; i:=x; end
 else inc(i);
 isSimple:=b;
 end;
 function NextSimple(x: longint):longint;
 var i: longint;
 begin
 i:=x+1;
 while not(isSimple(i)) do inc(i);
 nextSimple:=i;
 end;
 var
 x,i: longint;
 begin
 clrScr;
 write('Vvedite prostoe chislo: ');
 readln(x);
 for i:=1 to 5 do begin
 x:= NextSimple(x);
 writeln('Sleduus4ee prostoe 4islo = ',x);
 end;
 readln;
 end.
 |  
				| Всего сообщений: 8 | Присоединился: июнь 2009 | Отправлено: 19 июня 2009 20:07 | IP
 |  |  
			| 
			
        		| DELUZA 
 
   
   Новичок
 |                program z1;
 uses Crt;
 function isSimple(x: longint): boolean;
 var i: longint;
 b: boolean;
 begin
 b:=true;
 i:=2;
 if x>2 then
 while i<x do
 if x mod i=0 then begin b:=false; i:=x; end
 else inc(i);
 isSimple:=b;
 end;
 function NextSimple(x: longint):longint;
 var i: longint;
 begin
 i:=x+1;
 while not(isSimple(i)) do inc(i);
 nextSimple:=i;
 end;
 var
 x: longint;
 begin
 clrScr;
 write('Vvedite prostoe chislo: ');
 readln(x);
 writeln('Sleduus4ee prostoe 4islo = ',NextSimple(x));
 readln;
 end.
 
 пожалуйста)))
 |  
				| Всего сообщений: 8 | Присоединился: июнь 2009 | Отправлено: 19 июня 2009 20:08 | IP
 |  |  
			| 
			
        		| KMA   
 
   
   Долгожитель
 |                Это уже не помощь, я решение получается!
 
 Я дам подсказку, здесь должно быть 3 блок-схемы для каждой задачи и эти схемы довольно просты и тривиальны, тебе нужно лишь воспользоваться соответствующим ГОСТом информация о нем. Если сможешь построить блок-схему, это будет хороший шаг в сторону программирования.
 
 Тем более не хорошо на одном форуме просить задачи, а на втором стрить блок-схемы.
 |  
				| Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 20 июня 2009 18:18 | IP
 |  |  
			| 
			
        		| Dale 
 
   
   Участник
 |                  
 Тем более не хорошо на одном форуме просить задачи, а на втором стрить блок-схемы.
 
 Наоборот, так и надо делать! Что будет, если в одноqй теме будут и просить задачи и строить блок-схемы?  Не только нарушение правил, но и такая  каша, что ни в сказке сказать, ни пером описать :-)
 
 
 
 (Сообщение отредактировал Dale 21 июня 2009 0:23)
 |  
				| Всего сообщений: 139 | Присоединился: май 2009 | Отправлено: 21 июня 2009 0:21 | IP
 |  |  |