Vissza

Cím szerinti paraméterátadás



Megoldott feladatok
1. Írjunk függvényt, mely a paraméterként megadott változó értékét eggyel növeli. ( Forráskód )
2. Írjunk függvényt, mely éréket ad egy kételemű tömb elemeinek. ( Forráskód )
3. Egydimenziós tömb helyfoglalásának módjai. ( Forráskód I ) ( Forráskód II )

Kitűzött feladatok
1. Adott egy szöveges állományban egy nxm méretű mátrix. Az első sor tartalmazza az n és m értékeit, a következő sorok, pedig a mátrix egy-egy sorát. Írjunk programot, mely meghatározza a mátrix azon elemeit, melyek a sorban minimumelemek, az oszlopban meg maximumelemek. A részfeladatokra írjunk függvényeket:
írjunk függvényt, mely meghatározza egy egydimenziós tömbbe, soronként a minimumelemek oszlopindexét
írjunk függvényt, mely meghatározza egy egydimenziós tömbbe, oszloponként, a maximumelemek sorindexét
írjunk függvényt, mely felhasználva az előző két függvényt ellenőrzi, hogy egy adott sorban, mely elemre áll fenn a kért feltétel

2. Adott két bemeneti állomány, az egyik tartalmazza az autók kódját, típusát és árát, a másik tartalmazza az autópiac nevét, ahol az autó megvásárolható és az autó kódját. Írjunk programot, mely egy kimeneti állományba meghatározza autópiaconként, hogy milyen típusú autók és mennyiért vásárolhatóak meg. A részfeladatokra írjunk függvényeket.

1.
#include <stdio.h>
#include <conio.h>

void fugv1(int x);
void fugv2(int *x);

int main(){
    int x = 0;
    fugv1(x);
    printf("%i\n", x);
    fugv2(&x);
    printf("%i\n", x)É
    return 0;
}

void fugv1(int x){
// nem változtatja meg az x változó értékét !!!
    x++;
}

void fugv2(int *x){
    (*x)++;
}

C++ megoldás: referncia típus, nincs benne a standard C-ben !!!

#include <stdio.h>
#include <conio.h>

void fugv3(int &x);

int main(){
    int x = 0;
    fugv3(x);
    printf("%i\n", x);
}

void fugv3(int &x){
    x++;
}

Vissza

2.
#include <stdio.h>
#include <stdlib.h>

void fugv4(int x[]);

int main(){
    int tomb[2];
    fugv4(tomb);
    printf("%i  %i\n", tomb[0], tomb[1]);
    return 0;
}
void fugv4(int x[]){
    x[0] = 1;
    x[1] = 2;
}
Vissza

3. Az egydimenziós tömbnek szükséges memóriaterületet a függvényben foglalom le, majd a tömb értékét visszatérítem.
#include <stdio.h>
#include <stdlib.h>

char* fugv();

int main(){
    char *p;
    p = fugv();
    printf("%s", p);
    free (p);
}

char* fugv(){
    char *p = (char*)malloc(10*sizeof(char));
    p[0] = 'h';
    p[1] = 'e';
    p[2] = 'l';
    p[3] = 'l';
    p[4] = 'o';
    p[5] = '\0';
    return p;
}


Vissza

4. Az egydimenziós tömbnek szükséges memóriaterületet a függvényben foglalom le, cím szerint adom vissza az értéket a főprogramnak.
#include <stdio.h>
#include <stdlib.h>

void fugv(char**p);

int main(){
    char *p;
    fugv(&p);
    printf("%s", p);
    free (p);
}

void fugv(char**p){
    (*p) = (char*)malloc(10*sizeof(char));
    (*p)[0] = 'h';
    (*p)[1] = 'e';
    (*p)[2] = 'l';
    (*p)[3] = 'l';
    (*p)[4] = 'o';
    (*p)[5] = '\0';
}


Vissza