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

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

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

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> работа с записями, (упорядочение, формирование множества)
сообщение
Сообщение #21


Профи
****

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

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


Цитата(мисс_граффити @ 30.11.2006 21:54) *

T - абсолютно не нужно.
вместо него пишешь a[i] и делаешь снаружи цикл по i. то есть чтобы действия, описанные volvo, выполнялись для каждого элемента.
записи? сначала у тебя множество пустое. а добавление в него эл-тов происходит здесь:
rez_mn:=rez_mn+[T mod 10];


ты наверное не правильно поняла меня насчет записи:
"а вот ещё: дан массив из эн натур. чисел. Сформировать множество цифр, которых нет в записи хотя бы одного из чисел массива. "
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Профи
****

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

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


Похоже вот этот блок в твоей программе:

rez_mn:=is_mn-rez_mn;
for i:=0 to 9 do
begin
if i in rez_mn then

надо поменять на:
is_mn:=is_mn-rez_mn;
for i:=0 to 9 do
begin
if i in is_mn then
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


18192123, запись числа - это совокупность его цифр, написанных по определенному закону! это то, что мы записываем.
тут речь не про тип "запись".


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Гость






Цитата
T - абсолютно не нужно.
вместо него пишешь a[i] и делаешь снаружи цикл по i.
То есть, посмотреть на контекст нельзя никак? Сообщение №13 что говорит? Я по-моему, объяснил, ЗАЧЕМ здесь нужно T?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Ой. Сорри.
А нельзя тему на 2 разделить?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Профи
****

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

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


Цитата(мисс_граффити @ 30.11.2006 22:39) *

тут речь не про тип "запись".

Всё! теперь понятно!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #27


Профи
****

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

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


ещё один вопрос:
составила прогу для второй задачи без процедур: все работает

Program lab_8_2;
uses crt;
const n=5;
type vect=array[1..n]of integer;
procedure input(var a:vect);
var i:byte;
begin
writeln ('vvedite massiv naturalnih 4isel');
for i:=1 to n do
read (a[i]);
end;
VAR
a:vect;
i,k:byte;
is_mn,rez_mn,mn_4isel:set of byte;
BEGIN
CLRSCR;
input (a);
mn_4isel:=[];
for i:=1 to n do begin
while a[i]<>0 do
begin
mn_4isel:=mn_4isel+[a[i] mod 10];
a[i]:=a[i] div 10;
end;
end;

is_mn:=[0..9];
rez_mn:=is_mn-mn_4isel;
for k:=0 to 9 do
begin
if k in rez_mn then
writeln (k);
end;
readkey;
end.





теперь хочу дополнить программу процедурой - не получается; не пойму в чем дело?


Program lab_8_2;
uses crt;
const n=5;
type vect=array[1..n]of integer;
procedure input(var a:vect);
var i:byte;
begin
writeln ('vvedite massiv naturalnih 4isel');
for i:=1 to n do
read (a[i]);
end;
procedure creat_mn(const a:vect);
var
mn_4isel:set of byte; i:byte;
begin
mn_4isel:=[];
for i:=1 to n do
begin
while a[i]<>0 do
begin
mn_4isel:=mn_4isel+[a[i] mod 10];
a[i]:=a[i] div 10;
end;
end;
end;

VAR
a:vect;
i:byte;
is_mn,rez_mn,mn_4isel:set of byte;
BEGIN
CLRSCR;
input (a);
creat_mn(a,i);
is_mn:=[0..9];
rez_mn:=is_mn-mn_4isel;
for i:=0 to 9 do
begin
if i in rez_mn then
writeln (i);
end;
readkey;
end.



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Гость






procedure creat_mn(const a:vect); { <--- Проблема в Const }
Ты запретила изменять множество, а ниже пытаешься это делать... Значит, тебе надо Var ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #29


Профи
****

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

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


Цитата(volvo @ 3.12.2006 20:51) *

procedure creat_mn(const a:vect); { <--- Проблема в Const }
Ты запретила изменять множество, а ниже пытаешься это делать... Значит, тебе надо Var ...

компиляция проходит успешно, а программа выдает все цифры от 0 до 9
??????????????????
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #30


Гость






Цитата
а программа выдает все цифры от 0 до 9
blink.gif А что ты думала она будет выдавать? mn_4isel - локальная переменная, после выхода из процедуры уничтожается, а глобальная с тем же именем ничего про процедуру create_mn вообще не знает, и естественно равна [] ... Все правильно... Тебе надо как-то возвращать множество из процедуры... Подумай, как...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #31


Профи
****

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

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


Цитата(volvo @ 3.12.2006 21:26) *

blink.gif А что ты думала она будет выдавать? mn_4isel - локальная переменная, после выхода из процедуры уничтожается, а глобальная с тем же именем ничего про процедуру create_mn вообще не знает, и естественно равна [] ... Все правильно... Тебе надо как-то возвращать множество из процедуры... Подумай, как...

у меня такая мысль:
объявить mn_4isel в списке формальных параметров(не знаю, как - пытаюсь сделать - ошибки??????)

Сообщение отредактировано: 18192123 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #32


Профи
****

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

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


Цитата(18192123 @ 3.12.2006 21:40) *

у меня такая мысль:
объявить mn_4isel в списке формальных параметров(не знаю, как - пытаюсь сделать - ошибки??????)

я права???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #33


Профи
****

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

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


Цитата(volvo @ 3.12.2006 21:26) *

blink.gif А что ты думала она будет выдавать? mn_4isel - локальная переменная, после выхода из процедуры уничтожается, а глобальная с тем же именем ничего про процедуру create_mn вообще не знает, и естественно равна [] ... Все правильно... Тебе надо как-то возвращать множество из процедуры... Подумай, как...

ну объясните пожалуйста, как нужно

в правильном ли направлении я думаю???????
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 9:14
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name