Vissza
Függvények
Házi
feladatok:
I. Írjunk programot, amely függvényt alkalmazva a
részfeladatok megoldására, meghatározza
két szám összegét,
különbségét, szorzatát, osztási
maradékát, osztási hányadosát,
otszási eredményét.
II. A részfeladatok megoldására
függvényt
írva, írjunk programot, amely egy szövegállományban
levő
- számok
mindegyikére meghatározza a
számok
abszolút értékét,
- számok
mindegyikére meghatározza a
számok
négyzetgyökét, alkalmazva a
következő iterációs képletet(az
iterálást addig kell végezni míg két
egymásutáni érték egyforma nem lesz):
y0
= 1
yn
= 1/2·(yn-1 + x/yn-1)
- számpárok
mindegyikére, ahol a
számpárok egy adott terület
szélességét és hosszát jelentik,
meghatározza a terület és
kerületértékeket. Határozzuk meg,
továbbá a legnagyobb
területű, és a legkisebb kerületű területeket,
- számhármasok
mindegyikére, ahol a
számhármasok egy
adott téglatest szélességét,
hosszúságát és magasságát
jelentik, meghatározza a térfogat és az
oldalhosszak összegének értéket,
- számnégyesek
mindegyikére, ahol a számnégyesek egy
diák négy jegyét jelentik, meghatározza
diákonként az átlagjegyet és a legnagyobb
jegyét
minden diáknak,
- számok
mindegyikére meghatározza a szám
- utolsó
számjegyét,
- első
számjegyét,
- a számjegyek
számát,
- a számjegyek
összegét,
- a számjegyek
szorzatát,
- számok
mindegyikére meghatározza
- a kettes
számrendszerbeli alak utolsó számjegyét,
- a kettes
számrendszerbeli alakban a számjegyek
számát,
- a kettes
számrendszerbeli alakban az egyesek számát,
- számok
mindegyikére megvizsgálja, hogy
prímszám-e vagy sem,
- az a, x
számpárok
mindegyikére meghatározza ax
értékét.
- számpárok
mindegyikére megvizsgálja, hogy relatív
prímek-e.
Megoldott feladatok:
1. Írjunk
programot, amely függvényt
alkalmazva a
részfeladatok megoldására, meghatározza
két szám osztási hányadosát,
otszási eredményét.
#include
<iostream>
using namespace std;
int osztI(int, int);
float osztF(int,
int);
int main()
{
int res1,
a, b;
float res2;
cout << "a = "; cin >> a;
cout << "b = "; cin >> b;
res1 =
osztI(a, b);
cout << "az osztasi hanyados: " << res1
<< endl;
res2 =
osztF(a, b);
cout << "az osztas eredmenye: " << res2
<< endl;
return 0;
}
int osztI(int a, int b)
{
return a/b;
}
float osztF(int a,
int b)
{
return (float)
a/b;
}
2. Írjunk függvényt, mely meghatározza
egy
szám abszolút értékét.
#include
<iostream>
using namespace std;
int
absz(int);
int main()
{
int a, sz;
cout << "sz = ";
cin >> sz;
a = absz(sz);
cout << "az abszolut ertek: " << a
<< endl;
return 0;
}
int
absz(int szam)
{
if (szam < 0) return -szam;
else return szam;
}
3. Írjunk függvényt, mely meghatározza
egy
szám számjegyeinek összegét.
#include
<iostream>
using namespace std;
int szjOsszeg(int);
int main()
{
int eredmeny, sz;
cout << "sz = ";
cin >> sz;
eredmeny = szjOsszeg(sz);
cout << "a szamjegyek osszege: " << eredmeny << endl;
return 0;
}
int szjOsszeg(int
szam)
{
int sum = 0; //lokalis valtozo deklaralas
while (szam > 0){
sum = sum + (szam %
10);
szam = szam / 10;
}
return sum;
}
4. Írjunk függvényt, mely megvizsgálja hogy
egy szám prímszám-e vagy sem.
#include
<iostream>
using
namespace std;
int
prim(int);
int
main()
{
int p, sz;
cout << "sz = ";
cin >> sz;
p = prim(sz);
if (p == 1) cout <<
"prim szam"<< endl;
else cout <<
"nem prim szam" << endl;
return 0;
}
int
prim(int szam)
{
int i;
if (szam == 2) return 1;
if (szam%2 == 0) return 0;
for (i = 3; i*i <= szam; i += 2)
if(szam%i == 0) return 0;
return 1;
}
5. Írjunk függvényt, amely az a, x
számpárok
esetében meghatározza ax
értékét.
#include
<iostream>
using
namespace std;
int my_pow(int, int);
int
main()
{
int a, x, res;
cout << "alap = ";
cin >> a;
cout << "kitevo = ";
cin >> x;
res = my_pow(a, x);
cout << "az eredmeny: " << res << endl;
return 0;
}
int my_pow(int pa,
int px)
{
int r = 1;
while (px != 0) {
if (px % 2 == 1) r = r * pa;
pa = pa * pa;
px = px / 2;
}
return r;
}
A fenti feladatok
standard C író/olvasó függvényekkel
1. Írjunk
programot, amely függvényt
alkalmazva a
részfeladatok megoldására, meghatározza
két szám osztási hányadosát,
otszási eredményét.
#include
<stdio.h>
#include
<stdlib.h>
int osztI(int, int);
float osztF(int,
int);
int
main()
{
int res1, a, b;
float res2;
printf("a = ");
scanf("%i", &a);
printf("b = ");
scanf("%i", &b);
res1 = osztI(a, b);
printf("az osztasi hanyados: %i\n",res1);
res2 =
osztF(a, b);
printf("az osztas eredmenye: %.3f\n",res2);
system("pause");
return 0;
}
int osztI(int a, int b)
{
return a/b;
}
float osztF(int a, int b)
{
return (float) a/b;
}
2. Írjunk függvényt, mely meghatározza
egy
szám abszolút értékét.
#include
<stdio.h>
#include
<stdlib.h>
int
absz(int);
int
main()
{
int a, sz;
printf("sz = ");
scanf("%i", &sz);
a = absz(sz);
printf("az abszolut ertek: %i\n",a);
system("pause");
return 0;
}
int
absz(int szam)
{
if (szam < 0) return -szam;
else return szam;
}
3. Írjunk függvényt, mely meghatározza
egy
szám számjegyeinek összegét.
#include
<stdio.h>
#include
<stdlib.h>
int szjOsszeg(int);
int
main()
{
int eredmeny, sz;
printf("sz = ");
scanf("%i", &sz);
eredmeny = szjOsszeg(sz);
printf("a szamjegyek osszege: %i\n", eredmeny);
system("pause");
return 0;
}
int szjOsszeg(int
szam)
{
int sum = 0;
//lokalis valtozo
deklaralas
while (szam > 0){
sum = sum + (szam % 10);
szam = szam / 10;
}
return sum;
}
4. Írjunk függvényt, mely megvizsgálja hogy
egy szám prímszám-e vagy sem.
#include
<stdio.h>
#include
<stdlib.h>
int
prim(int);
int
main()
{
int p, sz;
printf("sz = ");
scanf("%i", &sz);
p = prim(sz);
if (p == 1) printf("prim
szam\n");
else printf("nem prim szam\n");
system("pause");
return 0;
}
int
prim(int szam)
{
int i;
if (szam == 2) return 1;
if (szam%2 == 0) return 0;
for (i = 3; i*i <= szam; i += 2)
if(szam%i == 0) return 0;
return 1;
}
5. Írjunk függvényt, amely az a, x
számpárok
esetében meghatározza ax
értékét. #include
<stdio.h>
#include
<stdlib.h>
int my_pow(int, int);
int
main()
{
int a, x, res;
printf ("alap = ");
scanf("%i", &a);
printf("kitevo = ");
scanf("%i",
&x);
res = my_pow(a, x);
printf("az eredmeny: %i\n", res);
return 0;
}
int my_pow(int pa,
int px)
{
int r = 1;
while (px != 0) {
if (px % 2 == 1) r = r * pa;
pa = pa * pa;
px = px / 2;
}
return r;
}