Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var
- input, output: string;
- endpoint, size: integer;
- I, J, K, L: integer;
- dirright: boolean;
- arr: array of array of char;
- begin
- try
- readln(input);
- endpoint := pos('.', input);
- if (endpoint < 1) or (length(input) = 0) then
- writeln('Входная строка имела неверный формат.')
- else
- begin
- input := copy(input, 1, endpoint - 1);
- size := ceil(sqrt(length(input)));
- setlength(arr, size, size);
- for I := 0 to size - 1 do
- for J := 0 to size - 1 do
- begin
- if (I * size) + (J + 1) <= endpoint - 1 then
- arr[I, J] := input[(I * size) + (J + 1)]
- else
- arr[I, J] := '#';
- end;
- K := 0;
- L := 0;
- I := 0;
- J := 0;
- while (k < size) and (l < size) do
- begin
- output := output + arr[j, i];
- if not dirright then
- begin
- j := j + 1;
- if j > size - 1 then
- begin
- k := k + 1;
- dirright := true;
- i := k;
- j := l;
- end;
- end
- else
- begin
- i := i + 1;
- if i > size - 1 then
- begin
- l := l + 1;
- dirright := false;
- i := k;
- j := l;
- end;
- end
- end;
- writeln(output);
- read;
- end;
- except
- on E: Exception do
- Writeln(E.ClassName, ': ', E.Message);
- end;
Advertisement
Add Comment
Please, Sign In to add comment