Monday, August 26, 2019

சி மொழியில் ஸ்ட்ரக்ட்(struct)-1



நம்மால் ஒரு வேரியபிளில் ஒரு மதிப்பு மட்டுமே சேமிக்க முடியும்.
ஒன்றுக்கும் மேற்பட்ட மதிப்புகளை ஒரே வேரியபிள் சேமிக்க அர்ரே பயன்படுகின்றது.ஆனால் இவை ஓரே டேட்டா டைப்பாக இருக்க வேண்டும். எனினும் ரியல் வேர்ல்ட் ஆப்ஜெடுகள் ஒன்றுக்கு மேற்பட்ட விதமான டேட்டா டைப்புகளைக் கொண்டிருக்கின்றன.
உதாரணத்திற்கு ஒரு புக்கை எடுத்துக் கொள்வோம்.
புத்தகத்தின் பெயரானது கேர் அர்ரே ஆக இருக்கும். விலை float ஆக இருக்கும். மொத்த பக்கங்கள் int ஆக இருக்கும். ஆனால் இவற்றை எல்லாம் ஒரே அர்ரேயாக ஸ்டோர் செய்ய இயலாது.
இதற்கான தீர்வு தான் struct.
ஒரு ஸ்ட்ரக்ட் ஆனது ஒன்று அல்லது அதற்கு மேற்பட்ட வித்தியாசமான டேட்டா டைப்புகளைக் கொண்டிருக்கும்.
உதாரணத்திற்கு புக் என்னும் ஒரு ஸ்ட்ரக்ட் கீழே உள்ளது.
struct book
{
    char name[20];
    float price;
    int pages;

};
இதற்கு மெம்பர்களை பின் வருமாறு அமைக்கலாம்.
Struct b1,b2;
அல்லது கீழ் வரும் படியும் மொத்தமாக எழுதலாம்.
struct book
{
    char name[20];
    float price;
    int pages;

}b1,b2;
சான்று நிரல்:
#include <stdio.h>
#include <stdlib.h>
struct book
{
    char name[20];
    float price;
    int pages;

};
int main()
{
    struct book b1,b2;
    printf("Enter names, prices & no of pages of two books");
    scanf("%s%f%d",b1.name,&b1.price,&b1.pages);
    scanf("%s%f%d",b2.name,&b2.price,&b2.pages);
    printf("your entered data is\n");
    printf("%s %f %d\n",b1.name,b1.price,b1.pages);
    printf("%s %f %d",b2.name,b2.price,b2.pages);

    return 0;
}
கீழே உள்ள சான்று நிரலில் ஸ்ட்ரக்ட் மெம்பர்கள் மதிப்பு உள்ளீடு செய்யப் படாமல் மதிப்பிருத்தப்படுகின்றது.
சான்று நிரல்-2:
#include <stdio.h>
#include <stdlib.h>
struct book
{
    char name[20];
    float price;
    int pages;

};
int main()
{
    struct book b1={"java",450.00,650};
    struct book b2={"csharp ", 560.00, 750};
    printf("your entered data is\n");
    printf("%s %f %d\n",b1.name,b1.price,b1.pages);
    printf("%s %f %d",b2.name,b2.price,b2.pages);

    return 0;
}
-தொடரும்.
நன்றி.
முத்து கார்த்திகேயன்,மதுரை.
மதுரையில் c,c++, java,dotnet, php, python கற்றுக் கொள்ள பின் வரும் எண்ணைத் தொடர்பு கொள்ளவும்.
91 96293 29142

ads Udanz

No comments:

Post a Comment