Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project1;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- System.SysUtils;
- var Stroka,word:string;
- var i,g,j: Integer;
- var probel,probelMax: Integer;
- var choice:integer;
- label again, NewStr, Execute;
- procedure Proc1(Str:string; const slovo:string);
- var start,finish:integer;
- var check:string;
- var k,f:integer;
- var symbol:char;
- var probelcount:integer;
- label skip;
- begin
- start:=1;
- probelcount:=0;
- Writeln('Результат первой процедуры следующий:');
- for i := 1 to length(Str) do
- begin
- if Str[i]= ' ' then
- begin
- k:=1;
- finish:=i-1;
- if probelcount = 0 then SetLength(check,finish);
- if probelcount <> 0 then SetLength(check,finish-start+1);
- for g := start to finish do
- begin
- check[k]:=Str[g];
- inc(k);
- end;
- if check <> slovo then
- begin
- for k := 1 to Length(check)-1 do
- begin
- symbol:=check[k];
- for f:= k+1 to length(check) do
- begin
- if symbol = check then goto skip;
- end;
- end;
- Write(check,' ');
- end;
- skip:
- inc(probelcount);
- start:=i+1;
- end;
- end;
- Writeln;
- end;
- procedure Proc2(Str:string; const slovo:string);
- var start,finish:integer;
- var check:string;
- var k,f:integer;
- var symbol:char;
- var probelcount:integer;
- label skip;
- begin
- start:=1;
- probelcount:=0;
- Writeln('Результат второй процедуры следующий:');
- for i := 1 to length(Str) do
- begin
- if Str[i]= ' ' then
- begin
- k:=1;
- finish:=i-1;
- if probelcount = 0 then SetLength(check,finish);
- if probelcount <> 0 then SetLength(check,finish-start+1);
- for g := start to finish do
- begin
- check[k]:=Str[g];
- inc(k);
- end;
- if check <> slovo then
- begin
- for k := 1 to Length(check) do
- begin
- symbol:=check[k];
- if (symbol = 'а') or (symbol = 'у') or (symbol = 'о') or (symbol = 'ы') or (symbol = 'и') or (symbol = 'э') or (symbol = 'я') or (symbol = 'ю') or (symbol = 'ё') or (symbol = 'е') or (symbol = 'А') or (symbol = 'У') or (symbol = 'О') or (symbol = 'Ы') or (symbol = 'И') or (symbol = 'Э') or (symbol = 'Я') or (symbol = 'Ю') or (symbol = 'Ё') or (symbol = 'Е') then Write(symbol);
- end;
- Write(' ');
- end;
- skip:
- inc(probelcount);
- start:=i+1;
- end;
- end;
- Writeln;
- end;
- begin
- NewStr:
- Writeln('Введите строку, с которой будет работать программа:');
- Readln(Stroka);
- probelMax:=0;
- for i := 1 to length(Stroka) do
- begin
- if Stroka[i]=' ' then
- begin
- inc(probelMax);
- if Stroka[i] = Stroka[i+1] then
- begin
- Writeln('Вы ввели неверную строку (2 и более пробелов подряд). Попробуйте ещё раз:');
- goto NewStr;
- end;
- end;
- end;
- probel:=0;
- g:=-1;
- for i := 1 to length(Stroka) do
- begin
- if Stroka[i]=' ' then inc(probel);
- if probelMax-probel=0 then inc(g);
- end;
- SetLength(word,g);
- probel:=0;
- j:=1;
- for i := 1 to length(Stroka)-1 do
- begin
- if Stroka[i]=' ' then inc(probel);
- if ProbelMax-probel=0 then
- begin
- word[j]:=Stroka[i+1];
- inc(j);
- end;
- end;
- again:
- Writeln('Что вы хотите сделать с введённой вами строкой?');
- Writeln('1 - Запустить первую процедуру (Напечатать слова, отличные от последнего слова, если в них нет повторяющихся букв).');
- Writeln('2 - Запустить вторую процедуру (Напечатать слова, отличные от последнего слова, удаляя все согласные буквы).');
- Writeln('3 - Ввести новую строку.');
- Writeln('4 - Выйти из программы.');
- Readln(choice);
- if choice = 1 then
- begin
- Proc1(Stroka,word);
- goto again;
- end;
- if choice = 2 then
- begin
- Proc2(Stroka,word);
- goto again;
- end;
- if choice = 3 then goto NewStr;
- if choice = 4 then goto Execute;
- Execute:
- Writeln('Программа завершена!');
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement