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

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

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

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

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

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

Выполнил студент: Суковатова Л.Н.

ВТ-11

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

Москва 2012 г.

1. Условия задания:

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

Вариант 10

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

1) минимальный по модулю элемент массива;

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

равного нулю.

Преобразовать массив таким образом, чтобы в первой его половине располага-лисьэлементы, стоявшие в четных позициях, а во второй половине — элементы,

стоявшие в нечетных позициях.

2. Данные: а) Исходные: a[i]

б) Рабочие: k

в) Выходные:min, s, b[j]

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

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#include <conio.h>

#include <time.h>

#define N 10

void generate_elements(int a[]);

void print_elements(int a[]);

int find_min(int a[]);

int find_summ(int a[]);

void sort(int a[]);

int a[N];

int main()

{

FILE* file;

int result,i;

char str[10];

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

if (file == NULL)

{

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

getch();

return -1;

}

generate_elements(a);

print_elements(a);

result = find_min(a);

printf("Minimalny element massiva raven %d\n",a[result]);

result = find_summ(a);

printf("Summa elementov massiva posle pervogo nulya ravna %d\n",result);

sort(a);

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

fprintf(file,"%d ",a[i]);

fclose(file);

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

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

if (file == NULL)

{

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

getch();

return - 1;

}

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

{

fscanf(file,"%d ",&result);

printf("%d ",result);

}

// print_elements(a);

fclose(file);

getch();

return 0;

}

void generate_elements(int a[])

{

int i;

time_t t;

srand(time(&t));

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

a[i] = rand() % 100;

}

void print_elements(int a[])

{

int i;

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

printf("%d ",a[i]);

printf("\n");

}

int find_min(int a[])

{

int i;

int min,index;

min =fabs( a[0]);

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

if (a[i] < min)

{

min = fabs(a[i]);

index = i;

}

return index;

}

int find_summ(int a[])

{

int i,first_zeroi = N;

int summ = 0;

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

if (a[i] == 0)

{

first_zeroi = i;

break;

}

// printf("first_zeroi = %d\n",first_zeroi);

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

{

summ += fabs(a[i]);

// printf("!");

}

return summ;

}

void sort(int a[])

{

int a2[N];

int i,j = 0;

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

{

a2[j] = a[i];

j++;

}

j=5;

for(i = 1;i < N;i+=2)

{

a2[j] = a[i];

j++;

}

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

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

a[i] = a2[j];

}

Соседние файлы в папке Суковатова