Hirdetés
- Samsung Galaxy Watch7 - kötelező kör
- Milyen okostelefont vegyek?
- Kezünkben a OnePlus 15 és az Oppo Find X9-ek
- Telekom mobilszolgáltatások
- Zsebre vágta a Samsung a hajlítható piacot
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Samsung Galaxy A54 - türelemjáték
- Okosóra és okoskiegészítő topik
- Apple Watch
Új hozzászólás Aktív témák
-
icespeak
csendes tag
Hi mindenki. Szerintetek mi lehet az alábbi kóddal a probléma?
/*
10. A Föld felszínének egy vonala mentén egyenlő távolságonként megmértük a terep tengerszint
feletti magasságát, és a mért értékeket egy vektorban tároljuk. Hány darab hegycsúcs van a
mérési sorozatban?
*/
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
int Megszamol(const vector<int> t, int &c);
bool ReadFromFile(const string &fname, vector<int> &t);
void ReadFromKeyboard(vector<int> &t);
int Read12(const string &msg, const string &errormsg);
int main(int argc, char *argv[])
{
char ch;
do{
// Adatok beolvasása
vector<int> t;
bool file_ok = true;
// Adatbevitel módja
int v;
if(argc>1) v = 1;
else{
cout << "Az adatbeolvasás módja:"<< endl
<< " SZÖVEGES FÁJL(1)"<< endl
<< " BILLENTYŰZET (2)"<< endl;
v = Read12("Válasszon: ","Csak 1 vagy 2 közül választhat!");
}
// Beolvasás fájlból
string fname;
switch(v)
{
case 1 :
if(argc<=1){
cout << "Adja meg a szöveges fájl nevét: ";
cin >> fname;
}
else fname = argv[1];
file_ok = ReadFromFile(fname, t);
if(!file_ok && argc>1) {
char ch; cin >> ch;
exit(1);
}
break;
case 2 :
cout << "Adjon meg mérési értékeket! Kilépés: quit \n";
ReadFromKeyboard(t);
break;
}
// Kiíratás
if(file_ok)
{
if(Megszamol(c)) cout << "Hegycsúcsok száma:" << c << endl;
else cout << "Nincs hegycsúcs"<< endl;
cout << endl << "Futtassam újra? (I/N) "; cin >> ch;
}
}while(ch!='n' && ch!='N');
return 0;
}
//Feladat: 1-es vagy 2-es beolvasása
//Tevékenység: Billentyűzetről kizárólag két szám, az 1-es vagy a 2-es valamelyikét fogadja el
// más adatot nem
//Bemenő adat: string msg - a beolvasás előtt megjelenítendő üzenet
// string error - hibás adat beírásakor megjelenítendő üzenet
//Kimenő adat: int v - 1-es vagy 2-es szám (visszatérési értékként)
int Read12(const string &msg, const string &errormsg)
{
int n;
bool hiba = true;
do{
cout << msg;
string str;
cin >> str;
n = atoi(str.c_str());
hiba = (n==0 && str!="0") || n<1 || n>2;
if(hiba) cout << errormsg << endl;
}while(hiba);
return n;
}
//Feladat: Integereket tartalmazó tömb (vector) feltöltése billentyűzetről
//Tevékenység: Billentyűzetről olvas be egymás után integereket és helyezi el őket egy vektorban
// addig, amíg a "quit" szót nem írjuk.
//Bemenő adat: -
//Kimenő adat: vector<int> t
void ReadFromKeyboard(vector<int> &t)
{
int meres;
cin >> meres;
while(meres!="quit"){
t.push_back(meres);
cin >> meres;
if (meres < 0){
meres = 0;
}
}
}
//Feladat: Integereket tartalmazó vektor feltöltése szöveges állományból
//Tevékenység: Megnyitja a megadott szöveges állományt (sikertelen kísérlet esetén hibát jelez)
// majd a fájlból egymás után beolvassa az összes elválasztójelekkel határolt számot
// és elhelyezi azokat egy vektor-ban
//Bemenő adat: string fname - szöveges állomány neve
//Kimenő adat: vector <int> t
// bool ok - sikerült-e az állomány megnyitása (visszatérési értékként)
bool ReadFromFile(const string &fname, vector<int> &t)
{
ifstream x(fname.c_str());
if(x.fail()){
cout << "Hibás fájlnév!"<< endl;
return false;
}
int meres;
x >> meres;
while(!x.eof()){
t.push_back(meres);
x >> meres;
if (meres<0){
meres = 0;
}
}
return true;
}
int Megszamol(const vector<int> t, int &c){
int c=0;
for(int i=0; i<(int)t.size(); i++){
if(i<i+1 || i+1>i+2){
c=c+1;
}
}
return c;
}
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- gban: Ingyen kellene, de tegnapra
- World of Tanks - MMO
- PlayStation 5
- Okos Otthon / Smart Home
- Hardcore café
- Robotporszívók
- Samsung Galaxy Watch7 - kötelező kör
- Milyen okostelefont vegyek?
- Fejhallgató erősítő és DAC topik
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...
- Thinkpad L14 Gen1 14" FHD IPS i5-10210U 16GB 256GB NVMe ujjolv IR kam gar
- JBL Authenics 200 bluetooth hangszóró garanciális
- Gigabyte RTX 2070 Super Windforce OC
- ThinkPad P15 Gen2i 15.6" FHD IPS i7-11800H RTX A2000 32GB 1TB NVMe magyarított bill ujjolv gar
- Dell Latitude 5440 14" FHD IPS i5-1345U 16GB 256GB NVMe IR kam gar
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- Lenovo ThinkPad L16 Gen 1 - 16" WUXGA IPS - Ultra 5 135U - 16GB - 512GB - Win11 - 2,5 év gari
- GYÖNYÖRŰ iPhone 12 Mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3852, 100% Akksi
- iKing.Hu - Samsung Galaxy S25 Ultra - 12/256 GB Használt, karcmentes 6 hónap garancia
- HIBÁTLAN iPhone 14 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3527, 100% Akkumulátor
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest


