![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Gift |
![]()
Сообщение
#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); Код - в теги !!! |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ну и что этот код делает?
Кстати, двумя темами ниже есть очень похожее задание, только там нужно переместить нулевые элементы в конец файла. Вот тут... |
Guest |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата(volvo @ 4.03.05 21:02) Ну и что этот код делает? Кстати, двумя темами ниже есть очень похожее задание, только там нужно переместить нулевые элементы в конец файла. Вот тут... Показывает введеные данные. А как сделать с помощью filesise, filepos, seek? меня такой метод больше интересует. |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата(Guest @ 4.03.05 22:28) А как сделать с помощью filesise, filepos, seek? меня такой метод больше интересует. А вот сходи по ссылке, которую я дал в предыдущем посте, и вместо закомментированных строк поставь то, что нужно ... Конечно, нужно будет пользоваться filesize, filepos и seek... |
Guest |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата(volvo @ 4.03.05 23:39) А вот сходи по ссылке, которую я дал в предыдущем посте, и вместо закомментированных строк поставь то, что нужно ... Конечно, нужно будет пользоваться filesize, filepos и seek... я не очень понимаю как помоги плизззззззз |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Guest, ну в крайнем случае тебе придется воспользоваться дополнительным массивом (или файлом).
|
Guest |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата(volvo @ 5.03.05 12:55) Guest, ну в крайнем случае тебе придется воспользоваться дополнительным массивом (или файлом). массив должен быть один а вот переписат можно и вдругой файл |
volvo |
![]()
Сообщение
#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. |
Guest |
![]()
Сообщение
#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. Создать текстовый файл, где каждая строка файла - это предложение. Переставить местами первое и последнее слово каждого предложения. Переставленный текст записать строкой в новый текстовый файл. У кого какие есть предложения? Как всегда желательно все узреть наглядно, то есть в исходниках. |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Все-таки, наверное, поиск по форуму сделан для красоты. Или просто лень пользоваться? А самому подумать, как программы написать - тоже лень? Ведь они все однотипные.
Объясните, с чем именно возникает проблема... |
Guest |
![]()
Сообщение
#11
|
Гость ![]() |
Цитата(volvo @ 9.03.05 18:58) Все-таки, наверное, поиск по форуму сделан для красоты. Или просто лень пользоваться? А самому подумать, как программы написать - тоже лень? Ведь они все однотипные. Объясните, с чем именно возникает проблема... искал но ничего интересного не нашел просто хоть знать в каком направлениии капать. Приведенные условия это менее 10% всего условий к задачам. А я просто выкинул сюда то что меня больше интересует. НЕ все условие. Так сказать туплю с этими условиями ![]() |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
А "просто выкидывать условия" - бесполезно... Тут могут помочь, но решать все полностью, да еще после того, как на приведенное рещение ты отвечаешь своим - это навряд ли. Значит, умеешь, но не хочешь...
|
Guest |
![]()
Сообщение
#13
|
Гость ![]() |
Цитата(volvo @ 10.03.05 14:54) А "просто выкидывать условия" - бесполезно... Тут могут помочь, но решать все полностью, да еще после того, как на приведенное рещение ты отвечаешь своим - это навряд ли. Значит, умеешь, но не хочешь... да мне и помогли с функцией odd, я ее раньше и не знал я от нее и оттолкнулся+метод Шелла(это там где сортировка)+стандартного ввода ну и пожалуй все 1. мне хоть бы пример как с таким работать, ну скажем просто найти сумму у какойнить диагонали 2. тут вобще в догадках теряюсь 3. знаю как там буквами играть, а со словами лажа получаеться |
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
Цитата(Guest @ 10.03.05 15:50) 1. ... ну скажем просто найти сумму у какойнить диагонали FAQ: Матрицы - типичные задачи Цитата(Guest @ 10.03.05 15:50) 3. знаю как там буквами играть, а со словами лажа получаеться FAQ: Работа со строками |
Guest |
![]()
Сообщение
#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) у меня даже идеи никакой нет ваши предложения |
volvo |
![]()
Сообщение
#16
|
Гость ![]() |
Цитата(Guest @ 10.03.05 17:23) в типизированном не знаюю, как там эти filepos, seek, filesize использовать И это есть в FAQ.Цитата я хоть в правильном направлении мыслю Если речь об очередном изобретении велосипеда, то отвечаю: "Да, в правильном". Но вот пока этот кусок программы компилироваться не будет. "Несовместимые типы"... А прежде, чем говорить Цитата(Guest @ 10.03.05 17:23) нет, у меня проблема не в этом нужно хотя бы заглянуть по ссылке. Вот по второй ссылке как раз и была функция разбиения текста на строки...Я так понимаю, Вы хотите, чтобы Вам от и до все сделали? FAQ читать не желаете... |
Guest |
![]()
Сообщение
#17
|
Гость ![]() |
Цитата(volvo @ 10.03.05 18:53) И это есть в FAQ. Если речь об очередном изобретении велосипеда, то отвечаю: "Да, в правильном". Но вот пока этот кусок программы компилироваться не будет. "Несовместимые типы"... А прежде, чем говорить нужно хотя бы заглянуть по ссылке. Вот по второй ссылке как раз и была функция разбиения текста на строки... Я так понимаю, Вы хотите, чтобы Вам от и до все сделали? FAQ читать не желаете... нет, я нехочу от и до, к томуже это не все усовия задач, я просто хочу понять как с файом работать |
volvo |
![]()
Сообщение
#18
|
Гость ![]() |
Цитата(Guest @ 10.03.05 18:02) я просто хочу понять как с файом работать Тогда Вам сюда: FAQ: Файлы и работа с ними Закрыто. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 13:50 |