Консультация № 178692
27.05.2010, 10:49
43.65 руб.
28.05.2010, 12:30
0 5 1
Добрый день,уважаемые эксперты! Помогите реализовать задачи на паскале ABC,тема-файлы:
типы файлов: если не указано что текстовые,значит типизированные
всё вводится с клавиатуры

1) Описать процедуру изменения порядка следования записей в файле вещественных чисел на обратный порядок
2) Для файла целых чисел описать процедуру пересылки в другой файл чисел,сумма цифр которых равна заданному числу
3) Описать процедуру замены в файле вещественных чисел записи с заданным номером на заданное вещественное число
4) Текстовый файл состоит из строк вещественных чисел,описать процедуру подсчета количества строк в файле и нахождение номера строки с наибольшим количеством чисел
5) Описать функцию проверки,содержит ли текстовый файл пустую строку
6) Текстовый файл состоит из одной строки целых чисел. Описать функциюцию проверки, есть ли в файле число равное 0

Обсуждение

Неизвестный
27.05.2010, 13:54
общий
Хм. Вы уж не новичек, а валите все в одну кучу с минимальной информацией. Поясните:
1) как задана строка? Могут ли в ней быть не только цифры, но и буквы?
2) -"-, куда продублировать?
3) -"-, что такое элемент? Ведь и букв есть коды? И среди где найти такую строку?
4) тип файла?
5) понятно, что текстовый
6) ноль - эти число и символ? И какой тип файла?
Неизвестный
27.05.2010, 15:29
общий
Да!! И какой Паскаль?
Неизвестный
28.05.2010, 00:00
общий
Boriss:
Добрый вечер,извините,но указал другие вопросы,нежели нужно:
(возможно ли исправить???)
1)Описать процедуру изменения порядка следования записей в файле вещественных чисел на обратный порядок
2)Для файла целых чисел описать процедуру пересылки в другой файл чисел,сумма цифр которых равна заданному числу
3)Описать процедуру замены в файле вещественных чисел записи с заданным номером на зад-ное вещественное число
4)Текстовый файл состоит из строк вещественных чисел,описать процедуру подсчета количества строк в файле и нахождение номера строки с наибольшим количеством чисел
5)Описать ф-цию проверки,содержит ли текстовый файл пустую строку
6)Т.файл состоит из одной строки целых чисел.Описать ф-цию проверки,есть ли в файле число равное 0

p.s.
версия паскаль - abc
типы файлов: если не указано что текстовые,значит типизированные
всё вводится с клавиатуры
Неизвестный
28.05.2010, 12:25
общий
angel.nero:
Щас исправлю
давно
Академик
320937
2216
29.05.2010, 09:49
общий
это ответ
Здравствуйте, angel.nero! Ответ на вопросы о вещественных числах. Текст программы (ABC). Если файл данных в каталоге программы отсутствует, запрашивается ввод вещественных чисел.
Код:
program p178692;
// RFPRO, lamed, ABC
// 1) Описать процедуру изменения порядка следования записей в файле
// вещественных чисел на обратный порядок
// 3) Описать процедуру замены в файле вещественных чисел записи с заданным
// номером на заданное вещественное число
uses
crt;

type
TRealFile = file of real;

procedure FileCreate(var f: TRealFile; fname: string);
// Создание файла, ввод с клавиатуры
var
ans : char;
x: real;
begin
rewrite(f);
repeat
write('Число ');
readln(x);
write(f,x);
write('Продолжать д/н ');
readln(ans);
until not(ans in ['д', 'Д']);
close(f)
end; { FileCreate }

procedure FilePrint(f: TRealFile);
// печать файла
var
WasPrinted: boolean; // печатаем запятую перед каждым числом, начиная со 2-го
x: real;
begin
WasPrinted := false;
reset(f); // открыть файл
write('<');
while not eof(f) do
begin
read(f,x);
if WasPrinted then
write(',')
else
WasPrinted := true;
write(x)
end;
writeln('>');
close(f);
end;

procedure Reverse(var f: TRealFile);
// Изменение порядка следования записей в файле
// вещественных чисел на обратный порядок
var
i, j, n: integer;
rec1, rec2: real;
t: boolean;
begin
reset(f);
n:= filesize(f);
seek(f, 0);
for i:= 0 to n div 2 - 1 do
begin
seek(f, i);
read(f, rec1);
seek(f, n-i-1);
read(f, rec2);
seek(f, i);
write(f,rec2);
seek(f, n-i-1);
write(f,rec1);
end;
close(f);
end; { Reverse }

procedure Change(var f: TRealFile; x: real; position: integer; var code: integer);
// Замена в файле вещественных чисел записи с заданным
// номером на заданное вещественное число
var
n: integer;
begin
reset(f);
if (position < 0) or (position >= filesize(f)) then
code := -1
else
begin
seek(f, position);
write(f, x);
code := 0;
end;
close(f);
end; { Chamge }

var
f : TRealFile;
FileName : string;
position : integer;
x : real;
ChangeCode: integer;

begin //основная программа
ClrScr;

FileName := 'real.dat';
assign(f, FileName);

if not FileExists(FileName) then
FileCreate(f, FileName);

writeln('Исходный файл');
FilePrint(f);

write('Число для замены ');
readln(x);

write('Позиция для замены ');
readln(position);

change(f, x, position, ChangeCode);
if ChangeCode = 0 then
begin
writeln('После замены');
FilePrint(f);
end
else
writeln('Ошибка, замена не проведена');

reverse(f);
writeln('После изменения порядка');
FilePrint(f);

end.


Примеры работы
Код:
Исходный файл
<2.5,0>
Число для замены 3
Позиция для замены 2
Ошибка, замена не проведена
После изменения порядка
<0,2.5>


Код:
Число 1
Продолжать д/н д
Число 2.5
Продолжать д/н д
Число 3.7
Продолжать д/н д
Число 4.8
Продолжать д/н д
Число 5.5
Продолжать д/н н
Исходный файл
<1,2.5,3.7,4.8,5.5>
Число для замены 5
Позиция для замены 4
После замены
<1,2.5,3.7,4.8,5>
После изменения порядка
<5,4.8,3.7,2.5,1>


Форма ответа