Оператор struct - потребителски дефиниран тип данни структура
Най-често използваните типове променливи в приложните програми са били винаги от предварително определен от езика за програмиране тип. Масивите са типичен пример за обединяване на множество променливи, при декларирането им се посочва един и само един определен тип на променливата. Различията между масив и потребителски дефиниран тип данни struct са съществени. В един масив всички данни задължително са от един и същи тип, в struct данните могат да бъдат от различен тип. Възможно е да се декларира масив с тип данни struct, както и потребителски дефиниран тип данни struct с отделни полета масиви.
Скаларният тип данни са вградените в езика, такива като double, float, int, long и др. Скаларните типове данни се делят на дискретни (изброими - цели числа) и приближени (с плаваща точка - рационални числа). Тези видове се наричат също стандартен тип данни. В хода на изграждане на програмата могат да се дефинират допълнителни, потребителски дефиниран тип данни, които програмистът създава съобразно конкретните изисквания.При реализиране на конкретен алгоритъм често се налага информацията за конкретен обект (асоциативно свързана информация) да ползва данни от различен тип.
Тук ще въведем понятието структура – struct е оператор, служебна дума в езика C++.
Описание на оператор struct: struct koord {double x,y;}; - служебната дума struct, името на променливата, във фигурни скоби се изброяват типа и имената на съставните променливи. В много езици за програмиране, променливите участващи в една структура се наричат нейни полета. Причината, е че лесно могат да се формират таблици от данни, в които колоните са отделните променливи в struct, а редовете (подобно на масив) са отделните променливи от тип struct.
Нека разгледаме следната задача:
Дадени са координати на точка и координатите на двете крайни точки от диаметъра на окръжност. Координатите са реални числа от предварително определен числов интервал.
Търси се взаимното положение на точката спрямо тази окръжност. В най-общия случай те са 3:
а) точката принадлежи на окръжността - разстоянието между точката и центъра на окръжността е по-малко от радиуса.
б) точката лежи на окръжността - разстоянието между точката и центъра на окръжността е равно на радиуса.
в) точката не принадлежи на окръжността - разстоянието между точката и центъра на окръжността е по-голямо от радиуса.
Алгоритъмът налага изчисляване на координатите на центъра както и радиуса на окръжността.
Центъра на окръжността е средната точка на отсечката, определена с двете крайни точки на диаметъра – изчислява се като полусума по съответните координатни оси.
Радиусът на окръжността се изчислява чрез теоремата на Питагор – дължините на двата катета са разликите в координатите на двете точки.
Можем да използваме масив с данни от тип структура обединяващи координатите на: точката, краищата на диаметъра и центъра на окръжността, но вече свързани в един елемент от масива.
В примерното решение се ползва сравняване между квадрата на разстоянието между центъра и точката с квадрата на радиуса на окръжността с цел избягване на бавната операция коренуване.
Подобни задачи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени примери.