Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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; Нарушение авторских прав |