nia plikow txt
#include <sstream> //potrzebne do stringstream ciag
using namespace std;
int main()
{
ifstream ciagi;
ciagi.open("ciagi.txt"); //otwieram plik ciagi.txt
ofstream wynik;
wynik.open("wyniki.txt");
stringstream ciag;
string ciag_string;
int liczba1 = 0;
int liczba2 = 0;
bool czy_arytmetyczny = false;
bool czy_monotoniczny = false;
bool czy_rosnacy = false;
bool czy_staly = false;
bool czy_pierwszy_obieg = false;
int roznica = 0;
while(getline( ciagi, ciag_string )){ //tu pobieram sobie ca?y 1 wiersz i przypisuje go do ciag_string - petla bedzie dzialac dop?ki nie skoncza sie wiersze w ciagi.txt
ciag.clear(); //czyszcze stringstream musi to byc
ciag << ciag_string; //przypisuje sobie zawartosc wiersza (czyli ciag) do strumienia ciag dzieki temu latwo bede mogl odczytywac kolejne wyrazy ciagu w nastepnej petli while
cout << ciag_string << endl;
czy_arytmetyczny = true; //tu jakby z gory zakladam ze wszytko jest prawdziwe...
czy_monotoniczny = true;
czy_rosnacy = true;
czy_staly = true;
czy_pierwszy_obieg = true;
ciag >> liczba1;
while(ciag >> liczba2){ // ale potem to sprawdzam w tej petli
//cout << liczba1 << " " << liczba2 << endl;
if(czy_pierwszy_obieg){
roznica = liczba2 - liczba1;
if(liczba2 < liczba1) czy_rosnacy = false; else czy_rosnacy = true; //tu sprawdzam po pierwszych 2 wyrazach ciagu czy jest rosnacy czy malejacy...
if(liczba2 != liczba1) czy_staly = false; else czy_staly = true; //albo czy staly...
czy_pierwszy_obieg = false;
} else{ //ale co jak ciag nie jest monotoniczny? wiec musze sprawdzic tez pozostale wyrazy ciagu
if(roznica != (liczba2 - liczba1)) czy_arytmetyczny = false;
if(liczba2 < liczba1 && czy_rosnacy == true){
czy_monotoniczny = false; //po 2 pierwszych wyrazach ciagu myslalem ze jest rosnacy a tu nagle liczba2 < liczba1 omg czyli ciag ten jest niemonotoniczny!
czy_staly = false; //nie jest wiec tez staly
} else //tu nie musi byc tego else ale moze
if(liczba2 > liczba1 && czy_rosnacy == false){
czy_monotoniczny = false; //po 2 pierwszych wyrazach ciagu myslalem ze jest malejacy a tu nagle liczba2 > liczba1 omg czyli ciag ten jest niemonotoniczny!
czy_staly = false;
}
if(liczba2 == liczba1){
czy_monotoniczny = false; //skoro dwa wyrazy w ciagu sa rownie to ciag nie jest ani rosnacy ani malejacy
} else czy_staly = false;
}
liczba1 = liczba2;
}
//wypisanie wyniku do wyniki.txt:
if(czy_arytmetyczny) wynik << "ciag arytmetyczny i "; else wynik << "ciag niearytmetyczny i ";
if(czy_staly) wynik << "staly" << endl;
else if(!czy_monotoniczny) wynik << "niemonotoniczny" << endl;
else if(czy_rosnacy) wynik << "rosnacy" << endl;
else if(!czy_rosnacy) wynik << "malejacy" << endl;
//wypisanie wyniku do konsoli:
if(czy_arytmetyczny) cout << "ciag arytmetyczny i "; else cout << "ciag niearytmetyczny i ";
if(czy_staly) cout << "staly" << endl;
else if(!czy_monotoniczny) cout << "niemonotoniczny" << endl;
else if(czy_rosnacy) cout << "rosnacy" << endl;
else if(!czy_rosnacy) cout << "malejacy" << endl;
}
cin >> roznica; // tak o ?eby konsola nie znikala
return 0;
}
Jak chcesz to analizowa? to wrzu? ten kod gdzie? ?eby ci go pokolorowa?o - lepiej si? czyta.
Najlepiej pobierz kod i przyk?adowy program st?d - http://www.mediafire.com/...egazadzinfy.zip
wyniki.txt dla przyk?adowego ciagi.txt i powy?szego kodu:
Kod: |
ciag arytmetyczny i rosnacy
ciag arytmetyczny i malejacy ciag niearytmetyczny i malejacy ciag niearytmetyczny i niemonotoniczny ciag niearytmetyczny i niemonotoniczny ciag arytmetyczny i staly ciag niearytmetyczny i rosnacy ciag arytmetyczny i staly ciag niearytmetyczny i niemonotoniczny ciag niearytmetyczny i rosnacy |
|
Ostrzeżeń: | |||||
|
#2 Wysłany: 2016-05-30, 17:56 | |
Bardzo, bardzo ci dzi?kuj?! Z tego co widz? jeste? bardzo dobrym informatykiem Kiedy zacz??e? swoj? przygod? z C++? Jaka jest twoja decyzja w tej sprawie?
Je?li chodzi o ten plik... to niestety chyba nie istnieje, program mia? by? napisany bez niego (wiem, bez sensu...) Ca?kiem mo?liwe, ?e jeszcze kiedy? b?d? potrzebowa? twojej pomocy... Zgodzisz si?? |
|
_________________ M17 |
|
0 |
|
Ostrzeżeń: | |||||
|
#3 Wysłany: 2016-05-30, 18:37 | |
Dzi?ki! Nie ma za co i zadania z informatyki to dla mnie sama przyjemno?? wi?c prosz? ich jak najwi?cej! haha
Zacz??em uczy? sie c++ jako? w gimnazjum i do matury uczy?em si? samemu. Ja si? nawet nie skapn??em, ?e by? b??d, bo sprawdzi?em tylko kilka pierwszych odpowiedzi i mia?em je dobrze (trzeba by?o napisa? program, kt?ry wypisze w notatniku chyba z 10000 s??w, b?d? bra? pod uwag? tylko pierwsze 700). Moja decyzja to zostawiam jak jest, nie pisz? 2 raz. A powracaj?c do zadania to obawiam si?, ?e ci?gi mog? nie by? rozdzielone wierszami (np. wszystkie zapisane w 1 lini) w takim przypadku trzeba by skorzysta? z informacji o d?ugo?ci ci?g?w. Ale jak wygl?da ciagi.txt tego chyba si? nie dowiemy A skoro nie ma tego w te?ci zadania to my?l?, ?e mo?na to sobie za?o?y |
|
_________________ Aczigment get! Dziękuję wszystkim za sery! |
|
Ostatnio zmieniony przez -kubpica 2016-05-30, 18:52, w całości zmieniany 2 razy | |
0 |
|
Ostrzeżeń: | |||||
|
#4 Wysłany: 2016-05-30, 20:18 | |
Skoro ju? kto? zagl?dn?? to tego tematu to mam ?mieszny ?art:
|
|
_________________ Aczigment get! Dziękuję wszystkim za sery! |
|
0 |
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum |
Dodaj temat do Ulubionych Wersja do druku |