17.05.2015 Views

Pascal News

Pascal News

Pascal News

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

121<br />

122<br />

123<br />

124<br />

125<br />

126<br />

127<br />

128<br />

129<br />

130<br />

131<br />

132<br />

133<br />

134<br />

135<br />

136<br />

137<br />

138<br />

139<br />

140<br />

141<br />

142<br />

143<br />

144<br />

145<br />

146<br />

147<br />

148<br />

149<br />

150<br />

151<br />

152<br />

153<br />

154<br />

155<br />

156<br />

157<br />

158<br />

159<br />

160<br />

161<br />

162<br />

163<br />

164<br />

165<br />

166<br />

167<br />

168<br />

169<br />

170<br />

111<br />

172<br />

113<br />

174<br />

115<br />

116<br />

177<br />

118<br />

179<br />

180<br />

get~lnteger := ans<br />

END {GET_INTEGER}:<br />

PROCEDURE add_one(nu~_left: integer: VAR ~h: alphabet: VAR tr:<br />

treept) :<br />

PROCEDURE start(VAR t: treept):<br />

BEGIN<br />

IF t = NIL THEN<br />

BEGIN<br />

new(t): t"~ fruit := false:<br />

to,. right := NIL<br />

END<br />

END (STARTt,<br />

BEGIN (ADO_ONE)<br />

depth := depth t 1:<br />

IF depth > max depth<br />

BEGIN<br />

wrlteln(tty,<br />

THEN<br />

t~,.<br />

left := NIL;<br />

'Your file is not compatible with this programS'G'),<br />

GOTO 13<br />

END:<br />

IF num_left = 0<br />

THEN BEGIN tr·,. fruit := true; tr·,. ch := kh END<br />

ELSE<br />

IF get_bit = 0<br />

THEN<br />

BEGIN<br />

start(tr·,. left),<br />

add_one(num_left - 1, kh, tr·,. lett)<br />

END<br />

ELSE<br />

BEGIN<br />

start{tr·,. rlqht)'<br />

add_one(num_left -<br />

END,<br />

depth := depth - 1<br />

END UDD-ONE};<br />

BEGIN (FILL_TREE)<br />

save_tree := branch;<br />

FOR 1 := mlnchar TO 127 DO<br />

branch := save_tree<br />

END (FILL_TREE),<br />

PROCEDURE translate:<br />

PROCEDURE convert(t: treept):<br />

BEGIN<br />

IF to,. fruit<br />

ELSE<br />

THEN<br />

1, kh, tr",. rlqht)<br />

add_one(qet_inteqer, I, branch)'<br />

write(out_flle, chr(t·, ch»<br />

181<br />

182<br />

183<br />

184<br />

1115<br />

1116<br />

187<br />

188<br />

189<br />

190<br />

191<br />

192<br />

193<br />

194<br />

195<br />

196<br />

197<br />

198<br />

199<br />

U' done<br />

THEN ~rlteln(tty, 'WarningS Character mlsmatchS"G')<br />

ELSE<br />

IF get_bit = 0 THEN convert(t·. left)<br />

ELSE convert(t·. right)<br />

END (CON VERTI:<br />

BEGIN (TRANSLATE)<br />

re~rlte(out_flleJ:<br />

END (TRANSLATE):<br />

FlEGIIl (RECALL}<br />

wrtteln(tty,<br />

'version :I<br />

wrlteln(tty,<br />

wrlteln(tty,<br />

END (RECALL}.<br />

WHILE NOT done DO<br />

convert(branch)<br />

of Recall (Not co~patable with version I)S'):<br />

'In1tlallzing,'l; Init: 1epth:= 0; flll_tree; ~<br />

'RecalUnq.'l; tranSlate; 13: ~<br />

VI<br />

N<br />

""<br />

N<br />

--cD<br />

00<br />

,. -u<br />

'" m

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!