Динамикалық жиымдар
Биттік өрістерді карта элементтерін сақтау үшін қолдану мысалы.
#include <iostream.h> #include <iomanip.h> #include <stdio.h> #include <math.h> struct BitCard { unsigned face: 4; /* ағылш. face – карта;0 – туз,..., 12 – король */ unsigned suit: 2; /* ағылш. suit – карта түрі;0 – қиық, 1 – табан,2 – шыбын,3 – қарға */ unsigned color: 1; /* color–түсі;0–қызыл,1–қара */ }; void fillDeck(BitCard * ); /* deck жиымын 52 картамен толтыру */ void deal(BitCard * ); /* deal – карта тарату; экран 52 карта шығару */ void main() { BitCard deck[52]; /* 52 картадан тұратын жиым */ fillDeck(deck); deal(deck); } void fillDeck(BitCard * temp_deck) { for (int i = 0; i < 52; i++) { temp_deck[i].face = i % 13; temp_deck[i].suit = i / 13; temp_deck[i].color = i / 26; } } void deal(BitCard * temp_deck) { int l = 0; /* бөліп шығару үшін */ /* ықшамды болуы үшін карталарды екі бағанға бөлеміз: 0-25 карталар – бірінші баған, 26-51 карталар – екінші баған */ for(int k1=0,k2=k1+26;k1<=25;k1++,k2++) { cout << "Card: "<<setw(3) <<temp_deck[k1].face << "Suit: "<< setw(2) << temp_deck[k1].suit << " Color: " << setw(2) << temp_deck[k1].color; cout << " Card: " << setw(3) << temp_deck[k2].face << " Suit: " << setw(2) << temp_deck[k2].suit << " Color: " << setw(2) << temp_deck[k2].color << endl; l++; if (l > 12) { /* жалғастыру үшін Enter басу керек */ printf("Press Enter"); getchar(); l = 0; } } }
ТАПСЫРМАЛАР
Келесі мәліметтерден құралған төрт студент туралы ақпаратты енгізіңіз:
- тегі және инициалы;
- туған жылы;
- оқуға түскен жылы;
- бірінші семестрдің бағасы:
- физика;
- жоғарғы математика;
- информатика;
1. Әліпби бойынша реттелген студенттердің тізімін шығару керек.
2. Туған жылы бойынша реттелген студенттердің тізімін көрсету қажет.
3. Оқуға түскен жылы бойынша реттелген озат студенттердің тізімін шығару керек.
4. Сессияны 4 және 5-ке тапсырған студенттердің анкеталық мәліметтері шығарылуға тиіс.
5. Тегі (фамилиясы) Б әрпінен басталатын студенттердің тізімін және олардың барлық пәндер бойынша бағаларын көрсету керек.
6. Оқу озаттарының анкеталық мәліметтерін шығару қажет.
7. Тегі А әріпінен басталатын студенттердің тізімін және олардың туған жылдарыкөрсетілуі тиіс.
8. Сессияда «3» деген бағалары бар студенттердің анкеталық мәліметтерін шығару керек.
9. Тегі В және Г әрпінен басталатын студенттердің тізімін және олардың бағаларын шығаратын программа құру керек.
10. Сессияны «үштік» баға алмай, емтихан тапсырған студенттердің тізімін және олардың туған жылдарын шығару керек.