Home
Add Document
Sign In
Register
Programozás C nyelven (14. ELŐADÁS) Sapientia EMTE
Home
Programozás C nyelven (14. ELŐADÁS) Sapientia EMTE
1 Programozás C nyelven (14. ELŐADÁS) Sapientia EMTE2 EMLÉKEZTETŐ: scanf/printf Billentyűzetről/Képernyőre scanf( ...
Author:
Endre Faragó
75 downloads
148 Views
894KB Size
Report
DOWNLOAD PDF
Recommend Documents
Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE
Programozás C nyelven 6. ELŐADÁS. Sapientia EMTE
Programozás C nyelven (13. ELŐADÁS) Sapientia EMTE
Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE
Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE
Sapientia EMTE Szentes Erzsébet 2014
2014. november 22. Sapientia EMTE Óbudai Egyetem
A Sapientia EMTE minőségbiztosítási bizottságának évi jelentése
A Sapientia EMTE Tanárképző Intézetének működési szabályzata
A Sapientia EMTE Tanárképző Intézetének működési szabályzata
2014. HEM labor. Szentes Erzsébet Sapientia - EMTE
Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda
Filmtörténet , második félév Sapientia-EMTE, FFM, Kolozsvár 1. év
II. ERDÉLYI KERTÉSZ ÉS TÁJÉPÍTÉSZ KONFERENCIA Sapientia EMTE. Marosvásárhely. Programfüzet
2014. Szentes Erzsébet Sapientia EMTE, Tanárképző Intézet 2014
Web programozás jegyzet 0.1 verzió. Pál László. Sapientia EMTE, Csíkszereda
A SAPIENTIA EMTE VILLAMOSMÉRNÖKI TANSZÉKÉNEK SZERVEZETI ÉS MŰKÖDÉSI SZABÁLYZATA
Java. Menetkezelés. Eseményfigyelők. ANTAL Margit. Munkamenetek. ANTAL Margit. Sapientia - EMTE
TEHETSÉGGONDOZÁS A SAPIENTIA-EMTE-N. Összeállította: dr. Bodó Barna, docens
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Marosvásárhely. ABR ( Adatbázisrendszerek) 12. Előadás:
Sapientia EMTE, Műszaki és Humán Tudományok Kara, Humán Tanszék, Csíkszereda
A Sapientia EMTE felsőoktatási munkatársainak Erasmus+ mobilitási szabályzata a periódusra
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven
Programozás C nyelven (14. ELŐADÁS) Sapientia EMTE 2015-16
1
EMLÉKEZTETŐ: scanf/printf Billentyűzetről/Képernyőre • scanf(“
”,
); • printf(“
”,
); Állományból/ba • freopen(…) – scanf / printf
• FILE *fin, *fout; – fin = fopen(“<állománynév>”, “rt”); • fscanf(fin, …); … fclose(fin);
– fout = fopen(“<állománynév>”, “wt”); • fprintf(fout, …); … fclose(fout);
Összetett típusok • Hogyan tároljuk el a memóriában az összetartozó adatokat? – TÖMB-változók: azonos típusú összetartozó adatok • egész számsorozat elemeit, int-tömbben • karakterlánc karaktereit, char-tömbben
– … és, ha az összetartozó adatok más-más típusúak? • például: egy személy neve (karakterlánc), életkora (egész szám), magassága (valós szám) • ezt a célt szolgálja a struct típus
Összetett típusok nevesítése typedef • A typedef kulcsszó lehetővé teszi, hogy nevet adj egy típusnak – új nevet egy már létezőnek – nevet egy definiálandónak
• A typedef kulcsszó típus-definiálássá változtat egy változó definiálást – konvenció szerint, a felhasználó által definiált típusnevek legyenek csupa nagybetűsek
EGESZ
EGESZ EGESZ
EGESZ
EGESZ
Olvassunk be állományból n (n≤100) diák egyszavas nevét (max 20 karakter) és prog-I vizsgajegyét, majd írassuk ki a képernyőre egy „legjobb” diák nevét.
1. megoldás
nevek 0
1
2
3
4
5
6
0
J
a
n
c
s
i
\0
0
7
1
J
u
l
c
s
i
\0
1
9
2
K
a
r
e
s
z
\0
2
6
3
M
a
r
i
s
\0
3
5
4
F
e
r
k
o
\0
4
8
progI.txt 5 Jancsi 7 Julcsi 9 Karesz 6 Maris 5 Ferko 8
jegyek
. . .
…
. . .
A legjobb diak: Julcsi_
Olvassunk be állományból n (n≤100) diák egyszavas nevét (max 20 karakter) és prog-I vizsgajegyét, majd írassuk ki a képernyőre egy „legjobb” diák nevét.
1. megoldás
int n,jegyek[100],i,maxindex; char nevek[100][21]; freopen(“progI.txt”, “r”, stdin); scanf(“%i”, &n); for( i = 0 ; i < n ; ++i ){ scanf(“%s%i”, nevek[i], &jegyek[i]); } maxindex = legjobbjegyindex(n,jegyek); printf(“A legjobb diak:\n%s”, nevek[maxindex]); Hiányosság: az adatábrázolásban nem tükröződik, hogy egy adott személy neve és jegye összetartozó adatok
FEJ f[100];
TEST t[100];
KEZ k[100];
LAB l[100];
m[1].f
struct típus typedef struct{ FEJ f; TEST t; KEZ k; LAB l; } MANOKEN; ... MANOKEN m[100];
MANOKEN m[100];
• Mivel m tömb, ezért a celláira indexeléssel hivatkozunk: m[1] • Mivel m[1] struct, ezért a mezőire pont-tal hivatkozunk: m[1].f
m[4].l
Olvassunk be állományból n (n≤100) diák egyszavas nevét (max 20 karakter) és prog-I vizsgajegyét, majd írassuk ki a képernyőre egy „legjobb” diák nevét.
2. megoldás
d progI.txt
0
J
a
n
c
s
i
\0 …
7
5 Jancsi 7 Julcsi 9 Karesz 6 Maris 5 Ferko 8
1
J
u
l
c
s
i
\0 …
9
2
K
a
r
e
s
z
\0 …
6
3
M
a
r
i
s
\0 …
5
4
F
e
r
k
o
\0 …
8
typedef struct{ char nev[21]; int jegy; }DIAK; ... DIAK d[100];
d[2].jegy
…
d[4].nev
A legjobb diak: Julcsi_
Olvassunk be állományból n (n≤100) diák egyszavas nevét (max 20 karakter) és prog-I vizsgajegyét, majd írassuk ki a képernyőre egy „legjobb” diák nevét.
2. megoldás typedef struct{ char nev[21]; int jegy; }DIAK; void irdkilegjobbdiaknev(int,DIAK*); int main(){ int n,i; DIAK d[100]; freopen(“progI.txt”, “r”, stdin); scanf(“%i”, &n); for( i = 0 ; i < n ; ++i ){ scanf(“%s%i”, d[i].nev, &d[i].jegy); } irdkilegjobbdiaknev(n,diakok); return 0; }
Olvassunk be állományból n (n≤100) diák egyszavas nevét (max 20 karakter) és prog-I vizsgajegyét, majd írassuk ki az adatokat képernyőre ABC, illetve jegyek szerinti csökkenő sorrendben. typedef struct{ char nev[21]; int jegy; }DIAK; void kiiras(int, DIAK*); int nev_cmp(const void*, const void*); int jegy_cmp(const void*, const void*); int main(){ int n,i; DIAK d[100]; freopen(“progI.txt”, “r”, stdin); scanf(“%i”, &n); for( i = 0 ; i < n ; ++i ){ scanf(“%s%i”, d[i].nev, &d[i].jegy); } qsort(d,n,sizeof(DIAK),nev_cmp); kiiras(n,d); qsort(d,n,sizeof(DIAK),jegy_cmp); kiiras(n,d); return 0; int nev_cmp(const void *p1, const void *p2){ } DIAK *q1 = (DIAK*)p1; DIAK *q2 = (DIAK*)p2; return strcmp((*q1).nev, (*q2).nev); }
struct típus/címke/változó címke
változó
változók
típus
változók
Egymásba-ágyazott struct-ok
struct – pointerek typedef struct{ char nev[21]; int jegy; }DIAK; ... DIAK x, *p = &x;
p
x
…
x.nev (*p).nev p->nev
x.jegy (*p).jegy p->jegy
int jegy_cmp(const void *p1, const void *p2){ DIAK *q1 = (DIAK*)p1; Összehasonlító függvény DIAK *q2 = (DIAK*)p2; jegy-szerint csökkenő return q2->jegy - q1->jegy; sorrendbe rendezéshez }
Agytorna p
x
…
…
BIT– mezők
union típus
Közös lónak túros a háta
Közös lónak túros a háta • Sokan értetlenül állnak e mondás előtt, hogyan is lehet túrós egy ló háta? Holott mindössze egy félreértésről van szó. Nem túrós, hanem túros. A túr egy szláv eredetű szó, jelentése: fekély, seb. Vagyis a közös lóra – mivel senki sem a kizárólagos gazdája – nem vigyáznak: igába fogják, és addig hajtják, amíg kisebesedik a háta.
union típus
2015 unsigned long
0 00 0 00 0 00 0 00 0 00 0 00 0 00 1 11 1 10 1 11 1 1 float
2.82362e-042
enum típus
?
enum típus
ISMÉTLÉS • typedef módosító jelző • struct típus
További részletek végett lásd a jegyzet 8. fejezetét
– hivatkozás adott mezőre pont operátorral – struct – pointerek • hivatkozás adott mezőre nyíl operátorral
– BIT – mezők
• union típus • enum típus
×
Report "Programozás C nyelven (14. ELŐADÁS) Sapientia EMTE"
Your name
Email
Reason
-Select Reason-
Pornographic
Defamatory
Illegal/Unlawful
Spam
Other Terms Of Service Violation
File a copyright complaint
Description
×
Sign In
Email
Password
Remember me
Forgot password?
Sign In
Our partners will collect data and use cookies for ad personalization and measurement.
Learn how we and our ad partner Google, collect and use data
.
Agree & close