ziombel3 Temat założony przez niniejszego użytkownika |
Zadanie 6 matura rozszerzona z informatyki 2013 » 2013-05-22 17:11:19 Witam. Nie zdążyłem zrobić tego zadania na maturze i spróbowałem dokończyć w domu, jednak program nie działa poprawnie. Zadanie: http://www.cke.edu.pl/files/file/Arkusze-2013/Matura-2013/informatyka_PR_2.pdfProblem: Program się uruchamia i wykonuje podpunkt a, oraz pierwszą pętlę podpunktu b. Jednak w programie wyskakuje mi komunikat: process exited with return value 3221225725 Wyjaśnienie danych na dole #include <cstdlib> #include <iostream> #include <fstream> #include <string> using namespace std;
int zamiana_na_dziesietna( int tab[], int cyfry ) { int j, k, i, dziesietna = 0; for( j = 0; j < cyfry; j++ ) { i = 1; for( k = j + 1; k < cyfry; k++ ) { i = i * 8; } dziesietna = dziesietna + tab[ j ] * i; } }
int main( int argc, char * argv[] ) { string liczba; int pozycja, a = 0, j = 0, tab2[ 5000 ], tab[ 7 ]; ifstream plik( "dane.txt" ); while( !plik.eof() ) { getline( plik, liczba ); pozycja = liczba.size() - 1; if( liczba[ 0 ] == liczba[ pozycja ] ) { j++; } } cout << j << endl; plik.close(); ofstream zapis( "liczby.txt" ); int i = 0, d = 0; plik.open( "dane.txt" ); while( !plik.eof() ) { getline( plik, liczba ); pozycja = liczba.size(); tab2[ d ] = pozycja; d++; for( i = 0; i < pozycja; i++ ) { zapis << liczba.substr( i, 1 ) << " "; } zapis << " " << endl; } plik.close(); zapis.close(); plik.open( "liczby.txt" ); zapis.open( "liczby2.txt" ); i = 0, j = 0; for( j = 0; j < 5000; j++ ) { while( i < tab2[ j ] ) { plik >> tab[ i ]; i++; } i = 0; d = tab2[ j ]; zapis << zamiana_na_dziesietna( tab, d ); } plik.close(); zapis.close(); system( "PAUSE" ); return EXIT_SUCCESS; }
Plik dane: Liczby w systemie 8, pierwsze linie: 1334473 267546 21500 474353 372702 317330 363100 250170 Plik liczby: Liczby te co wyżej, jednak każda cyfra oddzielona spacją(nie znalazłem sposobu na wprowadzenie 1 cyfry do tablicy) Plik liczby2: Tam miały się pojawić liczby po 1 w linii, w systemie 10. Chce zrobić zadanie do końca. Może nawet inną metodą. |
|
DejaVu |
» 2013-05-22 21:28:19 |
|
kejkun |
» 2013-05-23 13:32:22 "Konwertuje wartość zapisaną w łańcuchu znaków w dowolnym systemie liczbowym do postaci liczby typu całkowitego" tzn. ze jak mamy w stringu w systemie 8 liczbe,
to przez uzycie tego otrzymamy liczbe w systemie 10 czy 8 ? |
|
pekfos |
» 2013-05-23 15:03:38 to przez uzycie tego otrzymamy liczbe w systemie 10 czy 8 ? |
Pytanie pomocnicze: W jakim systemie liczbowym jest x? |
|
kejkun |
» 2013-05-23 16:31:47 tutaj wg mnie w dowolnym, mozemy przechowywac dana " liczbe " nawet np. "1001 (2) " jako int a= 1001; tylko, ze my wiemy w jakim on jest systemie. ale sie pytam jak to dziala ? konwertuje po prostu stringa na inta ? czy rowniez zmienia system ? Bo jesli tylko zmienia string na inta, to duzo jest sposobow na to. czy to cos dodatkowo zmienia 1.string-> int 2 .system [tu 8 ] -> 10 ? ? |
|
pekfos |
» 2013-05-23 16:48:53 strtolTym razem przeczytaj całość. |
|
kejkun |
» 2013-05-23 17:22:52 dobra czyli zmienia system przy tym . " 0xfftu " Jeżeli pierwszym znakiem jest '0', a drugim znakiem jest 'x' albo 'X' to łańcuch znaków będzie interpretowany jako system heksadecymalny (szesnastkowy). | no dobrze, to rozumiem tak: tu " 2 " znak to " x " , wiec jest to kod 16. teraz ta biblioteka zmieniajac to z kodu 16 , uwzglednia ten " x " w obliczeniach czy tez nie ? Bo o ile sie nie myle, to on nie nalezy do kodu "16". jest to kod od " 0 - 9 oraz A , B ,C ,D ,E (15) , F, " skoro tak , to co sie dzieje gdy natrafi na literke np. " t " ktora nie nalezy do kodu 16 ? to jedno pytanie, ale wracajac do matury: Jeżeli pierwszym znakiem jest '0', a drugim znakiem nie jest 'x' ani 'X' to łańcuch znaków będzie interpretowany jako system oktalny (ósemkowy). |
a co jesli na maturze, pierwszym znakiem było '1' ? wtedy zle dziala ta zamiana , hm ? |
|
pekfos |
» 2013-05-23 17:27:46 skoro tak , to co sie dzieje gdy natrafi na literke np. " t " |
a co jesli na maturze, pierwszym znakiem było '1' ? | strtolTym razem (uważnie) przeczytaj całość.. |
|
« 1 » 2 |