- •Алгоритмические языки массивы и файлы
- •Брянск 2017
- •Методические указания публикуются в авторской редакции
- •1. Цель работы
- •2. Теоретическая часть
- •Объявление и инициализация массивов
- •Передача массива в функцию
- •Заполнение массива случайными числами
- •Работа с файлами
- •Примеры работы с массивами и файлами
- •Порядок выполнения работы.
- •Содержание отчета
- •Контрольные вопросы
- •Список рекомендуемой литературы
- •Варианты заданий на лабораторную работу
Примеры работы с массивами и файлами
Задача 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);
Порядок выполнения работы.
Ознакомится с теоретической частью лабораторной работы.
Выполнить задание по работе с одномерными массивами в соответствии с вариантом.
Выполнить задание по работе с многомерными массивами в соответствии с вариантом.
Сделать выводы о полученных результатах работы программ.