Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program Laba3_2;
- uses
- System.SysUtils;
- {$APPTYPE CONSOLE}
- Const
- nMin = 2;
- nMax = 10;
- lengthMin = 1;
- lengthMax = 40;
- Type
- Variety = set of Char;
- TArr = array[1..nmax] of String[lengthMax];
- TArrOfVariety = array[1..nmax] of Variety;
- Procedure Condition();
- Begin
- Writeln('This program converts a string according to the rule: ');
- Writeln('1)If the string length > N, then the program will discard the first characters.');
- Writeln('2)If the string length < N, then the program will add "."');
- End;
- Function ChoiseInput(): Char;
- Var
- Input: Char;
- IsCorrect: Boolean;
- Begin
- Repeat
- Readln(Input);
- Input := UpCase(Input);
- if ((Input = 'Y') or (Input = 'N')) then
- IsCorrect := True
- else
- Begin
- IsCorrect := False;
- Writeln('Incorrect input. Enter Y(Yes) or N(No): ');
- End;
- Until IsCorrect;
- ChoiseInput := Input;
- End;
- Function CheckInput(): Integer;
- Var
- N: Integer;
- IsCorrect: Boolean;
- Begin
- IsCorrect := False;
- Repeat
- Try
- Readln(N);
- if ((N >= nMin) and (N <= nMax)) then
- IsCorrect := True
- else
- Writeln('Enter number from interval [',nMin,'...',nMax,']: ');
- Except
- Writeln('Check entered data. Enter number from interval [',nMin,'...',nMax,']: ');
- End;
- Until IsCorrect;
- CheckInput := N;
- End;
- Function CheckInputString(): String;
- Var
- IsCorrect: Boolean;
- Sentence: String;
- Begin
- Repeat
- Readln(Sentence);
- if ((Length(Sentence) >= lengthMin) and (Length(Sentence) <= lengthMax)) then
- IsCorrect := True
- else
- Begin
- Writeln('Enter string length from interval [',lengthMin,'...',lengthMax,']: ');
- IsCorrect := False;
- End;
- Until IsCorrect;
- CheckInputString := Sentence;
- End;
- Function InputNumFromConsole(): integer; //Ввод N с консоли
- Var
- n: integer;
- Begin
- Writeln('Введите количество строк: ');
- n := checkInput();
- InputNumFromConsole := n;
- End;
- Function InputFromConsole(n: integer): TArr;
- Var
- ArrOfString: TArr;
- i,j: integer;
- Begin
- Writeln('Введите количество строк: ');
- n := checkInput();
- For i := 1 to n do
- Begin
- Writeln('Введите ',i,' строку: ');
- ArrOfString[i] := checkInputString();
- End;
- InputFromConsole := ArrOfString;
- End;
- Var
- mass: array[1..nmax] of String[lengthMax];
- massOfVariety: array[1..nmax] of Variety;
- n: integer;
- i,j,k: byte;
- isAllString: boolean;
- Begin
- Writeln('Введите количество строк: ');
- n := checkInput();
- For i := 1 to n do
- Begin
- Writeln('Введите ',i,' строку: ');
- mass[i] := checkInputString();
- For j := 1 to length(mass[i]) do
- include(massOfVariety[i],mass[i,j]);
- End;
- Writeln('Исходный массив строк: ');
- for I := 1 to n do
- begin
- Write('[',i,']: ',mass[i]);
- Writeln;
- end;
- isAllString := false;
- i := 1;
- while ((i <= n) and (not isAllString)) do
- begin
- k:=0;
- for j:=1 to n do
- Begin
- if (massOfVariety[j] + massOfVariety[i] = massOfVariety[j]) then
- k:=k+1;
- End;
- if (k = n) then
- begin
- isAllString:=true;
- write('Множество, являющееся подмножеством всех множеств: ');
- for k:=1 to 255 do
- Begin
- if chr(k) in massOfVariety[i] then
- write(chr(k));
- End;
- writeln;
- writeln('Порядковый номер множества: ',i);
- end
- else
- i:=i+1;
- end;
- if (not IsAllString) then
- write('Такого множества нет');
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement