Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите исправить программу!

16K
26 мая 2006 года
SergSIS
8 / / 26.05.2006
Написал программу по созданию множества из случайных чисел по заданному числу членов и выделению из него двух множеств делящихся на 3 и на 2.
в PascalABC программа работает, а в Turbo Pascal 7.0 выдает на 1 члена меньше и почемуто одни и те же числа.
Помогите найти ошибку. Заранее благодарен.

Код:
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.
5.3K
26 мая 2006 года
r000n_m
177 / / 26.02.2006
Попробуй в выражениях типа if x in h then
поставить скобки if (x in h) then
16K
26 мая 2006 года
SergSIS
8 / / 26.05.2006
Цитата:
Originally posted by r000n_m
Попробуй в выражениях типа if x in h then
поставить скобки if (x in h) then



непомогло!

5.3K
26 мая 2006 года
r000n_m
177 / / 26.02.2006
Чтобы числа были не одинаковые, нужно сначала вызвать Randomize
9.4K
26 мая 2006 года
_nоrth_
99 / / 24.04.2006
Добавлять элементы:
 
Код:
Randomize;

while i<n do begin
  p:=Random(200);
  if not (p in h) then begin
    h:=h+;
    i:=i+1;
  end;
end;
16K
26 мая 2006 года
SergSIS
8 / / 26.05.2006
Спасибо попробую.
19K
13 июня 2006 года
Gre4in
1 / / 13.06.2006
[QUOTE=SergSIS]

writeln('Введите количество членов!');
readln(n);
while i<[COLOR="Red"]=[/COLOR]n do
begin
p:=Random(200);
h:=h+

;
i:=i+1;
end;
[/QUOTE]
ХА а если так ...

1.8K
13 июня 2006 года
LastSoul
279 / / 28.12.2005
[QUOTE=Gre4in]ХА а если так ...[/QUOTE]
можно и так, только перед while нужно будет добавить i:=1;
46K
23 февраля 2009 года
Bender ™
16 / / 23.02.2009
Народ, помогите найти ошибку:

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 символов). Разрыв слов при вводе не допускается.

Заранее спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог