Способы хранения информации

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    33,98 Кб
  • Опубликовано:
    2014-11-08
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Способы хранения информации

1. Цель работы


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

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

1.       Одномерный массив

2.      Типизированный файл

.        Линейный динамический список.

Необходимо обработать все эти данные по одному и тому же алгоритму в соответствии варианта задания и выполнить в виде трех процедур, не связанных между собой (например, при обработке типизированного файла или динамического списка не ссылаться на размер массива и т.д.). Так как исходные данные будут записаны в памяти тремя различными способами, то и подход к решению одной и той же задачи будет различен.

2. Данные задачи


Отсортировать только положительные числа, отрицательные оставить на своих местах. Затем вставить любое введенное положительное число в отсортированную последовательность, не нарушая при этом сортировку.

3. Словесное описание алгоритма


При запуске программа вызывает меню, в котором можно выбрать способ хранения данных при решении задачи (клавиши «1» - «4»).

При нажатии клавиши «1» программа вызывает процедуру решения задачи при помощи одномерных массивов.

При нажатии клавиши «2» задача будет решена при помощи типизированного файла.

При нажатии клавиши «3» для решения будут использованы динамические линейные списки.

При нажатии клавиши «4» завершается работа всей программы.

После попадания в одну из функций из текстового файла создаем соответственно массив, типизированный файл или динамический линейный список. Затем создаем вспомогательный массив из индексов положительных элементов при обработке в массиве и файле и адресов при обработке динамического линейного списка. После чего производим сортировку элементов по элементам вспомогательного массива. Читаем введенное с клавиатуры число. Проходим циклом по уже отсортированному массиву, и сравниваем текущий элемент с введенным числом. Как только находим элемент больше введенного, запоминаем его номер и выходим из цикла. Еще раз проходим по массиву с конца до элемента, который запомнили. В цикле сдвигаем элементы, и на нужную позицию записываем введенное число. Выводим на экран исходный, отсортированный и массив с новым элементом с помощью встроенной процедуры вывод. В процедуру посылаем текст и количество элементов массива.

4. Блок-схема алгоритма

 

.1 Блок-схема процедуры вывода

 


4.2 Блок-схема процедуры обработки данных с помощью одномерного массива

 


 



5. Листинг программы

program kyrs;crt;f:text; q:byte; f2:file of integer;MAS (var f:text);i, k, c, m, min, j, n, nom, p, l:integer;, b:array [1..250] of integer;vivod (t:string; k:integer);(t);i:=1 to k do(a[i], ' ');;(f);not seekeof(f) doinc(i);(f, a[i]);;:=i;:=0;a[i]>0 then begin(c);[c]:=i;;;:=1;:=a [b[i]];[b[i]]:=a [b[i+1]];[b[i+1]]:=m;i>1 then dec(i)inc(i);i>=c;;(p);:=0;i:=1 to k do:=i;;;i:=k+1 downto l+1 do a[i]:=a [i-1];[l]:=p;:=k+1;('ìàññèâ ñ íîâûì ýëåìåíòîì', k);; close(f);;TYP_FILE (var f:text);a, i, j, k, l, m, n, c, d:integer;:boolean;:array [1..250] of integer;vivod (t:string);;(t);(f2);not eof (f2) doread (f2, a);(a, ' ');;;(f);(f2);:=0;(f, a);(f2, a);;(f2);:=0;m:=0 to n doseek (f2, m);(f2, a);a>0 then begin(i);[i]:=m;;:=i;:=1;(f2, b[i]);(f2, a);(f2, b [i+1]);(f2, d);(f2, b[i]);(f2, d);(f2, b [i+1]);(f2, a);i>1 then dec(i)inc(i);i>=c;;;(m);(f2);j:=filesize(f2) - 1 downto 0 do(f2, j);(f2, a);a>0 then begin k:=0;m>a then begin(f2, filesize(f2));(f2, m); priz:=true;for i:=j-1 downto 0 do(f2, i); read (f2, a);a>0 then begina<m then break endinc(k);;; end;;priz=false thenj:=filesize(f2) - 1 downto i do(f2, j);(f2, a);(f2, a);;i=0 then(f2, i)seek (f2, i+1);(f2, m);;(f2,0);;SPIS (var f:text);uk=^sp;=record:integer;:uk;;p1, p2, first, first1, p3:uk; buf, c, i, m:integer;:array [1..150] of uk;:boolean;VIV (T:STRING);(T);:=first;p1<>nil do(p1^.x, ' ');:=p1^.adr;;;;:=nil;(f);not eof(f) do(p1);(f, p1^.x);first =nil then first:=p1p2^.adr:=p1;:=p1;;^.adr:=nil;:=0;:=first;p1<>nil do beginp1^.x>0 then begin(i);[i]:=p1;;:=p1^.adr;;:=i;:=1;:=b[i]^.x;[i]^.x:=b [i+1]^.x;[i+1]^.x:=m;i>1 then dec(i)inc(i);i>=c;(p3);(p3^.x);^.adr:=nil;:=first;p1^.x>p3^.x then begin^.adr:=first;:=p3;beginp1^.adr<>nil dop1^.adr^.x>0 thenp1^.adr^.x<p3^.x then p1:=p1^.adrbegin^.adr:=p1^.adr;^.adr:=p3;;p1:=p1^.adr;;p1^.adr=nil then p1^.adr:=p3; end;(f);;;;(f, 'f.txt');(f2,'f2.int');;q of

:MAS(f);

:SPIS(f);

:exit;;false;;.

 


Выводы

При написании проекта по программированию на языке Pascal, я использовала различные способы хранения данных при решении задачи. Каждый из них имеет свои достоинства и недостатки.

Массив.

Достоинства:

ü Замена элемента при помощи оператора присваивания;

ü  Прямое обращение к элементу за счет индекса.

ü  Высокая скорость обработки.

Недостатки:

Ø Задание размера массива при описании переменных;

Ø  Отсутствие динамики, невозможность удаления или добавления элемента без сдвига других.

Ø  Размер выделяемой памяти ограничен, для этого, нужно заранее указать количество элементов массива.

Ø  Необходимо хранить индекс последнего элемента для корректного вывода.

Типизированный файл.

Достоинства:

ü Нет необходимости многократно вводить данные при отладке;

ü  Компактное хранение данных.

ü  Определение количества элементов при помощи функции;

ü  Не требуется указывать размер при описании переменных;

ü  Изменение размера файла (возможность отсекать с нужного элемента и добавлять элементы в конец файла).

ü  В случае непредвиденного прекращения программы, данные сохраняются, так как файл хранится на жестком диске.

Недостатки:

Ø  Чтение в переменную для вывода.

Ø  При удалении элементов и освобождении первой компоненты, также нужно циклически сдвигать все элементы в файле.

Динамический список.

Достоинства:

ü Резервирование и освобождение памяти по мере необходимости;

ü  Не требуется указывать размер при описании переменных.

ü  Удобный доступ к переменной через указатель.

ü  Добавление нового элемента не требует дополнительных операций.

Недостатки:

Ø Нет возможности напрямую перейти к нужному элементу;

Ø  Возникновение проблем потерянных ссылок.

Ø  Возможна потеря данных.

Ø  При удалении какой-либо компоненты нужно всегда использовать процедуру Dispose, иначе память компьютера «засорится».

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

массив информация алгоритм положительный

Похожие работы на - Способы хранения информации

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!