Работа с массивами, содержащими элементы разного типа Составить программу, которая определяет соответствие веса и роста учеников и дает им рекомендации по питанию. Если вес ученика больше, чем рост -100, то ему нужно худеть, если меньше, то ему нужно поправиться, а если равен, то все в норме.
В этой задаче нужно использовать данные трех типов: Текстовые – для фамилий учеников, Действительные – для их веса, Целые – для роста. Массив- это набор однотипных данных мы не можем использовать один массив, придется использовать три разных массива: Var Name: array [1..n] of string; rost:array [1..n] of integer; ves: array [1..n] of real; Const n= 5; Name: array [1..n] of string = ('Иванов', 'Петров', 'Сидоров', 'Кошкин', 'Мышкин'); Массив Name можно задать как константу :
Writeln ('Введите рост и вес следующих учеников: '); for i:= 1 to n do begin Write (name[i], ' '); readln (rost[i],ves[i]); end; Writeln('Рекомендации ученикам: '); for i:= 1 to n do if ves[i]rost[i]-100 then Writeln (name[i], ', Вам нужно худеть ') else Writeln (name[i], ', Ваш вес в норме '); Связь между этими массивами осуществляется по индексу. name[3], rost[3],ves[3] описывают свойства (фамилия, рост и вес) одного и того же ученика с порядковым номером 3
Рассмотрим работу с «квадратными» массивами. Это такие массивы, в которых количество столбцов равно количеству строк.
Элементы главной диагонали можно записать так: A[i,i], т.е. индексы строки и столбца совпадают Элементы вспомогательной диагонали можно записать так: A[i,n-i+1], где n – размер массива.
Заполнение нулями главной диагонали for i:=1 to n do a[i,i]:=0;
Особое значение при работе с квадратными массивами занимает задача «транспонирования», т.е переворачивания массива относительно главной диагонали. Для выполнения этой задачи нужно поменять местами элементы A[i,j] и A[j,i] Для перестановки двух элементов в массиве необходимо воспользоваться вспомогательной переменной: Temp:=A[2,5] A[2,5]:=A[5,2]; A[5,2]:=Temp; Для переворачивания всего массива используется двойной цикл.
Переворот массива относительно главной диагонали for i:=1 to n do for j:=i to n do begin temp:=a[i,j]; a[i,j]:=a[j,i]; a[j,i]:=temp; end;
Заполнение нулями элементов выше вспомогательной диагонали for i:=1 to n do for j:=1 to n-i do a[i,j]:=0;
Заполнение нулями элементов по периметру массива for i:=1 to n do begin a[i,1]:=0; a[i,n]:=0; a[1,i]:=0; a[n,i]:=0; end;
Итоги урока: Проверим свои знания Квадратные массивы – это… Элементы главной диагонали можно описать так … Элементы вспомогательной диагонали можно описать так …
Домашнее задание: 1.Составить программу, которая определяет в классе самого высокого и самого легкого учеников и выводит на экран их фамилии, вес и рост. 2.Составить программу, которая создает и выводит на экран массив такого вида: