Формат нь:
struct Бүтцийн_нэр {
талбар1;
талбар2;
...
талбарN;
};
Бүтцийн_нэр: бүтцийн нэр.
талбар1, талбар2, ..., талбарN: талбарууд.
Талбарууд нь стандарт болон хэрэглэгчийн тодорхойлсон төрөл, мөн бүтэц төрөлтэй байж болно.
Жишээлбэл,
struct Display {
string companyName;
float width, height, weight;
};
Бүтэц төрлийн хувьсагчийг энгийн хувьсагч зарлахтай адил Бүтцийн_нэр хувьсагч; гэж зарлана.
Жишээлбэл,
struct Computer {
int ram, cpu;
string name;
float price;
Display disp;
};
int main() {
Computer com;
}
Бүтцийн талбаруудад утга олгохдоо, мөн талбарын утгыг ашиглахдаа бүтцийн объектын ард .(цэг) тавьж, ард нь талбарын нэрийг бичинэ.
Жишээлбэл,
Display disp;
disp.companyName = "Acer";
disp.width = disp.height = 50;
disp.weight = 5;
Computer com;
com.cpu = 4;
com.disp = disp;
Бүтцийг ашиглаж нэг гоё жишээ бодлого бодъё. Танд гоё санагдахгүй ч байж магадгүй. Надад лав гоё. Тэр юу вэ? гэхээр бүтцийг ашиглаж массив төрлийн утга амархан буцааж болно. Хоёр матрицын нийлбэр матрицыг буцаадаг функц бичиж, уг функцийг дуудаж, үр дүнгийн матрицыг хэвлэе.
#include <iostream.h>
#include <iomanip.h>
struct Matrix {
float a[100][100];
};
Matrix Sum(int n, int m, float a[100][100], float b[100][100]) {
Matrix mat;
int i, j;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
mat.a[i][j] = a[i][j] + b[i][j];
return mat;
}
int main() {
float a[100][100], b[100][100];
Matrix mat;
int n, m, i, j;
cout<<" n = ";
cin>>n;
cout<<" m = ";
cin>>m;
for(i=0; i<n; i++) {
cout<<endl;
for(j=0; j<m; j++) {
cout<<" a["<<i<<"]["<<j<<"] = ";
cin>>a[i][j];
cout<<" b["<<i<<"]["<<j<<"] = ";
cin>>b[i][j];
}
}
mat = Sum(n, m, a, b);
cout<<"\n Niilber matrix:\n";
for(i=0; i<n; i++) {
cout<<endl;
for(j=0; j<m; j++) {
cout.width(8);
cout<<mat.a[i][j];
}
}
cout<<"\n\n";
float a[100][100], b[100][100];
Matrix mat;
int n, m, i, j;
cout<<" n = ";
cin>>n;
cout<<" m = ";
cin>>m;
for(i=0; i<n; i++) {
cout<<endl;
for(j=0; j<m; j++) {
cout<<" a["<<i<<"]["<<j<<"] = ";
cin>>a[i][j];
cout<<" b["<<i<<"]["<<j<<"] = ";
cin>>b[i][j];
}
}
mat = Sum(n, m, a, b);
cout<<"\n Niilber matrix:\n";
for(i=0; i<n; i++) {
cout<<endl;
for(j=0; j<m; j++) {
cout.width(8);
cout<<mat.a[i][j];
}
}
cout<<"\n\n";
matritsiin diognal elementuud bolon hesegchlen awsan elementuudiin niilberiig oloh jishee tawij ogooch taalagdaj bna bayarlalaa
ReplyDeletetaalagdaj bnaa
ReplyDeleteХэсэгчлэн авсан элемент гэдгийг ойлгосонгүй. Ямар ч байсан тодорхой (сонгон авсан) элементүүдийг хооронд нь нэмчих л байх. Харин N*N квадрат матрицын гол болон хажуугийн диагоналийн элементүүдийн нийлбэрийг олдог код бичиж өгье (C++).
ReplyDelete#include
int main() {
float a[100][100], s1, s2;
int n, i, j;
cout<<" n = ";
cin>>n;
s1 = s2 = 0;
for(i=0; i<n; i++) {
cout<<endl;
for(j=0; j<n; j++) {
cout<<" a["<<i<<"]["<<j<<"] = ";
cin>>a[i][j];
}
s1 += a[i][i];
s2 += a[i][n-i-1];
}
cout<<"\n Gol diagonaliin elementuudiin niilber: "<<s1;
cout<<"\n Khajuugiin diagonaliin elementuudiin niilber: "<<s2<<endl;
system("pause");
}
thanks! ih medeelel awlaa!!!!!
ReplyDeletenohoi gesen butets uusge, talbaruud ni huis, uildwer, nas bna.
tegwel 8-s doo\sh nasnii hohoinii medeelllig garga!
eniig bodood uguuch..,
#include
ReplyDelete#include
using namespace std;
struct Dog {
string sex, breed;
int age;
};
int main() {
Dog d[100];
...
for(i=0; i<N; i++)
if(d[i].age < 8)
cout<<d[i].sex<<" "<<...;
system("pause");
}
Өөрөө гүйцээтчих дутууг нь. Залхуу хүрчихлээ :)
Оюутны код, оюутны нэр, хичээлийн нэр, авсан оноо, анги гэсэн талбаруудтай бүтэц төрлийн массив өгөгдөв.
ReplyDeletea. Оюутны код өгөгдөхөд тухайн оюутны мэдээллийг харуул.
eniig yaaj bodox ystoi ve tuslaach
ReplyDeleteОюутны код, оюутны нэр, хичээлийн нэр, авсан оноо, анги гэсэн талбаруудтай бүтэц төрлийн массив өгөгдөв.
ReplyDeletea. Оюутны код өгөгдөхөд тухайн оюутны мэдээллийг харуул.
eniig yaj bodox ve?
Өмнөх жишээнүүд дээрхи бүтэцийн нэр, талбаруудыг нь өөрчлөөд л болоо ш дээ.
ReplyDeleteoyuutniih ni too ni ugugduhgui bolhor sn oilgohgui bnaaa
ReplyDeleteta zuvhun naad bodlogoo zaagaad ugchh tehuu??? guij bn
ReplyDeletecout<<d[i].sex<<" "<<...; ene ni yaaj bgaa uildel um bol????
ReplyDeleteDog (struct) төрлийн d массивын i дүгээр элементийн sex талбарын утга буюу дугаарлагдсан бүлэг нохойнуудын i дүгээр нохойн хүйс гэсэн үг.
Delete#include
ReplyDelete#include
unsigned int i,n;
struct student{
char code, name, hichelinner, onoo, angi;
};
int main(){
student a[100];
for(i=0;i<n;i++)
printf("%s\n", a[i].name);
printf("%s\n", a[i].hichelinner);
printf("%s\n", a[i].onoo);
printf("%s\n", a[i].angi);
getch();
}
ene mun vv?? ta shalgaad uguuch
Delete1. Оюутны тоо нь өгөгдөх ёстой. Оюутны тоог гараас авна.
Delete2. Давталтаар бүх оюутны мэдээллийг гараас оруулна.
3. Хайж олох гэж байгаа оюутны кодыг гараас оруулна.
4. Давталтаар оюутнуудын эхнээс нь эхэлж код нь өгөгдсөн кодтой тэнцүү эсэхийг шалгаж, тэнцүү байвал уг оюутны мэдээллийг хэвлээд давталтаас гарна.
Хэрэв давталт дуустал тийм кодтой оюутан олдохгүй бол "Оюутан байхгүй" гэсэн мэдээлэл хэвлэнэ.
5. Төгсгөл.
Ийм л дараалалтай байна даа
#include
ReplyDelete#include
unsigned int i,n;
struct student{
char code[20];
char name[20];
char hichelinner[20];
int onoo[20];
char angi[20];
};
int main(){
student a[n];
for(i=0;i<n;i++)
printf("%s\n", a[i].name);scanf("%s",a[i].name);
printf("%s\n", a[i].hichelinner);scanf("%s",a[i].hichelinner);
printf("%d\n", a[i].onoo);scanf("%d",a[i].onoo);
printf("%s\n", a[i].angi);scanf("%s",a[i].angi);
getch();
}
odoo ene mun bolov uu
sain bnuu neg yuma suuh gesimaa oyutni burtgel gedeg sedver bie dalt hij bgama tgd oyutang burtgechihed tuhain oyutni medeelliig oorchloh ustgah haih nemeh geh met uildluudig ni coden dotroo bichej ogoh estoin yaj hihin bolooo HEEELP MEEEE stack 2 holboost jagsaalt ashiglana gesiin
ReplyDelete