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

Trójki liczb - zadanie maturalne

Object Storage Arubacloud
0 głosów
2,839 wizyt
pytanie zadane 27 lutego 2018 w C i C++ przez Scypyon Gaduła (3,450 p.)

Treść:W pliku liczby.txt znajduje się 1000 trójek liczb całkowitych dodatnich rozdzielonych pojedynczymi odstępami, każda trójka – w osobnym wierszu. Liczby zapisane w pliku należą do przedziału [1, 32 767]. Fragment danych z pliku liczby.txt: 20634 31423 261 11009 21970 32126 26318 16336 5158 24196 14586 3545 Napisz program(y), który(e) da(dzą) odpowiedzi do poniższych zadań. Odpowiedzi zapisz w pliku wyniki4.txt, a każdą odpowiedź poprzedź odpowiednim numerem zadania.

Zadanie 4.1 (0–2) Podaj, w ilu wierszach pliku z danymi liczby w trójkach są uporządkowane rosnąco. Przykład: Dla danych 4587 9351 28950 15010 28342 31848 30172 7492 6768 29120 21664 32328 odpowiedzią jest 2 (w dwóch wyróżnionych wierszach liczby są uporządkowane rosnąco).

 


#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    fstream plik;

    plik.open("liczby.txt",std::ios::in);
    int x[1000][3];
    int i=0,j=0;
    if( plik.good() == true )
    std::cout << "Uzyskano dostep do pliku!" << std::endl;
     else std::cout << "Dostep do pliku zostal zabroniony!" << std::endl;
        while (!plik.eof()){
        plik>>x[i][0];
         plik>>x[i][1];
         plik>>x[i][2];
         i++;



        }
        cout<<x[0][0]<<" "<<x[0][1]<<" "<<x[0][2]<<endl;

    return 0;
}

 

Chodzi mi o sam początek, czy da się to zrobić prościej, w sensie potraktować każdą liczbe jako obiekt, czyli np 2034 to było tab[0] potem 234 to tab[1] , czy wgl da się tak zrobić?

1 odpowiedź

0 głosów
odpowiedź 27 lutego 2018 przez mokrowski Mędrzec (155,460 p.)
edycja 27 lutego 2018 przez mokrowski

W tym pojedynczym zadaniu, nie widzę konieczności wczytywania liczb do pamięci. Wystarczy wczytywać je po 3 z pliku i sprawdzać warunek.

Pseudo kod.. 

std::ifstream openFile(const char * fileName) {
     //
     return openedFile;
}

size_t countRows(std::ifstream& file) {
     int first;
     int second;
     int thrid;
     size_t count = 0;
     while(file >> first >> second >> thrid) {
          if(valuesGrows(first, second, thrid)) {
               ++count;
          }
     }
     return count;
}

int main() {
    auto file = openFile(fileName);
    auto count = countRows(file);
    saveResults(count);
}

 

komentarz 27 lutego 2018 przez Paweł Dymek Bywalec (2,300 p.)

@mokrowski, i czego mam się z tej sekcji dowiedzieć? Nie bardzo rozumiem co chcesz mi podkreślić więc napisz wprost.

 

komentarz 27 lutego 2018 przez mokrowski Mędrzec (155,460 p.)

@Paweł Dymek

Dobrze... no to wprost...

https://pl.wikipedia.org/wiki/Pseudokod

Sprawdź czy int w świetle standardu ma 32-bity.

 

komentarz 27 lutego 2018 przez Paweł Dymek Bywalec (2,300 p.)
Przetarłem oczy, spojrzałem na datę, przetarłem ponownie i uznałem, że w dzisiejszym świecie raczej ciężko spotkać architekturę 16 bitową w komputerze. Nawet tanie zabawki typu arduino mają architekturę 32-bitową. Zatem pewnie znajdzie się urządzenie potwierdzające, że mogę się mylić.

Nawet gdyby założyć, że nie wiem na co jest program pisany i że int może mieć 16 a może mieć 32 bity to nadal mogę być pewny, że short int będzie miał wielkość 16 bitów i jego użycie nadal jest tu bardziej zasadne.
komentarz 27 lutego 2018 przez mokrowski Mędrzec (155,460 p.)
A ja nic nie będę zakładał. Wolę się upewnić. Choćby w jakiej wersji Arduino jest 32-bitowe...

EOT.
komentarz 27 lutego 2018 przez Scypyon Gaduła (3,450 p.)
To wiesz może jak zrobić takowe zagadnienie co napisałem ?;d z tablicami w sensie żeby były traktowane jako obiekt

Podobne pytania

0 głosów
0 odpowiedzi 1,121 wizyt
0 głosów
0 odpowiedzi 380 wizyt
+2 głosów
1 odpowiedź 746 wizyt
pytanie zadane 21 sierpnia 2017 w Algorytmy przez niezalogowany

92,568 zapytań

141,424 odpowiedzi

319,633 komentarzy

61,956 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!

...