Шутилина Л.А.
Что такое массив? Как можно обратиться к элементу массива? Какого типа могут быть элементы массива? Могут ли в одном массиве быть элементы разных типов? Как можно заполнить массив данными?
Работа с массивами, содержащими элементы разного типа Составить программу, которая определяет соответствие веса и роста учеников и дает им рекомендации по питанию. Если вес ученика больше, чем рост -100, то ему нужно худеть, если меньше, то ему нужно поправиться, а если равен, то все в норме.
В этой задаче нужно использовать данные трех типов: Текстовые – для фамилий учеников, Действительные – для их веса, Целые – для роста. Т.к. массив- это набор однотипных данных, то мы не можем использовать один массив и нам придется использовать три разных массива: Var Name: array [1..n] of string; Var Name: array [1..n] of string; rost:array [1..n] of integer; rost:array [1..n] of integer; ves: array [1..n] of real; ves: array [1..n] of real; Const n= 5; n= 5; Name: array [1..n] of string = ('Иванов', 'Петров', 'Сидоров', 'Кошкин', 'Мышкин'); Name: array [1..n] of string = ('Иванов', 'Петров', 'Сидоров', 'Кошкин', 'Мышкин'); Для облегчения ввода данных, массив Name можно задать как константу:
Writeln ('Введите рост и вес следующих учеников: '); for i:= 1 to n do begin begin Write (name[i], ' '); Write (name[i], ' '); readln (rost[i],ves[i]); readln (rost[i],ves[i]); end; end; Writeln('Рекомендации ученикам: '); for i:= 1 to n do if ves[i]<rost[i]-100 if ves[i]<rost[i]-100 then Writeln (name[i], ', Вам нужно больше кушать ') then Writeln (name[i], ', Вам нужно больше кушать ') else if ves[i]>rost[i]-100 else if ves[i]>rost[i]-100 then Writeln (name[i], ', Вам нужно худеть ') then Writeln (name[i], ', Вам нужно худеть ') else 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. Составить программу, которая создает и выводит на экран массив такого вида: