IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Множества, задача про Random-заполнение, Проблемы...
Clerick
сообщение 4.03.2006 19:40
Сообщение #1


студент..
***

Группа: Пользователи
Сообщений: 287
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  2  +


Народ выручайте кто может!!!
Необходимо решить следущую задачу: составить прогу, которая заполняет множество 15-ю английскими буквами и при том randomом!!! Я составил её, а она не работает... blink.gif
uses crt;
type alarm=set of char;
var i,j,n:integer;
a:alarm;

procedure ndfs (a:alarm);
var k:char;
begin
for k:=chr(0) to chr (255) do
begin
if (k in a) then Write (k);
end;
end;
begin
randomize;
for i:=1 to 15 do begin
n:=random (65)+25;
if chr(n) in a then i:=i-1 else a:=a+[chr(n)];
end;
ndfs(a);
end.

Выводятся совершенно левые буквы... mega_chok.gif Помогите найти ошибку! Заранее спасибо!!! smile.gif

Сообщение отредактировано: volvo - 6.11.2006 23:28


--------------------
После дождя обязательно выглянет солнце)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.03.2006 19:49
Сообщение #2


Гость






1) не изменяй переменную цикла внутри самого цикла, как ты сделал с переменной i...
2) зачем все время приводить k к типу Char, если можно ее сразу описать, как Char?
3) посмотри на Random...

uses crt;
type
alarm = set of char;

var
i, j, n: integer;
a: alarm;

procedure ndfs (a:alarm);
var k:char;
begin
for k := #0 to #255 do
if (k in a) then write(k);
end;

begin
randomize;
for i := 1 to 15 do begin
repeat
n := 65 + random(26);
until not (chr(n) in a);
a := a + [chr(n)];
end;
ndfs(a);
end.
 К началу страницы 
+ Ответить 
Clerick
сообщение 4.03.2006 19:57
Сообщение #3


студент..
***

Группа: Пользователи
Сообщений: 287
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  2  +


Огромное спасибо, volvo, все работает!!! Только насчет k я не понял... mega_chok.gif mega_chok.gif mega_chok.gif


--------------------
После дождя обязательно выглянет солнце)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 11:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"