Компютри Windows интернет

Писане на програмен код с помощта на процедури. Писане на код с помощта на процедури Ограничения на оператора

Като първи операнд - "expression1" - може да се използва всеки израз, чийто резултат е bool стойност. Ако резултатът евярно , тогава се изпълнява операторът, посочен от втория операнд, тоест "expression2".

Ако първият операнд е сдвоенфалшиво , след това се изпълнява третият операнд - "expression3". Вторият и третият операнд, тоест израз2 и израз3, трябва да връщат стойности от същия тип и не трябва да са невалидни. Резултатът от изпълнението на условния оператор е резултатът от "expression2" или резултатът от "expression3", в зависимост от резултата от "expression1".

Ограничения на оператора

Операторът, базиран на стойността "expression1", трябва да върне една от двете стойности - "expression2" или "expression3". Има редица ограничения за тези изрази:

  1. Не можете да смесвате персонализиран тип с прост тип или изброяване. Разрешено е използването на NULL за указател.
  2. Ако типовете на стойностите са прости, тогава типът на оператора ще бъде максималният тип (вижте Typecasting).
  3. Ако една от стойностите е от типа на изброяване, а втората е от числов тип, тогава изброяването се заменя с int и се прилага второто правило.
  4. Ако и двете стойности са стойности за изброяване, тогава техните типове трябва да са еднакви, а типът на оператора ще бъде изброяване.

Ограничения за персонализирани типове (класове или структури):

  1. типовете трябва да са еднакви или единият трябва да наследява от другия.
  2. ако типовете не са еднакви (наследяване), тогава детето се прехвърля имплицитно към родителя, тоест типът на оператора ще бъде типът на родителя.
  3. не можете да смесвате обект и указател - или и двата израза са обекти или указатели. Разрешено е използването на NULL за указател.

Забележка

Бъдете внимателни, когато използвате условен оператор като аргумент на претоварена функция, тъй като типът на резултата на условния оператор се определя в момента на компилиране на програмата. И този тип се определя като по-големият тип от типовете "expression2" и "expression3".

пример:

void func (double d) (Печат ("двоен аргумент:", d);)
void func (низ s) (Печат ("низов аргумент:", s);)

bool Expression1 = вярно;
двоен израз2 = M_PI;
низ Expression3 = "3.1415926";

void OnStart ()
{
func (Израз2);
func (Израз3);

func (Израз1? Израз2: Израз3);
func (! Израз1? Израз2: Израз3);// получаваме предупреждение на компилатора за изрично прехвърляне към типа низ
}

// Резултат:
// двоен аргумент: 3.141592653589793

// низов аргумент: 3.141592653589793
// низов аргумент: 3.1415926

"Принтер за печат на пластмасови карти" - Възможност за поставяне на два пъти повече информация върху една пластмасова карта. Цена. Принтер за печат пластмасови карти... ZEBRA P110i / P120i. Преглед състав... Икономични пълноцветни принтери за пластмасови карти. Висока производителност Широка гама от опционални кодиращи устройства.

"Периферни устройства за компютър" - Периферни устройства. Принтери. Записване. Цифрови фотоапарати. Йерархия на свързване. Видео адаптери. PU класификация. Универсална серийна шина. CD-R. Опции за избор. Вградена светкавица. Пионерите. природата. модем. Видео терминал. скенери. PC периферни устройства. Класификация на мишкоподобните.

„Средства за въвеждане и извеждане на информация” – Скенер. Плотер. CRT. Принтери. клавиатура. Цифрови фотоапарати и фотоапарати. Функции. Универсално входно устройство. Устройства за въвеждане и извеждане на информация. Графичен таблет... Мишка.

„Устройства за извеждане на информация“ – Компютърно устройство. Колкото по-висока е разделителната способност на монитора, толкова по-високо е качеството на изображението. Недостатъци на мастиленоструйните принтери: Голям разход на мастило; Високата цена на зареждането с гориво. Плоските монитори с течни кристали (LCD) са компактни и нямат радиация. Устройства за извеждане на информация. Мониторът е универсално устройство за извеждане на информация.

"Принтери" - Местни. Fuser, fuser, fuser - единицата, в която тонерът се изпича в хартията. Лазерна. Матрица (игла). С течение на времето те губят свойствата си и подлежат на редовна подмяна от специалист. мастиленоструйни. мрежа. Променено от потребителя. Характеристики на принтерите. Разработчик, носител, проявител - най-малките метални частици, които пренасят тонера върху фото ролката.

"I/O подсистема" - точка на прекъсване. таблици. Непрекъснато поставяне. Атрибут. Разрешения за файлове. Свързан списък с индекси. Данни. Физическа организация. Директен достъп до паметта. Индексиран последователен файл. Монтаж. Вход/изход, контролиран от прекъсвания. Разрешения за достъп до директория. Организиране на паралелна работа.

Има общо 27 презентации

Програмният код е показан на фиг. 4.3-9.

Опция Strict On Option Explicit On Imports System.Math Public Class Form1 „Функция за въвеждане на координата на точка във функцията TextBox vvod (ByVal T As TextBox) Като еднократно връщане CSng (Val (T.Text)) End Function“ Процедура за извеждане на резултата в TextBox Sub vivod (ByVal Z As Single, ByVal T As TextBox) T.Text = CStr (Z) End Sub "Функция за изчисляване на дължината на сегмент от линия от координатите на две точки Public Function LengthSection (ByVal x1 Като единичен, _ ByVal y1 Като единичен, ByVal x2 Като единичен, _ ByVal y2 като единичен) Като единичен връщане CSng (Sqrt ((x2 - x1) ^ 2 + (y2 - y1) ^ 2)) Крайна функция "Процедура за изчисляване периметърът и площта на триъгълник Sub PS (ByVal x1 като единичен, ByVal y1 като единичен, _ ByVal x2 като единичен, ByVal y2 като единичен, _ ByVal x3 като единичен, ByVal y3 като единичен, _ ByRef P като единичен, ByRef S като единичен) Dim A, B, C, Pp като единичен A = дължина на сегмента (x1 , y1, x2, y2) "Извикване на функцията за дедукция за сегмент B = дължина на сегмента (x2, y2, x3, y3) C = Дължина на сегмента (x3, y3, x1, y1) P = (A + B + C): Pp = P / 2 S = CSng ( Sqrt (Pp * (Pp - A) * (Pp - B) * (Pp - C))) End Sub "Процедура за обработка на събитието на натискане на бутона Button1 Private Sub Button1_Click (ByVal подател като System.Object, _ ByVal e Като система. EventArgs) Обработва Button1. Щракнете върху Dim x1 като единичен, x2 като единичен, x3 като единичен дим y1 като единичен, y2 като единичен, y3 като единичен дим за като единичен, Plo като единичен x1 = vvod (TextBox1): x2 = vvod (TextBox2 ): x3 = vvod (TextBox3) y1 = vvod (TextBox6): y2 = vvod (TextBox7): y3 = vvod (TextBox8) PS (x1, y1, x2, y2, x3, y3, Per, Plo) vivod (Per, TextBox4): vivod (Plo, TextBox5) End Sub Private Sub Button2_Click (ByVal изпращач като System.Object, _ ByVal e Като System.EventArgs) Манипулира Button2.Click End End End Sub End Class

Изпълнение на приложението и получаване на резултатите

Резултатът е показан на фиг. 4.3-10.

Доказателство за правилността на резултата

А =
= 2,82843 B =
= 2

C = = 2 P = A + B + C = 6,828427; Pp = P / 2 = 3,414213 S = = 2


Контролни въпроси по темата

„Структурата на VB програмите, модулите и процедурите.

Инструменти за програмиране на алгоритми за линейна структура "

1. Какво е математически модел?

2. Кои са основните стъпки при решаването на проблеми на компютър?

3. Какви етапи на решаване на компютърни проблеми се извършват без участието на компютър?

4. Какво се нарича математически моделобект или явление?

5. Какви са последователните стъпки от процеса на разработване на програмата?

6. Какво се нарича алгоритъм?

7. Какви са основните свойства на алгоритъма?

8. Какви са начините за описание на алгоритмите?

9. Какви графични символи обикновено се използват за изобразяване в диаграмите на алгоритъма?

10. Как работи преводачът?

11. Как работи компилаторът?

12. Какъв алгоритъм се нарича линеен?

13. Какъв алгоритъм се нарича кръгов?

14. Какъв вид алгоритъм се нарича разклоняване?

15. Каква е разликата между предаването на резултатите от изпълнението на функции и процедури?

16. Получаването на правдоподобен резултат доказва ли, че програмата е правилна?

17. Какви грешки могат да останат неоткрити, ако не проверите (прегледате, превъртите) програмата?

18. Как тестването на програма се различава от отстраняването на грешки?

19. Може ли тестването да се използва за доказване на коректността на дадена програма?

20. На кой етап от програмата се изчисляват резултатите от сравнителния тест?

21. Кои са основните етапи от процеса на тестване?

22. Каква е разликата между синтактични и семантични грешки?

