* Структури

Публикувано на 11 октомври 2008 в раздел С/C++.

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

	struct име
	{
		описание на първия елемент;
		...
		описание на последния елемент;
	};

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

Пример: Променливите x и y се създават при дефиницията на структурата, а z на произволно място в програмата:

	struct time
	{
		int hour;
		int minute;
		float second;
	} x, y;

	...

	struct time z;

Обръщение към елемент на структура се извършва с операцията „.“:

	x.hour = 5;
	int k = x.hour;

Допустимо е елемент на структура да бъде масив или дори структура. Възможно е да се декларират масиви с елементи структура.

Пример: Програма, която въвежда име и номер на студент в структура, след което ги показва на екрана:

	#include "stdafx.h"
	#include "stdio.h"

	struct student
	{
		char name[30];
		float number;
	} student1;

	void main()
	{
		printf("Name of student1: ");
		scanf("%s", &student1.name);
		printf("Number of student1: ");
		float  f;
		scanf ("%f", &f);
		student1.number = f;

		printf ("Name = %s \n", student1.name);
		printf ("Number = %f \n", student1.number);
	}

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

Задача: Дефинирайте структура, която съдържа име, фамилия, години и факултетен номер на студент.
а) Напишете функция, която инициализира данните в структурата
б) Съставете масив от такива структури (данни на различни студенти) и напишете програма, която въвежда данните последователно в този масив.
в) Напишете функция, която предоставя възможност за изтриване на студент от създаните структури
г) Добавете функционалност, която позволява търсене на студент по различни критерии.
д) Организирайте програмата така, че да се изписва меню с различните възможности.



RSS за коментарите

Пусни коментар