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


Новичок
*

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

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


Как я понимаю, нужно проверить чаровкую переменную, на вхождение во множество отрицательных чисел(символов), но как это селать????
Мне не нужен полный текст проги, просто, кто знает, скажите как проверить на вхождение????

Сообщение отредактировано: Koma -


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


Гость






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

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

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


Новичок
*

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

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


Код
procedure change(var g,g1 : myfile;ch : char);
var st : string;
    i,int : integer;
begin
while not eof(g) do
read(g,ch);
st:=ch;
val(st,i,int);
writeln(int);{Вывыдит номер позиции, в которой произошла ошибка преобразования}
if (i<0)and(odd(i)) then
else
write(g1,ch)
end;

Не могу понять, почему мне в первой же позиции выдаёт ошибку преобразования??? blink.gif


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


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Женский

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


А там всего одна позиция...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

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

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


Не могу понять, нафига ты вообще используешь Char? Не проще ли использовать целый, например, тип.


--------------------
Ну, а почему бы в свободное время не позаниматься программированием?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
Не проще ли использовать целый, например, тип.
Нет, не проще... Проще вообще никакой не использовать, тем более, что именно это и требуется по заданию:

Цитата(Koma @ 25.09.2006 20:21)
Опишите процедуру change(f), удаляющую из файла все отрицательные нечетные числа.
Я вижу, что функция должна принимать только один параметр... Где автор нашел еще один - ума не приложу...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

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

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


Всем спасибо за помощь, ЭКЗАМЕН Я СДАЛ!!! good.gif


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

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

 




- Текстовая версия 20.11.2017 4:18
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"