- •Методичні вказівки
- •1 Директивипрепроцесора. Багатомодульне програмування
- •1.1 Мета роботи
- •1.2 Вказівки щодо організації самостійної роботи студентів
- •1.3 Порядок виконання роботи
- •1.4 Контрольні запитання та завдання
- •1.5 Завдання
- •1.6 Варіанти завдань
- •1.7 Контрольний приклад
- •2.1 Мета роботи
- •2.2 Вказівки щодо організації самостійної роботи студентів
- •2.3 Порядок виконання роботи
- •2.4 Контрольні запитання та завдання
- •2.5 Завдання
- •2.6 Варіанти завдань
- •2.7 Контрольний приклад
- •3 Файлові потоки мови с
- •3.1 Мета роботи
- •3.2 Вказівки щодо організації самостійної роботи студентів
- •Ввод и вывод символов
- •Ввод и вывод строк
- •Ввод и вывод записей
- •Управление указателем файла
- •Состояние потока
- •Форматированный вывод
- •Форматированный ввод
- •Другие функции форматного ввода и вывода
- •Примеры
- •3.3 Порядок виконання роботи
- •3.4 Контрольні запитання та завдання
- •3.5 Завдання
- •3.6 Варіанти завдань
- •3.7 Контрольний приклад
- •4 Перегрузка операцій
- •4.1 Мета роботи
- •4.2 Вказівки щодо організації самостійної роботи студентів
- •4.3 Порядок виконання роботи
- •5.1 Мета роботи
- •5.2 Вказівки щодо організації самостійної роботи студентів Классы и объекты
- •Инкапсуляция
- •Конструктор
- •Деструктор
- •Указатели на объекты
- •Операции new и delete
- •5.3 Порядок виконання роботи
- •5.4 Контрольні запитання та завдання
- •5.5 Завдання
- •5.6 Варіанти завдань
- •5.7 Контрольний приклад
- •6 Наслідування, поліморфізм, інкапсуляция
- •6.1 Мета роботи
- •6.2 Вказівки щодо організації самостійної роботи студентів
- •Наследование
- •Уровни доступа
- •Виртуальные функции
- •Механизм работы виртуальных функций
- •Полиморфизм
- •Множественное наследование
- •6.3 Порядок виконання роботи
- •6.4 Контрольні запитання та завдання
- •6.5 Завдання
- •6.6 Варіанти завдань
- •6.7 Контрольний приклад
- •Рекомендована література
- •61166 Харків, просп. Леніна, 14.
3.7 Контрольний приклад
/*
Исходные данные для двумерного массива хранятся в текстовом файле, причем
первые числа соответствуют количеству строк и столбцов. Необходимо считать
информацию сохранить ее в тесктовый файл "f2.txt" и бинарный файл "f3.txt",
а также вывести на экран в форматированном виде.
Считать данные из бинарного файла и поместить их в новый массив
подсчитать количество отрацательных элементов в массиве и дописать
результат в конец файла "f2.txt". Для ввода и вывода использовать только
средства языка С.
Пример исходного файла "f1.txt"
3 4
5 4 7 4
-8 9 -9 -3
4 -5 6 5
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%s","Nachalo program\n");
FILE *fin(NULL),*fout(NULL);
char namef[40];
puts("Vvedite imja file\n");
gets(namef);//считываем строку с клавиатуры
fin=fopen(namef,"r");//открываем текстовый файл для чтения
if (!fin)
{
printf("Can not open file\n");
return 1;
}
fout=fopen("f2.txt","w");//открываем текстовый файл для записи
int n,m;//резмер массива n на m
fscanf(fin,"%d%d",&n,&m);//считываем два числа которые
int **mas=new int*[n];
int i,a;
for(i=0;i<n;i++)
mas[i]=new int[m];
//считываем данные из файла
for(i=0;i<n;i++)
for(int j=0;j<m;j++)
fscanf(fin,"%d",&mas[i][j]);
//выводим информацию на экран в форматированном виде
for(i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("%5d",mas[i][j]);//ширина поля вывода занимает 5 знакомест
}
printf("%c",'\n');
}
fclose(fin);
//выводим информацию в текстовый файл
for(i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
fprintf(fout,"%5d",mas[i][j]);//ширина поля вывода занимает 5 знакомест
}
fprintf(fout,"%c",'\n');
}
fclose(fout);
//выводим информацию в бинарный файл
for(i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
fprintf(fout,"%5d",mas[i][j]);//ширина поля вывода занимает 5 знакомест
}
fprintf(fout,"%c",'\n');
}
fout=fopen("f3.txt","wb");//открываем бинарный файл для записи
//записываем информацию в бинарный файл построчно
for(i=0;i<n;i++)
{
fwrite(mas[i],sizeof(int)*m,1, fout);
}
fclose(fout);
int **mas2=new int*[n];
for(i=0;i<n;i++)
{
mas2[i]=new int[m];
}
fin=fopen("f3.txt","rb");//открываем бинарный файл для чтения
//считываем информацию из бинарного файла построчно
for(i=0;i<n;i++)
{
fread(mas2[i],sizeof(int)*m,1, fin);
}
printf("%c",'\n');
//выводим информацию на экран в форматированном виде для
//проверки правильности полученной информации
for(i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("%5d",mas2[i][j]);//ширина поля вывода занимает 5 знакомест
}
printf("%c",'\n');
}
fclose(fout);
//подсчитаем количество отрицательных элементов
int otr(0);
for(i=0;i<n;i++)
for(int j=0;j<m;j++)
if(mas[i][j]<0) otr++;
fout=fopen("f2.txt","a+");
printf("%s%d","\nkoli4estvo otricat elementov= ",otr);
fprintf(fout,"%s%d","\nkoli4estvo otricat elementov= ",otr);
puts("\nKonec\n");
getchar();
return 0;
}
//---------------------------------------------------------------------------
/*
Содержимое файла после выполнения программы "f2.txt"
5 4 7 4
-8 9 -9 -3
4 -5 6 5
koli4estvo otricat elementov= 4
*/