Adatok
szajbergyerek
0 bejegyzést írt és 8 hozzászólása volt az általa látogatott blogokban.
Ez a poszt a vizsgázókat segíti. A vizsga lehet írásbeli vagy szóbeli, a hallgató szabad választása szerint. Bármely vizsgán használható bármi (kivéve a másokkal való direkt kommunikáció pl. chat, facebook, email stb. A vizsgát videóra rögzítjük, akár az utólagos elemzés…..
szajbergyerek
2013.06.26 21:35:01
@nb: "... az ugyancsak, ha valaki olyan kérdésre nem tudja a választ, ami bevezető első védéses sztenderd kérdésem volt, pl. másolókonstruktor stb. témában."
Tisztelt Tanár Úr!
Ez eszembe juttatott egy másik kérdést is. A vizsga kb. mennyire támaszkodik elméleti kérdésekre? Be kell vágni azt a rengeteg oldalt a KÖNYV-ben, ami az év folyamán fel volt adva kötelező olvasmányként? Melyek azok a részek, amelyekre nagyobb figyelmet kell szentelni? Esetleg jó, ha készítünk egy rövid jegyzetet a kötelezően feladott részek tartalmából?
A gyakorlatot Godó Zoltán tanár úrnál vettem fel, ezért egy másik kérdés: melyek azok az ominózus bevezető első védéses sztenderd kérdések, amelyekre nagyon kell ügyelni?
Tisztelt Tanár Úr!
Ez eszembe juttatott egy másik kérdést is. A vizsga kb. mennyire támaszkodik elméleti kérdésekre? Be kell vágni azt a rengeteg oldalt a KÖNYV-ben, ami az év folyamán fel volt adva kötelező olvasmányként? Melyek azok a részek, amelyekre nagyobb figyelmet kell szentelni? Esetleg jó, ha készítünk egy rövid jegyzetet a kötelezően feladott részek tartalmából?
A gyakorlatot Godó Zoltán tanár úrnál vettem fel, ezért egy másik kérdés: melyek azok az ominózus bevezető első védéses sztenderd kérdések, amelyekre nagyon kell ügyelni?
Programozó Páternoszter
Imádni fogják a C++-t, egy emberként, tiszta szívből 4 (*)
2012.04.10 15:43:00
Ez a 6. (logikai) előadás posztja. Fő feladatunk a védés előkészítése után maga a védés. Aki már az április 9-i héten a laborján vállalja a z3a7.cpp forrás celebrálását, annak máris megvan a félév közepei védése, feltéve persze, hogy a celebráció sikeres. (Áprilisban…..
szajbergyerek
2012.04.20 21:00:20
Ez a poszt az év közbeni védést támogatja. Laborfeladatként a védés "C vetületét" készítjük el. Itt nem adok teljes kódot, hogy a hallgató rá legyen szorítva az önálló munkára. (A közelgő aktuális védésre ez nem igaz, hiszen az annak alapjául szolgáló teljes…..
szajbergyerek
2012.03.30 17:29:05
@szajbergyerek: Screenshot-ot elfelejtettem mellékelni: kepfeltoltes.hu/view/120330/screenshot_exercise76_www.kepfeltoltes.hu_.png
szajbergyerek
2012.03.30 17:32:44
K&R feladat
Készítő: KDániel
Binom: szajbergyerek
6.3. gyakorlat - Írjunk kereszthivatkozási programot, amely kiírja egy dokumentumban lévő szavakat az előfordulás, helyüket megadó sorszámmal együtt! A program ne vegye figyelembe az olyan töltelékszavakat, mint "a", "az", "és" stb.!
---
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#define SOR_MAX 1000
#define SZO_MAX 100
typedef struct szavak
{
char szo[SZO_MAX];
int sorok[SOR_MAX];
struct szavak *kov;
} SZAVAK;
SZAVAK *fej=NULL;
void kiir (void)
{ int i;
SZAVAK *akt=fej;
while(akt!=NULL)
{
printf("[%s] - ",akt->szo);
for(i=0;i<SOR_MAX;i++)
{ if(akt->sorok[i]==0) break;
printf("%d, ",akt->sorok[i]);
}
printf("\n");
fej=akt;
akt=akt->kov;
free(fej);
}
return;
}
int string_compare(char mivel[], char mit[])
{int i=0,j=0;
while(i<=strlen(mivel) && j<=strlen(mit))
{
if(mivel[i]!=mit[j]) return 0;
else {
i++;
j++;
}
}
if(i==strlen(mivel) && j==strlen(mit)) return 1;
}
SZAVAK *melyik(char mit[])
{ SZAVAK *akt=fej;
while(akt!=NULL)
{
if(string_compare(akt->szo,mit))
return akt;
akt=akt->kov;
}
return NULL;
}
int van_e_mar(char mit[])
{int az=0;
SZAVAK *akt=fej;
if(akt==NULL) return 0;
while(akt!=NULL)
{
if(string_compare(akt->szo,mit)) az++;
akt=akt->kov;
}
if(az>0) return 1;
else return 0;
}
void cross_referencer(FILE *fp)
{ SZAVAK *uj=NULL;
char sor[SOR_MAX],szo[SZO_MAX];
int i,j,sor_szam=1,k;
//Végig megyek a fájlon
while(!feof(fp))
{
for(i=0;i<SOR_MAX;i++) sor[i]='\0';
//Soronként olvasom be a fájlt...
fgets(sor,SOR_MAX,fp);
k=0;
while(k<strlen(sor)){
for(i=0;i<SZO_MAX;i++) szo[i]='\0';
i=0;
//de feldolgozni szavanként akarom
while((sor[k]!=' ') && (sor[k]!=';') && (sor[k]!='\t') && (sor[k]!='\0') && (sor[k]!='\n') && (sor[k]!='.') && (sor[k]!=':') && (sor[k]!=','))
{szo[i]=tolower(sor[k]);
i++;
k++;
if(i>SZO_MAX) {
printf("Hiba! - Tul rovid szohossz van megadva!\n");
exit -1;
}
}
if(strlen(szo)>0)
if(!van_e_mar(szo))
{
//Ha még nincs felvéve ez a szó, akkor megkísérlek lefoglalni neki helyet, és eltárolom
if((uj=(SZAVAK *) malloc(sizeof(SZAVAK)))==NULL)
{
printf("Hiba! - Kifogytunk a memoriabol!\n");
exit -1;
}
else {
strcpy(uj->szo,szo);
i=0;
while(i<SOR_MAX)
{uj->sorok[i]=0;
i++;
}
uj->sorok[0]=sor_szam;
uj->kov=fej;
fej=uj;
}
}
else {
//Ha már fel van véve, megnézem melyik szóról is van szó és ha még nincs letárolva a találati sor, akkor beleírom
if((uj=melyik(szo))==NULL) { printf("Hiba! - Azt kaptam, hogy benne van mar, de meg sincs!\n");
exit -1;
}
i=0;
while(uj->sorok[i]!=0 && i<SOR_MAX)
{ if(uj->sorok[i]==sor_szam) break;
i++;
}
if(uj->sorok[i]==0) uj->sorok[i]=sor_szam;
else if(i>=SOR_MAX)
{ printf("Hiba! - Tul kicsi sor szam van megadva!\n");
exit -1;
}
}
k++;
}
sor_szam++;
}
//Végül kiírás után felszabadítom
printf("A talalt szavak: (szo - sorok szamai)\n");
kiir();
return;
}
main() {
FILE *fpp=fopen("document.txt","r");
if(fpp==NULL) {
printf("Hiba! - Nincs meg a fájl!\n");
exit -1;
}
else cross_referencer(fpp);
fflush(fpp);
fclose(fpp);
return 0;
}
---
Screenshot: kepfeltoltes.hu/view/120330/screenshot_exercise63_www.kepfeltoltes.hu_.png
Készítő: KDániel
Binom: szajbergyerek
6.3. gyakorlat - Írjunk kereszthivatkozási programot, amely kiírja egy dokumentumban lévő szavakat az előfordulás, helyüket megadó sorszámmal együtt! A program ne vegye figyelembe az olyan töltelékszavakat, mint "a", "az", "és" stb.!
---
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#define SOR_MAX 1000
#define SZO_MAX 100
typedef struct szavak
{
char szo[SZO_MAX];
int sorok[SOR_MAX];
struct szavak *kov;
} SZAVAK;
SZAVAK *fej=NULL;
void kiir (void)
{ int i;
SZAVAK *akt=fej;
while(akt!=NULL)
{
printf("[%s] - ",akt->szo);
for(i=0;i<SOR_MAX;i++)
{ if(akt->sorok[i]==0) break;
printf("%d, ",akt->sorok[i]);
}
printf("\n");
fej=akt;
akt=akt->kov;
free(fej);
}
return;
}
int string_compare(char mivel[], char mit[])
{int i=0,j=0;
while(i<=strlen(mivel) && j<=strlen(mit))
{
if(mivel[i]!=mit[j]) return 0;
else {
i++;
j++;
}
}
if(i==strlen(mivel) && j==strlen(mit)) return 1;
}
SZAVAK *melyik(char mit[])
{ SZAVAK *akt=fej;
while(akt!=NULL)
{
if(string_compare(akt->szo,mit))
return akt;
akt=akt->kov;
}
return NULL;
}
int van_e_mar(char mit[])
{int az=0;
SZAVAK *akt=fej;
if(akt==NULL) return 0;
while(akt!=NULL)
{
if(string_compare(akt->szo,mit)) az++;
akt=akt->kov;
}
if(az>0) return 1;
else return 0;
}
void cross_referencer(FILE *fp)
{ SZAVAK *uj=NULL;
char sor[SOR_MAX],szo[SZO_MAX];
int i,j,sor_szam=1,k;
//Végig megyek a fájlon
while(!feof(fp))
{
for(i=0;i<SOR_MAX;i++) sor[i]='\0';
//Soronként olvasom be a fájlt...
fgets(sor,SOR_MAX,fp);
k=0;
while(k<strlen(sor)){
for(i=0;i<SZO_MAX;i++) szo[i]='\0';
i=0;
//de feldolgozni szavanként akarom
while((sor[k]!=' ') && (sor[k]!=';') && (sor[k]!='\t') && (sor[k]!='\0') && (sor[k]!='\n') && (sor[k]!='.') && (sor[k]!=':') && (sor[k]!=','))
{szo[i]=tolower(sor[k]);
i++;
k++;
if(i>SZO_MAX) {
printf("Hiba! - Tul rovid szohossz van megadva!\n");
exit -1;
}
}
if(strlen(szo)>0)
if(!van_e_mar(szo))
{
//Ha még nincs felvéve ez a szó, akkor megkísérlek lefoglalni neki helyet, és eltárolom
if((uj=(SZAVAK *) malloc(sizeof(SZAVAK)))==NULL)
{
printf("Hiba! - Kifogytunk a memoriabol!\n");
exit -1;
}
else {
strcpy(uj->szo,szo);
i=0;
while(i<SOR_MAX)
{uj->sorok[i]=0;
i++;
}
uj->sorok[0]=sor_szam;
uj->kov=fej;
fej=uj;
}
}
else {
//Ha már fel van véve, megnézem melyik szóról is van szó és ha még nincs letárolva a találati sor, akkor beleírom
if((uj=melyik(szo))==NULL) { printf("Hiba! - Azt kaptam, hogy benne van mar, de meg sincs!\n");
exit -1;
}
i=0;
while(uj->sorok[i]!=0 && i<SOR_MAX)
{ if(uj->sorok[i]==sor_szam) break;
i++;
}
if(uj->sorok[i]==0) uj->sorok[i]=sor_szam;
else if(i>=SOR_MAX)
{ printf("Hiba! - Tul kicsi sor szam van megadva!\n");
exit -1;
}
}
k++;
}
sor_szam++;
}
//Végül kiírás után felszabadítom
printf("A talalt szavak: (szo - sorok szamai)\n");
kiir();
return;
}
main() {
FILE *fpp=fopen("document.txt","r");
if(fpp==NULL) {
printf("Hiba! - Nincs meg a fájl!\n");
exit -1;
}
else cross_referencer(fpp);
fflush(fpp);
fclose(fpp);
return 0;
}
---
Screenshot: kepfeltoltes.hu/view/120330/screenshot_exercise63_www.kepfeltoltes.hu_.png
Az elmúlt héten többen szóvá tették, hogy Ők nem olvasták a labor posztját, ezért nem tudták, hogy pontosan milyen olvasmányélményekkel kell, hogy a laborra rendelkezzenek. A hallgatói laborkártya kezdeményezés kb. olyan, mint amikor a magyar tanárod rákérdezett, hogy "a…..
szajbergyerek
2012.03.19 23:37:22
@KDániel: Üdv!
KDániel binomja vagyok. Ellenőriztem az általa beküldött programokat, és itt vannak a kódok, valamint a képernyőmentések is:
---
1.12. gyakorlat - Írjunk programot, ami a bemenetére adott szöveg minden szavát új sorba írja ki!
#include <stdio.h>
int main()
{
int i=0,k;
char s[80];
printf("Kerem a szoveget: ");
while((s[i]=getchar())!='\n')
i++;
for(k=i;k<80;k++)
s[k]='\0';
for(k=0;k<i;k++)
if(s[k]==' ') printf("\n");
else printf("%c",s[k]);
printf("\n");
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_1-12_www.kepfeltoltes.hu_.png
---
1.17. gyakorlat - Írjunk programot, ami kiírja az összes, 80 karakternél hosszabb bemeneti sort!
#include <stdio.h>
#include <string.h>
#define MAX_SOR 1000
int main ()
{
char sor[MAX_SOR]={'\0'};
int i=0,k;
while((sor[i]=getchar())!=EOF)
{
if(sor[i]=='\n')
{
if(strlen(sor)>81)
printf("%s\n",sor);
for(k=0;k<i; k++)
sor[k]='\0';
i=-1;
}
i++;
}
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_1-17_www.kepfeltoltes.hu_.png
---
4.1. gyakorlat - Írjuk meg az 'strindex(s, t)' függvénynek azt a változatát, amely a 't' minta 's'-beli legutolsó előfordulásának indexével, vagy ha 't' nem található meg 's'-ben, akkor -1-gyel tér vissza!
#include <stdio.h>
#include <string.h>
int strindex(char *miben, char *mit)
{
int i=0,van=1,j=0,l;
while (i<strlen(miben))
{
van=1;
if(miben[i]==mit[0])
{
j=i+1;
for(l=1;l<strlen(mit); l++)
{
if(miben[j]==mit[l]) van++;
j++;
}
if(van==strlen(mit)) return i+1;
}
i++;
}
return -1;
}
main () {
char s[80],t[80]; int i=0,k;
printf("Kerem a szoveget: ");
while((s[i]=getchar())!='\n') i++;
for(k=i;k<80; k++) s[k]='\0';
printf("Kerem a keresett szovegreszt: ");
i=0;
while((t[i]=getchar())!='\n') i++;
for(k=i;k<80; k++) t[k]='\0';
printf("Az eredmeny (ha szam, akkor onnantol kezdodik a szovegben, ha -1 akkor nincs meg): %d\n",strindex(s,t));
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_4-1_www.kepfeltoltes.hu_.png
KDániel binomja vagyok. Ellenőriztem az általa beküldött programokat, és itt vannak a kódok, valamint a képernyőmentések is:
---
1.12. gyakorlat - Írjunk programot, ami a bemenetére adott szöveg minden szavát új sorba írja ki!
#include <stdio.h>
int main()
{
int i=0,k;
char s[80];
printf("Kerem a szoveget: ");
while((s[i]=getchar())!='\n')
i++;
for(k=i;k<80;k++)
s[k]='\0';
for(k=0;k<i;k++)
if(s[k]==' ') printf("\n");
else printf("%c",s[k]);
printf("\n");
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_1-12_www.kepfeltoltes.hu_.png
---
1.17. gyakorlat - Írjunk programot, ami kiírja az összes, 80 karakternél hosszabb bemeneti sort!
#include <stdio.h>
#include <string.h>
#define MAX_SOR 1000
int main ()
{
char sor[MAX_SOR]={'\0'};
int i=0,k;
while((sor[i]=getchar())!=EOF)
{
if(sor[i]=='\n')
{
if(strlen(sor)>81)
printf("%s\n",sor);
for(k=0;k<i; k++)
sor[k]='\0';
i=-1;
}
i++;
}
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_1-17_www.kepfeltoltes.hu_.png
---
4.1. gyakorlat - Írjuk meg az 'strindex(s, t)' függvénynek azt a változatát, amely a 't' minta 's'-beli legutolsó előfordulásának indexével, vagy ha 't' nem található meg 's'-ben, akkor -1-gyel tér vissza!
#include <stdio.h>
#include <string.h>
int strindex(char *miben, char *mit)
{
int i=0,van=1,j=0,l;
while (i<strlen(miben))
{
van=1;
if(miben[i]==mit[0])
{
j=i+1;
for(l=1;l<strlen(mit); l++)
{
if(miben[j]==mit[l]) van++;
j++;
}
if(van==strlen(mit)) return i+1;
}
i++;
}
return -1;
}
main () {
char s[80],t[80]; int i=0,k;
printf("Kerem a szoveget: ");
while((s[i]=getchar())!='\n') i++;
for(k=i;k<80; k++) s[k]='\0';
printf("Kerem a keresett szovegreszt: ");
i=0;
while((t[i]=getchar())!='\n') i++;
for(k=i;k<80; k++) t[k]='\0';
printf("Az eredmeny (ha szam, akkor onnantol kezdodik a szovegben, ha -1 akkor nincs meg): %d\n",strindex(s,t));
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_4-1_www.kepfeltoltes.hu_.png
szajbergyerek
2012.03.19 23:38:11
@szajbergyerek:
4.13. gyakorlat - Írjuk meg az 's' karaktersorozatot helyben megfordító 'reverse(s)' függvény rekurzív változatát!
#include <stdio.h>
#include <string.h>
#define MAX_ 120
int reverse_recursive(char *mit,int hossz)
{
printf("%c",mit[hossz]);
if(hossz>=0)
printf("%c",reverse_recursive(mit,hossz-1));
else
return;
}
int main(void)
{
char s[MAX_]={'\0'};
int i=0,k;
printf("Kerem a szoveget: ");
while((s[i]=getchar())!='\n')
i++;
for(k=i;k<MAX_; k++)
s[k]='\0';
reverse_recursive(s,strlen(s));
printf("\n");
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_4-13_www.kepfeltoltes.hu_.png
---
5.4. gyakorlat - Írjon 'strend(s, t)' néven függvényt, amely 1 értékkel tér vissza, ha a 't' karaktersorozat megtalálható az 's' karaktersorozat végén, és 0 értékkel, ha nem!
#include <stdio.h>
#include <string.h>
#define MAX_ 100
int strend(char *miben, char *mit)
{
int i,j,l,van=1;
for(i=(strlen(miben)-strlen(mit)); i<strlen(miben); i++)
{
if(miben[i]==mit[0])
{
l=i+1;
for(j=1;j<strlen(mit); j++)
{
if(miben[l]==mit[j])
van++;
else break;
l++;
}
if(van==strlen(mit))
return 1;
}
van=1;
}
return 0;
}
int main(void)
{
char s[MAX_],t[MAX_];
int i=0,k;
printf("Kerem a szoveget: ");
while((s[i]=getchar())!='\n')
i++;
for(k=i;k<MAX_; k++)
s[k]='\0';
printf("Kerem a keresett szovegreszt: ");
i=0;
while((t[i]=getchar())!='\n')
i++;
for(k=i;k<MAX_;k++)
t[k]='\0';
printf("Az eredmeny: %d \n(- 1 benne van a vegen\n - 0 nincs benne a vegen)\n",strend(s,t));
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_5-4_www.kepfeltoltes.hu_.png
---
5.13. gyakorlat - Írjuk meg a 'tail' programot, amely kinyomtatja az utolsó 'n' bemeneti sort! Alapfeltételezés szerint legyen n=10, de tegyük lehetővé 'n' változtatását egy opcionális argumentummal pl. a
tail -n
formában. (Ennek hatására az utolsón sor íródjon ki.) A program viselkedjen ésszerűen akkor is, ha a bemenet vagy az 'n' értéke ésszerűtlen. A programot úgy írjuk meg, hogy a lehető legjobban használja a rendelkezésére álló tárterületet: a szövegsorokat a rendezőprogramnál leírt módon tároljuk és ne rögzített méretű kétdimenziós tömbként.
#include <stdio.h>
#include <string.h>
#define MAX_ 1000
main(int argc, char *argv[])
{
char s[MAX_]={'\0'}, sorok[MAX_][MAX_]={'\0'};
int n=23,i=0,sor=0,k;
if(argc==1) n=10;
else n=*argv[1]-'0';
while((s[i]=getchar())!=EOF)
{
if(s[i]=='\n')
{
strcpy(sorok[sor],s);
for(k=0;k<i; k++) s[k]='\0';
i=-1;
sor++;
}
i++;
}
if(n>sor)
{
printf("Nincs annyi bejovo adat\n");
return 1;
}
else for(i=sor-n;i<sor;i++)
printf("%s",sorok[i]);
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_5-13_www.kepfeltoltes.hu_.png
---
7.1. gyakorlat - Írjunk programot, amely a hívásakor az argv[0]-ban elhelyezett paramétertől függően a nagybetűket kisbetűvé vagy a kisbetűket nagybetűvé alakítja!
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int strend(char *miben, char *mit)
{int i,j,l,van=1;
for(i=(strlen(miben)-strlen(mit)); i<strlen(miben); i++)
{
if(miben[i]==mit[0])
{
l=i+1;
for(j=1;j<strlen(mit); j++)
{
if(miben[l]==mit[j]) van++;
else break;
l++;
}
if(van==strlen(mit)) return 1;
}
van=1;
}
return 0;
}
main(int argc,char *argv[])
{
char s;
printf("* vegjelig atalakitja a bemenetet a hivasnak megfeleloen\n");
if (strend(argv[0],"lower"))
while((s=getchar())!=EOF)
{
putchar(tolower(s));
if(s=='*') break;
}
else if(strend(argv[0],"upper"))
while((s=getchar())!=EOF)
{
putchar(toupper(s));
if(s=='*') break;
}
else
{
printf("Hibas hivas\n");
return 1;
}
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_7-1_www.kepfeltoltes.hu_.png
4.13. gyakorlat - Írjuk meg az 's' karaktersorozatot helyben megfordító 'reverse(s)' függvény rekurzív változatát!
#include <stdio.h>
#include <string.h>
#define MAX_ 120
int reverse_recursive(char *mit,int hossz)
{
printf("%c",mit[hossz]);
if(hossz>=0)
printf("%c",reverse_recursive(mit,hossz-1));
else
return;
}
int main(void)
{
char s[MAX_]={'\0'};
int i=0,k;
printf("Kerem a szoveget: ");
while((s[i]=getchar())!='\n')
i++;
for(k=i;k<MAX_; k++)
s[k]='\0';
reverse_recursive(s,strlen(s));
printf("\n");
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_4-13_www.kepfeltoltes.hu_.png
---
5.4. gyakorlat - Írjon 'strend(s, t)' néven függvényt, amely 1 értékkel tér vissza, ha a 't' karaktersorozat megtalálható az 's' karaktersorozat végén, és 0 értékkel, ha nem!
#include <stdio.h>
#include <string.h>
#define MAX_ 100
int strend(char *miben, char *mit)
{
int i,j,l,van=1;
for(i=(strlen(miben)-strlen(mit)); i<strlen(miben); i++)
{
if(miben[i]==mit[0])
{
l=i+1;
for(j=1;j<strlen(mit); j++)
{
if(miben[l]==mit[j])
van++;
else break;
l++;
}
if(van==strlen(mit))
return 1;
}
van=1;
}
return 0;
}
int main(void)
{
char s[MAX_],t[MAX_];
int i=0,k;
printf("Kerem a szoveget: ");
while((s[i]=getchar())!='\n')
i++;
for(k=i;k<MAX_; k++)
s[k]='\0';
printf("Kerem a keresett szovegreszt: ");
i=0;
while((t[i]=getchar())!='\n')
i++;
for(k=i;k<MAX_;k++)
t[k]='\0';
printf("Az eredmeny: %d \n(- 1 benne van a vegen\n - 0 nincs benne a vegen)\n",strend(s,t));
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_5-4_www.kepfeltoltes.hu_.png
---
5.13. gyakorlat - Írjuk meg a 'tail' programot, amely kinyomtatja az utolsó 'n' bemeneti sort! Alapfeltételezés szerint legyen n=10, de tegyük lehetővé 'n' változtatását egy opcionális argumentummal pl. a
tail -n
formában. (Ennek hatására az utolsón sor íródjon ki.) A program viselkedjen ésszerűen akkor is, ha a bemenet vagy az 'n' értéke ésszerűtlen. A programot úgy írjuk meg, hogy a lehető legjobban használja a rendelkezésére álló tárterületet: a szövegsorokat a rendezőprogramnál leírt módon tároljuk és ne rögzített méretű kétdimenziós tömbként.
#include <stdio.h>
#include <string.h>
#define MAX_ 1000
main(int argc, char *argv[])
{
char s[MAX_]={'\0'}, sorok[MAX_][MAX_]={'\0'};
int n=23,i=0,sor=0,k;
if(argc==1) n=10;
else n=*argv[1]-'0';
while((s[i]=getchar())!=EOF)
{
if(s[i]=='\n')
{
strcpy(sorok[sor],s);
for(k=0;k<i; k++) s[k]='\0';
i=-1;
sor++;
}
i++;
}
if(n>sor)
{
printf("Nincs annyi bejovo adat\n");
return 1;
}
else for(i=sor-n;i<sor;i++)
printf("%s",sorok[i]);
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_5-13_www.kepfeltoltes.hu_.png
---
7.1. gyakorlat - Írjunk programot, amely a hívásakor az argv[0]-ban elhelyezett paramétertől függően a nagybetűket kisbetűvé vagy a kisbetűket nagybetűvé alakítja!
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int strend(char *miben, char *mit)
{int i,j,l,van=1;
for(i=(strlen(miben)-strlen(mit)); i<strlen(miben); i++)
{
if(miben[i]==mit[0])
{
l=i+1;
for(j=1;j<strlen(mit); j++)
{
if(miben[l]==mit[j]) van++;
else break;
l++;
}
if(van==strlen(mit)) return 1;
}
van=1;
}
return 0;
}
main(int argc,char *argv[])
{
char s;
printf("* vegjelig atalakitja a bemenetet a hivasnak megfeleloen\n");
if (strend(argv[0],"lower"))
while((s=getchar())!=EOF)
{
putchar(tolower(s));
if(s=='*') break;
}
else if(strend(argv[0],"upper"))
while((s=getchar())!=EOF)
{
putchar(toupper(s));
if(s=='*') break;
}
else
{
printf("Hibas hivas\n");
return 1;
}
return 0;
}
kepfeltoltes.hu/view/120319/screenshot_exercise_7-1_www.kepfeltoltes.hu_.png
Belépve többet láthatsz. Itt beléphetsz
Ahogy kérte, az Önnek küldött kérdésemet itt is fölteszem.
Tulajdonképpen arra lennék kíváncsi, hogy egészen pontosan mire is kell ügyelni a tételek kidolgozásánál, azon kívül hogy alaposan átolvassuk a KÖNYV megadott témáit.
Ezenkívül azonban mely részeknek kell kiemelt figyelmet szentelni?
A laborkártyáknak?
Annak a posztnak a gyakorlati feladatainak, amelyek foglalkoznak az adott tételt lefedő témákkal?
Esetleg magában a KÖNYV-ben levő (a gyakorlatokon opcionálisként címezett) feladatoknak?
-----
Azon hallgatótársaim véleményét/tapasztalatait is szívesen fogadom, akik már esetleg vizsgásztak szóban, és ha esetleg van olyan vállalkozó kedvű hallgató, aki esetleg tudna segíteni a 3 robotfoci beugrós tételnél, azért is nagyon, nagyon hálás lennék! :)