МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет “Львівська політехніка”
Кафедра САПР
МАСИВИ, ОПЕРАЦІЇ З ФАЙЛАМИ В МОВІ ПРОГРАМУВАННЯ С
МЕТА РОБОТИ
Навчитися використовувати масиви для розв’язання задач. Ознайомитися з роботою файлів.
Теоретичні відомості
Масив - це послідовно розміщені у пам’яті елементи одного типу. Кожен масив має ім’я. Доступ до окремих елементів масива відбувається по імені масива та індексу (порядковому номеру) елемента.
Загальний вигляд стрічки оголошення одномірного масиву наступний:
тип ім’я_масиву[розмірність];
Наприклад:
int x[10];
float y[20];
char name[18];
Загальний розмір масиву в байтах можна обчислити за формулою:
загальний розмір = розмір базового типу * кількість елементів
С дозволяє використовувати багатомірні масиви. Найпростіший варіант - двомірний масив. Для оголошення двомірного масиву типу integer twodim розмірністю 10 на 20 потрібно описати його наступним чином:
int twodim[10][20];
Будьте уважні, на відміну від інших мов програмування розмірності масиву відокремлені одна від одної квадратними дужками.
Отже, для доступу до елемента з індексами 3, 5 масиву twodim служить наступний запис twodim[3][5].
Файлова система С спроектована для роботи з великою кількістью пристроїв: моніторами, дисководами, CD-ROM, принтерами, тощо. Незважаючи на те, що кожний з цих пристроїв має свої особливості, файлова система С трансформує їх в логічний пристрій. Таку абстракцію називають потоком. Всі потоки однакові за поведінкою, але розрізняють два типи потоків - бінарні і текстові. Текстовий потік - послідовність ASCII-символів, бінарний - послідовність байт.
Потік асоціюється з певним файлом при його відкритті. Коли файл є відкритим, між ним і вашою програмою можливий обмін інформацією. Далі наведено декілька функцій для роботи з файлами:
fopen() відкриває потік
fclose() закриває потік
fprintf() запис у файл
fscanf() читання з файлу
feof() повертає істинне значення, якщо досягнуто кінець файлу
remove() знищує файл
Індивідуальне завдання
У файлі F матриця дійсних чисел розміром n*2n. Сформувати масив В, елементами якого є нулі і одиниці. , якщо всі елементи і-го рядка менші за дійсне число х і , якщо хоча б один елемент рядка більший від х.
Програма
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define n 2
void main ()
{
clrscr();
int i,j;
float mas[n][n*2],x,max;
int B[n];
FILE *my_file;
my_file=fopen("LSD.txt","rw");
for(i=0;i<n;i++)
{
for(j=0;j<(2*n);j++)
{
printf("mas[%d][%d]=",i,j);
scanf("%f",&mas[i][j]);
fprintf(my_file,"%f ",mas[i][j]);
}
fprintf(my_file,"\n");
}
printf("Vvedit'X=");
scanf("%f",&x);
max=mas[0][1];
for(i=0;i<n;i++){
for(j=0;j<4;j++){
fscanf(my_file,"%f",&mas[i][j]);
if(mas[i][j]>max) (max=mas[i][j]);
}
if(max>x) B[i]=0;
if(max<x) B[i]=1;
printf("B[%d]=%d\n",i,B[i]);
max=mas[i+1][1];
}
fclose(my_file);
getch();
}
Висновок
Виконавши цю лабораторну роботу навчився використовувати масиви для розв’язання задач. Ознайомитися з роботою файлів у мові С.