Turbo Pascal для начинающих




Задача 150


{ Программа преобразует десятичное число
в число в указанной пользователем системе счисления (от 2-х до 10-ти) )
uses Crt;
о:integer; n:integer; г:integer;
s:string[16]
{ Основание системы счисления }
{ Исходное число }
{ Остаток от деления числа на основание
сист. счисл. } { Представление числа в заданной
сист. счисл. }
buf:string[1]; begin
ClrScr;
write('Введите целое число -> '); readln(n);
write('Введите основание системы счисления -> '); readln(o); s: = " ;
{ делим исходное число на основание системы счисления до тех пор, пока остаток от деления больше основания системы счисления. Остаток от деления на каждом шаге - очередная цифра. } repeat
r:=n mod о; n:=n div о; Str(r,buf); s:=buf+s; until(n<o)I Str(n,buf); s:=buf+s; writeln(s); readln; end.
( очередная цифра } { целая часть деления } ( преобразование цифры в строку}
( Программа преобразует десятичное число
в шестнадцатеричное } uses Crt;
var
n:integer; { Исходное число }
r:integer; { Остаток от деления числа на основание сист. счисл. }
s:string[16]; { Представление числа в заданной сист. счисл. }
buf:string[1] ; begin
ClrScr;
write('Введите целое число -> ');
readln(n);
s: = " ;
{ делим исходное число на основание системы
счисления (16) до тех пор, пока остаток от деления
больше основания системы счисления.
Остаток от деления на каждом шаге - очередная
цифра. }
write('Десятичному числу ' ,п) ; write (' соотвествует шестнадцатеричное ') ; repeat
r:=n mod 16; ( очередная цифра } n:=n div 16; { целая часть деления } if r<10
then buf:=chr(r+48) { chr(48) = '0', chr(49)='l'
и т.д. }
else buf:=chr(r+55); { chr(65) = 'A', chr(66)='B'
и т.д. } s:=buf+s; until(n<16) ; if n <> 0 then begin if n<10
then buf:=chr(n+48) else buf:=chr(n+55); s:=buf+s; end;
writeln(s); readln;
end.
{ Программа вычисляет значение арифметического
выражения, введенного с клавиатуры } uses Crt;
s: string[80]; { сторока }
1: integer; { длина строки }
z: integer; { значение выражения }
n: integer; { очередное число }
i: integer; { номер числа в строке }
err: integer; { код ошибки, при преобразовании символа в число }
begin
ClrScr;
writeln('Введите арифметическое выражение,1);
writeln('например, 4+5-3-5+2 и нажмите клавишу <Enter>');
write('->');
readln(s);
val (s[1],z,err);
i: =3 ;
repeat
val(s[i],n,err); { получить очередное однозначное
число }
if s[i-l] = '+' then z:=z+n else z:=z-n;
until i > Length(s) ;
writeln('Значение введенного выражения: *,z); writeln('Для завершения программы нажмите <Enter>.'); readln; end.









Начало    Назад    Вперед