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

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА

Факультет электроники и системотехники.

Лабораторная работа № 10

по программированию на языке высшего уровня С

Тема: «Файлы»

Выполнил студент: Галкин И.В. ВТ-11

Проверил: Ларионов Н.В.

Москва 2012

Написать программу создания файла,списывания из файла,

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

в одномерном массиве, состоящем из п вещественных элементов, вычислить:

1) произведение отрицательных элементов массива;

2) сумму положительных элементов массива, расположенных до максимального

элемента.

Изменить порядок следования элементов в массиве на обратный.

Листинг программы:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <time.h>

#define N 30

float a[N];

void generate_elements();

void print_elements();

int naity_proizvedenie();

int naity_summu();

int find_max();

void sort();

int main()

{

int i = 0;

FILE* file;

float proizv,summ,chislo;

generate_elements();

file = fopen("file.dat","w");

if (file == 0)

{

fprintf(stderr,"Cannot open file for write");

getch();

exit(-1);

}

print_elements();

proizv = naity_proizvedenie();

summ = naity_summu();

printf("Proizvedenie otricatelnyh elementov masiva ravno %f\n",proizv);

printf("Summa polojitelnyh elementov massiva raspolojennyh do max ravno: %f\n",summ);

sort();

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

fprintf(file,"%.2f ",a[i]);

printf("===============SORTED=================\n");

// print_elements();

fclose(file);

file = fopen("file.dat","r");

if (file == 0)

{

fprintf(stderr,"Cannot open file for read");

getch();

exit(-1);

}

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

{

fscanf(file,"%f ",&chislo);

printf("%f\t",chislo);

}

getch();

fclose(file);

return 0;

}

void generate_elements()

{

time_t t;

int i;

srand(time(&t));

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

{

a[i] = rand() % 100;

if (rand() % 2 != 0)

a[i] *= -1;

}

}

void print_elements()

{

int i;

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

printf("%f\t",a[i]);

}

int naity_proizvedenie()

{

int proizv = 1;

int i;

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

{

if (a[i] < 0)

proizv *= a[i];

}

return proizv;

}

int find_max()

{

int imax,i,max;

imax = 0;

max = a[0];

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

if (a[i] > max)

{

max = a[i];

imax = i;

}

return imax;

}

int naity_summu()

{

int i,summ = 0;

int imax = find_max();

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

if (a[i] > 0)

summ += a[i];

return summ;

}

void sort()

{

int barer = N / 2;

float x;

int i,j = N - 1;

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

{

x = a[i];

a[i] = a[j];

a[j] = x;

j--;

}

}