Uploaded by Даниил Терещенко

Практическая работа №7

advertisement
Практическая работа №7
Тема: Представление строки, как массива символьной информации. Обработка символьной
информации. Использование функций и процедур обработки символьной информации.
Постановка задачи:
1.Формулировка
задачи по обработке строки символьной информации:
^Представление строки как массива символьной информации.
2.Шифрование
массива строк собственным методом.
2.Проработка строки символьной информации с использованием функций или процедур:
Для вывода строк, у которых число чётных цифр превышает число нечётных цифр, я
использовал
функцию COPY.
Программный код:
Program Mashaa;
type mas=array[1..80] of string;
type sum=array[l ..100] of integer;
type floa-array[1..100] of real;
var
s.osn.kodirovka.rackodirovka,ssss,ints:mas;n:string;ss;max,nech,ckol,kol:integer;kod,kod2
,kolvo:sum;sqs:floa;
var kk,sel:integer;
var f:text:
procedure wod(var s:mas;var kk:integcr);
var i: integer,
begin
writeln('Введuте количество строк:');
readln(kk);
for i:-l to kk do begin
readln(s[i]);
end;
writeln;
end;
writeln;
end;
procedure defl>ar s.osn:mas;var n:string;var ckoljcol: integer);
var i j: integcr;z,yy,ncch: integer;
begin
z:=0;
j
»
nech:-0;
kol:-0;
ckol:-0;
forj:-l to kk do
for i:-l to length(sLjl) do begin
n:=copy(s[j),i,l);
kol:=kol+l;
yy:-Strtoint(n);
if y>- mod 2 B0 then
z:-z+l;
if y>' mod 2 о 0 then
nedu-nech+l;
ifkol=length(s(j]) then begin
if ncch<z then begin
ckol:-ckol+l;
osn[ckol]:wcopy(s[jJ, 1 ,kol);
end;
kol:=0;
z:-0;
nech:-0;
end;
end;
writeln('Строки, в которых количество четных чисел больше, чем количество нечетных’)
for i:=l to ckol do begin
Подготовил
Проверила
Майоров А.Д
Овсейчук Т.В
УМТ ПКС 16 1/11(209)
Лист
1
if i=ckolthen
write(osn[i])
else write(osn[i]+’,’);
end;
writeln;
for i:-l to ckol do
writeln(f,osn[i]);
end;
procedure kodirovka2(var s,osn,rackodirovka,kodirovka,ssss,ints:mas;var
kod,kod2,kolvo:sum;var sqs:floa);
var I,j,k:integer;stroka,sd:string;//kkkk:int64;
begin
assign(f,'PRACT7.TXT);
rewrite(f);
randomize;
writeln(Зашифрованные строки:');
for i:=l to ckol do begin
kod[i]:=random(23456330)+53240;
kod2[i]:=random(2345033)+53400;
sqs[i]:=(strtoint(osn[i]))*4;
kodirovka[i]:-inttostr(kod[i])^floattostr(sqs[i])+inttostr(kod2[i]);
writeln(kodirovka[i]);
write(f,kodirovka[i]);
end;
writeln;
close(f);
end; .
procedure razkodirovka(var s,osn,rackodirovka,kodirovka,ssss,int:mas);
var I,j:integer;otvet:real;
begin
assign(f,’PRACT7.TXT);
rewrite(f);
writeln;
writcln('PaciiiH4)poBaHHbie строки:');
for i:=l to ckol do begin
rackodirovka[i):=copy(kodirovkali],length(floatiostr(kod[i]))+l,lengih(floanostr(sqs[i]))
);
rackodirovka[i]"fioa'ttostr(strtofloat(rackodirovka[i]y4);
writcln(rackodirovka[i]);
writcln(f,rackodirovka[i]);
end;
writeln;
close(f);
end;
procedure menu;
procedure select(var sel:integer);
begin
readln(sel);
case sel of _
1)kodirovka2[s)osntrackodirovka,kodirovka,ssss,ints,kod,kod2.kolvo.sqs);
2:razkodirovka(s,osn,rackodirovka,kodirovka,ssss,ints);
3:exit;
end;
menu;
select(sel);
end;
begin
assign(f/PRACT7.Txt');
rewrite(0;
wod(s,kk);
det^s,osn,n,ckol,kol);
Подготовил
Проверила
Майоров А.Д
Овсейчук Т.В
УМТ ПКС 16 1/11(209)
Лист
2
close(f);
menu;
select(sel);
end.
Введите количество строк:
3
44556
55566
44554
Строки, в которых количество чётных чисел больше, чем количество нечётных чисел:
44556,44554
Выберите нужное действие:
1.Зашифровать
2.
Расшифровать
3.Выход
1
Зашифрованные строки:
11841813178224908763
220809361782162048002
Выберите нужное действие:
1
.Зашифровать
2.
Расшифровать
3.Выход
2
Расшифрованные строки:
44556
44554
Выберите нужное действие:
1 .Зашифровать
2.Расшифровать
3.Выход
Подготовил
Проверила
Майоров А.Д
Овсейчук Т.В
УМТ ПКС 16 1/11(209)
Лист
3
Download