1) uses crt; var a:array [1..15] of integer; i,k:integer; begin randomize; k:=0; for i:=1 to 15 do begin a[i]:=random(10)-3; if (a[i]<0) then inc(k); write (a[i],' '); end; writeln; writeln (k/15*100,'%'); end.
2) uses crt; var a:array [1..20] of integer; i:integer; begin randomize; for i:=1 to 20 do begin a[i]:=random(30); write (a[i],' '); end; writeln; for i:=1 to 20 do if (a[i] mod 10 = 3) then write (a[i],' '); end.
3) uses crt; var a:array [1..20] of integer; i:integer; k:longint; begin randomize; k:=1; for i:=1 to 20 do begin a[i]:=random(30); write (a[i],' '); if (a[i]>9) and (a[i]<100) then k:=k*a[i]; end; writeln; writeln (k); end.
4) uses crt; var a:array [1..30] of integer; i:integer; flag:boolean; begin randomize; for i:=1 to 30 do begin a[i]:=random(30); write (a[i],' '); end; writeln; flag:=true; for i:=1 to 29 do if (a[i]>a[i+1]) then begin flag:=false; break; end; writeln (flag); end.
1. Рассмотрим вариант построения числа 1715 при условии a+b=17, b+c=15. Число 17 можно получить только двумя и 8+9=17. Отсюда получаем два варианта: (a=9; b=8) и (a=8; b=9). (1) Число 15 можно получить тоже двумя полагая, что одно из слагаемых (b) равно 8 или 9: 9+6 и 8+7, что тоже дает два варианта: (b=9; c=6) и (b=8; c=7). (2) Объединяя (1) и (2) получаем (a=9; b=8; c=7) и (a=8; b=9; c=6), т.е. у нас по-прежнему есть два варианта решения. 2. Теперь рассмотрим вариант построения числа 1715 при условии a+b=15, b+c=17 и упорядочения 17, 15 по убыванию. Легко видеть, что решение будет "симметричным": (a=7; b=8; c=9) и (a=6; b=9; c=8) и это также даст нам два варианта. 3. Объединяя результат получаем, что всего имеется четыре решения, т.е. четыре числа (698, 789, 896, 987). ответ: 4 числа.
Проверка решения программным путем (Borland Pascal 7.0) uses Crt; var a,b,c,ab,bc,t,k:byte; s1,s2:string; begin ClrScr; k:=0; for a:=0 to 9 do for b:=0 to 9 do for c:=0 to 9 do begin ab:=a+b; bc:=b+c; if ab<bc then begin t:=ab; ab:=bc; bc:=t end; Str(ab,s1); Str(bc,s2); if s1+s2='1715' then begin WriteLn(a,b,c); Inc(k) end end; Writeln('kol-vo=',k); ReadKey end.
Результат выполнения программы: 698 789 896 987 kol-vo=4
uses crt;
var a:array [1..15] of integer;
i,k:integer;
begin
randomize;
k:=0;
for i:=1 to 15 do
begin
a[i]:=random(10)-3;
if (a[i]<0) then inc(k);
write (a[i],' ');
end;
writeln;
writeln (k/15*100,'%');
end.
2)
uses crt;
var a:array [1..20] of integer;
i:integer;
begin
randomize;
for i:=1 to 20 do
begin
a[i]:=random(30);
write (a[i],' ');
end;
writeln;
for i:=1 to 20 do
if (a[i] mod 10 = 3) then write (a[i],' ');
end.
3)
uses crt;
var a:array [1..20] of integer;
i:integer;
k:longint;
begin
randomize;
k:=1;
for i:=1 to 20 do
begin
a[i]:=random(30);
write (a[i],' ');
if (a[i]>9) and (a[i]<100) then k:=k*a[i];
end;
writeln;
writeln (k);
end.
4)
uses crt;
var a:array [1..30] of integer;
i:integer;
flag:boolean;
begin
randomize;
for i:=1 to 30 do
begin
a[i]:=random(30);
write (a[i],' ');
end;
writeln;
flag:=true;
for i:=1 to 29 do
if (a[i]>a[i+1]) then
begin
flag:=false;
break;
end;
writeln (flag);
end.
Число 17 можно получить только двумя и 8+9=17.
Отсюда получаем два варианта: (a=9; b=8) и (a=8; b=9). (1)
Число 15 можно получить тоже двумя полагая, что одно из слагаемых (b) равно 8 или 9: 9+6 и 8+7, что тоже дает два варианта: (b=9; c=6) и (b=8; c=7). (2)
Объединяя (1) и (2) получаем (a=9; b=8; c=7) и (a=8; b=9; c=6), т.е. у нас по-прежнему есть два варианта решения.
2. Теперь рассмотрим вариант построения числа 1715 при условии a+b=15, b+c=17 и упорядочения 17, 15 по убыванию. Легко видеть, что решение будет "симметричным": (a=7; b=8; c=9) и (a=6; b=9; c=8) и это также даст нам два варианта.
3. Объединяя результат получаем, что всего имеется четыре решения, т.е. четыре числа (698, 789, 896, 987).
ответ: 4 числа.
Проверка решения программным путем (Borland Pascal 7.0)
uses Crt;
var
a,b,c,ab,bc,t,k:byte;
s1,s2:string;
begin
ClrScr;
k:=0;
for a:=0 to 9 do
for b:=0 to 9 do
for c:=0 to 9 do
begin
ab:=a+b; bc:=b+c;
if ab<bc then begin t:=ab; ab:=bc; bc:=t end;
Str(ab,s1); Str(bc,s2);
if s1+s2='1715' then begin WriteLn(a,b,c); Inc(k) end
end;
Writeln('kol-vo=',k);
ReadKey
end.
Результат выполнения программы:
698
789
896
987
kol-vo=4