IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Задачи на файлы, type myfile = file of char;
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской
Реальное имя: SiNaC0m

Репутация: -  0  +


Опишите процедуру delete(f), удаляющую из файла f все литеры '+' и '-'.
Код

uses wincrt;
type myfile = file of char;
procedure delete(var s,s1: myfile; ac : char);
begin
while not eof(s) do
begin
read(s,ac);
if ac in ['+','-'] then
else write(s1,ac);
end;
end;
var f,f1 : myfile;
     c,a : char;
begin
assign(f,'c:\a.txt');
reset(f);
assign(f1,'c:\b.txt');
rewrite(f1);
delete(f,f1,a);
close(f);
close(f1);
end.


Опишите процедуру double(f), удваивающие в файле f все ЦИФРЫ
Код
uses wincrt;
type myfile = file of char;
procedure dva(var s,s1: myfile; ac : char);
begin
while not eof(s) do
begin
read(s,ac);
if ac in ['0'..'9'] then

write(s1,ac,ac)
else write(s1,ac);

end;
end;
var f,f1 : myfile;
     c,a : char;
begin
assign(f,'c:\a.txt');
reset(f);
assign(f1,'c:\b.txt');
rewrite(f1);
dva(f,f1,a);
close(f);
close(f1);

end.


Опишите процедуру replace(f,c), заменяющую последнюю литеру в файле f на литеру с
Код
uses wincrt;
type myfile = file of char;
procedure replace(var s: myfile; ac : char);
var i : integer;
begin
i:=filesize(s);
seek(s,i);
write(s,ac);
end;
var f,f1 : myfile;
     c,a : char;
begin
assign(f,'c:\a.txt');
reset(f);
read(a);
replace(f,a);
close(f);
end.


Опишите процедуру next(f), заменяющую в файле каждую ЦИФРУ
на следующую по величине цифру ('9'заменять на '0').
Код
uses wincrt;
type myfile = file of char;
procedure next(var s,s1: myfile; ac : char);
begin
while not eof(s) do
begin
read(s,ac);
if ac in ['0'..'9'] then
  case ac of
  '0': ac:='1';
  '1': ac:='2';
  '2': ac:='3';
  '3': ac:='4';
  '4': ac:='5';
  '5': ac:='6';
  '6': ac:='7';
  '7': ac:='8';
  '8': ac:='9';
  '9': ac:='0';
  end;
write(s1,ac);
end;
end;
var f,f1 : myfile;
     c,a : char;
begin
assign(f,'c:\a.txt');
reset(f);
assign(f1,'c:\b.txt');
rewrite(f1);
next(f,f1,a);
close(f);
close(f1);

end.


Не могу сделоть следующие задание:"30) type myfile = file of char;
Опишите процедуру change(f), удаляющую из файла все отрицательные нечетные числа."
Кто может, объясните плизз....!!!


--------------------
Мы стремимся к знаниям... вы называете нас преступниками. Мы существуем без цвета кожи, без национальности и религиозных предубеждений... вы называете нас преступниками. Вы производите атомные бомбы, разжигаете войны, убиваете, обворовываете и врете нам, пытаясь убедить в своей правоте... а мы все также остаемся преступниками.
© Mentor
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






"Чаровская", как ты ее называешь, переменная, не способна физически хранить отрицательные значения... Здесь немного другой способ решения: читать символы из файла в строку, пока не встретится разделитель (скажем, пробел) или не будет достигнут конец файла... Полученную строку перевести в число (используя процедуру Val, например), и если полученное число - отрицательное и нечетное, то НЕ записывать строковое представление числа в файл-результат, иначе - ДА записывать... Все разделители тоже должны записываться в выходной файл...

Т.е., фактически, иы должен рассматривать свой File Of Char как обычный текстовый файл...

Цитата
Мне не нужен полный текст проги
smile.gif Само собой... Это - теоретический раздел, здесь помогают только теорией... yes2.gif
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 17:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name