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

> Прочтите прежде чем задавать вопрос!

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

> Файлы, и работа сними
Geroi
сообщение 1.05.2003 20:42
Сообщение #1


Новичок
*

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

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


Вот такая проблемка. sad.gif
Цитата(Задача 1)
Код
type myfile = file of integer;

Опишите процедуру double (f), удваивающие в файле f все четные числа.
У нас есть файл, проверяем то, что в нём написано на чётность, если какое-то число чётное, то надо его умножить на 2 и записать вместо умножаемого числа. Файл должен быть один, т.е. использовать ещё один файл нельзя. :-/
Цитата(Задача 2)
Задан текстовый файл 'a.txt'. Написать программу, которая утраивает значения слов, являющиеся четными числами.
Как её вообще делать? с чего начать?!?!!?!?!? ??? Имеется в виду, что не создание файла smile.gif
Всем заранее спасибо ;D
Ivs надеюсь на твою помощь и других знатоков Паскаля....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
GLuk
сообщение 2.05.2003 14:48
Сообщение #2


Профи
****

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

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


По-моему реализация IVS'a не соответствует условию задачи (во-всяком случае первой): должен быть открыт только один файл. Вот мой вариант, а почему я его сделал, дык это потому что процедура открытия файла в пасе для чтения/записи одновременно, всегда работала криво (он использует FSB). И если все таки попробовать, то получается такая хня, а точнее он выдает ОШИБКУ №6 которая в принципе не может случится!!! :o :o
Кое-что на ассемблере, но иначе пришлось постоянно открывать/закрывать файл, что не прет...
Чтобы работало и для задачи №2, дык просто утроить переменную W...

А вони действительно было много :D

Const
FName = 'int.bin';
IntNumb = 10;
Var
F:File of Integer;
i,Handle:Word;
W:Integer;
M,K:LongInt;
S:String;
Procedure GenerateFile;
begin
Assign(F,FName);
ReWrite(F);
For i:=1 to IntNumb do
begin
W:=Random(50)+1;
Write(F,W);
end;
Close(F);
end;
Procedure WriteInt;Assembler;
asm
mov bx,Handle
mov cx,2
lea dx,W
mov ah,40h
int 21h
end;
Procedure MovePointer(Ad:LongInt);Assembler;
asm
mov ax,4200h
mov bx,Handle
mov dx,word ptr Ad
mov cx,word ptr Ad + 2
int 21h
end;
Procedure ReadInt;Assembler;
asm
mov ah,3Fh
mov bx,Handle
mov cx,2
lea dx,W
int 21h
end;
Function GetPointer:LongInt;Assembler;
asm
mov ax,4201h
xor dx,dx
mov cx,dx
mov bx,Handle
int 21h
end;
Begin
GenerateFile;
S:=FName+#0;
asm
mov ax,3D02h
lea dx,S
inc dx
int 21h
mov Handle,ax
end;
M:=0;
While M<IntNumb do
begin
ReadInt;
If not Odd(W) then
begin
W:=W*W;
K:=GetPointer;
MovePointer(K-2);
WriteInt;
end;
Inc(M);
end;
asm
mov ah,3Eh
mov bx,Handle
int 21h
end;
End.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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