Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Массив структур



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

Пример 1. Успеваемость группы по шести предметам представлена в табл. 1.

Табл. 2. К примеру 1.

Фамилия Имя   Оценки по предметам
           
  Алексеев Иван              
  Васильев Сергей              

Листинг программы, заполняющей массива структур с помощью оператора присваивания.

% Заполнение первой структуры массива

GR201(1).Family = 'Алексеев';

GR201(1).Name = 'Иван';

GR201(1).Year = 1980;

GR201(1).Marks = [5 4 4 5 5 4];

% Заполнение второй структуры массива

GR201(2).Family = 'Васильев';

GR201(2).Name = 'Сергей';

GR201(2).Year = 1981;

GR201(2).Marks = [3 4 4 3 5 4];

% Заполнение третьей структуры массива

GR201(3).Family = 'Кашин';

GR201(3).Name = 'Павел';

GR201(3).Year = 1979;

GR201(3).Marks = [4 3 4 4 5 4];

% Заполнение четвертой структуры массива

GR201(4).Family = 'Серова';

GR201(4).Name = 'Наталья';

GR201(4).Year = 1981;

GR201(4).Marks = [4 3 3 5 4 5];

% Заполнение пятой структуры массива

GR201(5).Family = 'Терехова';

GR201(5).Name = 'Ольга';

GR201(5).Year = 1980;

GR201(5).Marks = [5 5 5 5 4 5];

Задание 2. Добавьте в массив структур студента Иванова Ивана 1980 года рождения, имеющего следующие оценки: 3, 3, 4, 5, 3, 3.

Создание файл-функции, отображающей среднюю успеваемость группы студентов по каждому курсу и представляющей результат в виде столбцевой диаграммы, число столбцов которой равно числу курсов.

function meanmarks = groupprog(GROUP);

% функция вычисляет средний балл студентов по каждому предмету

% и выводит результат в виде столбцевой диаграммы.

% Возвращает массив, каждый элемент которого равен

% среднему баллу по предмету с соответствующим номером

% использование meanmark = groupprog(GROUP)

% GROUP — массив структур с полями

% Family (строка), Name (строка), Year (число),

% Marks (вектор-строка с отметками)

% нахождение числа студентов в группе

N = length(GROUP);

% Определение количества курсов по информации для

% первого студента

Courses = length(GROUP(1).Marks);

% Инициализация массива meanmarks и заполнение его нулями

meanmarks = zeros(1, Courses);

% Перебор курсов и вычисление средней успеваемости

for course = 1:Courses

% Суммирование баллов, полученных каждым из студентов по

% курсу с номером course

for student = 1:N

meanmarks(course) = meanmarks(course) +...

GROUP(student).Marks(course);

end

% Нахождение среднего арифметического

meanmarks(course) = meanmarks(course) / N;

end

% Построение столбцевой диаграммы

bar(meanmarks);

Задание 3. Исправьте файл-функцию groupprog, таким образом, чтобы получить максимальную и минимальную оценку по каждому курсу.

Для студента с номером NN mod 5+1 определите максимальную, минимальную и среднюю оценку.





Дата публикования: 2014-12-11; Прочитано: 188 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...