Опишите процедуру double (f), удваивающие в файле f все четные числа.
У нас есть файл, проверяем то, что в нём написано на чётность, если какое-то число чётное, то надо его умножить на 2 и записать вместо умножаемого числа. Файл должен быть один, т.е. использовать ещё один файл нельзя. :-/
Цитата(Задача 2)
Задан текстовый файл 'a.txt'. Написать программу, которая утраивает значения слов, являющиеся четными числами.
Как её вообще делать? с чего начать?!?!!?!?!? ??? Имеется в виду, что не создание файла Всем заранее спасибо ;D Ivs надеюсь на твою помощь и других знатоков Паскаля....
___ALex___
2.05.2003 1:32
а если число после умножения на 2 привысит MaxInt а? кто писал это условие ;D
Geroi
2.05.2003 1:45
хех, если ты решил сумничать, то у тебя не получилось :P, вопрос не к чему, с такими ответами лучше молчать..... :-X
Нармально мыслящие люди такой вопрос наврядли задодут...
GLuk
2.05.2003 7:58
А сам ты по ходу ничего не сделал? Выложил бы то что начал, а то все надеются получить здесь готовое решение не прилагая к этому никаких усилий >:( И сразу решил сумничать... >:( Пусть я не нормально мыслящий человек, да и тоже решу сумничать, но все таки скажу кое-что: 1. По поводу превышения макс. значения Integer: вообще говоря тип данных описан выше, так что навряд ли придется, переделывать его. Но в условии это не указано напрямую, а работа с удвоенным целым без расширения его в три-четыре байта и как следствие запись в файл этих значений (один файл) существенно отличается от записи тех же удвоенных целых, но в 2 байта длиной. Хотя может быть ты не знаешь, что такое MaxInt, Geroi? :o Если решать нужно все-таки без расширения получаемых целых, то прога очень просто реализуется через процедуры BlockWrite, BlockRead & Seek. Если нет - придется читать все в память, либо выкобениваться при чтении/записи, после чтения анализируя каждый фрагмент...
Выложи хотя бы сырец своего творения, Герой
P.S. А по поводу молчания с такими вопросами (Alex Mes), дык это тебе лучше молчать с такими заданиями... >:(
___ALex___
2.05.2003 12:25
да не объясняй ты это ламеру он же ГЕРОЙ сам всё сделает
Geroi
2.05.2003 12:29
Я вообще не могу понять, что вам не нравится?!?!?! ??? ??? По первой задаче, Я задал токо один вопрос, её решать не надо, Я её сам сделаю. У меня вопрос, как там сделать эту замену числа чётного, после его удваевания. А по второй Я просто без понятия как её начать. И у вас это спросил. А вы тут муть и спам разводите. Если не знаете, так вас никто не напрегает, а если можете помочь. то вам решать, говорить или нет. Лишний базар у Вас идёт...... В задаче имеется ввиду, что числа будут от 1 до 50.... или в этом роде.
___ALex___
2.05.2003 12:39
ты же "Нармально" мыслящий человек! В чём же тогда проблема? ха ха ха
Geroi
2.05.2003 14:04
Alex иди спать, не мозоль глаза.
___ALex___
2.05.2003 14:09
это говорит о том - что осёл тут один - это ТЫ главно мыслящий осёл ха ха ха
___ALex___
2.05.2003 14:12
если тебе это о чём-то скажет то Seek работает и с типизированными файлами
___ALex___
2.05.2003 14:18
и ещё если в файле хранятся числа из диапазона 1..50 то надо сменить "File of Integer" на "File of Byte" дабы уменьшить размер файла так как 1..50 * 2 < High(Byte) надеюсь такая абстрактная запись тебе будет ясна
Geroi
2.05.2003 15:01
ох как ты достал, говоришь то, что говорят в 9 классе в школе. Чё слабо вторую задачу сделать? Мне слабо , поэтому и зашёл сюда, чтоб помогли её сделать болле знающие люди, а Есле ты не можешь, то не к чему разводить балаган на форуме. Я сюда обратился за помощью, а не с тоболй рамсеть. А если ты малой недоносок, то мне с тобой вообще не очём говорить. >:(
___ALex___
2.05.2003 15:49
"ох как ты достал, говоришь то, что говорят в 9 классе в школе." ты значит ещё младше раз это в 9 классе говорят или ты на уроки не ходишь учёничёк "Чё слабо вторую задачу сделать?" легко)примитивщина но тебе походу не под силу... молись ламер чтобы тебе её кто-нибудь решил либо плати WM-ами тогда я тебе её решу P.S. таким ослам - только за лаве
Geroi
2.05.2003 16:32
Alex разве ты заходишь только поболтать? Что те не нравится? я думаю не надо быть столь придирчивым к условию, я ведь его не сам выдумывал, MaxInt или т.п. Суть не в этом. Сам ты нехороший человек, говориш чушь какую-то. А на счёт того что Я немогу сделать, то Я сам сказал, что её слабо сделать. Разве Я похож на ламера? Если Я немогу сделать какие-то задачи, это не чего не значит. И ещё ты нехороший человек, если такую как ты говориш прмитивщину за деньги делаешь.
Ivs
2.05.2003 17:02
Ладно хватит паливать друг друга матом не из-за чего... Вот прога, но я её мало тестил так что могут (да скорее всего они и есть) - быть глюки
Код
program for_Geroi;
Var i,j,code,Num2 : Integer; S,Num : String; f,fn : Text;
Begin Assign(f ,'a.txt'); Reset(f); Assign(fn,'b.txt'); Rewrite(fn); while not(EoF(f)) do begin Readln(f,S); i:=1; while i<=length(S) do begin Num:=''; while (S[i] in ['0'..'9']) do begin Num:=Num+S[i]; Inc(i); end; if Num<>'' then begin Val(Num,Num2,code); if Num2 mod 2 = 0 then begin Num2:=Num2*3; Str(Num2,Num); end; Write(fn,Num); end; if NOT(S[i] in ['0'..'9']) then Write(fn,S[i]); Inc(i); end; Writeln(fn); end; Close(f); Close(fn); Erase(f); Rename(fn,'a.txt'); End.
Прогу не комментировал так что если чего непонятно - спрашивай.
___ALex___
2.05.2003 18:13
опять очередной соискатель халявы получил что хотел...обидно понимаю хоть бы сам что-то сделал... ведь всегда видно людей у которых просто что-то не получается и им достаточно порой намёка для решения их задачи - таким людям грех не помочь(сами тебе в другой раз помогут) а таким... всё равно бестолку - ну что Ivs тебе решил ну и? мозги-то его ты себе не приложишь! ну и ладно :P
jackal
2.05.2003 18:33
Alex или Ivs у вас есть какие нибудь мысли по моей задаче?(Тема : "Сырая прога") Только ответьте пожалуйста!
GLuk
2.05.2003 18:48
По-моему реализация 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.
Ivs
2.05.2003 19:22
GLuk, ты прав про единственность файла, я что-то пропустил это условие, мое решение прошу считать ошибочным.
AlaRic
2.05.2003 19:43
for __Alex__ and Geroi: на форуме никаких разборок!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.