Strict Standards: Declaration of action_plugin_importoldchangelog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/lib/plugins/importoldchangelog/action.php on line 8 Strict Standards: Declaration of action_plugin_importoldindex::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/lib/plugins/importoldindex/action.php on line 0 Deprecated: Function split() is deprecated in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 154 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 456 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 456 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 453 Strict Standards: Only variables should be passed by reference in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/doku.php on line 71 spravne_uzavorkovani_-_vice_druhu_zavorek [Programování]
 
 
const max = 100;
 
type
  Zasobnik = record
    data:array [1..max] of char;
    indexVrcholu:integer;
  end;
 
var
  i: integer;
  z: zasobnik;
  s: string;
 
function pop (var Z: Zasobnik): char;
begin
  pop := z.data[z.indexVrcholu];
  z.indexVrcholu := z.indexVrcholu - 1;
end;
 
procedure push (var z: Zasobnik; var co: char);
begin
  z.indexVrcholu := z.indexVrcholu + 1;
  z.data[z.indexVrcholu] := co;
end;
 
function odpovidajiSi (oteviraci, uzaviraci: char):boolean;
begin
  odpovidajiSi := false;
  if ( ((oteviraci = '(') and (uzaviraci =')')) or
       ((oteviraci = '[') and (uzaviraci =']')) or
       ((oteviraci = '{') and (uzaviraci ='}')) )
    then odpovidajiSi := true;
end;
 
function oteviraci (zavorka: char): boolean;
begin
  oteviraci := false;
  if ((zavorka='(') or (zavorka='[') or (zavorka='{')) then
    oteviraci := true;
end;
 
function uzaviraci (zavorka: char): boolean;
begin
  uzaviraci := false;
  if ((zavorka = ')') or (zavorka = ']') or (zavorka = '}')) then
    uzaviraci := true;
end;
 
function prazdny (z: zasobnik): boolean;
begin
  prazdny := false;
  if z.indexVrcholu = 0 then
    prazdny := true;
end;
 
function uzavorkovani (var s: string): boolean;
begin
  z.indexVrcholu := 0;
  for i := 1 to length(s) do begin
    if (oteviraci(s[i])) then
      push (z,s[i])
    else if (uzaviraci(s[i])) then begin
      if prazdny(z) or (not odpovidajiSi(pop(z),s[i])) then begin
        uzavorkovani := false;
        exit;
      end;
    end;
  end;
  uzavorkovani := prazdny(z);
end;
 
begin
  write ('Napiste retezec slozeny za samych zavorek: ');
  readln(s);
  write ('Retezec je spravne uzavorkovany ',uzavorkovani(s));
  readln;
end.
 
spravne_uzavorkovani_-_vice_druhu_zavorek.txt · Poslední úprava: 2008/01/07 21:10 autor: rimsky
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
Strict Standards: Only variables should be passed by reference in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/doku.php on line 79