Добавил:
Education Must Be Free Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы / LR_7_Massivy_i_fayly.docx
Скачиваний:
12
Добавлен:
22.09.2021
Размер:
202.1 Кб
Скачать

Примеры работы с массивами и файлами

Задача 1. Найти максимальный элемент массива.

Вначале требуется объявить массив и запросить количество элементов в массиве (не больше количества, которое мы укажем при объявлении массива). Затем следует считать значения элементов массива с клавиатуры, после чего осуществить поиск максимального элемента массива.

Для начала присваиваем максимальному найденному элементу значение первого элемента массива.

max = a[0];

После чего проходим по массиву, сравнивая каждый элемент с максимальным. В случае, если текущий элемент массива окажется больше максимального, его значение присвоится переменной max.

#include <conio.h>

#include <stdio.h>

  

int main() {

    int a[100];

int n;

    int max;

  

        printf("n= ");

        scanf("%d", &n);

    printf("massiv:\n");

    for (int i = 0; i<n; i++) {

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

        scanf("%d", &a[i]);

    }

 

    max = a[0];

    for (i = 1; i<10; i++) {

        if (a[i] > max) {

            max = a[i];

        }

    }

      printf("max element is %d", max);

    getch();

return 1;

}

Задание 2. Рассмотрим предыдущую задачу для элементов массива, являющихся случайными числами из отрезка [A,B].

Для этого воспользуемся функцией rand();. Для того, чтобы гарантировать выбор случайных чисел из заданного отрезка, используем выражение:

a[i]= rand() % (B - A + 1) + A;

Для того, чтобы при каждом запуске программы в массив заносились различные случайные числа, используем функцию srand (time (NULL));

Подключим заголовочные файлы:

#include <stdlib.h>

#include <ctime>

Получим следующий код программы:

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <ctime>

  

int main() {

    int a[100];

int n;

    int max;

  

srand (time (NULL));

        printf("n= ");

        scanf("%d", &n);

    printf("massiv:\n");

    for (int i = 0; i<n; i++) {

a[i]= rand() % (B - A + 1) + A;

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

    }

 

    max = a[0];

    for (i = 1; i<10; i++) {

        if (a[i] > max) {

            max = a[i];

        }

    }

      printf("max element is %d", max);

    getch();

return 1;

}

Вывод элементов массива в данном случае происходит в том же цикле, где и заполняется значениями массив.

Задание 3. Пусть размер массива и его элементы заданы в текстовом файле. Организовать ввод массива из файла.

int main() {

int d[100];

int i,N;

FILE *ft;

ft=fopen("f.txt","rt");

fscanf(ft,"%d",&N]);

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

fscanf(ft,"%d",&d[i]);

fclose(ft);

}

Файл f.txt открывается в режиме чтения. В начале из него считывается количество элементов массива, затем сами значения элементов. После завершения работы с файлом, он закрывается.

Для записи элемента массива в файл удобно использовать следующий код:

FILE* f=fopen("а.txt","w+");

for(int i=0; i<12; i++)

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

fclose(f);

Порядок выполнения работы.

  1. Ознакомится с теоретической частью лабораторной работы.

  2. Выполнить задание по работе с одномерными массивами в соответствии с вариантом.

  3. Выполнить задание по работе с многомерными массивами в соответствии с вариантом.

  4. Сделать выводы о полученных результатах работы программ.