Помощь - Поиск - Пользователи - Календарь
Полная версия: Кто знает..
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
anniie
Как все буквы в строке сделать маленькими?
SKVOZNJAK
Преобразовать в числа и отнять/добавить константу, которую можно найти опытным путём  for q:=1 to 20 do writeln(ord(readkey));
Прибавлять нужно только к Большим буквам! Для английских 32, для русских ASCII 80, ДЛЯ БУКВЫ Ё другая константа! Затем числа конвертировать в буквы и записать в строку.
anniie
Я не въехжаю чего куда писать..Если кто может, то допишите плз эту программу..Она распределяет слова в строке по алфавиту и колву букв,но чтоб прально распределялось по алфавиту нада чтоб все буквы маленькими были..как это сделать?Допишите плз!
Код
uses crt;
type arr=array[1..100]of string[80];

procedure enter(var s:string);
         begin write('Vvedite stroky:');readln(s) end;

procedure words(s:string;var y:arr;var k:integer);
         var i:integer;slovo:string;
         begin i:=1;k:=0;
         while i<=length(s) do
         begin slovo:='';
         while (s[i] in ['A'..'Z'])or(s[i] in ['a'..'z']) do
         begin slovo:=slovo+s[i];i:=i+1;end;
         k:=k+1;y[k]:=slovo;
         while not((s[i] in ['A'..'Z'])or(s[i] in ['a'..'z']))do
         i:=i+1;
         end;
         end;

procedure sort(x:arr;nx:integer;var y:arr);
         var i,j:integer;tmp:string;
             begin y:=x;
         for i:=1 to nx-1 do
                   for j:=i+1 to nx do
                   if length(y[i])>length(y[j]) then
   begin tmp:=y[i];y[i]:=y[j];y[j]:=tmp;end;
   end;

procedure sort2(x:arr;nx:integer;var y:arr);
         var i,j:integer;tmp:string;
             begin y:=x;
         for i:=1 to nx-1 do
                   for j:=i+1 to nx do
                   if y[i]>y[j] then
    begin tmp:=y[i];y[i]:=y[j];y[j]:=tmp;end;
    end;
procedure slova(x:arr;nx:integer);
         var i:integer;
         begin for i:=1 to nx do
         write(x[i],#32) end;

var my:string;n:integer;word,srtwrd:arr;
   begin textcolor(4);
   repeat
   clrscr;writeln('1-Vvod,2-Vivod,3-Slova,4-Sort,Esc-Quit');
   case readkey of
   '1':enter(my);
   '2':writeln(my);
   '3':begin words(my,word,n);
             slova(word,n) end;
   '4':begin    sort(word,n,srtwrd);
  slova(srtwrd,n) end;
   '5':begin sort2(word,n,srtwrd);
   slova(srtwrd,n) end;
   #27:exit;end;
   readkey  until false;
   end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.