Дано: Найти самую длинную симметричную строку, читающуюся одинаково слева направо и справа налево, в заданном массиве строк.
Функция получает строку и возвращает ее длину, если она симметрична, или ноль — в противном случае.
![]() |
Блок-схема:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Программа:
Program pr_2_3;
Uses crt;
Type mas=Array[1..20] Of string ;
Var a, b:mas;
s:string;
i, n,dl:integer;
Procedure input(var a:mas;var n:integer);
var i:integer;
Begin
writeln(‘введите число строк’);
readln(n);
for i:=1 To n Do
Begin
writeln(‘введите ‘,i:3,’ строку’);
readln(a[i]);
End;
End;
Procedure output(Const b:mas;n:integer);
var i:integer;
begin
For i:=1 To n Do Writeln(b[i]);
End;
Function abr(Const a:string):integer;
var i:integer;
f:boolean;
s1,s2:string[1];
Begin
f:=true;
For i:=1 To trunc( length(a)/2) Do Begin
s1:=copy(a, i,1);
s2:=copy(a, length(a)-i+1,1);
If s1<>s2 Then Begin f:=false; break; End;;
End;
if f Then abr:=length(a) Else abr:=0;
End;
Procedure fabr(Const a:mas;n:integer;Var s:string;Var col:integer);
Var i, j:integer;
Begin
j:=1;
col:=abr(a[1]);
For i:=1 To n Do if abr(a[i])>col Then Begin j:=i; col:=abr(a[i]); End;;
If abr(a[j])>0 Then s:=a[j] Else s:=»;
End;
Begin
clrscr;
input(a, n);
writeln;
output(a, n);
writeln;
fabr(a, n,s, dl);
writeln(s,’ ‘,dl);
End.
Результат:
При вводе 3, Sasha, abba, sos :
Введите число строк
3
Введите 1 строку
Sasha
Введите 2 строку
Abba
Введите 3 строку
Sos
Sasha
Abba
Sos
Abba 4
ПРОСТЕЙШИЕ ГРАФИЧЕСКИЕ ПОСТРОЕНИЯ
Дано: Получить на экране:
Программа:
Program pr_4;
Uses graph, crt;
Var c1,c2,gr, gm, i:integer;
Procedure pp(x, y:integer;c:word);
Var i, j:integer;
Begin
For i:=x*10-10 To x*10 Do
For j:=y*10-10 To y*10 Do
putpixel(i, j,c);
End;
Procedure l(x, y,x1,y1,c:integer);
Var i, j:integer;
Begin
For i:=x To x1 Do
For j:=y To y1 Do
pp(i, j,c);
End;
Begin
Clrscr;
Writeln(‘введите № цвета фона’);
Readln(c1);
Writeln(‘введите № цвета рисунка’);
Readln(c2);
Gr:=0;
Gm:=0;
Initgraph(gr, gm,’d:_userssashaturbop~1bgi’);
Setbkcolor(c1);
Pp(10,15,c2);
Pp(11,14,c2);
L(12,13,23,13,c2);
L(14,12,19,12,c2);
L(14,11,25,11,c2);
L(15,10,19,10,c2);
Pp(24,14,c2);
For i:=1 To 6 Do
pp(i*2+10,15,c2);
For i:=1 To 7 Do
Pp(i*2+10-1,16,c2);
Pp(12,17,c2);
Pp(22,17,c2);
For i:=1 To 5 Do
pp(i*2+10+1,18,c2);
T:= readkey;
Repeat
delay(100);
pp(26+i,11,c1);
pp(26+1+i,11,c2);
i:=i+1; While keypressed Do
t:=readkey ;
Until t<>’ ‘;
T:=’q’;
Pp(26+i,11,c1);
Randomize;
For j:=1 To 100 Do Begin
Putpixel(260+i*10+random(40)-20,110+random(40)-20,random(16)); delay(10);
End;
Readln;
Closegraph;
End.
Результат: