Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Progr_v_integrirovannykh_sredakh_2010.doc
Скачиваний:
12
Добавлен:
16.09.2019
Размер:
350.72 Кб
Скачать

Лабораторная работа №6 файлы

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

Задание к лабораторной работе

  1. Изучить основные принципы и особенности организации обмена с внешней памятью на языке Си;

  2. Ознакомиться с особенностями динамического распределения памяти средствами языка Си, использованием динамического распределения памяти в программах, реализующих алгоритмы обработки массивов информации.

  3. Выполнить последовательно все пункты, указанные в разделе «Ход работы»;

  4. Написать программу в соответствии с выданным вариантом задания (см. раздел «Варианты заданий»), при выполнении любого из заданий массивы, используемые для промежуточного хранения данных, должны размещаться в памяти динамически;

  5. Оформить отчет.

Ход работы

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

#include <stdio.h>

#include <stdlib.h>

void main()

{

FILE *f;

int i,size,*array;

f=fopen("lab1.dat","rb"); /* открыть файл */

if (f) { /* если операция открытия успешна */

/* определить размер файла */

fseek(f,0L,SEEK_END);

size=ftell(f)/sizeof(int);

fseek(f,0L,SEEK_SET);

array=(int *)malloc(size); /* выделить память под размещение */

/* массива */

for (i=0; i<size; i++) {

fread(&array[i],sizeof(int),1,f); /* читать из файла целое число */

printf("%d\n",array[i]); /* вывести число на экран */

} } }

2. Используя программу, полученную в ходе выполнения лабораторной работы №5, осуществить сохранение массива структур в бинарный файл.

3. Написать отдельную программу чтения массива из структур из файла и вывода на экран, используя функции, написанные в лабораторной работе №5.

Варианты заданий

Изменить программу, разработанную в ходе лабораторной работы №3, таким образом чтобы ввод исходных данных осуществлялся из файла, результат также должен выводиться в файл.

Лабораторная работа №7 указатели и списки

Цель работы: закрепить навыки работы с динамической памятью, научиться работать с указателями и связанными списками.

Задание к лабораторной работе

  1. Изучить основные принципы построения связанных списков и алгоритмы их обработки;

  2. Выполнить последовательно все пункты, указанные в разделе «Ход работы»;

  3. Написать программу (функцию) в соответствии с выданным вариантом задания (см. раздел «Варианты заданий»);

  4. Оформить отчет.

Ход работы

  1. Объявить две переменные и один указатель. Ввести значения переменных. Вывести значения переменных, используя указатель.

  2. Объявить указатель на структуру данных. Заполнить структуру данными, предварительно выделив память. Прочесть структуру из памяти, вывести на экран. Очистить память.

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

Варианты заданий

  1. Организовать связанный список структур в динамической памяти. Связанный список формируется путем добавления в структуру указателя на следующую структуру в цепочке. Указатель конечного элемента цепочки имеет значение NULL. Написать функцию для добавления элемента в начало списка и удаления всего списка из памяти.

  2. Написать функцию вывода списка на экран, принимающую указатель на первый элемент списка.

  3. Написать функцию удаления произвольного элемента списка. Функция принимает два параметра – указатель на начало списка и указатель на удаляемый элемент.

  4. Написать функцию для вставки элемента в произвольное место списка. Функция принимает два параметра – указатель на элемент, после которого нужно вставить новый элемент и указатель на новый элемент.

  5. Написать функцию, меняющую местами два элемента списка. Принимаемые параметры – указатель на начало списка, указатель на первый и второй элемент, которые требуется поменять местами.

  6. Организовать двусвязный (двунаправленный) список. Написать функцию для удаления списка из памяти.

  7. Написать функцию для создания, заполнения элемента списка и включения его в цепочку.

  8. Написать функцию для вывода списка на экран с начала и с конца.

  9. Написать функцию для удаления произвольного элемента двусвязного списка. Функция должна принимать только указатель на удаляемый элемент.

  10. Написать функцию для добавления элемента в произвольное место списка.

  11. Организовать кольцевой (циклический) список. Написать функцию для удаления списка из памяти.

  12. Написать функцию для создания, заполнения элемента списка и включения его в цепочку.

  13. Написать функцию для вывода списка на экран с начала и с конца.

  14. Написать функцию для удаления произвольного элемента кольцевого списка. Функция должна принимать только указатель на удаляемый элемент.

  15. Написать функцию для добавления элемента в произвольное место списка.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]