Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses
- crt;
- const
- x1 = 3;
- y1 = 3;
- x2 = 78;
- y2 = 23;
- err1 = 35;
- err2 = 18;
- backcolor = lightgray;
- bordercolor = black;
- procedure windowframe(x, y, m, n, backcolor, bordercolor: byte);
- var
- i, j: byte;
- begin
- window(x - 2, y - 2, x + m - 1, y + n - 1);
- clrscr;
- textbackground(bordercolor);
- clrscr;
- window(x - 1, y - 1, x + m - 2, y + n - 2);
- textbackground(backcolor);
- clrscr;
- textcolor(black);
- gotoxy(x - 1, y - 1);
- window(x - 1, y - 1, x - 1, y - 1);
- write(#201);
- for i := x to x + m - 3 do
- begin
- window(i, y - 1, i, y - 1);
- gotoxy(i, y - 1);
- write(#205);
- end;
- for j := y to y + n - 3 do
- begin
- gotoxy(x - 1, j);
- window(x - 1, j, x - 1, j);
- write(#186);
- window(x + m - 2, j, x + m - 2, j);
- gotoxy(x + m - 2, j);
- write(#186);
- end;
- for i := x to x + m - 2 do
- begin
- window(i, y + n - 2, i, y + n - 2);
- gotoxy(i, y + n - 2);
- write(#205);
- end;
- gotoxy(x - 1, y + n - 2);
- window(x - 1, y + n - 2, x - 1, y + n - 2);
- write(#200);
- gotoxy(x + m - 2, y - 1);
- window(x + m - 2, y - 1, x + m - 2, y - 1);
- write(#187);
- gotoxy(x + m - 2, y + n - 2);
- window(x + m - 2, y + n - 2, x + m - 2, y + n - 2);
- write(#188);
- window(x, y, x + m - 3, y + n - 3);
- gotoxy(1, 1);
- end;
- procedure Errorwindow(x1, y1: integer);
- begin
- windowframe(x1, y1, 11, 5, yellow, backcolor);
- textcolor(red);
- //ENDFRAME
- write(' !ERROR! ');
- write('Press any');
- write(' key!');
- readkey();
- window(x1, y1, x1 + 10, y1 + 5);
- textbackground(backcolor);
- clrscr;
- Textcolor(black);
- end;
- type
- shrtstr = string[76];
- procedure DeleteSpaces(var str: shrtstr);//preobrazovanie strok ЏҐаҐ¤ str ЇЁиҐ¬ var. ‚ н⮬ б«гз Ґ
- //ў 室Ґ а Ў®вл Їа®жҐ¤гал бва®Є Ўг¤Ґв ЇаҐ®Ўа §®ўлў вмбп.
- begin
- //DeleteSpaces := ''; //„Ґбпвм Ё§ ¤ҐбпвЁ, нв® ¤Ґбпвм Ё§ ¤ҐбпвЁ! Ќг § 祬 ¤ў а § ЇҐаҐ¬Ґ®© ЇаЁбў Ёў вм § 票Ґ?
- //DeleteSpaces := str;
- while (str[1] = ' ') do {udalenie probelov vperedi}
- delete(str, 1, 1);
- while str[length(str)] = ' ' do {udalenie probelov v konce}
- delete(str, length(str), 1);
- while (pos(' ', str)) <> 0 do //udalenie dvoinih probelov
- delete(str, pos(' ', str), 1); // IRINA IS AMAZING D:
- {i:=1;
- while (str[i]=' ')and(str[i+1]=' ')and(i<length(str)-1)do
- if (str[i]=' ')and(str[i+1]=' ') then
- delete(str,i,1)
- else
- inc(i); }
- end;
- var
- s: array[1..10] of shrtstr;
- st, subst: shrtstr;
- j, i, m, v, d, k, counter, h: integer;
- ch: char;
- n, q: array[1..255] of byte;
- finish: boolean;
- begin
- repeat
- finish := false;
- windowframe(x1, y1, x2, y2, backcolor, black);
- writeln('Type some text my dear friend.');
- writeln('If you finished typing text press Enter twice');
- writeln('I know that it is illogical, but i am a girl, so who cares?');
- writeln('Max num of strings = 10, max length=76.');
- writeln('Input:');
- i := 0;
- repeat
- inc(i); //i := i + 1; ‚¬Ґбв® нв®Ј® Єг¤ а жЁ® «мҐҐ ЁбЇ®«м§®ў вм Їа®жҐ¤гаг inc(i). Ћ 㢥«ЁзЁў Ґв § 票Ґ ЇҐаҐ¬Ґ®© i 1.
- Readln(s[i]);
- until (s[i] = '') or (i = 10);
- if i < 10 then
- dec(i);
- repeat
- windowframe(x1, y1, x2, y2, backcolor, bordercolor);
- writeln('Align width - 1. Left - 2. Right - 3. Centre - 4.');
- {$R-}{$I-}readln(v);{$R+}{$I+}
- //d := Ioresult();
- if (v < 1) or (v > 4) or (d <> 0) then
- Errorwindow(err1, err2);
- until (v > 0) and (v < 5) and (d = 0);
- windowframe(x1, y1, x2, y2, backcolor, bordercolor);
- writeln('Input');
- for j := 1 to i do
- writeln(s[j]);
- writeln('Output');
- for j := 1 to i do
- begin
- st := s[j];
- DeleteSpaces(st);
- s[j] := st;
- //st := ''; „Ґбпвм Ё§ ¤ҐбпвЁ, ѓ®бЇ®¤Ё, нв® ¤Ґбпвм Ё§ ¤ҐбпвЁ.
- //‘Є®«мЄ® Їа®ЎҐ«®ў ў бва®ЄҐ.
- {for m := 1 to length(st) do
- if st[m] = ' ' then
- n[m] := m
- else
- n[m] := 0; // џ •‡ ‡Ђ—…Њ ‚‘… ‚Ћ’ ќ’Ћ!!!
- for m := 1 to length(st) do
- if n[m] <> 0 then
- q[j] := q[j] + 1; opredelenie kol-va probelov}
- end;
- // ALIGN DIS SHIT TO THE LEFT SIDE
- //Ќг вгв ў®®ЎйҐ ЁзҐЈ® Ґ ¤®Ў® ¤Ґ« вм, Ё¬е®, ⥪бв б ¬ ўла ўЁў Ґвбп Ї® «Ґў®¬г.
- //ђ §ўҐ зв® § ЄЁ ЇҐаҐ®б а ббв ўЁвм. Ќ® ¬Ґ «Ґм ))00
- case v of
- 2:
- begin
- for j := 1 to i do
- for k := 1 to 76 - length(s[j]) do
- s[j] := s[j] + ' ';
- end;
- //ALIGN WIDTH
- 1:
- begin
- for j := 1 to i do
- begin
- //k := 76 - length(s[j]); //kol-vo dopolnitelnih probelov
- //st := ''; 10/10
- st := s[j];
- counter := 0;
- for h := 1 to length(st) do
- if st[h] = ' ' then
- inc(counter);
- subst := '';
- if counter > 0 then
- begin
- for h := 1 to (76 - length(st)) div counter do
- subst := subst + ' ';
- m := 1;
- while m < length(st) do
- begin
- if (st[m] = ' ') then
- begin
- insert(subst, st, m);
- m := m + length(subst);
- end;
- inc(m);
- end;
- m := length(st);
- h := 1;
- while (m < 76) do
- begin
- if (st[h] = ' ') and not (st[h + 1] = ' ') then
- begin
- inc(m);
- insert(' ', st, h);
- end;
- inc(h);
- end;
- end
- else
- for k := 1 to 76 - length(st) do
- st := st + ' ';
- s[j] := st;
- end;
- end;
- //Right
- 3:
- for j := 1 to i do
- for h := 1 to (76 - length(s[j])) do
- S[j] := ' ' + s[j];
- //Centre
- 4:
- for j := 1 to i do
- begin
- //st := '';
- st := s[j];
- for d := 1 to ((76 - length(s[j])) div 2) do
- begin
- Insert(' ', st, 1); //Ќ…‹њ‡џ ЏђЋ‘’Ћ ’ЂЉ ‚‡џ’њ € ‡ЂЃ€’њ ЌЂ ‹ЂЃ“ Џђ€Ќ–…‘‘›
- Insert(' ', st, length(st) + 1); //One doesn't simply to give a fuck about princes's lab.
- end;
- if (76 - length(st)) mod 2 = 1 then
- Insert(' ', st, 1);
- s[j] := st;
- end;
- end;
- for j := 1 to i do
- begin
- if j mod 2 = 0 then
- begin
- textcolor(lightblue);
- textbackground(lightgray);
- end
- else
- begin
- textcolor(blue);
- textbackground(lightcyan);
- end;
- write(s[j]);
- end;
- readkey;
- windowframe(x1, y1, x2, y2, backcolor, bordercolor);
- clrscr;
- windowframe(28, 8, 30, 7, backcolor, backcolor);
- write('Do you want to repeat?');
- window(38, 11, 50, 11);
- gotoxy(38, 11);
- write('Yes/No?');
- gotoxy(37, 12);
- window(37, 12, 42, 12);
- repeat
- ch := readkey;
- ch := upcase(ch);
- until (ch = 'Y') or (ch = 'N') or (ch = '’') or (ch = 'Ќ') or (ch = 'в') or (ch = '');
- if (ch = 'N') or (ch = '’') or (ch = 'в') then
- finish := true;
- until finish;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement