Vissza
A while utasítás, függvények
Házi feladatok:
1. Olvassunk
be
számokat a billentyűzetről, amíg nem olvasunk 0-t
és határozzuk meg a legnagyobbat.
2. Olvassunk be
számokat a billentyűzetről, amíg nem olvasunk 0-t
és határozzuk meg hány páros számot
olvastunk be.
3. Határozzuk meg az x
szám négyzetgyökét, a következő
képletet alkalmazva (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)
4. A szövegállományban
különböző típusú telefonszámok
vannak: rds, romtelecom, orange. Számoljuk meg, hogy hány
rds, hány romtelecom és hány orange
telefonszám van a szövegállományban. A
romtelecom 265-tel, az rds 365-tel, az
orange számok 74-gyel kezdődnek.
5. A szövegállományban
különböző típusú telefonszámok
vannak: rds, romtelecom, orange. Írjuk át
különböző állományokba az rds, a
romtelecom és az orange
telefonszámokat. A
romtelecom 265-tel, az rds 365-tel, az orange számok 74-gyel
kezdődnek.
6. Egy szövegállomány minden egyes sora egy
dátumot tartalmaz: év, hónap, nap. Olvassuk ki
ezeket a dátumokat éz határozzuk meg hogy
hányadik napját jelentik az adott évnek.
Pl:
2004 3 16 -> 76
2000 9 7 -> 251
Megjegyzés:
Egy év akkor szökőév, ha osztható
4-gyel és nem osztható
100-zal vagy osztható
400-zal.
Megoldott
feladatok:
További
megoldott feladatok
1.
Olvassunk be számokat a billentyűzetről, amíg nem
olvasunk 0-t és amikor negatív
számot olvasunk be akkor sípoljon egyet a gép.
#include
<iostream>
using namespace std;
int main()
{
int x;
while (1) {
cout << "szam = ";
cin >> x;
if (x == 0) break;
if (x < 0) cout <<
(char) 7;
}
return 0;
}
2.
Olvassunk be számokat a billentyűzetről, amíg nem
olvasunk 0-t és határozzuk meg az átlagukat.
#include
<iostream>
#include <iomanip>
using namespace std;
int main()
{
int i, x, sum;
sum = i = 0;
while (1) {
cout << "szam = ";
cin >> x;
if (x == 0) break;
sum += x;
i++;
}
cout << setw(5) << setprecision(2);
cout << "A szamok atlaga: " << (float)sum/i <<
endl;
return 0;
}
3. Olvassunk be
számokat a billentyűzetről, amíg nem olvasunk 0-t
és határozzuk meg az átlagukat, használjuk
a do-while ciklus szerkezetet.
#include
<iostream>
#include <iomanip>
using namespace std;
int main()
{
int i, x, sum;
sum = i = 0;
do {
cout << "szam = ";
cin >> x;
sum += x;
i++;
} while (x != 0);
cout << setw(5) << setprecision(2);
cout << "A szamok atlaga: " << (float)sum/(i-1)
<< endl;
return 0;
}
4. Egy
szövegállományban levő számok
mindegyikére határozzuk meg a számjegyek
számát, függvényt írva egy szám
számjegyeinek a meghatározására.
#include
<iostream>
#include <fstream>
using namespace std;
int szamj (int);
int main()
{
int fdb,
x;
ifstream fin;
fin.open("szamok.txt");
while (1) {
fin >> x;
if (fin.eof() ) break;
fdb = szamj (x);
cout << x <<
"\t" << fdb
<< endl;
}
fin.close();
return 0;
}
int
szamj (int x){
int db = 0;
while (x > 0){
x /= 10;
db ++;
}
return db;
}
A fenti feladatok standard C
író/olvasó függvényekkel
1.
Olvassunk be számokat a billentyűzetről, amíg nem
olvasunk 0-t és amikor negatív
számot olvasunk be akkor sípoljon egyet a gép.
#include
<stdio.h>
#include
<stdlib.h>
int
main()
{
int x;
while (1) {
printf("szam =
");
scanf("%i",
&x);
if (x == 0) break;
if (x <
0) printf("%c", 7);
}
system("pause");
return 0;
}
2.
Olvassunk be számokat a billentyűzetről, amíg nem
olvasunk 0-t és határozzuk meg az átlagukat.
#include
<stdio.h>
#include
<stdlib.h>
int
main()
{
int i, x, sum;
sum = i = 0;
while (1) {
printf("szam =
");
scanf("%i",
&x);
if (x ==
0)
break;
sum += x;
i++;
}
printf("A szamok atlaga: %.2f\n", (float)sum/i);
system("pause");
return 0;
}
3. Olvassunk be
számokat a billentyűzetről, amíg nem olvasunk 0-t
és határozzuk meg az átlagukat, használjuk
a do-while ciklus szerkezetet.
#include
<stdio.h>
#include
<stdlib.h>
int
main()
{
int i, x, sum;
sum = 0;
i = 0;
do {
printf("szam = ");
scanf("%i", &x);
sum += x;
i++;
} while (x != 0);
printf("A szamok atlaga: %.2f\n", (float)sum/(i-1));
system("pause");
return
0;
}
4. Egy szövegállományban levő számok
mindegyikére határozzuk meg a számjegyek
számát, függvényt írva egy szám
számjegyeinek a meghatározására.
#include
<stdio.h>
#include
<stdlib.h>
int
szamj (int);
int
main(){
int fdb, x;
FILE *be;
be = fopen("szamok.txt", "r");
while (1) {
fscanf (be, "%i", &x);
if (feof(be)) break;
fdb = szamj (x);
printf("%i\t%i\n", x, fdb);
}
fclose(be);
system("pause");
return
0;
}
int
szamj (int x){
int db = 0;
while (x > 0){
x /= 10;
db ++;
}
return db;
}