Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   [Pascal] РАБОТА С МНОЖЕСТВЕННЫМИ ТИПАМИ ДАННЫХ (https://forum.antichat.xyz/showthread.php?t=190149)

Fox_NICK 25.03.2010 12:26

[Pascal] РАБОТА С МНОЖЕСТВЕННЫМИ ТИПАМИ ДАННЫХ
 
Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются встречающиеся в последовательности: знаки препинания и операций отношения.

Код:

program hw5 ;

uses crt;

var

        cur_symb,symb_of_end,j,y        :        char;
        mn                                                        :        set of char=['!'..'.'];
        v_mnoj                                                :        set of char=['!'..'.'];

BEGIN
        clrscr;
        cur_symb:='!';
        symb_of_end:='.';
        mn:=[];

       
        writeln('Введите символ указывающий на конец строки.');
        readln(symb_of_end);
       
        v_mnoj:=['!'..'.'];
        writeln('Введите множество символов.');
        while cur_symb<>symb_of_end do begin
                read(cur_symb);
                if cur_symb in v_mnoj then mn:=mn+[cur_symb];
               
        end;
        writeln('В множестве содержатся:');
        writeln('знаки препинания:');
        for j:='!' to '.' do
                if j in mn then writeln(j);       

       
END.

не работает( не подскажите в чем ошибка?

Soherox 25.03.2010 17:10

Вот исправленная и подправленная версия, думаю поймете что к чему

PHP код:

var

    
cur_symbsymb_of_endyjchar;
    
mnv_mnojv_mnoj2:  set of char;

begin
  v_mnoj
:=['!'..'.'];
  
v_mnoj2:=[':'..'?'];
  
cur_symb:=' ';
  
mn:=[];
 {
writeln('Введите символ указывающий на конецстроки.');}
  
readln(symb_of_end);
 {
writeln('Введите множество символов.');}
    while 
cur_symb <> symb_of_end do
    
begin
           read
(cur_symb);
           if (
cur_symb in v_mnoj) or (cur_symb in v_mnoj2then mn:=mn+[cur_symb]
      
end;
 {
writeln('В множестве содержатся:');
    
writeln('знаки препинания:');}
    for 
j:='!' to '.' do
        if 
j in mn then write(j,' ');
    for 
j:=':' to '?' do
        if 
j in mn then write(j,' ');
  
readln;
  
readln;
end

P.S. Добавил еще символы '!' '<' '>' '?' ':' ';'

Fox_NICK 25.03.2010 19:48

ооо точно) сенк большое) + =)


Время: 14:05