Есть код программы, которая выводит

1) Слова состоящие только из латинских гласных букв(a,i,e,u,o);
2) Слова состоящие только из латинских согласных букв.

Нужно преобразовать код так, чтобы программа выводила

1) Слова, в которых первая буква присутствует только один раз;
2) Слова, в которых присутствуют только заглавные латинские буквы.

Я написал код так, что операция обработки текста выполняется с помощью точки, которая ставится в конце строки. Нужно сделать так, чтобы при вводе точка в конце текста не запрашивалась. Сколько не пробовал её убрать - не удалось. Лимит символов - 200. После окончания ввода программа выполняет необходимые операции только после нажатия на "Enter". Вводтятся только заглавные/строчные латинские буквы и пробелы.

program stranalyze;
uses crt;
var
 str,str1,str2:string;
 Arr,Arr1,Arr2:array [1..30] of string;
 ch,ch1:char;
 i,j,k,m,y:integer;
 osh,osh1,osh2:boolean;
begin
 clrscr;

{---Ввод(начало)---}
 writeln('Введите предложение. Между словами минимум один пробел');
 writeln('В конце предложения точка.');
 read(str);
 osh:=false;
 k:=0;
 if str[length(str)]<>'.' then
  begin
   osh:=True;
  end;
{---Ввод(конец)---}

{---Удаление_лишних_пробелов(начало)---}
for i:=1 to Length(str) do
 begin
  if ((str[i]=' ') and (str[i+1]=' ')) or ((str[i]=' ') and (str[i+1]='.')) then
   begin
    Delete(str,i,1);
    i:=1;
   end;
 end;
{---Удаление_лишних_пробелов(конец)---}

{---Деление_строки_на_слова(начало)---}
 k:=0;
 str1:=str;
 m:=0;
 j:=1;
 for i:=1 to Length(str) do
  begin
   if (str[i]=' ') or (str[i]='.') then
    begin
     str2:=str1;
     delete(str2,i,length(str2)-i+1);
     delete(str2,1,m);
     arr[j]:=str2;
     j:=j+1;
     k:=k+1;
     m:=i;
    end;
  end;
{---Деление_строки_на_слова(конец)---}

{---Проверка_правильности_ввода(начало)---}
 m:=1;
 j:=1;
 y:=1;
 while m<=k do
  begin
   osh1:=true;
   str1:=arr[m];
   for i:=1 to Length(str1) do
    begin
     ch1:=str1[i];
     if not((ch1='a') or(ch1='A') or(ch1='i') or
     (ch1='I') or (ch1='o') or (ch1='O') or
     (ch1='u') or (ch1='U') or
     (ch1='e') or (ch1='E'))  then osh1:=false;
    end;
   if osh1 then
    begin
     arr1[j]:=str1;
     inc(j);
    end
    else
     begin
      osh2:=true;
      for i:=1 to Length(str1) do
       begin
        ch1:=str1[i];
        if ((ch1='a') or(ch1='A') or(ch1='i') or
        (ch1='I') or (ch1='o') or (ch1='O') or
        (ch1='U') or (ch1='u') or
        (ch1='e') or (ch1='E'))  then osh2:=false;
       end;
      if osh2 then
       arr2[y]:=str1;
       inc(y);
     end;
    m:=m+1;
   end;
{---Проверка_правильности_ввода(конец)---}

{---Вывод(начало)---}
 m:=1;
 if not osh then
  begin
   writeln;
   writeln('Слова состоящие только из латинских гласных букв(a,i,e,u,o)');
   writeln;
   while (m<=j)  do
    begin
     writeln(arr1[m],' ');
     m:=m+1;
    end;
   m:=1;
   writeln('Слова состоящие только из латинских согласных букв');
   writeln;
   while (m<=y)  do
    begin
     writeln(arr2[m],' ');
     m:=m+1;
    end;
  end
  else writeln('Неверный ввод');
{---Вывод(конец)---}
 readln;
 readln;
end.


Если кто-то сможет помочь, буду очень благодарен.