Завдання 2. Побудуйте моделі «сутність-зв'язок» для описаних далі предметних областей. Визначте: сутності; атрибути сутностей; ключі; зв'язки між сутностями; типи зв'язків. у Предметна область «Водні ресурси». Кожна ріка характеризується назвою, довжиною і площею басейну, а море — площею водної поверхні. Потрібно зберігати відомості про те, територією яких держав протікає ріка, а також у яку водойму (море чи іншу ріку) вона впадає. Штучні моря (водосховища) також характеризуються площею водної поверхні і в них також можуть впадати ріки, однак кожне водосховище, на відміну від природного моря, розташоване на певній ріці.
const n = 10; //В константе n указаваеи количество элементов в массиве
var a:array[1..n]of integer;
i,s,max,min:integer;
begin
write('Массив: '); //Вывод на экран слова "Массив: "
for i:= 1 to n do //Цикл с параметром для последовательной обработки массива
begin
a[i]:= random(21)-10; //Заполнение массива случайными числами из промежутка [-10,10]
if (a[i]>0){//Проверяем положительный элемент или нет} and (a[i] mod 2 = 0){//Проверяем чётный элемент или нет} then s:=s+1; //В переменной s будет считаться количество чётных положительных элементов при выполнении, указанных условий
write(a[i],' ') //Вывод на экран массива в строку
end;
writeln; //Переход на новыю строку
if s=0 then write('Чётных положительных элементов в массиве нет') //Вывод на экран сообщения "Чётных положительных элементов в массиве нет" и завершение программы
else //Продолжении программы при нахождении хотя бы 1-го чётного положительного элемента
begin
max:=2; //Т.к. 2 минимальное чётное положительное число, то присваиваем это значение переменной max
for i:= 1 to n do //Поиск max элемента
if (a[i]>0) and (a[i] mod 2 = 0) and (a[i]>max){//Проверяем больше текущий элемент max или нет} then max:=a[i]; //Присваиваем переменной max значение текущего элемента при выполнении, указанных условий
min:=max; //Т.к. max значение элемента массива уже найдено, то переменной min присваиваем значение переменной max
for i:= 1 to n do //Поиск min элемента
if (a[i]>0) and (a[i] mod 2 = 0) and (a[i]<min){//Проверяем меньше текущий элемент min или нет} then min:=a[i]; //Присваиваем переменной min значение текущего элемента при выполнении, указанных условий
if max=min then write ('Максимальным и минимальным чётным положительным элементом является один и тот же элемент: ',max) //Вывод на экран результатов
else
begin
writeLn('Максимальный чётный положительный элемент: ',max);//Вывод на экран результатов
write('Минимальный чётный положительный элемент: ',min)//Вывод на экран результатов
7
Объяснение:
k = 1 dat[1] = 12 12 > 12 (НЕТ) m = 0
k = 2 dat[2] = 15 15 > 12 (ДА) m = 1
k = 3 dat[3] = 17 17 > 12 (ДА) m = 2
k = 4 dat[4] = 15 15 > 12 (ДА) m = 3
k = 5 dat[5] = 14 14 > 12 (ДА) m = 4
k = 6 dat[6] = 12 12 > 12 (НЕТ) m = 4
k = 7 dat[7] = 10 10 > 12 (НЕТ) m = 4
k = 8 dat[8] = 13 13 > 12 (ДА) m = 5
k = 9 dat[9] = 14 14 > 12 (ДА) m = 6
k = 10 dat[10] = 15 15 > 12 (ДА) m = 7
const n = 10; //В константе n указаваеи количество элементов в массиве
var a:array[1..n]of integer;
i,s,max,min:integer;
begin
write('Массив: '); //Вывод на экран слова "Массив: "
for i:= 1 to n do //Цикл с параметром для последовательной обработки массива
begin
a[i]:= random(21)-10; //Заполнение массива случайными числами из промежутка [-10,10]
if (a[i]>0){//Проверяем положительный элемент или нет} and (a[i] mod 2 = 0){//Проверяем чётный элемент или нет} then s:=s+1; //В переменной s будет считаться количество чётных положительных элементов при выполнении, указанных условий
write(a[i],' ') //Вывод на экран массива в строку
end;
writeln; //Переход на новыю строку
if s=0 then write('Чётных положительных элементов в массиве нет') //Вывод на экран сообщения "Чётных положительных элементов в массиве нет" и завершение программы
else //Продолжении программы при нахождении хотя бы 1-го чётного положительного элемента
begin
max:=2; //Т.к. 2 минимальное чётное положительное число, то присваиваем это значение переменной max
for i:= 1 to n do //Поиск max элемента
if (a[i]>0) and (a[i] mod 2 = 0) and (a[i]>max){//Проверяем больше текущий элемент max или нет} then max:=a[i]; //Присваиваем переменной max значение текущего элемента при выполнении, указанных условий
min:=max; //Т.к. max значение элемента массива уже найдено, то переменной min присваиваем значение переменной max
for i:= 1 to n do //Поиск min элемента
if (a[i]>0) and (a[i] mod 2 = 0) and (a[i]<min){//Проверяем меньше текущий элемент min или нет} then min:=a[i]; //Присваиваем переменной min значение текущего элемента при выполнении, указанных условий
if max=min then write ('Максимальным и минимальным чётным положительным элементом является один и тот же элемент: ',max) //Вывод на экран результатов
else
begin
writeLn('Максимальный чётный положительный элемент: ',max);//Вывод на экран результатов
write('Минимальный чётный положительный элемент: ',min)//Вывод на экран результатов
end
end
end.