1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
| Гость |
25.03.2007 14:37
Сообщение
#1
|
|
Гость |
Читал раздел в FAQ и поиск результатов тоже не дал. Помогите с решением задачи!
Дан файл f компонентами которого являются целые числа.Число компонент делится на 4. Никакая из компонент не равна нулю. Файл f содержит равное кол-во отрицательных и положительных компонент.Переписать компоненты этого файла в файл k так, чтобы в файле k числа шли в след. порядке: 2 отрицательных,2 положительных,2 отриц.,2 положит. и т.д. Подскажите как это реализовать,пожалуйста. Заренее благодарен. |
| мисс_граффити |
25.03.2007 15:33
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Можно пойти таким путем: переносим все отрицательные числа в новый файл, между ними вставляя, например, ноль. То есть получаем последовательность типа
-1 -2 0 0 -4 -5 0 0 -9 -11 0 0 за второй проход заменяем все нули положительными числами из старого файла. алгоритм упрощается до предела, возвратов назад в файле немного: фактически, все делается за 2 прохода в каждом из файлов. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
| volvo |
25.03.2007 16:07
Сообщение
#3
|
|
Гость |
Можно сделать за один проход... Вот тут было нечто очень похожее, только там надо было чередовать положительные/отрицательные числа:
Сурсы -> Типизированные файлы |
| мисс_граффити |
25.03.2007 16:23
Сообщение
#4
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
там постоянно приходится возвращаться:
seek(f, pos); это не один проход (если понимать под проходом считывание каждого элемента по одному разу). а за счет того, что нам надо по два элемента, этот показатель еще ухудшится... если я правильно поняла. хотя, конечно, новый файл меньше мучаем. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
| Гость |
25.03.2007 23:29
Сообщение
#5
|
|
Гость |
Хочу задать вопрос...вы посчитаете его думаю глупым,но и всё же. А данный файл f мы используем только для чтения и копирования в другой файл компонен?
|
| volvo |
25.03.2007 23:33
Сообщение
#6
|
|
Гость |
В принципе, это то, что требовалось по условию:
Цитата(Условие) ... Переписать компоненты этого файла в файл k ... |
| Гость |
26.03.2007 16:14
Сообщение
#7
|
|
Гость |
А что должно быть в самом файле f?
Вот как у меня получается: var f:file of integer; Я правильно понимаю,что данные нужно ввести все с клавиатуры? А то, что кол-во положительных и отрицательных компонент в файле нужно просто записать как комментарий например?Или оно должно уравниваться в самом тексте написания файла? Не совсем даже (как оказалось |
| мисс_граффити |
26.03.2007 16:26
Сообщение
#8
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
ты их заносишь в массив, а надо - в файл.
так файл останется пустым. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
| Гость |
26.03.2007 16:44
Сообщение
#9
|
|
Гость |
нужно просто без массива? так?
var f:file of integer; |
| Гость |
27.03.2007 11:36
Сообщение
#10
|
|
Гость |
Помогите плиз!!!
в самом файле (данном якобы) данные вводиться должны с клавиатуры?Или они должны быть заданы константой, чтобы можно бфло работать с этим файлом...?? |
| мисс_граффити |
27.03.2007 14:39
Сообщение
#11
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
можешь написать отдельную программку, ею создавать и заполнять файл.
тогда для этой программы файл действительно будет дан. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
| Гость |
27.03.2007 15:20
Сообщение
#12
|
|
Гость |
Осталось для меня проблемой чередование по 2 отрицательных и положительных компонента.
|
| мисс_граффити |
27.03.2007 15:25
Сообщение
#13
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
ты пробовал(а) реализовать предложенный мной вариант? показывай попытки... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
| Гость |
27.03.2007 15:36
Сообщение
#14
|
|
Гость |
Я его даже не сохранил...
|
| Гость |
27.03.2007 18:45
Сообщение
#15
|
|
Гость |
что-то совсем не получается ничего.Еще и ошибка теперь:(А завтра уже нужно сдавать:(
посмотрите плиз... Assign(f,'f.dan'); |
| мисс_граффити |
27.03.2007 22:28
Сообщение
#16
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
сделай нормально форматирование - увидишь ошибку.
вложенный цикл по той же переменной... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
| Гость |
27.03.2007 23:31
Сообщение
#17
|
|
Гость |
одну ошибку я нашел и исправил...
по-прежнему не могу сделать чередование:( Помогите пожалуйста! Сдавать завтра! Не могу понять и всё |
| КМА |
27.03.2007 23:38
Сообщение
#18
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Репутация: 3 |
А идея остортировать файл не пойдет??? При этом сортировка будет иметь следующий вид.
Первые n/2 элементы будут отрицательными числами, а вторые -- положительными. Тогда вставлять сразу два из первой половины, и два из второй. Вся суть состоит только в грамотной сортировке (т. е. на необязательно по возрастанию или убыванию, нам достаточно все отрицательные перенести в правую часть массива). Т. е. мы проходим по первой части и ищем положительные элементы, если мы их нашли, то переходим во вторую часть и ищем отрицательный, затем меняем их местами. |
| Гость |
27.03.2007 23:49
Сообщение
#19
|
|
Гость |
Сейчас что-то еще попробую.
Может получится отсортировать или еще как-то... |
| Гость |
28.03.2007 0:21
Сообщение
#20
|
|
Гость |
Ничего у меня не получилось с этой программой (видимо него-то не знаю)... Если сможете, то напишите здесь, может до меня всё-таки дойдет. Спасибо.
|
![]() ![]() |
|
Текстовая версия | 15.12.2025 16:29 |