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

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

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

 
Closed Topic Открыть новую тему 
> Файлы, и работа сними
сообщение
Сообщение #1


Новичок
*

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

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


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

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


Бывалый
***

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

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


а если число после умножения на 2 привысит MaxInt а?
кто писал это условие  ;D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


хех, если ты решил сумничать, то у тебя не получилось :P, вопрос не к чему, с такими ответами лучше молчать..... :-X

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


Профи
****

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

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


А сам ты по ходу ничего не сделал?
Выложил бы то что начал, а то все надеются получить здесь готовое решение не прилагая к этому никаких усилий >:(
И сразу решил сумничать... >:(
Пусть я не нормально мыслящий человек, да и тоже решу сумничать, но все таки скажу кое-что:
1. По поводу превышения макс. значения Integer: вообще говоря тип данных описан выше, так что навряд ли придется, переделывать его. Но в условии это не указано напрямую, а работа с удвоенным целым без расширения его в три-четыре байта и как следствие запись в файл этих значений (один файл) существенно отличается от записи тех же удвоенных целых, но в 2 байта длиной.
Хотя может быть ты не знаешь, что такое MaxInt, Geroi?  :o smile.gif
Если решать нужно все-таки без расширения получаемых целых, то прога очень просто реализуется через процедуры BlockWrite, BlockRead & Seek.
Если нет - придется читать все в память, либо выкобениваться при чтении/записи, после чтения анализируя каждый фрагмент...

Выложи хотя бы сырец своего творения, Герой

P.S. А по поводу молчания с такими вопросами (Alex Mes), дык это тебе лучше молчать с такими заданиями... >:(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

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

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


да не объясняй ты это ламеру
он же ГЕРОЙ сам всё сделает
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

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

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


Я вообще не могу понять, что вам не нравится?!?!?! ??? ???
По первой задаче, Я задал токо один вопрос, её решать не надо, Я её сам сделаю. У меня вопрос, как там сделать эту замену числа чётного, после его удваевания.
А по второй Я просто без понятия как её начать. И у вас это спросил.
А вы тут муть и спам разводите.
Если не знаете, так вас никто не напрегает, а если можете помочь. то вам решать, говорить или нет.
Лишний базар у Вас идёт......
В задаче имеется ввиду, что числа будут от 1 до 50.... или в этом роде.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

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

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


ты же "Нармально" мыслящий человек!
В чём же тогда проблема? ха ха ха
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

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

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


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


Бывалый
***

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

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


это говорит о том - что осёл тут один - это ТЫ
главно мыслящий осёл ха ха ха
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Бывалый
***

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

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


если тебе это о чём-то скажет
то Seek работает и с типизированными файлами
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Бывалый
***

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

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


и ещё
если в файле хранятся числа из диапазона 1..50
то надо сменить "File of Integer" на "File of Byte"
дабы уменьшить размер файла
так как 1..50 * 2 < High(Byte) надеюсь такая абстрактная запись тебе будет ясна
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

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

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


ох как ты достал, говоришь то, что говорят в 9 классе в школе.
Чё слабо вторую задачу сделать?  Мне слабо sad.gif, поэтому и зашёл сюда, чтоб помогли её сделать болле знающие люди, а Есле ты не можешь, то не к чему разводить балаган на форуме. Я сюда обратился за помощью, а не с тоболй рамсеть. А если ты малой недоносок, то мне  с тобой вообще  не очём говорить.   >:(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Бывалый
***

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

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


"ох как ты достал, говоришь то, что говорят в 9 классе в школе."
ты значит ещё младше раз это в 9 классе говорят или ты на уроки не ходишь учёничёк  
"Чё слабо вторую задачу сделать?"
легко)примитивщина
но тебе походу не под силу...
молись ламер чтобы тебе её кто-нибудь решил либо плати WM-ами
тогда я тебе её решу
P.S. таким ослам - только за лаве  
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

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

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


Alex разве ты заходишь только поболтать? Что те не нравится?
я думаю не надо быть столь придирчивым к условию, я ведь его не сам выдумывал, MaxInt или т.п. Суть не в этом.
Сам ты нехороший человек, говориш чушь какую-то.
А на счёт того что Я немогу сделать, то Я сам сказал, что её слабо сделать.
Разве Я похож на  ламера? Если Я немогу сделать какие-то задачи, это не чего не значит.
И ещё ты нехороший человек, если такую как ты говориш прмитивщину за деньги делаешь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Бывалый
***

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

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


Ладно хватит паливать друг друга матом не из-за чего...
Вот прога, но я её мало тестил так что могут (да скорее всего они и есть) - быть глюки
Код

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.

Прогу не комментировал так что если чего непонятно - спрашивай.


--------------------
Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Бывалый
***

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

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


опять очередной соискатель халявы получил что хотел...обидно
понимаю хоть бы сам что-то сделал...
ведь всегда видно людей у которых просто что-то не получается и им достаточно порой намёка для решения их задачи - таким людям грех не помочь(сами тебе в другой раз помогут) а таким...
всё равно бестолку - ну что Ivs тебе решил ну и? мозги-то его ты себе не приложишь! ну и ладно  :P
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Новичок
*

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

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


Alex или Ivs у вас есть какие нибудь мысли по моей задаче?(Тема : "Сырая прога") Только ответьте пожалуйста!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Профи
****

Группа: Пользователи
Сообщений: 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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Бывалый
***

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

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


GLuk, ты прав про единственность файла, я что-то пропустил это условие, мое решение прошу считать ошибочным.


--------------------
Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


...
*****

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

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


for __Alex__ and Geroi: на форуме никаких разборок!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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