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

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

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

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


Гость






Как переместить четные числа в начало, а нечетные в конец не изменяя порядка
следования чисел с одинаковой четностью.
есть
12 7 9 6 -5 -6
4 6 -7 23 -24 9

надо
12 6 -6 7 9 -5
4 6 -24 -7 23 9

Код
uses crt;
const n=9;
type mas=array[1..6] of integer;
var
f:file of mas;
i,x,min,max,num_of_max:integer;
a:mas;
begin
clrscr;
randomize;
assign(f,'000.000');
rewrite(f);
for i:=1 to n do
begin
for x:=1 to n do
begin
 a[x]:=random(99);
 write(a[x]:3);
end;
writeln;
write(f,a);
writeln;
end;
close(f);


Код - в теги !!!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Ну и что этот код делает?
Кстати, двумя темами ниже есть очень похожее задание, только там нужно переместить нулевые элементы в конец файла.
Вот тут...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(volvo @ 4.03.05 21:02)
Ну и что этот код делает?
Кстати, двумя темами ниже есть очень похожее задание, только там нужно переместить нулевые элементы в конец файла.
Вот тут...

Показывает введеные данные.
А как сделать с помощью filesise, filepos, seek?
меня такой метод больше интересует.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата(Guest @ 4.03.05 22:28)
А как сделать с помощью filesise, filepos, seek?
меня такой метод больше интересует.


А вот сходи по ссылке, которую я дал в предыдущем посте, и вместо закомментированных строк поставь то, что нужно ... Конечно, нужно будет пользоваться filesize, filepos и seek...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата(volvo @ 4.03.05 23:39)
А вот сходи по ссылке, которую я дал в предыдущем посте, и вместо закомментированных строк поставь то, что нужно ... Конечно, нужно будет пользоваться filesize, filepos и seek...

я не очень понимаю как
помоги плизззззззз
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Guest, ну в крайнем случае тебе придется воспользоваться дополнительным массивом (или файлом).
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата(volvo @ 5.03.05 12:55)
Guest, ну в крайнем случае тебе придется воспользоваться дополнительным массивом (или файлом).

массив должен быть один
а вот переписат можно и вдругой файл
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Ну вот так можно... Правда не очень рационально, но зато без дополнительных массивов и файлов...
Исходный код
const
n = 8;
arr: array[1 .. n] of integer =
(1, 2, 3, 4, 5, 6, 7, 8);

var
f: file of integer;

function good: boolean;
var
x: integer;
res: boolean;
begin
reset(f);
repeat
read(f, x)
until odd(x);

res := true;
while (not eof(f)) and res do
begin
read(f, x);
res := res and odd(x)
end;
good := res
end;

procedure change;
var x, T: integer;
begin
reset(f);
repeat
read(f, x);
until odd(x);

T := x;
while not eof(f) do
begin
read(f, x);
seek(f, filepos(f) - 2);
write(f, x);
seek(f, filepos(f) + 1);
end;
seek(f, filesize(f) - 1);
write(f, T);
end;

var
i: integer;
x: integer;
f_read, f_write: longint;

begin
assign(f, 'test.ttt');
rewrite(f);

for i := 1 to n do
write(f, arr[i]);

{ check }
writeln('before sorting:');
reset(f);
while not eof(f) do
begin
read(f, x);
write(x:5)
end;
writeln;

while not good do
change;

{ check it: }
writeln('after sorting:');
reset(f);
while not eof(f) do
begin
read(f, x);
write(x:5)
end;
writeln;

close(f)
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Всем спасибо за предыдущую задачу. А вот мой вариант:
Исходный код
uses crt;
const n=9;
type mas=array[1..n] of integer;
fmass=file of mas;
var
f: fmass;
i,x:integer;
a:mas;
procedure oddSort(var m:mas);
var x1,t:integer;
begin
x1:=1;
while(x1<n)do
begin
if odd(M[x1]) and not odd(M[x1+1])
then
begin
t:=m[x1];
m[x1]:=m[x1+1];
m[x1+1]:=t;
x1:=x1-1;
if x1<1 then x1:=1;
end
else
x1:=x1+1;
end;
end;
procedure vivod(var f :fmass );
begin
reset(f);
writeln;
while not eof(f) do
begin
read(f,a);
for x:=1 to n do
write(a[x],' ');
writeln;
end;
end;
begin
clrscr;
randomize;
assign(f,'000.000');
{$I-}reset(f);{$I+}
if ioresult<>0 then begin
rewrite(f);
repeat
for i:=1 to n do
a[i]:=random(10);
write(f,a);
writeln('vvesti eshe ?', 'y');
until readkey='n';
close (f);
end;
window(1,1,40,25);
vivod(f);
reset(f);
while not eof(f) do
begin read(f,a);
oddSort(a);
seek(f,filepos(f)-1);
write(f,a);
end;
window(40,1,80, 25);
vivod(f);
readkey;
close(f);
end.



1. создать файл f1, где каждая компонента - матрица nXn. Поменять местами элементы лежащие на главной и побочной диагоналях в каждой компоненте (т. е. матрице) файла. Минимальное значение каждой компоненты записать в файл f2.

