program Lab8_2;
const m=200;
var h,h1,h2:set of 1..m; i,p,n,k,r:integer; x:1..200;
procedure wri (h:set of 1..m);
var x:1..200;
begin
for x:=1 to 200 do
if x in h then
writeln(x);
end;
begin
writeln('Введите количество членов!');
readln(n);
while i<n do
begin
p:=Random(200);
h:=h+;
i:=i+1;
end;
writeln('Сформированное множество:');
wri(h);
k:=2;
while k<=200 do
begin
if k in h then
h1:=h1+[k];
k:=k+2;
end;
writeln('в том числе кратные 2:');
wri(h1);
r:=3;
while r<=200 do
begin
if r in h then
h2:=h2+[r];
r:=r+3;
end;
writeln('в том числе кратные 3:');
wri(h2);
end.
Помогите исправить программу!
в PascalABC программа работает, а в Turbo Pascal 7.0 выдает на 1 члена меньше и почемуто одни и те же числа.
Помогите найти ошибку. Заранее благодарен.
Код:
поставить скобки if (x in h) then
Цитата:
Originally posted by r000n_m
Попробуй в выражениях типа if x in h then
поставить скобки if (x in h) then
Попробуй в выражениях типа if x in h then
поставить скобки if (x in h) then
непомогло!
Чтобы числа были не одинаковые, нужно сначала вызвать Randomize
Код:
Randomize;
while i<n do begin
p:=Random(200);
if not (p in h) then begin
h:=h+;
i:=i+1;
end;
end;
while i<n do begin
p:=Random(200);
if not (p in h) then begin
h:=h+;
i:=i+1;
end;
end;
Спасибо попробую.
writeln('Введите количество членов!');
readln(n);
while i<[COLOR="Red"]=[/COLOR]n do
begin
p:=Random(200);
h:=h+
;
i:=i+1;
end;
[/QUOTE]
ХА а если так ...
можно и так, только перед while нужно будет добавить i:=1;
program stroki;
uses crt;
const d=60;
var s:string[d];
i,k,m,n:integer;
begin
clrscr;
writeln('vvedite stroku');readln(s);
writeln('vvedite novuy dlinu stroki');readln(k);
m:=0;
while k+m<=length(s) do
begin
for i:=k+m downto 1+m do
if s=' ' then
begin
n:=m;
m:=i;
end;
for i:=n+1 to m do write(s);
writeln;
end;
for i:=m+1 to length(s) do write(s);
readkey
end.
Вывести на экран строку, задав с консоли его новую длину (менее 60 символов). Разрыв слов при вводе не допускается.
Заранее спасибо!