Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ адо вести скобки если к примеру ()()() то вывести да в противном случае нет

Автор: trew 18.05.2008 4:10


program z1;
var s:string[100]; d,i:integer; yes:boolean;
begin
i:=1;
d:=LENGTH(S);
writeln('vvedite stroky iz skobok');
readln(s);
begin
while i>=LENGTH(S) DO
if (s[i]='(') and (s[i+1]=')') then
yes:=true;
if yes=true then
i:=i+2;
d:=d-2;
end;
if d<=0 then
writeln ('da')
else
writeln ('net');
end.


Автор: ammaximus 18.05.2008 4:57

 program z1;
var s:string[100];
i:integer;
yes:boolean;
begin
i:=1;
writeln('vvedite stroky iz skobok');
readln(s);
yes:=true;
while (i<=LENGTH(S)) and yes DO
begin
if (s[i]='(') and (s[i+1]=')')
then i:=i+2
else yes:=false;
end;
if yes then
writeln ('da')
else
writeln ('net');
readln
end.


Переменная d излишне
If yes=true then можно писать просто if yes then
Программа будет продолжать работу, пока не наткнется на сбой, в этом случае yes примет значение false и произойдет выход из цикла.