Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Параметр-змінна





Група параметрів, перед якими відсутнє зарезервоване слово Var, називається параметрами-значеннями.

Наприклад, в описі Procedure Korrect(S,K:real) S і K - параметри-значення. Формальний параметр-значення обробляється, як локальна стосовно процедури або функції, змінна. Зміни формальних параметрів-значень не впливають на відповідні значення фактичних параметрів.

Група параметрів, перед якими знаходиться ключове слово Var, називається параметрами-змінними. Наприклад, в описі Procedure Obr(Var A,B: integer); А та В - параметри-змінні. Параметр-змінна використовується в тому випадку, якщо значення повинно бути передане з процедури в блок, що її викликає. При активізації процедури або функції формальний параметр-змінна заміщується фактичною змінною, а тому будь-які зміни в значенні формального параметра-змінної відбиваються на фактичному параметрі.

Розглянемо ЗАВДАННЯ № 1:

Четверо учнів середніх класів допомагають організувати проведення спортивних змагань для першокласників. Для цього на спортивному майданчику вони мають накреслити великий трикутник, усередині якого буде розміщено ігрове поле. Кожен з друзів пропонує свій варіант розмірів та розміщення трикутника. Щоб діяти дружно та нікого не образити, друзі вирішили обрати такий варіант розв’язання цього завдання.

Кожен з них назвав натуральне число, яке може бути стороною майбутнього трикутника. Далі для отриманої четвірки чисел друзі мають визначити, які трикутники можна побудувати, визначити їх площі та з отриманих варіантів обрати той, який дозволить накреслити трикутник з максимально можливою площею (усередині цього трикутника – ігрового майданчика має розміститися багато малюків). Допоможіть друзям написати програму для розв’язування цього завдання.

Названі друзями значення сторін майбутніх трикутників зберігатимемо у змінних stor1, stor2, stor3, stor4 цілочислового типу. З цих всіх варіантів можна утворити 4 можливих трикутники. І для цих чотирьох варіантів потрібно перевірити, чи можна утворити трикутник, що матиме такі сторони, для можливих трикутників визначити значення їх площ і, порівнявши ці значення, обрати для побудови трикутник з максимальною площею.

1. Запускаємо середовище Delphi

на формі розміщуємо такі компоненти

2. Потрібно змінити написи на об’єктах таким чином.

3. Спочатку введемо в програму числа-довжини сторін, які назвали діти.

Оголошуємо змінні в заголовку програми(там вже є слова Var).

Var stor1, stor2, stor3, stor4: integer;

Щоб перенести числа введені у віконечка на формі у змінні, оголошені раніше потрібно двічі клацнути мишкою по кнопці "Обчислити" і записати такі рядки:

stor1:=strtoint(edit1.text);

stor2:=strtoint(edit2.text);

stor3:=strtoint(edit3.text);

stor4:=strtoint(edit4.text);

Тепер можна сміливо використовувати наші змінні у програмі.

4. Розробимо процедуру, що визначатиме, чи може існувати трикутник зі сторонами x, y, z, і для можливого трикутника обчислюватиме значення його площі та виводитиме його на екран.

Для цього переходимо у вікно з програмою і на початку програми у розділі public пишемо

Procedure ploscha (x, y, z:integer);

Далі натискаємо комбінацію клавіш CTRL+Shift+C

В результаті створеться порожня процедура. Записуємо до тієї процедури такий текст.

Procedure ploscha (x, y, z:integer); {Опис процедури, її параметрів}

Var p, S:real; {Опис локальних змінних}

Begin

if (x+y>z) and (y+z>x) and (z+x>y){Перевіряємо умови існування трикутника}

then {Трикутник існує}

Begin

p:=(x+y+z)/2; {Визначаємо напівпериметр трикутника}

S:= sqrt (p*(p-x)*(p-y)*(p-z)); {Визначаємо площу трикутника}

Edit5.text:= floattostr (S) {Виводимо значення площі трикутника на екран}

End

else Label2.Caption:= (‘Трикутник зі сторонами ’+inttostr(x)+' '+inttostr(y)+' '+inttostr(z)+‘ не існує’)

end;

5. Тоді в процедурі Button1Click (клацання по кнопці) дописуємо блок, у якому ми можемо викликати вище наведену процедуру чотири рази.

Ploscha (stor1, stor2, stor3);

Ploscha (stor1, stor2, stor4);

Ploscha (stor1, stor3, stor4);

Ploscha (stor2, stor3, stor4);

6. Запускаємо програму на виконання і спостерігаємо на екрані результат. Ми бачимо тільки останню комбінацію цифр і не бачимо весь процес обчислень. Потрібно трохи змінити програму, щоб побачити всі комбінації чисел і результати обчислень.

Видаляємо Label2 i Edit5, а на їх місце вставляємо текстове поле Memo.


І весь вивід направимо у це текстове поле таким чином.

Переписуємо нашу процедуру

procedure TForm1.ploscha(x, y, z: integer);

Var p, S:real;

Begin

if (x+y>z) and (y+z>x) and (z+x>y) then begin

p:=(x+y+z)/2; S:=sqrt(p*(p-x)*(p-y)*(p-z));

Memo1.lines.Text:=Memo1.Text+(inttostr(x)+' '+inttostr(y)+' '+inttostr(z)+' площа= '+floattostr(S));

memo1.Lines.Add(' ') End else begin

Memo1.Lines.Text:=Memo1.Text+(Трикутник зі сторонами '+ inttostr(x)+' '+inttostr(y)+' '+inttostr(z)+' не існує');

memo1.Lines.Add(' ') end; end;

Запускаємо програму і бачимо приблизно такий результат:

Розглянемо перший виклик цієї процедури. Він складається з назви процедури, до якої ми звертаємося (ploscha), і списку фактичних параметрів, оскільки перевіряється існування і обчислюється значення площі трикутника, утвореного саме з stor1, stor2 і stor3.







Date: 2015-07-27; view: 506; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию