Обработка файлов

1. Задан текстовый файл, каждая строка которого может рассматриваться как запись целого числа в двоичной системе счисления. Преобразуйте двоичную запись числа в десятичную.

uses crt;
var f: text;
n,i,k,d,b,s:integer;
a:array[1..10] of integer;
begin
assign (f, ‘d:\file1.txt’);reset (f);
while not eof (f) do
begin
readln (f, n);write (n);
begin
d:=1;s:=0;i:=i+1;
repeat
b:=n mod 10;
b:=b*d;
d:=d*2;
s:=s+b;
n:=n div 10;
until n=0;
a[i]:=s;
writeln(‘—‘,a[i]);
end;
end;
close (f);rewrite(f);
for k:=1 to i do
writeln(f,a[k]);
close(f);
end.

 

 

1.Разработать библиотечный модуль, содержащий следующие подпрограммы (процедуры или функции) для работы со строками:

А. Заменить в заданной строке все строчные буквы на заглавные.
Б. Заменить в заданной строке все заглавные буквы на строчные.
В. Удалить все цифры.
Написать программу, к которой подключается модуль, демонстрирующую работоспособность всех подпрограмм модуля.

 

program lab9z2;
uses crt,MyMod;
var s:string;
i,k:integer;
begin
write(‘Введите текст: ‘);readln(s);
writeln(‘1. Заменить в заданной строке все строчные буквы на заглавные.’);
writeln(‘2. Заменить в заданной строке все заглавные буквы на строчные.’);
writeln(‘3. Удалить все цифры.’);
write(‘Действие: ‘);readln(k);
if k>3 then begin writeln(‘Ошибка! Введите число от 1 до 3!’);halt;end;
if k=1 then
for i:=1 to length(s) do
MyUpCase(s);
if k=2 then
for i:=1 to length(s) do
MyLowCase(s);
if k=3 then
for i:=1 to length(s) do
MyDel(s);
writeln(s);
end.

 

unit MyMod;
interface
uses crt;
var s:string;
procedure MyUpCase(var s:string);
procedure MyLowCase(var s:string);
procedure MyDel(var s:string);

implementation

procedure MyUpCase(var s:string);{приведение к верхнему регистру}
var i:byte;
begin
for i:=1 to length(s) do
if s[i] in [‘a’..’z’,’а’..’я’] then s[i]:=upcase(s[i]);
end;

procedure MyLowCase(var s:string);{приведение к нижнему регистру}
var i:byte;
begin
for i:=1 to length(s) do
if s[i] in [‘A’..’Z’,’А’..’Я’] then s[i]:=lowcase(s[i]);
end;

procedure MyDel(var s:string);{удалить все цифры в строке}
var i:byte;
begin
for i:=length(s) downto 1 do
if s[i] in [‘0’..’9′] then delete(s,i,1);
end;
begin
end.

Добавить комментарий