Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Множества (http://www.tehnari.ru/f43/t250416/)

gaben134 30.11.2016 16:31

Множества
 
Помогите пожалуйста
Напечатать в возрастающем порядке все цифры, не входящие в десятичную запись натурального числа N (число выбрать произвольно).

Vladimir_S 30.11.2016 16:41

Цитата:

Сообщение от gaben134 (Сообщение 2439682)
Помогите пожалуйста
Напечатать в возрастающем порядке все цифры, не входящие в десятичную запись натурального числа N (число выбрать произвольно).

Да без проблем:
Код:

Var
 N:String;
 i,k:Byte;
 S:Set of byte;
 Code:Word;

Begin
 Write('N = ');
 Readln(N);
 S:=[];
 for i:=1 to Length(N) do
  begin
  Val(N[i],k,Code);
  if Not(k in S) then S:=S+[k];
  end;
 for i :=0 to 9 do
  if Not(i in S) then Write(i:2);
 Readln
End.


gaben134 30.11.2016 17:16

Какой же вы крутой, чисто всегда помогаете :)

gaben134 30.11.2016 17:17

Но небольшая проблема, паскаль выдает ошибку
"Program1.pas(13) : Нет перегруженной подпрограммы с такими типами параметров"
в этой строчке "Val(N[i],k,Code);"

Vladimir_S 30.11.2016 19:18

Цитата:

Сообщение от gaben134 (Сообщение 2439693)
Но небольшая проблема, паскаль выдает ошибку
"Program1.pas(13) : Нет перегруженной подпрограммы с такими типами параметров"
в этой строчке "Val(N[i],k,Code);"

Черт, так я и знал! АВС, конечно? Поубивал бы этих идиотов: и которые создали, и которые впендюривают это изделие №2 студентам. Естественно, прежде чем выкладывать, оттестировал. Но у меня-то нормальный Free Pascal, а не это...
Ладно, попробуйте так:
Код:

Var
 N,Q:String;
 i,k,M:Byte;
 S:Set of byte;
 Code:Integer;

Begin
 Write('N = ');
 Readln(N);
 M:=Length(N);
 S:=[];
 for i:=1 to M do
  begin
  Q:=N[i];
  Val(Q,k,Code);
  if Not(k in S) then S:=S+[k];
  end;
 for i :=0 to 9 do
  if Not(i in S) then Write(i:2);
 Readln
End.


gaben134 04.12.2016 10:47

Cпасибо, вы как всегда лучший

Vladimir_S 04.12.2016 10:50

Цитата:

Сообщение от gaben134 (Сообщение 2440916)
Cпасибо, вы как всегда лучший

Заработало, как я понял? Ну вот и славно, если так.


Часовой пояс GMT +4, время: 09:17.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.