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