ВУЗ:
Составители:
// Раздел объявления локальных переменных
FILE *f1; // Указатель на первый файл
FILE *f2; // Указатель на второй файл
int mas[N]; // Массив, элементами которого заполняется первый файл
int i, buf, nul, otr, pol; // i – переменная счетчика цикла
// buf – переменная, в которую будут
// считыватся значения из первого файла
// pol, otr, nul – переменные количества
// положительных, отрицательных и нулевых
// элементов первого файла соответственно
clrscr(); // Очистка экрана
printf("Составитель: Грибков Алексей Николаевич");
printf("\n\t\tФакультет КТФ, группа Р-11\n\n");
// Заполнение массива
for(i=0; i<N; i++)
{
printf("Введите %i элемент массива: ", i);
scanf("%i", &mas[i]); // Ввод элементов массива
}
// Создание в текущем каталоге файлов с именами file1 и file2
// и открытие их на запись
f1=fopen("file1","w+");
f2=fopen("file2","w+");
// Запись в файл с именем file1 элементов массива mas[N]
for(i=0; i<N; i++) fwrite(&mas[i],1,sizeof(int),f1);
fclose(f1); // Закрытие файла file1
pol=0; // Присвоение начального значения переменным
otr=0; // количества положительных, отрицательных и
nul=0; // нулевых элементов
// Открытие файла с именем file1 на чтение
fopen("file1","r+");
// Чтение из файла информации в переменную buf до тех пор,
// пока не наступит конец файла
while(fread(&buf,sizeof(int),1,f1)!=0)
{
// Если очередное значение переменной buf положительное, то
// значение переменной pol увеличивается на 1
if(buf>0) pol=pol+1;
// Если очередное значение переменной buf отрицательное, то
// значение переменной otr увеличивается на 1
if(buf<0) otr=otr+1;
// Если очередное значение переменной buf равно нулю, то
// значение переменной nul увеличивается на 1
if(buf==0) nul=nul+1;
}
// Запись в файл file2 количества положительных, отрицательных
// и нулевых элементов первого файла file1
fprintf(f2,"В ПЕРВОМ ФАЙЛЕ СОДЕРЖИТСЯ:\n");
fprintf(f2,"\nположительных элементов: %i", pol);
fprintf(f2,"\nотрицательных элементов: %i", otr);
fprintf(f2,"\nнулевых элементов: %i", nul);
// Вывод сообщения о завершении работы программы
printf("РАБОТА С ФАЙЛАМИ ЗАВЕРШЕНА");
printf("\nНажмите любую клавишу");
getch(); // Задержка экрана до нажатия любой клавиши
}
СОДЕРЖАНИЕ ОТЧЕТА ПО ЛАБОРАТОРНОЙ РАБОТЕ
1 Цель лабораторной работы.
2 Блок-схема алгоритма программы.
3 Текст программы.
4 Результат расчета.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1 Что такое поток?
2 Какой конфигурацией задается поток?
3 Какая функция используется для открытия потока?
4 Какая функция используется для закрытия потока?
ЗАКЛЮЧЕНИЕ