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
|
|
|