28/08/2016 11:27:15C:UserselainDocumentsAlgoritmosFilafila.pas
1: //ELAINE CECÍLIA GATTO
2: //27/08/2016
3:
4: program fila_exemplo;
5: uses wincrt, crt;
6:
7: const max=50;
8:
9: type
10: elem = char;
11: fila = record
12: inicio : integer;
13: final : integer;
14: memo: array[1..max] of elem;
15: end;
16:
17: var
18: f : fila;
19: a : elem;
20: opcao : integer;
21: b : boolean;
22: i : integer;
23:
24: //INICIALIZA A FILA
25: procedure Init(var f:fila);
26: begin
27: f.inicio := 1;
28: f.final := 1;
29: end;
30:
31: //VERIRICA SE A FILA ESTÁ VAZIA
32: function isEmpty(var f:fila):boolean;
33: begin
34: isEmpty := (f.inicio = f.final);
35: end;
36:
37: //VERIFICA SE A FILA ESTÁ CHEIA
38: function isFull(var f:fila):boolean;
39: begin
40: isFull := (f.final > max);
41: end;
42:
43: //IMPRIME A FILA
44: procedure imprimir(var f:fila);
45: begin
46: writeln( ' inicio da fila: ' , f.inicio );
47: writeln( ' final da fila: ' , f.final );
48: writeln( ' valores da fila: ', f.memo);
49: end;
50:
51: //INSERE NA FILA
52: procedure enQueue(var f:fila; x:elem);
53: begin
54: if not isFull(f) then
55: begin
56: f.memo[f.final]:=x;
57: f.final:=f.final+1;
58: end
59: else begin
60: writeln(' FILA VAZIA ');
61: end;
62: end;
63:
64: //REMOVE DA FILA
65: function deQueue(var f: fila):elem;
66: begin
1/3
28/08/2016 11:27:15C:UserselainDocumentsAlgoritmosFilafila.pas
67: if not isEmpty(f) then
68: begin
69: deQueue:= f.memo[f.inicio];
70: f.inicio := f.inicio + 1;
71: end
72: else begin
73: writeln(' FILA VAZIA ');
74: end;
75: end;
76:
77: //MENU
78: procedure menu;
79: begin
80:
81: repeat
82: writeln(' MENU ');
83: writeln (' 1. Remover na Fila');
84: writeln (' 2. Inserir da Fila ');
85: writeln (' 3. Verificar se a Fila esta Cheia');
86: writeln (' 4. Verificar se a Fila esta Vazia');
87: writeln (' 5. Iniciar a Fila ');
88: writeln (' 6. Imprimir a Fila ');
89: writeln (' 0. SAIR ');
90: writeln('');
91: write(' Digite a opcao desejada: ');
92: readln(opcao);
93: writeln('');
94:
95: Case opcao Of
96: 1 : Begin
97: a:=deQueue(f);
98: writeln(' Removendo: ', a);
99: writeln('');
100: end;
101:
102: 2 : Begin
103: write(' Inserindo: ');
104: readln(a);
105: enQueue(f,a);
106: writeln('');
107: end;
108:
109: 3 : Begin
110: b:=isFull(f);
111: if(b=true)then begin
112: writeln('Fila Cheia');
113: end
114: else begin
115: writeln(' Fila nao Cheia');
116: end;
117: writeln('');
118: end;
119:
120: 4 : Begin
121: b:=isEmpty(f);
122: if(b=true)then begin
123: writeln('Fila Vazia');
124: end
125: else begin
126: writeln(' Fila nao Vazia');
127: end;
128: writeln('');
129: end;
130:
131: 5 : Begin
132: init(f);
2/3
28/08/2016 11:27:15C:UserselainDocumentsAlgoritmosFilafila.pas
133: writeln('');
134: end;
135: 6 : Begin
136: imprimir(f);
137: writeln('');
138: end;
139: Else writeln (' invalido ');
140: End;
141: until opcao = 0;
142: writeln('');
143: end;
144:
145: //PROGRAMA PRINCIPAL
146: begin
147: menu();
148: end.
3/3

