Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Then begin




Begin

Begin

Then

Else

End

Begin

Then

Begin

Begin

If f

then Label1.Caption:= 'зустрічається'

else Label1.Caption:= 'не зустрічається';

end;

 

Задача 4. У даному масиві з 10 дійсних чисел визначити найбільше значення.

 

Спочатку вважатимемо, що значення першого елемента масиву і є найбільшим серед усіх значень елементів масиву. Після чого послідовно переглядатимемо всі інші елементи масиву і якщо зустрінеться значення, яке більше того, яке ми на даний момент вважаємо найбільшим, то зробимо це значення найбільшим.

 

procedure TForm1.Button1Click(Sender: TObject);

var a: array [1..10] of Real; i: Integer; max: Real;

for i:= 1 to 10 do

a[i]:= StrToFloat (Memo1.Lines[i-1]);

max:= a[1]; // Вважаємо, що найбільший елемент – перший

for i:= 2 to 10 do

if a[i] > max then max:= a[i]; // Замінюємо значення найбільшого елемента

Label1.Caption:= FloatToStr (max) + ' – найбільше значення';

end;

 

Задача 5. У даному масиві з 10 різних дійсних чисел визначити найбільше значення і найменше значення і обміняти їх місцями.

 

Оскільки потрібно обміняти місцями найбільше і найменше значення серед значень елементів масиву, то потрібно визначити не тільки самі ці значення, а ще й порядковий номер елемента масиву, значення якого найбільше, і порядковий номер елемента масиву, значення якого найменше. Спробуємо визначити все це, переглядаючи елементи масиву лише один раз.

Спочатку вважатимемо, що значення першого елемента масиву і найбільше, і найменше, а номер найбільшого і найменшого елемента масиву 1. Після чого послідовно переглядатимемо всі інші елементи масиву. Якщо значення чергового елемента масиву більше того значення, яке ми на той момент вважаємо найбільшим, то замінюємо найбільше значення серед уже переглянутих елементів масиву і номер найбільшого елемента. Якщо ні, то може це значення менше ніж те, яке ми поки що вважаємо найменшим. І якщо це так, то замінюємо найменше значення серед уже переглянутих елементів масиву і номер найменшого елемента.

 

procedure TForm1.Button1Click(Sender: TObject);

var a: array [1..10] of Real; i, nmax, nmin: Integer; max, min: Real;

for i:= 1 to 10 do

a[i]:= StrToFloat (Memo1.Lines[i-1]);

max:= a[1]; nmax:= 1; // Значення першого елемента приймається за найбільше

min:= a[1]; nmin:= 1; // Значення першого елемента приймається за найменше

for i:= 2 to 10 do

if a[i] > max // Порівняння значення чергового елемента з найбільшим на цей момент

max:= a[i]; // Замінюємо значення найбільшого елемента

nmax:= i; // Замінюємо номер найбільшого елемента

if a[i] < min // Порівняння значення чергового елемента з найменшим на цей момент

min:= a[i]; // Замінюємо значення найменшого елемента

nmin:= i; // Замінюємо номер найменшого елемента

end;

a[nmax]:= min; a[nmin]:= max; // Обмін значеннями найбільшого і найменшого елементів

for i:= 1 to 10 do

Memo1.Lines.Append(FloatToStr(a[i]); // Виведення значень елементів масиву з переставленими найбільшим і найменшим значеннями

end;

Задача 6. Визначити елементи даного масиву з 10 дійсних чисел, значення яких більше даного дійсного числа.

Очевидно, що як і в Задачі 2, потрібно переглянути послідовно значення всіх елементів масиву і з’ясувати, які з них більші, ніж задане число. Виникає питання, де зберігати значення цих елементів масиву. Адже залежно від значень елементів масиву і від даного числа, кількість таких елементів може бути різна: від 0 до 10.

Було б доцільно заносити значення шуканих елементів до іншого масиву, але нам заздалегідь невідома кількість його елементів.

У мові програмування Delphi є можливість використовувати масиви, кількість елементів яких заздалегідь невідома і яка може змінюватися в ході виконання проекту. Такі масиви називаються динамічними. На відміну від них, масиви, кількість елементів яких відома заздалегідь і яка не змінюється в ході виконання проекту, називаються статичними.

Звертаємо вашу увагу, що нумерація елементів динамічного масиву завжди розпочинається з 0.

У рядку var динамічний масив b, елементами якого будуть дійсні числа, описується так: var b: array of Real;.

 

procedure TForm1.Button1Click(Sender: TObject);

var a: array [1..10] of Real; b: array of Real; i, k: Integer; x: Real;

for i:= 1 to 10 do

a[i]:= StrToFloat (Memo1.Lines[i-1]);

x:= StrToFloat (Edit1.Text);

k:= 0; // Лічильник кількості елементів масиву b (спочатку в масиві b немає елементів)

for i:= 1 to 10 do

if a[i] > x

k:= k+1; // Збільшення на 1 значення лічильника кількості елементів масиву b

SetLength (b, k); // Встановлення нового розміру (кількості елементів) динамічного масиву b

b[k-1]:= a[i]; // Занесення відповідного елемента масиву a до масиву b

end;

Memo2.Lines.Clear;

if k = 0

then Memo2.Lines[0]:= 'Таких чисел не існує'




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 411; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.