Advertisement
mariosimao

biblioteca.pas

Nov 23rd, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.56 KB | None | 0 0
  1. unit biblioteca;
  2.  
  3. interface
  4.  
  5.     uses crt;
  6.  
  7.     function escolhaChar (a,b:char; var e:boolean): boolean;
  8.     function escolhaInt (x,y:integer): boolean;
  9.     function escolhaReal (x,y:real; var e:boolean): boolean;
  10.     function recebeInt (var e:boolean): integer;
  11.     function recebeReal (var e:boolean): real;
  12.  
  13.     procedure abrirArq (var arq:file);
  14.     procedure repeatReciveInt (var x:integer);
  15.     procedure repeatReciveStr (var a:string);
  16.  
  17. implementation
  18.  
  19. {Repeat ReciveInt until there is no erro}
  20.  
  21.     procedure repeatReciveStr (var a:string);
  22.  
  23.     var
  24.         error: boolean;
  25.  
  26.     begin
  27.  
  28.         repeat
  29.         begin
  30.            
  31.             {$I-}
  32.             readln(a);
  33.             {$I+}
  34.  
  35.             error:= false;
  36.  
  37.             if (ioresult <> 0) then
  38.             begin
  39.                 error:= true;
  40.                 writeln('Resposta Inválida!');
  41.                 write('Digite Novamente: ');
  42.             end;
  43.         end;
  44.         until error = false;
  45.  
  46.         writeln
  47.  
  48.     end;
  49.  
  50. {Repete RecebeInt até não dar erro}
  51.  
  52.     procedure repeatReciveInt (var x:integer);
  53.  
  54.     var
  55.         error: boolean;    
  56.  
  57.     begin
  58.  
  59.         repeat
  60.         begin
  61.             {$I-}
  62.             read(x);
  63.             {$I+}
  64.  
  65.             error:= false;
  66.  
  67.             if (ioresult <> 0) then
  68.             begin
  69.                 error:= true;
  70.                 writeln('Resposta Inválida!');
  71.                 write('Digite Novamente: ');
  72.             end;
  73.         end;
  74.         until error = false;
  75.  
  76.         writeln;
  77.  
  78.     end;
  79.  
  80. {Abrir/Criar Arquivo}
  81.  
  82.     procedure abrirArq (var arq:file);
  83.  
  84.     begin
  85.         {$I-}
  86.         reset(arq);
  87.         {$I+}
  88.         if IOResult = 2 then
  89.         begin
  90.             rewrite(arq);
  91.         end;
  92.         seek(arq,filesize(arq));
  93.         writeln(filepos(arq));
  94.     end;
  95.  
  96. (* Escolha Char *)
  97.     function escolhaChar(a,b:char; var e:boolean): boolean;
  98.     var
  99.         r: char;
  100.         erro1,erro2: boolean;
  101.     begin
  102.    
  103.         {$I-}
  104.         readln(r);
  105.         {$I+}
  106.  
  107.         if (ioresult <> 0) then erro1:= true;
  108.         if (r <> a) and (r <> b) then erro2:= true;
  109.  
  110.         if (erro1 = true) or (erro2 = true) then
  111.         begin
  112.             writeln('Resposta Inválida');
  113.         end;
  114.  
  115.         if (erro1 = true) or (erro2 = true) then e:= true;
  116.         if (erro1 = false) and (erro2 = false) then e:= false;
  117.  
  118.         if (r = a) then escolhaChar:= true;
  119.         if (r = b) then escolhaChar:= false;
  120.  
  121.     end;
  122.  
  123. (* Escolha Integer *)
  124.     function escolhaInt(x,y: integer): boolean;
  125.     var
  126.         r: integer;
  127.         erro1,erro2: boolean;
  128.     begin
  129.  
  130.         {$I-}
  131.         readln(r);
  132.         {$I+}
  133.  
  134.         if (ioresult <> 0) then erro1:= true;
  135.         if (r <> x) or (r <> y) then erro2:= true;
  136.  
  137.         if (erro1 = true) or (erro2 = true) then
  138.         begin
  139.             writeln('Resposta Inválida');
  140.         end;
  141.  
  142.         if (r = x) then escolhaInt:= true;
  143.         if (r = y) then escolhaInt:= false;
  144.  
  145.     end;
  146.  
  147. {Escolha Real}
  148.     function escolhaReal (x,y: real; var e:boolean): boolean;
  149.     var
  150.         r: real;
  151.         erro1,erro2:boolean;
  152.     begin
  153.        
  154.         {$I-}
  155.         readln(r);
  156.         {$I+}
  157.  
  158.       if (ioresult <> 0) then erro1:= true;
  159.       if (r <> x) and (r <> y) then erro2:= true;
  160.  
  161.       if (erro1 = true) or (erro2 = true) then
  162.       begin
  163.          writeln('Resposta Inválida');
  164.       end;
  165.  
  166.       if (erro1 = true) or (erro2 = true) then e:= true;
  167.       if (erro1 = false) and (erro2 = false) then e:= false;
  168.  
  169.       if (r = x) then escolhaReal:= true;
  170.       if (r = y) then escolhaReal:= false;
  171.  
  172.     end;
  173.  
  174. {Erro ao digitar em campos INTEGER}
  175.     function recebeInt(var e:boolean): integer;
  176.     var
  177.         r: integer;
  178.     begin
  179.         {$I-}
  180.         readln(r);
  181.         {$I+}
  182.  
  183.         e:= false;
  184.  
  185.         if (ioresult <> 0) then
  186.         begin
  187.             e:= true;
  188.             writeln('Resposta Inválida');
  189.         end;
  190.  
  191.         recebeInt:= r;
  192.     end;
  193.  
  194. {Erros ao digitar em campos REAL}
  195.     function recebeReal(var e:boolean): real;
  196.     var
  197.         r: real;
  198.     begin
  199.         {$I-}
  200.         readln(r);
  201.         {$I+}
  202.  
  203.         e:= false;
  204.  
  205.         if (ioresult <> 0) then
  206.         begin
  207.             e:= true;
  208.             writeln('Resposta Inválida');
  209.         end;
  210.  
  211.         recebeReal:= r;
  212.     end;
  213.  
  214. begin
  215.  
  216. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement