Autorius Tema: c++ konsoline programa su masyvais  (Skaityta 5508 kartus)

Neprisijungęs Lukas

  • Administratorius
  • Herojus
  • ******
  • Įrašai: 7431
  • Karma: +232/-15
    • Žiūrėti profilį
c++ konsoline programa su masyvais
« Įrašytas: 2011-12-02 14:32:09 pm »
pridedu taip pat uzduoties salyga

pastebin nuoroda: http://pastebin.com/R3ZaG7bT

#include <iostream>
#include <stdlib.h> // kad veiktu system("cls");
using namespace std;

int main(){

// programos pradzia, pradine informacija apie programa.
cout << "Studento vardas: Lukas"
<< endl << "Studento pavarde: Liesis"
<< endl << "Pazymejimo numeris: GM080102"
<< endl << "Kursas: 4"
<< endl << "--------------------------------------------"
<< endl << "Vienmaciame realiuju skaiciu masyve Temperatura(d) saugoma paskutiniuju d dienu oro "
<< "temperatura. Dienu skaiciu ir kiekvienos dienos oro temperatura nurodo vartotojas "
<< "programos darbo metu. Atlikite tokius veiksmus: 1) Jeigu temperaturu vidurkis teigiamas"
<< "sudarykite du naujus masyvus Teigiama(t) ir Neigiama(n), kuriuose butu surasomos tik teigiamos "
<< "arba neigiamos temperaturu reiksmes, atitinkamai. 2) Jeigu, teigiama temperatura turinciu dienu"
<< "kiekis didesnis uz minusinê temperatura turejusi dienu kieki, tokiu atveju pasalinkite is masyvo"
<< " didesnius uz vidurki elementus. Kitu atveju suformuokite nauja masyva Tvarkinga(d), kuriame "
<< "pradinio masyvo reiksmes butu surasytos surikiuotos temperaturos mazejimo tvarka."
<< endl <<" 3) Laisvai pasirinkta viena is programoje naudojamu masyvu papildykite naujo elemento "
<< "iterpimo galimybe, kurio vieta, pries kuria norima atlikti reiksmes iterpima, ir paèia reiksmê "
<< "nurodo vartotojas. Atlike kiekviena veiksma vykdykite rezultatu spausdinima ekrane, tvarkingose "
<< " lentelese. Stulpeliai turi tureti pavadinimus ir neissikraipê. Kiekvienu atveju pirma nurodykite "
<< "pradini masyva, o po to rezultatu masyva (-us). Komentuokite spausdinamus rezultatus, kad "
<< "vartotojas suprastu juose pateikiamus duomenis."
<< endl << "--------------------------------------------" << endl << endl << endl;

// temperaturos ivedimas

int d; // dienu skaicius
int x; // pauzei
cout << "Iveskite dienu skaiciu\n";
cin >> d;
if(d<=0){
cout << "\nKlaida: ivedete neigiama dienu skaiciu.";
system("pause");
return 0;
}


// sukuriamas temperaturu masyvas

int* Temperatura = new int[ d ];

//papildomi kintamieji
int t_teigiamu=0; // kiek teigiamu temperaturu
float t_vidurkis, t_suma=0.; // vidurkis visu temp. ir kokia ju suma

// surasomos temperaturos i masyva

for(int i=0; i<d; i++){
cout << "iveskite "<< i+1 << " temperatura\n";
cin >> Temperatura[i];
t_suma += Temperatura[i]; // pridedama prie bendros temp. sumos
if(Temperatura[i] > 0){ //  jei temp > 0 tai pridedam prie teigiamu 1
t_teigiamu++;
}
}

cout << "\n\nTemperaturos suvestos.\n\n\n";
cout << "------------------------------------";
cout << "\n\tDiena\t\tTemperatura\n";
cout << "------------------------------------\n";

for(int i=0; i<d; i++){
cout << "\t" << i + 1 << "\t\t" << Temperatura[i] << endl;
}
t_vidurkis = t_suma / d; // suskaiciuojam vidurki
cout << "------------------------------------\n";
cout << "\tSuma:\t\t" << t_suma;
cout << "\n\tVidurkis:\t" << t_vidurkis << "\n";

// ##### temperaturos suvesto ir atspausdintos. ######

if(t_vidurkis > 0){
cout << "\nVidurkis yra teigiamas, todel sudarome 2 naujus masyvus. Teigiama ir Neigiama.\n";
int* Teigiama = new int[ t_teigiamu ];
int* Neigiama = new int[ d-t_teigiamu ];
int i_teigiamu = 0, i_neigiamu = 0; // teigiamu ir neigiamu temp. indeksas masyve
for(int i=0; i<d; i++){
if(Temperatura[i] > 0){
Teigiama[i_teigiamu] = Temperatura[i];
i_teigiamu++;
} else {
Neigiama[i_neigiamu] = Temperatura[i];
i_neigiamu++;
}
}

cout << "\n\nTemperaturos suskirstytos i 2 masyvus.\n\n";
cout << "\n";
cout << "\tTeigiamos temperaturos\n";
cout << "------------------------------------";
cout << "\n\t#\t\tTemp.\n";
cout << "------------------------------------\n";
for(int i=0; i<i_teigiamu; i++){
cout << "\t" << i + 1 << "\t\t" << Teigiama[i] << endl;
}
cout << "------------------------------------\n\n\n";
cout << "\tNeigiamos temperaturos\n";
cout << "------------------------------------\n";
cout << "\n\t#\t\tTemperatura\n";
cout << "------------------------------------\n";
for(int i=0; i<i_neigiamu; i++){
cout << "\t" << i + 1 << "\t\t" << Neigiama[i] << endl;
}
cout << "------------------------------------\n";


} else {
cout << "\nVidurkis nera teigiamas, todel nesudarome 2 nauju masyvu.\n";
}
cout << "Pirmos dalies pabaiga. Noredami testi paspauskite Enter";
system("pause");

cout << "------------------------------------\n";
cout << "------------ 2 dalis ---------------\n";
cout << "------------------------------------\n";

// kokiu dienu daugiau teigiamu ar neigiamu?
int po_salinimo; // kiek liko elementu po salinimo
if(t_teigiamu > (d-t_teigiamu)){
cout << "\n\nTeigiamu dienu daugiau, saliname didesnes uz vidutines temp.\n\n";
int salinti; // parodo kuri elementa is masyvo salinti
for(int i=0; i<d; i++){
if(Temperatura[i] > t_vidurkis){
// salinti reikia i-taji
for(int k=i; k<d; k++){
Temperatura[k] = Temperatura[k+1];
}
i--;
d--;
}
}
cout << "\n\nTemperaturos pasalintos.\n\n\n";
cout << "------------------------------------";
cout << "\n\tGalutines temperaturos\n";
cout << "\n\t#\t\tTemperatura\n";
cout << "------------------------------------\n";

for(int i=0; i<d; i++){
cout << "\t" << i + 1 << "\t\t" << Temperatura[i] << endl;
}

cout << "------------------------------------\n";
} else {
int* temp = new int[d]; // laikinas apkeitimui
int* Tvarkinga = new int[d]; // tvarkignas masyvas mazejancia tvarka
Tvarkinga = Temperatura;
cout << "\n\nTeigiamu dienu nera daugiau, didesniu uz vidutine temp.\nSudeliojame temperaturas mazejimo tvarka.\n\n";
for(int i=0; i<d; i++){
for(int i=0; i<d; i++){
if( (Temperatura[i]>Temperatura[i-1]) && (i!=0) ) {
int temp=Temperatura[i]; //apkeitimui
Temperatura[i]=Temperatura[i-1];
Temperatura[i-1]=temp;
}
}
}
temp = Temperatura;
Temperatura = Tvarkinga;
Tvarkinga = temp;

cout << "\n\n\tIsrikiuota mazejimo tvarka sekmingai!\n\n";
cout << "------------------------------------";
cout << "\n\tGalutines temperaturos\n";
cout << "\n\t#\t\tTemperatura\n";
cout << "------------------------------------\n";

for(int i=0; i<d; i++){
cout << "\t" << i + 1 << "\t\t" << Tvarkinga[i] << endl;
}

cout << "------------------------------------\n";

}
cout << "Antros dalies pabaiga. Noredami testi paspauskite Enter" << endl;
system("pause");

int p; // pries kelinta ivesti nauja reiksme
int nr; // nauja reiksme elemento naujo
cout << "------------------------------------\n";
cout << "------------ 3 dalis ---------------\n";
cout << "------------------------------------\n";
cout << "Noredami ivesti nauja temperaturos reiksme \n"
<< "prasome nurodyti pries kuri elementa norite\n"
<< "iterpti naujaji elementa" << endl;

cin >> p;
if(p > d ){
cout << "Klaida: Tokio elemento nera. \nProgramos pabaiga.";
system("pause");
return 0;
}
cout << "Iveskite naujo elemento reiksme: ";

cin >> nr;
cout << "\n\nIterpiame nauja elementa\n\n";

//  d - kiek is viso yra Temperatura masyve reiksmiu
// p - pries kelinta elementa reikia iversti nauja reiksme
// nr - nauja reiksme

int* TempSuNaujaReiksme = new int[d+1];
// nukopijuoju senas reiksmes i nauja masyva
for(int i=0; i<d; i++){
TempSuNaujaReiksme[i] = Temperatura[i];
TempSuNaujaReiksme[i+1] = 0;
}

// d padidejo 1 nes iterptas 1 naujas elementas
d++;

for(int i = d; i >= p-1; i--){
       TempSuNaujaReiksme[i] = TempSuNaujaReiksme[i-1];
}
// nauja reiksme irasau i vieta
TempSuNaujaReiksme[p-1] = nr;

cout << "------------------------------------";
cout << "\n\tGalutines temperaturos\n";
cout << "\n\t#\t\tTemperatura\n";
cout << "------------------------------------\n";
for(int i=0; i<d; i++){
cout << "\t" << i + 1 << "\t\t" << TempSuNaujaReiksme[i] << endl;
}
cout << "------------------------------------\n";


cout << endl << endl << "Programa sekmingai pabaigta." << endl;
system("pause");
return 0;
}
« Paskutinį kartą keitė: 2011-12-02 20:04:48 pm sukūrė Lukas Liesis »
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Gerda Photography
Serveriai.lt 50% nuolaida!
Free Hosting
Free Templates

Manualai.lt Forumas

c++ konsoline programa su masyvais
« Įrašytas: 2011-12-02 14:32:09 pm »