Pereiti prie turinio

Rekomenduojami pranešimai

Atleiskite bet gal kas galite padeti su siuo uzdaviniu nelabai suprantu kaip sukurti pati veiksma virsuje :/

#include <fstream>

#include <iostream>

#include <cmath>

using namespace std;

void mokykla()

{

 

int n,;

int s=0;

for (int i=1;i<=n;i++)

{

 

fd>>a;

if (s<b)

s=b;

 

}}

const char CDfv[]="mokykla.txt";

const char CRfv[]="mokykla_rez.txt";

int main ()

{

int n,b,c,d,s,a;

 

ifstream fd(CDfv);

ofstream fr(CRfv);

fd>>n;

for (int i=1;i<=n;i++)

{

mokykla();

fd>>b;

fd>>c;

fd>>d;

fr<<s<<endl;

}

fd.close();

fr.close();

return 0;

}

ČIA YRA SALYGA: KET mokyklos instruktorius registruoja besimokančiųjų vairuoti pažangą. Jis organizuoja 3 kontrolinius

 

važiavimus ir iš jų išrenka geriausią rezultatą, kuris yra galutinis mokinio įvertinimas. Pradinių duomenų

 

failo Duomenys1.txt pirmoje eilutėje įrašytas vairavimo mokyklos mokinių skaičius n. Tolesnėse n eilučių įrašyta

 

po tris sveikuosius skaičius, reiškiančius vieno besimokančiojo vairuoti vertinimus. Parašykite programą, kuri į

 

rezultatų failą Rezultatai1.txt išvestų n eilučių su geriausiais mokinių vertinimais.

ČIA KOKIUS DUOMENIS REIKIA ISIVEST I TXT FAILA:

mokykla.txt

 

3

 

5 7 4

 

9 9 8

 

8 7 8

Nuoroda į pranešimą
Dalintis kituose puslapiuose


#include <fstream>
#include <iostream>

using namespace std;

const char CDfv[]="mokykla.txt";
const char CRfv[]="mokykla_rez.txt";

int main ()
{
int n, m, max;

ifstream fd(CDfv);
ofstream fr(CRfv);

// nuskaitom mokiniu kieki
fd >> n;

for (int i=0; i<n; i++) { // einam per kiekviena mokini
	max = 0; // reset
	for (int j=0; j<3; j++) // nuskaitom kiekviena mokinio bala
	{
		fd >> m;
		if (m > max) // ziurim ar naujas balas didesnis uz sena
			max = m;
	}
	fr << max << endl;
}

fd.close();
fr.close();
return 0;
}

EDIT: variantas su funkcija


#include <fstream>
#include <iostream>

using namespace std;

const char CDfv[]="mokykla.txt";
const char CRfv[]="mokykla_rez.txt";

int mokinioBalas(ifstream &fd, int balai)
{
int m, max = 0;
for (int j=0; j<balai; j++) {
	fd >> m;
	if (m > max) 
		max = m;
}
return max;
}

int main ()
{
int n;
ifstream fd(CDfv);
ofstream fr(CRfv);

fd >> n;
for (int i=0; i<n; i++) {
	fr << mokinioBalas(fd, 3) << endl;
}

fd.close();
fr.close();
return 0;
}

 

EDIT 2: Pridejau komentaru prie tavo kodo, kurie gal pades kiek suprasti, kodel jis blogas


#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;
void mokykla()
{	
int n,; // 1) sintakses klaida: nereikalingas kablelis;
          // 2) 'n' sioj vietoj nera lygus 'n' main() funkcijoj, tad jis niekad nera inicijuotas (turetu buti int n=3, pagal salyga).
          // Jei niekad nepriskiriama reiksme, 'n' paprastai bus kazkokia random reiksme, kuria paeme is atminties	
int s=0;

// cikle:
// 'fd', 'a', 'b' - nera tie patys, kurie buvo nurodyti main() funkcijoje, ir siuo atveju mes klaida.
// kad sie kintamieji butu tie patys kaip main() funkcijoj, reikejo juos perduoti kaip funkcijos mokykla() parametrus;
for (int i=1; i<=n; i++) {
	// sakykim sutvarkem 'fd', 'a', 'b' ir pasiekem sia vieta.
	fd>>a; // priskiriam kintamajam 'a' sekancia reikme is failo
	if (s<b) // reikejo 's' lyginti su 'a', nes tai duomuo, kuri nuskaitei
		s=b;
}
}
const char CDfv[]="mokykla.txt";
const char CRfv[]="mokykla_rez.txt";
int main ()
{
int n,b,c,d,s,a;
ifstream fd(CDfv);
ofstream fr(CRfv);
fd>>n;
for (int i=1; i<=n; i++) {
	// sakykim, kad funkcija mokykla() veikia:
	// pagal esama mokykla() implementacija, si funkcija pati nuskaito visus 3 mokinio balus,
	// tad fd>>a, fd>>b, fd>>c - nuskaito nebe esamo, bet sekancio mokinio balus
	mokykla();
	fd>>b;  // nereikia
	fd>>c;  // nereikia
	fd>>d;  // nereikia
	fr<<s<<endl; // cia naudojamas 's' nera lygus kintamajam 's', kuris naudojamas mokykla() funkcijoj.
                  // kad 's' turetu musu surasta reiksme, butu reikeje perduoti 's' mokykla() funkcijai, kaip reference
                  // ir tuo paciu pakoreguoti mokykla(), kad ji naudotu perduota 's', o ne savo kurtu.
}
fd.close();
fr.close();
return 0;
}

Redagavo Imago
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ačiū :) ir gal gal zinai is kur galima siek tiek tokiam kaip as "zaliam" geriau pramokti c++ kur daugiau informacijos? :)

Deja, bet c++ as niekad rimtai nesimokiau, tad nezinau jokiu knygu ar kitu resursu. Jei realiai, tai su juom zaist pradejau pries kokia 3sav., tad tiesiog pritaikau bendras zinias + google :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...