Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Множества


Автор: IceTi 21.4.2007, 20:50
Задана строка символов. Определить, чего больше, латинских букв, русских или цифр? (Применить множество)

Автор: darkart 22.4.2007, 10:24
Кодировка левая, писал в паскале, работать без keyrusa не будет
Код

program Sets;
const
{ ¼¡«ªÑßΓó« ºáú½áó¡δσ ½áΓ¿¡ß¬¿σ íπ¬ó}
  sLat=
  ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O'
  ,'P','Q','R','S','T','U','V','W','X','Y','Z'];
{ ¼¡«ªÑßΓó« απß߬¿σ íπ¬ó}
  sRus=
  ['Ç','ü','é','â','ä','à','≡','å','ç','ê','ë','è','ï','î','ì',
  'Ä','Å','É','æ','Æ','ô','ö','ò','û','ù','ÿ','Ö','Ü','¢','£','¥','₧','ƒ',
  'á','í','ó','ú','ñ','Ñ','±','ª','º','¿','⌐','¬','½','¼','¡',
  '«','»','α','ß','Γ','π','Σ','σ','µ','τ','Φ','Θ','Ω','δ','∞','φ','ε','∩'];
{ ¼¡«ªÑßΓó« µ¿Σα}
  sNum=['1','2','3','4','5','6','7','8','9','0'];
var
  i,len,iLatCount,iRusCount,iNumCount:integer;{ i-ßτÑΓτ¿¬, len-ñ½¿¡á ßΓ᫬¿, «ßΓá½∞¡δÑ ßτÑΓτ¿¬¿ ¬«½-óá ß««Γó ß¿¼ó«½«ó}
  str:string;{óó«ñ¿¼á∩ ßΓ᫬á}
function GetMaxNumber(i1,i2,i3:integer):integer;
var
  iRes:integer;{αѺπ½∞ΓáΓ - ¡«¼Ñα ¼á¬ß¿¼á½∞¡«ú« ¿º τ¿ßѽ}
begin
  iRes:=1;{¿¡¿µ¿á½¿ºáµ¿∩ αѺπ½∞ΓáΓá}
  if i2>i1 then{Ñß½¿ óΓ«α«Ñ τ¿ß½« í«½∞ΦÑ}
  begin
    iRes:=2;{αѺπ½∞ΓáΓ ¡«¼Ñα 2}
    if i3>i2 then{Ñß½¿ 3 í«½∞ΦÑ óΓ«α«ú«}
      iRes:=3;{αѺπ½∞ΓáΓ ¡«¼Ñα 3}
  end
  else if i3>i1 then{¿¡áτÑ Ñß½¿ ΓαÑΓ∞Ñ τ¿ß½« í«½∞ΦÑ}
    iRes:=3;{αѺπ½∞ΓáΓ ¡«¼Ñα 3}
  GetMaxNumber:=iRes;{ó«ºóαáΘáѼ αѺπ½∞ΓáΓ}
end;
begin
{¿¡¿µ¿á½¿ºáµ¿∩ ßτÑΓτ¿¬«ó}
  iLatCount:=0;
  iRusCount:=0;
  iNumCount:=0;
  writeln('Å«ªá½π⌐ßΓá óóÑñ¿ΓÑ ßΓ᫬π:');
  readln(str);{óó«ñ ßΓ᫬¿}
  len:=length(str);{πº¡áѼ ñ½¿¡π ßΓ᫬¿}
  for i:=1 to len do{ñ½∩ ¬áªñ«ú« ß¿¼ó«½á}
    if str[i] in sNum then{Ñß½¿ i δ⌐ ß¿¼ó«½ µ¿Σαá}
      inc(iNumCount){πóѽ¿τÑ¡¿Ñ ßτÑΓτ¿¬á}
    else if str[i] in sRus then{Ñß½¿ απß߬á∩ íπ¬óá}
      inc(iRusCount){πóѽ¿τÑ¡¿Ñ ßτÑΓτ¿¬á}
    else if UpCase(str[i]) in sLat then{Ñß½¿ ½áΓ¿¡ß¬á∩}
      inc(iLatCount);{πóѽ¿τÑ¡¿Ñ ßτÑΓτ¿¬á}
  i:=GetMaxNumber(iNumCount,iLatCount,iRusCount);{πº¡áѼ ¡«¼Ñα ¼á¬ß¿¼π¼á}
  write('ÄΓóÑΓ: í«½∞ΦÑ ');{»ÑτáΓ∞ »Ñαó«⌐ τáßΓ¿ ß««íΘÑ¡¿∩}
  if i=1 then
    writeln('µ¿Σα')
  else if i=2 then
    writeln('½áΓ¿¡ß¬¿σ íπ¬ó')
  else
    writeln('απß߬¿σ íπ¬ó');
  readln;{ªñѼ óó«ñá}
end.

Автор: IceTi 22.4.2007, 15:36
Спасибо, но что то я не понял как раскодировать русский шрифт =\
Да и кстати задачка работает?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)