Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ СИ. Лабораторный практикум доцента кафедры «Системы управления и компьютерные технологии» Пановой Т.В..doc
Скачиваний:
106
Добавлен:
26.03.2015
Размер:
585.22 Кб
Скачать

2. Текст программы:

#include <stdio.h>

#include <conio.h>

#define num 20

int nrec,size;

FILE *fd; int Create(char *name, int sz) // Создание пустого файла {

if ((fd=fopen(name,"wb"))!=NULL) // Создание нового файла для записи

{

size=sz; nrec=0;

fwrite((void*)&nrec,sizeof(int),1,fd); // Запись в файл nrec и size

fwrite((void*)&size,sizeof(int),1,fd);

fclose(fd);

return 1;

}

else

return 0; // файл не создан } int Open(char *name) // Открытие файла {

if ((fd=fopen(name,"rb+wb"))!=NULL) /* открытие существующего для чтения и записи */

{

fwrite((void*)&nrec,sizeof(int),1,fd); // читать из файла nrec и size

fwrite((void*)&size,sizeof(int),1,fd);

fseek(fd,0L,SEEK_ END);

if (ftell(fd)==2*sizeof(int)+(long)nrec*size) /* проверка на соответствие длины файла значениям nrec и size */

return 1; // файл открыт

fclose(fd);

}

return 0; // файл не открыт }

void *Get(int n) /* Загрузка из файла записи в динамическую переменную (n – номер записи)

{

void *pp;

if ((fd!=NULL) && (n<nrec)) // Файл открыт и номер записи корректен

{

pp=(void*)new char[size]; // Создание динамической переменной

if ((fseek(fd,2*sizeof(int)+n*size,SEEK_SET)!=EOF)&&(fread(pp,size,1,fd)==1))

return pp;

else

delete pp;

}

return NULL; // Файл не открыт или номер записи некорректен

} int Append(void *pp) // Добавление записи {

if (fd!=NULL)

{

fseek(fd,0L,SEEK_ END); // Установить на конец файла

if (fwrite(pp,size,1,fd)==1)

{

nrec++;

fseek(fd,0L,SEEK_ SET); // Обновить переменную nrec в файле

if (fwrite((void*)&nrec,sizeof(int),1,fd)==1)

return 1;

}

}

return 0; // Файл не открыт

}

void main()

{

double a,*pd [20];

if (Create("a.dat",sizeof(double))&&Open("a.dat"))

{

for (int i=0; i<num; i++) // Добавить num переменных

{

a=i;

Append((void*)&a);

}

/* Чтение в обратном порядке в динамические переменные и формирование массива указателей */

for (int i=0; i<num; i++)

pd[i]=(double*)Get(num-1-i);

printf(“\n”);

for (i=0; i<num;i++)

printf(“%f “,*pd[i]);

}

else

printf(“\nФайл не создан или не открыт!”);

getch();

return;

}

2. Выполнение индивидуального задания.

1. Постановка задачи.

Разработать алгоритм и написать программу, соглано индивидуальному заданию.

2. Входные и выходные данные.

Все действующие в программе переменные должны быть объявлены.

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

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

Представить алгоритм решения задачи в виде блок-схемы.

4. Текст программы.

Разработанный алгоритм реализуется на языке программирования высокого уровня Cи.

5. Тестирование.

Результаты тестирования представить в виде таблицы.

IV. Требования к разработке программы.

Программа должна содержать следующие три составные части:

  • ввод исходных данных;

  • обработку данных;

  • вывод результатов.

Произвести отладку и тестирование разработанной программы.

V. Требования к защите индивидуальных заданий.

ИМЕТЬ отчет, который включает:

  1. постановку задачи;

  2. блок-схему алгоритма;

  3. текст программы;

  4. результаты тестирования.

ЗНАТЬ ответы на контрольные вопросы.

VI. Варианты индивидуальных заданий.

Разработать алгоритмы решения задач, написать программы, реализующие соответствующие алгоритмы, и выполнить их тестирование.

Вариант №1

    1. Подсчитать количество строк в существующем текстовом файле.

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

Вариант №2

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

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

Вариант №3

        1. Считать числа, записанные в текстовом файле, каждое на новой строке, в одномерный массив.

        2. Создать пустой двоичный файл, открыть существующий файл, записать в файл целое число, начиная с 10-й позиции.

Вариант №4

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

  2. Создать пустой бинарный файл, открыть существующий файл, добавить в него 20 вещественных чисел, записать последнее число между 5-м и 6-м числом.

Вариант №5

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

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

Вариант №6

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

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

Вариант №7

  1. Просмотреть текстовый файл по абзацам (абзац - любая последовательность строк, ограниченная пустой строкой).

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

Вариант №8

          1. В текстовом файле записаны фразы, который отделены друг от друга точками, слова – пробелами и знаками препинаниями; заменить все пробелы запятыми.

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

Вариант №9

  1. Подсчитать количество точек в существующем текстовом файле.

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

Вариант №10

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

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

Вариант №11

  1. Подсчитать количество абзацев в существующем текстовом файле (абзац – любая последовательность строк, ограниченная пустой строкой).

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

Вариант №12

  1. В текстовом файле записаны целые числа в виде матрицы (элементы в строках разделены пробелами), заменить в матрице все отрицательные значения на максимальное значение.

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

Вариант №13

  1. Подсчитать количество цифр в существующем текстовом файле.

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

Вариант №14

        1. В текстовом файле записаны фразы, который отделены друг от друга точками, слова – пробелами и знаками препинаниями; удалить все знаки препинания.

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

Вариант №15

  1. В текстовом файле записана целочисленная матрица (элементы в строках разделены пробелами), заменить в ней все положительные элементы минимальным элементом матрицы.

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

Вариант №16

  1. Подсчитать количество символов в существующем текстовом файле.

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

Вариант №17

    1. В текстовом файле записана матрица вещественных чисел (элементы в строках разделены пробелами), записать ее в другой файл, заменив минимальный элемент матрицы максимальным.

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

Вариант №18

  1. Подсчитать количество пробелов в существующем текстовом файле.

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

Вариант №19

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

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

Вариант №20

  1. Считать числа, записанные в текстовом файле через пробел, в одномерный массив.

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

Вариант №21

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

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

Вариант №22

  1. Подсчитать количество полных страниц в существующем текстовом файле.

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

Вариант №23

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

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

Вариант №24

        1. Просмотреть постранично существующий текстовый файл.

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

Вариант №25

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

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

56

Соседние файлы в предмете Программирование