Примеры решения задач. Задание. Рассмотрите приведенные примеры задач

Задание. Рассмотрите приведенные примеры задач. Наберите программы на компьютере, дополните их комментарием и протестируйте их. Имейте в виду, что уже рассмотренные выше подпрограммы в текстах задач пропущены. Будьте готовы объяснить учителю алгоритмы решения задач и продемонстрировать их графически.

Пример 1. За один просмотр файла действительных чисел и с использованием очереди напечатать элементы файла в следующем порядке: сначала – все числа, меньшие а, затем – все числа из отрезка [а, b], и наконец – все остальные числа, сохраняя исходный порядок в каждой из этих трех групп чисел. Числа а и b задает пользователь.

Program MordovskihK;

Type

EXO = ^O;

O = record

Data : integer;

Next : EXO;

End;

Var

i : Real;

Min, Vibr, Other, EndMin, EndVibr, EndOther : EXO;

f : File of real;

Stroka : string;

Procedure writeO(Var BeginO, EndO : EXO; c : real);

. . .

Procedure PrintO(u : EXO);

. . .

Begin

Min := Nil;

Vibr := Nil;

Other := Nil;

EndMin := Nil;

EndVibr := Nil;

EndOther := Nil;

writeln ('Введите имя файла >');

readln(Stroka);

writeln ('Введите промежуток >');

readln(a, b);

assign(f, Stroka);

reset(f);

while not Eof(f) do

begin

read(f, i);

if i<a

then

writeO(Min, x, i)

else

if (i>=a) and (i<=b)

then

writeO(Vibr, x, i)

else

writeO(Other, x, i)

end;

close(f);

writeln('Числа, меньшие ', а);

Print(Min);

writeln('Числа из промежутка [', а, b, ']');

Print(Vibr);

writeln('Числа, большие ', b);

Print(Other);

End.

Пример 2. Из заданного текста перенести все цифры в конец каждой строки, сохранив их порядок.

Program BaranovA;

Type

EXO = ^O;

O = record

Data : integer;

Next : EXO;

End;

Var

i : integer;

O1, EndO1, O2, EndO2 : EXO;

f1, f2 : text;

Name, NewName, Stroka, NewStroka : string;

Procedure writeO(Var BeginO, EndO : EXO; k : char);

. . .

Procedure readO(u : EXO);

. . .

ModifStr(St : string, NewSt : string);

Var

l : char;

O1 := Nil;

EndO1 := Nil;

O2 := Nil;

EndO2 := Nil;

NewSt := '';

for i := 1 to Length(St) do

if St[i] in ['1', '2', '3', '4', '5', '6', '7', '8', '8', '9', '0']

then

writeO(O2, EndO2, St[i])

else

writeO(O1, EndO1, St[i]);

while O1 <> Nil do

begin

readO(O1, EndO1, l);

NewSt := NewSt + l;

end;

while O2 <> Nil do

begin

readO(O2, EndO2, l);

NewSt := NewSt + l;

end;

End;

Begin

write('Введите имя исходного файла: ');

readln(Name);

write('Введите имя файла-результата: ');

readln(NewName);

assign(f1, Name);

assign(f2, NewName);

reset(f1);

rewrite(f2);

while not Eof(f1) do

begin

readln(f1, Stroka);

ModifStr(Stroka, NewStroka);

writeln(f2, NewStroka);

end;

close(f1);

close(f2);

End.








Дата добавления: 2015-05-16; просмотров: 810;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.