Примеры решения задач. Рассмотрите примеры решения задач
Рассмотрите примеры решения задач. Наберите тексты программ, проверьте их действие. Обратите внимание на комментарий. Выполните задания к задачам.
Задача № 1. Дан файл, элементами которого являются целые числа. Найти среднее арифметическое элементов файла.
В примере решается задача считывание элементов из файла, их суммирование и нахождение среднего арифметического. Предполагается, что типизированный файл уже создан.
Задание. Дополните содержание текста задачи созданием типизированного файла file.dat. Добавленные строчки программы прокомментируйте.
Program Srednee;
Uses
Crt;
Var
Kol,
Element, {переменная для хранения очередного элемента файла}
Summa {переменная для хранения суммы элементов файла}
:integer;
f : file of integer;
SrAriph : real
Begin
ClrScr;
assign(f,'file.dat'); {связываем файловую переменную f с физическим файлом file.dat}
reset(f); {открываем файл для чтения}
Summa :=0; {обнуление суммы}
while not Еof(f) do {просматриваем файл до конца}
begin
read(f,Element); {считываем из файла очередной элемент в переменную Element}
Inc(Kol); {увеличиваем счетчик количества элементов файла}
Inc(Summa,Element); {увеличиваем переменную Summa на Element}
end;
SrAriph := Summa/Kol {вычисляем среднее арифметическое чисел}
write('Среднее арифметическое элементов файла равно ',SrAriph:5:2);
close(f); {закрываем файл}
readln;
End.
Задача №2. Наберите на компьютере и рассмотрите текст программы, сформулируйте решаемую в ней задачу, дополните необходимыми операторами и комментарием. Покажите результат учителю для оценки.
Program FileString;
Uses
Crt;
Var
f, g : file of string;
str1, str : string;
i : integer;
Begin
ClrScr;
assign(f,'f');
rewrite(f);
assign(g,'g');
rewrite(g);
repeat
readln(str);
write(f,str);
for i:=length(str) downto 1 do
str1:=str1+str[i];
write(g,str1);
str1:='';
until str='';
close(f);
close(g);
assign(f,'f');
reset(f);
assign(g,'g');
reset(g);
while not eof(f) do
begin
read(f,str);
writeln(str);
end;
while not eof(g) do
begin
read(g,str);
writeln(str);
end;
close(f);
close(g);
readln;
End.
Задача № 3. Создать типизированный файл, содержащий информацию о работниках института.
Задание. Дополнить текст программы
а) нахождением среднего стажа работы в институте;
б) выводом фамилий работников, работающих инженерами;
в) выводом фамилий работников, начинающихся с заданной пользователем буквы;
г) выводом фамилий работников, у которых оклад больше заданного пользователем числа;
д) выводом фамилий работников предпенсионного возраста.
Program TipRecord;
Uses
Crt;
Type
Dann=record
stag : byte;
Surname, WorkName : string;
Oklad, Year : integer;
End;
Var
Spisok : file of Dann; {файл типа записи Dann}
Man : Dann; {переменная типа записи Dann для работы с файлом}
Name : string[12]; {строка для хранения имени физического файла}
Procedure VvodZap (Nomer : integer);
Begin
with Man do
begin
writeln('Введите данные ',Nomer,'-го работника');
write('Фамилия: ');
readln(Surname);
write('Год рождения:');
readln(Уear);
write('Стаж работы:');
readln(stag);
writeln('Должность:');
readln(WorkName);
write('Оклад');
readln(oklad);
write(Spisok ,Man); {записать в файл созданный элемент Man}
end;
End;
Procedure FileVvod;
Var
i, count : Integer;
Begin
write('Введите имя файла данных:');
readln(Name); {имя физического файла}
assign(Spisok ,Name); {связываем файловую переменную с файлом}
rewrite(Spisok ); {открываем файл для записи}
write('Введите количество работников:');
readln(count);
for i:=1 to count do
VvodZap(i); {вызов процедуры ввода очередной информации в файл}
close(Spisok ); {закрываем файл}
readln;
End;
Begin
ClrScr;
FileVvod;
readLn;
End.
Дата добавления: 2015-05-16; просмотров: 799;