Непейвода Н.Н. Программирование. Раздел 2

Непейвода Н.Н. Программирование. Страница 246

printf("\nlf N = %i %i\n", N, i);

}

scanf(M%c",&N);

}

while (N != 'n');

{f = fopen ("prime, txt"xv "); //

fprintf(ft"%i:",k); IIФрагмент, ответственный за

for (i=l;i<k;i++) IIдолговременное хранение fprintf(f, "%i", a[i]); IIполученных результатов}

fclosef); return0;

// //

Как и раньше, в этой программе курсивом выделены добавления и измене­ния текста предыдущей программы. Стоит отметить, что фрагмент, ответ­ственный за долговременное хранение полученных результатов, может быть улучшен, так как нет надобности перезаписи файла, когда он фактически не меняется.

В программе Рпте_МитЬег8_4 получено отображение массива выявлен­ных простых чисел на файл. В данном случае файл рассматривается не как новая структура данных, а просто как способ быстрой инициализации без необходимости каждый раз пересчитывать старые результаты (ведь никто не пересчитывает первые несколько десятков знаков числа тг).

Вообще говоря, файл также может являться и полноценной структурой данных, активной единицей. Например, вместо считывания массива можно заменить все операции обращения к нему операциями поиска в файле. По­лучится нечто вроде пополняемого списка простых чисел: либо находим и извлекаем нужное, либо добавляем новые простые числа. Это показывает, что файл является одной из структур данных, естественно соответству­ющих потоку. В данном случае файл, как и массив, является машинным представлением предвычисленной функции, но результаты вычислений хра­нятся в долговременной памяти.

Такой способ долговременного запоминания подходит для очень боль­ших чисел, когда размеры используемого "списка" превосходят возможности оперативной памяти или разрядность используемых типов данных. Кстати, при таких условиях может оказаться, что имеет смысл вернуться к самой первой версии программы без запоминания, противопоставив большой объ­ем (избыточных) вычислений огромному количеству затрачиваемой памяти.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета &quot;Ангара-А5В&quot; в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие &quot;Крокодилы&quot;

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама