Иллюстрированный самоучитель по Turbo Pascal для начинающих

Решения (задачи 131-150)

Задача 146

{ проверяет, является ли введенная строка
шестнадцатеричным числом } var
st: string[20]; { строка }
i: integer; { номер проверяемого символа }
error: boolean; { в строке есть неверный символ } begin
writeln('Введите шестнадцатеричное число и нажмите Enter');
write(' › ');
readln(st);
{ преобразуем введенную строку к верхнему регистру for i: = l to Length(st)
do st[i]: = UpCase(st[i]);
error: = FALSE;
while (i <= Length(st)) and fnot error)
do if ((st[i] >= '0') and (st[i] <= '9')) or
((st[i] >= 'A') and (st[i] <= 'F')) then i: = i+l else error: = TRUE;
write('Строка '); if error
then write('не ');
writeln('является шестнадцатеричным числом. ');
readln; end. { проверяет, является ли введенная строка дробным числом без знака }
var
st: string[20]; { строка }
i: integer; { номер проверяемого символа }
err: boolean; { TRUE – строка не дробное число }
begin
writeln('Введите дробное число и нажмите Enter');
write(' › ');
readln(st);
i: = l;
err: = TRUE; { пусть строка – не дробное число }
if (st[i] >='l') and (st[i] <='9') then { первый символ цифра)
begin
{ за цифрой возможно следут еще цифры } while (st[i] >='l') and (st[i] <='9') and (KLength(st))
do i: = i+l;
{ за цифрами следует точка, но она не последний символ }
if ((st[i] = '.') and (i < Length(st))) then { точка } begin
{ за точкой должна быть хотя бы одна цифра }
if ((st[i] >='l') and (st[i] <='9')) then begin
while ((st[i] >='l') and (st[i] <='9') and (KLength(st))) do i: = i+l;
if i= Length(st) { последний символ – цифра} then err: = FALSE; { предположение
об ошибке ложно } end; end; end;
write('Строка '); if err
then write('не ');
writeln('является дробным числом.');
readln; end.

Задача 148

{ Программа преобразует введенное с клавиатуры двоичное восьмиразрядное число в десятичное } var
bin: string[8]; { изображение двоичного числа }
: integer; { десятичное число }
r: string[1]; { i-й разряд двоичного числа }
v: integer; (вес i-ro разряда двоичного числа }
i: integer; { номер разряда двоичного числа }
in
writeln('Введите восьмиразрядное двоичное число');
writeln('n нажмите Enter.');
write (' › ');
readln(bin);
if Length(bin) <> 8 then
writeln('Число должно быть восьмиразрядным.') else begin dec: = 0;
v: = 128; {вес старшего (8-го) разряда двоичного числа } for i: = l to 8 do begin
r: = bin[i]; { выделить i-й разряд } if г = 'I1 then
dec: = dec+v; t
v: = Round(v/2); { вычислить вес следующего разряда } end;
write('Двоичному числу ',bin,'); writeln(' соответствует десятичное ',dec); end;
writeln('Для завершения работы программы нажмите Enter.');
readln;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.