|
|
|
Cлияние файлов
|
|||
|---|---|---|---|
|
#18+
Дарофф всем! Может кто подскажет: 1. Как написать програму слияния двух файлов? 2. Дан некотоый арифметический вираз (записан как строка). Вивести содержимое тех скобок которие будут вычисляться первым. Заранее благодарный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 01:21 |
|
||
|
Cлияние файлов
|
|||
|---|---|---|---|
|
#18+
OenДарофф всем! Может кто подскажет: 1. Как написать програму слияния двух файлов? 2. Дан некотоый арифметический вираз (записан как строка). Вивести содержимое тех скобок которие будут вычисляться первым. Заранее благодарный. С первым пунсктом все просто. Алгоритм следующий: I. Если надо оставить исходные файлы "как есть": 1. Открыть исходные файлы на чтение; 2. Открыть файл на запись; 3. Копировать в выходной файл данные из исходных файлов (выполняется в цикле) 4. закрыть все открытые файлы II. Если надо слить исходные файлы в один: 1. Открыть исходные файлы: один на чтение, другой на запись; 3. Копировать в выходной файл данные из файла, открытого на чтение (выполняется в цикле) 4. закрыть все открытые файлы Со втрорым пунктом немного сложнее. Алгоритм примерно следующий (если нет вызовов функций): В цикле (пока не встретится конец строки) 1. Считаем открывающие скобки и запоминаем позицию в строке каждой из них. 2. Если встретилась закрывающая скобка, то запоминаем ее позицию в строке. 2.1. Вырезаем часть строки от последней открытой скобки до первой закрывающейся, выводим на экран. 2.2. Выходим из цикла 3. Если закрывающая скобка не встретилась и достигнут конец строки 3.1. генерируем сообщение об ошибке 3.2. Выходим из цикла 4. Если конец строки не достигнут - продолжаем цикл, иначе - выходим из цикла. Если есть вызовы функций внутри выражения, то надо будет немного подумать. Скорее всего, надо будет составить список служебных слов, типа: abs, sin, cos, log и т.д. и анализировать наличие этих слов в строке... Конкретная реализация - Ваша забота... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 07:23 |
|
||
|
Cлияние файлов
|
|||
|---|---|---|---|
|
#18+
Oen пишет: > 2. Дан некотоый арифметический вираз (записан как строка). Вивести > содержимое тех скобок которие будут вычисляться первым. почитайте где-нибудь про алгоритм Дейкстры. В сети есть. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 13:08 |
|
||
|
Cлияние файлов
|
|||
|---|---|---|---|
|
#18+
Станислав С пишет: > С первым пунсктом все просто. Алгоритм следующий: > I. Если надо оставить исходные файлы "как есть": > 1. Открыть исходные файлы на чтение; > 2. Открыть файл на запись; > 3. Копировать в выходной файл данные из исходных файлов (выполняется в > цикле) в смысле, сначала один, потом другой. > 4. закрыть все открытые файлы > II. Если надо слить исходные файлы в один: > 1. Открыть исходные файлы: один на чтение, другой на запись; > 3. Копировать в выходной файл данные из файла, открытого на чтение > (выполняется в цикле) Эдак он один файл перетрет. Надо еще перед этим в файле, открытом на запись, спозиционироваться на конец файла. > 4. закрыть все открытые файлы Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 13:10 |
|
||
|
Cлияние файлов
|
|||
|---|---|---|---|
|
#18+
MasterZiv Oen пишет: > 2. Дан некотоый арифметический вираз (записан как строка). Вивести > содержимое тех скобок которие будут вычисляться первым. почитайте где-нибудь про алгоритм Дейкстры. В сети есть. Posted via ActualForum NNTP Server 1.4 Никак не могу понять как его использовать для реализации даной задачи. (сам алгоритм находится здесь http://algolist.manual.ru/maths/graphs/shortpath/dijkstra.php) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 01:43 |
|
||
|
Cлияние файлов
|
|||
|---|---|---|---|
|
#18+
Oen пишет: > > 2. Дан некотоый арифметический вираз (записан как строка). Вивести > > содержимое тех скобок которие будут вычисляться первым. > > почитайте где-нибудь про алгоритм Дейкстры. В сети есть. > Никак не могу понять как его использовать для реализации даной задачи. > (сам алгоритм находится здесь > http://algolist.manual.ru/maths/graphs/shortpath/dijkstra.php) Не, это другой алгоритм Дейкстры. Это для поиска кратчайшего пути. А надо для разбора алгебраических выражений. http://algolist.manual.ru/syntax/revpn.php Правда я возможно неправильно дал его название - тут он приписывается Лукашевичу. Но меня тоже обманули - в другом источнике почему-то его называли алгоритмом Дейкстры. Или я что перепутал. Ну уж извините. Я думаю надо построить с помощью него дерево выражения, а затем получить все узлы, непосредственно лежащие "над" листовыми узлами. И потом для каждого такого узла вывести его правый дочерний узел, самого его, и левый дочерний узел. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 10:18 |
|
||
|
Cлияние файлов
|
|||
|---|---|---|---|
|
#18+
MasterZiv пишет: > Правда я возможно неправильно дал его название - тут он приписывается > Лукашевичу. Но меня тоже обманули - в другом источнике почему-то его > называли алгоритмом Дейкстры. Или я что перепутал. Ну уж извините. А, все ж правильно, польскую записть придумал Лукашевич, а алгоритм - Дейкстра. Там же все и написано. Ну успехов. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 10:20 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34468086&tid=2029011]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
145ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 408ms |

| 0 / 0 |
