04.01.2010, 10:33 | #1 (permalink) |
Member
Регистрация: 02.11.2009
Сообщений: 19
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Две задачи на Pascal: про массив и про наибольший общий делитель
Код:
program Laba4; const Nmax=3; type ind=1..Nmax; mas=array [1..Nmax,1..Nmax] of integer; var a:mas; i,j:ind; S:integer; N:real; begin repeat write ('vviberite sposob vvoda(1-ruchnoi;2-avtomaticheskii)'); readln (N); until (N=1) or (N=2); if N=1 then begin for i:=1 to Nmax do for j:=1 to Nmax do begin write ('a[',i,j,']='); readln (a[i,j]); end; end; randomize; if N=2 then begin for i:=1 to Nmax do for j:=1 to Nmax do begin a[i,j]:=-random (101)+50; end; end; write (a[i,j]:4); writeln; for i:=1 to Nmax do for j:=1 to Nmax do begin if (a[i,j]<0) and (i=j) then begin for j:=1 to Nmax do begin S:=S+a[i,j]; end; writeln ('S=',S); readln; end; end; end. P.S. Заранее благодарю. Последний раз редактировалось Long Cat; 04.01.2010 в 10:47 |
04.01.2010, 10:33 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ваш топик на эту тему не единственный, вот похожие Pascal, две задачи Задачи по Pascal Помогите, пожалуйста, решить три задачи по Pascal |
04.01.2010, 10:56 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Насчет первой задачи. У Вас неверно построен оконечный цикл. Давайте разберемся. Вот Ваш фрагмент:
Код:
for i:=1 to Nmax do for j:=1 to Nmax do begin if (a[i,j]<0) and (i=j) then begin for j:=1 to Nmax do begin S:=S+a[i,j]; end; writeln ('S=',S); readln; end; end; Код:
for i:=1 to Nmax do if a[i,i]<0 then begin S:=0; for j:=1 to Nmax do S:=S+a[i,j]; writeln ('S[',i,']= ',S); end; Readln; |
04.01.2010, 11:28 | #3 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
var a1,a2,a3,m:WORD; b:BOOLEAN; Begin Write('a1= '); ReadLn(a1); Write('a2= '); ReadLn(a2); Write('a3= '); ReadLn(a3); m:=(a1 div 2); b:=FALSE; Repeat b:=((a1 mod m)=0) and ((a2 mod m)=0) and ((a3 mod m)=0) and (m>1); DEC(m); Until b OR (m=1); If b then Writeln('The greatest common divisor is ',m) else Writeln('These numbers have no common divisors'); ReadLn; End. |
|
21.01.2010, 12:03 | #4 (permalink) |
Member
Регистрация: 02.11.2009
Сообщений: 19
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
а можете 2ую задачу сделать с процедурами?
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|