Fila de caracteres

  • 1.
    28/08/2016 11:27:15C:UserselainDocumentsAlgoritmosFilafila.pas 1: //ELAINECECÍLIA GATTO 2: //27/08/2016 3: 4: program fila_exemplo; 5: uses wincrt, crt; 6: 7: const max=50; 8: 9: type 10: elem = char; 11: fila = record 12: inicio : integer; 13: final : integer; 14: memo: array[1..max] of elem; 15: end; 16: 17: var 18: f : fila; 19: a : elem; 20: opcao : integer; 21: b : boolean; 22: i : integer; 23: 24: //INICIALIZA A FILA 25: procedure Init(var f:fila); 26: begin 27: f.inicio := 1; 28: f.final := 1; 29: end; 30: 31: //VERIRICA SE A FILA ESTÁ VAZIA 32: function isEmpty(var f:fila):boolean; 33: begin 34: isEmpty := (f.inicio = f.final); 35: end; 36: 37: //VERIFICA SE A FILA ESTÁ CHEIA 38: function isFull(var f:fila):boolean; 39: begin 40: isFull := (f.final > max); 41: end; 42: 43: //IMPRIME A FILA 44: procedure imprimir(var f:fila); 45: begin 46: writeln( ' inicio da fila: ' , f.inicio ); 47: writeln( ' final da fila: ' , f.final ); 48: writeln( ' valores da fila: ', f.memo); 49: end; 50: 51: //INSERE NA FILA 52: procedure enQueue(var f:fila; x:elem); 53: begin 54: if not isFull(f) then 55: begin 56: f.memo[f.final]:=x; 57: f.final:=f.final+1; 58: end 59: else begin 60: writeln(' FILA VAZIA '); 61: end; 62: end; 63: 64: //REMOVE DA FILA 65: function deQueue(var f: fila):elem; 66: begin 1/3
  • 2.
    28/08/2016 11:27:15C:UserselainDocumentsAlgoritmosFilafila.pas 67: ifnot isEmpty(f) then 68: begin 69: deQueue:= f.memo[f.inicio]; 70: f.inicio := f.inicio + 1; 71: end 72: else begin 73: writeln(' FILA VAZIA '); 74: end; 75: end; 76: 77: //MENU 78: procedure menu; 79: begin 80: 81: repeat 82: writeln(' MENU '); 83: writeln (' 1. Remover na Fila'); 84: writeln (' 2. Inserir da Fila '); 85: writeln (' 3. Verificar se a Fila esta Cheia'); 86: writeln (' 4. Verificar se a Fila esta Vazia'); 87: writeln (' 5. Iniciar a Fila '); 88: writeln (' 6. Imprimir a Fila '); 89: writeln (' 0. SAIR '); 90: writeln(''); 91: write(' Digite a opcao desejada: '); 92: readln(opcao); 93: writeln(''); 94: 95: Case opcao Of 96: 1 : Begin 97: a:=deQueue(f); 98: writeln(' Removendo: ', a); 99: writeln(''); 100: end; 101: 102: 2 : Begin 103: write(' Inserindo: '); 104: readln(a); 105: enQueue(f,a); 106: writeln(''); 107: end; 108: 109: 3 : Begin 110: b:=isFull(f); 111: if(b=true)then begin 112: writeln('Fila Cheia'); 113: end 114: else begin 115: writeln(' Fila nao Cheia'); 116: end; 117: writeln(''); 118: end; 119: 120: 4 : Begin 121: b:=isEmpty(f); 122: if(b=true)then begin 123: writeln('Fila Vazia'); 124: end 125: else begin 126: writeln(' Fila nao Vazia'); 127: end; 128: writeln(''); 129: end; 130: 131: 5 : Begin 132: init(f); 2/3
  • 3.
    28/08/2016 11:27:15C:UserselainDocumentsAlgoritmosFilafila.pas 133: writeln(''); 134:end; 135: 6 : Begin 136: imprimir(f); 137: writeln(''); 138: end; 139: Else writeln (' invalido '); 140: End; 141: until opcao = 0; 142: writeln(''); 143: end; 144: 145: //PROGRAMA PRINCIPAL 146: begin 147: menu(); 148: end. 3/3