• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

sprawdzanie monotoniczności w c++

Object Storage Arubacloud
0 głosów
4,186 wizyt
pytanie zadane 26 października 2017 w C i C++ przez bartekzbartek Nowicjusz (140 p.)
W jaki sposób w C++ sprawdzić czy wpisany przez nas ciąg jest uporzadkowany, rosnacy lub malejacy nie uzywajac tablic?

1 odpowiedź

+1 głos
odpowiedź 26 października 2017 przez draghan VIP (106,230 p.)
Jeśli masz nie używać tablic (rozumiem, że chodzi tutaj o szeroko pojęte kontenery, nie tylko "surowe" tablice), to musisz dokonywać operacji na bieżąco przy pobieraniu danych. W przypadku monotoniczności wystarczy sprawdzać wartość aktualną i poprzednią oraz jedna flaga.
komentarz 26 października 2017 przez draghan VIP (106,230 p.)
W taki sam sposób, jak porównujesz bieżącą wartość z poprzednią: musisz mieć dwie zmienne i je odpowiednio przepisywać. :)
komentarz 26 października 2017 przez bartekzbartek Nowicjusz (140 p.)
szczerze to nie wiem jak
komentarz 26 października 2017 przez draghan VIP (106,230 p.)
Pokaż, co do tej pory masz.:)
komentarz 26 października 2017 przez bartekzbartek Nowicjusz (140 p.)
#include <iostream>
using namespace std;
int main()
{
    cout<<"Podaj dlugosc ciag\n";
    int dlugosc;
cin>>dlugosc;
int liczba=0;
int poprzednia_liczba=0;
const int rosnacy = 0;
const int malejacy = 1;
const int unknown_series = 2;
int ciag = unknown_series;
for(int i=0;i<dlugosc;i++)
    {
      cin>>liczba;
      if(liczba>poprzednia_liczba)
      {
          ciag=malejacy;
      }
      if(liczba<poprzednia_liczba)
      {
          ciag=rosnacy;
      }
    poprzednia_liczba=liczba;
if(ciag==rosnacy)
    {
        cout<<"ciag rosnacy";
    }
    else if(ciag==malejacy)
    {
        cout<< "ciag malejacy";


    }

    }



}


mam tyle co i wczesniej

komentarz 27 października 2017 przez draghan VIP (106,230 p.)

No to teraz sprawdzenie, czy monotoniczność aktualnie sprawdzanego fragmentu jest zgodna z monotonicznością wcześniej sprawdzanego fragmentu:

#include <iostream>
using namespace std;
int main()
{
    cout<<"Podaj dlugosc ciag\n";
    int dlugosc;
    cin>>dlugosc;
    int liczba=0;
    int poprzednia_liczba=0;

    const int rosnacy = 0;
    const int malejacy = 1;
    const int niezdefiniowany = 2; // tutaj brakuje jednego stanu!

    int ciag = niezdefiniowany;
    int poprzedni_ciag = niezdefiniowany;
    
    for(int i=0;i<dlugosc;i++)
    {
      cin>>liczba;
      if(liczba>poprzednia_liczba)
      {
          ciag=malejacy;
      }
      if(liczba<poprzednia_liczba)
      {
          ciag=rosnacy;
      }

    
    /*
        Jeśli poprzednio sprawdzony fragment ciągu jest inaczej monotoniczny
        niż aktualny, to znaczy że cały ciąg jest nieuporządkowany.
        Należy wykryć tutaj sytuację, kiedy mamy początek pętli i 
        poprzedni_ciag będzie zawierał "niezdefiniowany", a ciag będzie już jakoś
        określony.
    */
     if(poprzedni_ciag != ciag && poprzedni_ciag != niezdefiniowany)
     {
        cout << "ciag nieuporzadkowany!\n";
     }

     poprzedni_ciag = ciag;     
     poprzednia_liczba=liczba;
    }

    if(ciag==rosnacy)
    {
        cout<<"ciag rosnacy";
    }
    else if(ciag==malejacy)
    {
        cout<< "ciag malejacy"; 
    } 
}

 

Podobne pytania

0 głosów
2 odpowiedzi 770 wizyt
0 głosów
0 odpowiedzi 414 wizyt
pytanie zadane 15 września 2022 w C i C++ przez SUOTR Początkujący (410 p.)
0 głosów
1 odpowiedź 606 wizyt
pytanie zadane 3 kwietnia 2021 w C i C++ przez Dawidziu Bywalec (2,610 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...