23. Какво показва липсата на съобщения за синтактични грешки от машината?

24. Какви видове грешки преводачът не успява да открие?

25. Какво е програма?

26. На какъв етап се извършва търсенето и отстраняването на грешки в програмата?

27. Какво е система за програмиране?

28. Какво е процедура?

29. Какви са ползите от програма с процедури?

30. Какви инструменти за процедурно програмиране са налични на езика VB?

31. Как става обменът на данни между отделните процедури на програмата?

32. Какви са действителните и формалните параметри?

33. Как да предавам като параметър: константа, променлива, израз?

34. Как се използват глобалните променливи?

35. Как се използват локалните променливи?

36. Какво представляват формалните параметри?

37. Какви са реалните параметри?

38. Какво се случва, когато се извика процедура?

39. Как могат да се предават параметри на процедура?

40. Какви параметри се предават по стойност?

41. Какви параметри се предават на адреса?

42. Какво представляват инструментите за процедурно програмиране?

43. Какъв е резултатът от изпълнението на функцията?

44. Как да декларирате отделни променливи, така че да са локални във функцията?

45. Кой оператор се използва за ранно излизане от функция?

46. Какво се контролира при извикване на функции и процедури?

47. Как да декларирате формални параметри за предаване на променлив параметър по стойност?

48. Как да декларирате формални параметри за предаване на променлив параметър по адрес?

49. Как се извиква процедура на функция от извикваща програма?

50. Какъв може да бъде резултатът от процедурата?

51. Кой оператор се използва за ранно излизане от процедурата?

52. Къде могат да се намерят описания на функции и процедури?

53. Къде ще бъде налична променливата, декларирана с публичния изявление?

54. Къде може да се намира частен оператор?

55. Какво е коментар и правилата за писането му?

56. Какви са значенията на променливите в началото на програмата?

57. Защо процедурите и функциите са описани (дефинирани)?

58. Как се наричат ​​процедурите?

59. Как се наричат ​​функциите?


Подобна информация.


В предишния параграф се запознахме със структурата на програма на Pascal, научихме как да описваме данни и разгледахме оператора на присвояване. Това е достатъчно, за да напишете програма за преобразуване на данни. Но резултатът от тези трансформации няма да бъде видим за нас.

За извеждане на данни от оперативна паметизходният оператор запис се използва на екрана на монитора:

Тук изходният списък е поставен в скоби - списък с изрази, чиито стойности са отпечатани. Това могат да бъдат числови, символни и логически изрази, включително променливи и константи.

Произволен набор от знаци, затворени в апострофи, се счита за низова константа. Константата на низ може да съдържа всякакви знаци, които въвеждате на клавиатурата.

Пример... Операторът write ("s =", s) се изпълнява по следния начин:

  1. екранът показва знаци, затворени в апострофи: s =
  2. екранът показва стойността на променливата, съхранена в място в паметта, наречено s.

Ако стойността на променливата s е 15 и има целочислен тип, тогава на екрана ще се покаже: s = 15.

Ако стойността на променливата s е 15, но тя има реален тип, тогава на екрана ще се покаже: s = l.5E + 01.

Когато се изпълнява изходен оператор, всички елементи в изходния списък се отпечатват един след друг. И така, в резултат на операцията на оператора за запис (1, 20, 300), на екрана ще се покаже поредица от цифри 120300, които ще се възприемат от нас като число 120300, а не като три отделни числови константи . Можете да направите изходните данни по-четливи по различни начини:

Изходен формате цяло число след двоеточие, което определя колко позиции на екрана трябва да заема показаната стойност. Ако в числото има по-малко цифри от позициите, запазени за него на екрана, тогава свободните позиции се допълват с интервали вляво от номера. Ако числото, посочено в изходния формат след двоеточие, е по-малко от необходимото, то автоматично ще бъде увеличено до необходимия минимум.

За да изведете реално число във формат с фиксирана точка, два параметъра са посочени в изходния списък за всеки израз:

  1. общия брой позиции, разпределени за броя;
  2. броят на позициите в дробната част на числото.

Когато се изпълни нов оператор за запис, изходът продължава на същия ред. За да преминете към нов ред, използвайте израза writeln. Няма други разлики между изявленията write и writeln.

4.2.2. Първата програма на Паскал

Използвайки разглежданите оператори, ще съставим програма, която изчислява обиколката и площта на кръг с радиус 5,4 cm.

Първоначалните данни в този проблем са радиусът: r - 5,4 см. Резултатът от програмата трябва да бъде стойностите C - обиколката и S - площта на окръжността. С, S и r са стойности от реален тип.

