МІНІСТЕРСТВО ОСВІТИ І НАУКИ, молоді та спорту УКРАЇНИ
Національний АЕРОКОСМІЧНИЙ університет ім. М.Є. Жуковського
Харківський авіаційний інститут
Кафедра комп ютерних систем та мереж
Домашнє Завдання №2
з дисципліни Обчислювальна техніка та програмування
Робота з бінарнімі файлами
Виконала студент гр. 516Б Момот О.О.
Перевірів ст. викладач каф. 503 Дужа В. В.
2013
1. Порядок виконання роботи
Написати програму для створення вихідного двійкового файлу чисел (тип чисел зазначений у варіанті) з довільною кількістю елементів. Передбачити можливість завдання кількості елементів і їх значення двома способами: з клавіатури (до 10 елементів); за допомогою датчика випадкових чисел (понад 10 елементів). Вихідні дані задати, враховуючи специфіку конкретного варіанту. Реалізувати завдання відповідно до варіантом. Результат обчислень і вміст вихідного файлу вивести на екран, якщо кількість елементів у вихідному файлі не більше 10, а якщо більше, то результати вивести в текстовий файл.
Прочитати з файлу дійсні восьмибайтових елементи, підрахувати загальну кількість елементів файла, а також замінити у файлі:
. Всі негативні елементи на середнє арифметичне всіх позитивних елементів файлу.
. Алгоритм програми
. Тестові набори
№ тестаВвод елементів массіваОжідаемий результат1Размер 5: - 1 - 2 - 3 - 4 55: 5 5 5 5 52Размер 5: 1 2 3 - 4 - 55: 1 2 3 2 23Размер 5: 1 1 1- 2 - 35 1 1 1 1 1
4. Код програми
1 #include lt; stdio.h gt;
# include lt; stdlib.h gt;
# include lt; locale.h gt;
# include lt; windows.h gt;
# include lt; time.h gt;
# include lt; string.h gt;
# define MAX 100
int main (void)
{
FILE * fd, * ft;
char fname [50];
printf ( Input name file: );
gets (fname);
fd=fopen (fname, wb + );
if (fd == NULL)
{
printf ( Error in the name file -% s n , fname);
return 0;
}
int mas [MAX];
int size;
int menu, menu2;
printf ( Menu 1 n1 - Manual input size of array n2 - Random input size of array nEnter: );
while (scanf (% i raquo ;, amp; menu2)!=1 || menu2 gt;=3 || menu2 lt;=0)
{
printf ( Error! Input correct data: );
fflush stdin;
}
switch (menu2)
{
case 1: printf ( Input size array: );
while (scanf (% i raquo ;, amp; size)!=1 || size == 0 || size gt; 10)
{
printf ( Error! Input correct data: );
fflush stdin;
}
break;
case 2: srand (time (NULL));
int a, b;
printf ( Input first of range: );
while (scanf (% i raquo ;, amp; a)!=1 || a == 0)
{
printf ( Error! Input correct data: );
fflush stdin;
}
printf ( Input end of range: );
while (scanf (% i raquo ;, amp; b)!=1 || b == 0)
{
printf ( Error! Input correct data: );
fflush stdin;
}
size=rand ()% (b - a + 1) + a;
break;
}
printf ( Menu 2 n1 - Manual input array n2 - Random input array nEnter: );
while (scanf (% i raquo ;, amp; menu)!=1 || menu gt;=3 || menu lt;=0)
{
printf ( Error! Input cor...