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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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