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

Решения (задачи 224-241)

Задача 235

Выводит таблицу пересчета из дюймов в миллиметры на экран, принтер или в файл
f:text; { файл вывода } fname:string; { имя файла вывода }
dest:integer; { 1 – на экран, 2 – на принтер, 3 – в файл }
d: real; { величина в дюймах }
m: real; { величина в миллиметрах}
begin
writeln('*** Таблица пересчета из дюймов ', 'в миллиметры ***');
teln('Результат выводить:'); writeln('l – на экран;');
 writeln('2 – на принтер;1); writeln('3 – в файл.');
' writeln('Введите число от 1 до 3 и нажмите Enter ');
 write('Ваш выбор › '); readln(dest); case dest of
1: fname: = ''; {на экран } 2: begin { на принтер } fname: = 'prn';
write('Включите принтер и нажмите Enter'); readln; end; 3: begin { в файл }
write('Задайте имя файла для вывода › '); readln(fname); end; end;
assign(f,fname); .rewrite(f);
writeln(f,' – ---------------');
writeln(f,' Дюймы Миллиметры');
writeln(f,' – ----------------');
d: = 0.5;
while d < 10 do begin
m: = 25.4*d; { 1 дюйм – 25.4 мм } writeln(f,d:6:l,m:10:1); d: = d+0.5; end;
writeln(f,' – ----------------');
close(f); if dest = 3
then writeln('Таблица записана в файл ',fname);
writeln('Для завершения работы программы',
' нажмите Enter'); readln;
end.

Задача 236

{ Рекурсивная функция "Факториал" }
function factorial(k:integer):integer; begin
if к = 1
then factorial: = 1
else factorials k*factorial (k-1); end;
var
n: integer; { число, факториал которого надо вычислить}
f: integer; (факториал числа п } begin
writeln('Вычисление факториала.');
writeln('Введите число, факториал которого надо ', 'вычислить');
write (' › ');
readln(n);
f: = factorial(n);
writeln('Факториал числа ',n,' равен ',f);
readln;
end.

Задача 237

{ Выводит на экран узор } Uses Graph,Crt;
{ Рисует элемент узора } procedure Elem(x,у,r,p: integer);
{ x,y,r – координаты и радиус центра основного
элемента узора р – порядок узора } begin
if p>=0 then begin
Circle(х,у,г); Delay(lOO);
Elem(x+r,y,Round(r/2),p-l); Elem(x,y-r,Round(r/2),p-l); Elem(x-r,y,Round(r/2),p-l);
m(x,y+r,Round(r/2) end;
end;
grDriver:integer; { драйвер }
grMode:integer; { графический режим }
grPath:string; { путь к файлу драйвера)
ErrCode:integer; (код ошибки графического режима }
begin
grDriver: = VGA; grMode: = VGAHi; grPath: = 'e:\tp\bgi';
InitGraph (grDriver,grMode,grPath); ErrCode: = GraphResult;
if ErrCode <> grOK then begin
writeln ('Ошибка инициализации графического режима.1)
writeln ('Для завершения работы нажмите Enter');
readln;
HALT (1); end;
{ основная программа }
Elem(320.240.60.3); { рисуем узор 3-го порядка }
OutText('Для завершения работы программы ',
'нажмите Enter');
readln; end.
Используя механизм рекурсии, вычисляет сопротивление n-звенной электрической цепи }
r1,r2,r3: real; { величины сопротивлений, из которых состоит цепь }
n: integer; { количество звеньев (порядок) цепи } re: real; { сопротивление цепи)
{ величина сопротивления цепи n-го порядка } function Cep(n: integer): real; begin
if n=l
then Cep: = Rl+R2+R3 else begin
rc: = Cep(n-1); Cep: = R2*rc/(R2+rc); end; end;
{ основная процедура } begin
writeln('Вычисление сопротивления электрической цепи.
writeln('Введите величины сопротивлений (Ом):');
write('rl › ');
readln(rl);
write Cr2 › ');
readln(r2);
write('r3 › ');
readln(r3);
write('Порядок цепи › ');
readln(n);
writelnf' Сопротивление цепи:',Сер(n):6:2,' Ом'); { величины сопротивлений передаются
в процедуру Сер через глобальные
переменные r1, r2 и r3 } readln;
end.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.