2. создать файл f1, где компонента массив из n чисел(n кратно трем). Переставить числа в каждой комбинации таким образом:
есть
123 456 789
321 654 987
Средние числа каждой проссумировать и общую сумму каждой компоненты записать в файл f2,
а в файл f1 преставленные компоненты записать обратно после перестановки. В файле f2 найти максимальное значение и удолить. Вывести файлы на экран.

3. Создать текстовый файл, где каждая строка файла - это предложение. Переставить местами первое и последнее слово каждого предложения. Переставленный текст записать строкой в новый текстовый файл.

У кого какие есть предложения?
Как всегда желательно все узреть наглядно, то есть в исходниках.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Все-таки, наверное, поиск по форуму сделан для красоты. Или просто лень пользоваться? А самому подумать, как программы написать - тоже лень? Ведь они все однотипные.

Объясните, с чем именно возникает проблема...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Цитата(volvo @ 9.03.05 18:58)
Все-таки, наверное, поиск по форуму сделан для красоты. Или просто лень пользоваться? А самому подумать, как программы написать - тоже лень? Ведь они все однотипные.

Объясните, с чем именно возникает проблема...

искал но ничего интересного не нашел
просто хоть знать в каком направлениии капать.
Приведенные условия это менее 10% всего условий к задачам.
А я просто выкинул сюда то что меня больше интересует. НЕ все условие.
Так сказать туплю с этими условиями smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






А "просто выкидывать условия" - бесполезно... Тут могут помочь, но решать все полностью, да еще после того, как на приведенное рещение ты отвечаешь своим - это навряд ли. Значит, умеешь, но не хочешь...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Цитата(volvo @ 10.03.05 14:54)
А "просто выкидывать условия" - бесполезно... Тут могут помочь, но решать все полностью, да еще после того, как на приведенное рещение ты отвечаешь своим - это навряд ли. Значит, умеешь, но не хочешь...

да мне и помогли с функцией odd, я ее раньше и не знал
я от нее и оттолкнулся+метод Шелла(это там где сортировка)+стандартного ввода ну и пожалуй все

1. мне хоть бы пример как с таким работать, ну скажем просто найти сумму у какойнить диагонали

2. тут вобще в догадках теряюсь

3. знаю как там буквами играть, а со словами лажа получаеться
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Цитата(Guest @ 10.03.05 15:50)
1. ... ну скажем просто найти сумму у какойнить диагонали

FAQ: Матрицы - типичные задачи

Цитата(Guest @ 10.03.05 15:50)
3. знаю как там буквами играть, а со словами лажа получаеться

FAQ: Работа со строками
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






Цитата(volvo @ 10.03.05 16:57)

нет, у меня проблема не в этом

у меня проблемы с файлами, как это будет с файлами работать?
в текстовом скорее всего как со стрингами
Код
 kpr:=['.','!','?'];
 ksl:=[' ',':',';'];
 ksl:=ksl+kpr;
 assign(f,'file1');
 rewrite(f);
 write('Enter string: ');
 readln(s);

for i:=1 to length(s) do
   begin
   if not(s[i] in ksl) then inc(kb);
       if (s[i] in kpr) then while not((length(s))-1 in ksl) do inc(kkb);
      copy(s[i], kb);
      copy(length(s)-kkb-1, kkb);


я хоть в правильном направлении мыслю

тоесть пока не первый признак конца слова запоминаем количество букв.
если конец редложения то идем обратно пока не признак конца слова.
выделяем первое и помледнее слова.
как поменять?

в типизированном не знаюю, как там эти filepos, seek, filesize использовать

а как на счет задачи нумбер 2) у меня даже идеи никакой нет
ваши предложения
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Гость






Цитата(Guest @ 10.03.05 17:23)
в типизированном не знаюю, как там эти filepos, seek, filesize использовать
И это есть в FAQ.

Цитата
я хоть в правильном направлении мыслю

Если речь об очередном изобретении велосипеда, то отвечаю: "Да, в правильном". Но вот пока этот кусок программы компилироваться не будет. "Несовместимые типы"... А прежде, чем говорить
Цитата(Guest @ 10.03.05 17:23)
нет, у меня проблема не в этом
нужно хотя бы заглянуть по ссылке. Вот по второй ссылке как раз и была функция разбиения текста на строки...

Я так понимаю, Вы хотите, чтобы Вам от и до все сделали? FAQ читать не желаете...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Цитата(volvo @ 10.03.05 18:53)
И это есть в FAQ.
Если речь об очередном изобретении велосипеда, то отвечаю: "Да, в правильном". Но вот пока этот кусок программы компилироваться не будет. "Несовместимые типы"... А прежде, чем говорить
нужно хотя бы заглянуть по ссылке. Вот по второй ссылке как раз и была функция разбиения текста на строки...

Я так понимаю, Вы хотите, чтобы Вам от и до все сделали? FAQ читать не желаете...

нет, я нехочу от и до, к томуже это не все усовия задач,
я просто хочу понять как с файом работать
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гость






Цитата(Guest @ 10.03.05 18:02)
я просто хочу понять как с файом работать

Тогда Вам сюда: FAQ: Файлы и работа с ними

Закрыто.
 К началу страницы 
+ Ответить 

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

 





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