Изходните данни и резултати са свързани с връзките, известни от курса на математиката: С = 2πr, S = πr +. Програмата, която изпълнява изчисления с помощта на тези формули, ще изглежда така:

Тази програма е правилна и решава проблема. Като го стартирате за изпълнение, получавате следния резултат:

И все пак, програмата, която съставихме, има значителен недостатък: тя намира обиколката и площта на кръг за една стойност на радиуса (5,4 cm).

За да изчислите обиколката и площта на кръг за различна стойност на радиуса, ще трябва да направите промени директно в текста на програмата, а именно да промените оператора за присвояване. Правенето на промени в съществуваща програма поне не винаги е удобно (например, когато програмата е голяма и има много оператори за присвояване). По-долу ще се запознаете с оператора, който ви позволява да въвеждате изходни данни в процеса на програмата, без да се налага да променяте текста на програмата.

4.2.3. Въвеждане на данни от клавиатурата

За въвеждане на стойностите на променливите в RAM се използва операторът read:

Когато операторът за четене се изпълни, компютърът влиза в режим на готовност за данни: потребителят трябва да въведе данни от клавиатурата и да натиснете клавиша Enter. Няколко стойности на променливи от числови типове могат да бъдат въведени, разделени с интервали или запетаи. При въвеждане на символни променливи интервалът и запетаята се третират като символи, така че не могат да бъдат вмъкнати.

Първата въведена от потребителя стойност на променлива се поставя в мястото на паметта, чието име се намира първо във входния списък и т. н. Следователно типовете на входните стойности (входен поток) трябва да съответстват на типовете променливи посочено в раздела за декларация на променлива.

Пример... Нека бъде

var i, j: цяло число; x: реално; a: char;

Нека присвоим променливите i, j, x и стойностите 1, 0, 2.5 и "A". За да направим това, ще използваме оператора read (i, j, x, a) и ще организираме входния поток по един от следните начини:

Тук не само използвахме различни разделители (интервал, запетая), но също така представихме входния поток като един, два и четири реда.

Можете също да използвате оператора readln за въвеждане на данни от клавиатурата, който се различава от оператора read само по това, че след като бъде изпълнен, курсорът се премества на нов ред.

Нека подобрим програмата n_1, като организираме въвеждане на данни в нея с помощта на оператора read. И така, че потребителят да знае за какво е предназначена програмата и да разбере какъв вид действие очаква компютърът от него, ние ще покажем подходящите текстови съобщенияизползвайки изявлението writeln:

Резултатът от подобрената програма:

Сега нашата програма може да изчисли обиколката и площта на кръг за всяка стойност на r. С други думи, решава не един проблем, а цял клас проблеми. Освен това програмата ясно и удобно организира въвеждането на първоначалните данни и изхода на получените резултати. Това гарантира удобен потребителски интерфейс.

Най-важното нещо

Входните оператори read и readln се използват за въвеждане на стойностите на променливите в RAM.

Изходните оператори write и writeln се използват за извеждане на данни от RAM към екрана на монитора.

Въвеждането на изходни данни и извеждането на резултати трябва да бъдат организирани ясно и удобно; това гарантира удобен потребителски интерфейс.

Въпроси и задачи

  1. Напишете израз, който осигурява въвеждане на стойността на променливата suma, докато програмата работи.
  2. На целочислените променливи i, y, k трябва да бъдат присвоени съответно стойности 10, 20 и 30. Напишете инструкцията за въвеждане, съответстваща на входния поток:
      а) 20 10 30
      б) 30 20 10
      в) 10 30 20
  3. Опишете променливите, необходими за изчисляване на площта на триъгълник по трите му страни, и запишете оператора, който предоставя необходимите входни данни.
  4. Какъв е резултатът от изявлението?
      а) напиши (а)
      б) напишете (1 a ")
      в) напишете (1 a = 1, a)
  5. Какъв тип е променливата f, ако след изпълнение на оператора write (f) се покаже следното число?
      а) 125
      б) 1,25E + 2
  6. Как можете да покажете реално число във формат с фиксирана точка?
  7. Напишете операторите за въвеждане на две числа и отпечатването им в обратен ред.
  8. Даден е фрагмент от програмата:

    прочетете (а); прочетете (b); c: = a + b; напишете (a, b); пиша (и)

    Опростете го, като намалите броя на входните и изходните изрази.

  9. Даден е фрагмент от програмата:

    а: = 10; b: = a + l: a: = b-a; напиши (а, б)

    Какви числа ще се показват на екрана на компютъра?

  10. Напишете програма, която изчислява площта и периметъра на правоъгълник по двете му страни.