szukanie zaawansowane
 [ Posty: 5 ] 
Autor Wiadomość
Mężczyzna Offline
PostNapisane: 6 sty 2011, o 21:47 
Użytkownik

Posty: 4
Pierwsze chciałbym się przywitać, z racji tego, że jest to mój pierwszy post na tym forum. ;)
Mam pewien kłopot, mianowicie piszę właśnie pewną aplikację(w C++), w której potrzebuję odczytać jaka cyfra w liczbie stoi na podanym miejscu(1 - cyfra jednostek, 2 - cyfra dziesiątek itd.).
Na razie moja funkcja jest pusta, ma tylko inicjację, wygląda tak:
Kod:
1
2
3
4
int odczytajCyfre(int liczba, int pozycja){

}

Nie mam żadnego pomysłu w jaki sposób mogę to obliczyć, w google nic nie znalazłem na ten temat. Bardzo proszę o pomoc, nawet jeżeli ktoś nie będzie w stanie podać kodu, przyda mi się chociaż sam sposób tego obliczenia.

Pozdrawiam, Andrzej Golonka

PS: Jeżeli będzie to potrzebne, to wcześniej już zrobiłem funkcję, która liczy ilość cyfr. Oto ona:
Kod:
1
2
3
4
5
6
int ileCyfr(int liczba){
   int cyfry=1;
   while( (liczba/=10) != 0 )
      cyfry++;
   return cyfry;
}
Góra
Kobieta Offline
PostNapisane: 6 sty 2011, o 22:01 
Użytkownik
Avatar użytkownika

Posty: 3481
Lokalizacja: Łódź
Jak wiesz ile cyfr ma liczba np. n cyfr to dziel ją kolejno przez 10 do potęgi n-1 i weź cechę (całość) z wyniku - ta cecha to cyfra stojca na n-tym miejscu od prawej strony. Potem od tej liczby odejmij iloczyn tej cechy przez tę potęgę i podziel wynik przez 10 do n-2 itd.
Np. liczba 357:
357 : 100= 3,57 to 3 stoi na 3 miejscu od prawej
57 : 10= 5,7 to 5 stoi na 2 miejscu od prawej
7 stoi na 1 miejscu od prawej
Góra
Mężczyzna Offline
PostNapisane: 7 sty 2011, o 09:03 
Użytkownik

Posty: 4
Bardzo dziękuję Ci za pomoc.
Zamieszczam funkcję, gdyż może się przydać komuś.
Kod:
1
2
3
4
5
6
7
8
9
10
int odczytajCyfre(int liczba, int pozycja){
   int tmp=liczba;
   int help;
   for(int i=1; i<=ileCyfr(tmp); i++){   
      if(pozycja==i) {liczba=floor(liczba/pow(double(10), ileCyfr(liczba)-1)); break;}
      help=floor(liczba/pow(double(10), ileCyfr(liczba)-1));
      liczba-=pow(double(10), ileCyfr(liczba)-1)*help;
   }
   return liczba;
}
Góra
Mężczyzna Offline
PostNapisane: 7 sty 2011, o 17:08 
Użytkownik

Posty: 30
Lokalizacja: ///
Możesz ewentualnie spróbować takiej funkcji:
Kod:
1
2
3
4
5
6
7
8
9
10
11
int odczytajCyfre(int liczba, int pozycja)
{
    std::ostringstream oss;
    oss << liczba;
    std::string sLiczba = oss.str();
    sLiczba = sLiczba[pozycja];
    std::istringstream iss(sLiczba);
    iss >> liczba;
    return liczba;
}

Będzie prawdopodobnie szybsza i prościej wygląda.
Góra
Mężczyzna Offline
PostNapisane: 7 sty 2011, o 18:06 
Użytkownik

Posty: 4
Sprytnie.. Zamiana na ciąg znaków... Dziękuję Ci za pomoc
Góra
Utwórz nowy temat Odpowiedz w temacie  [ Posty: 5 ] 


 Zobacz podobne tematy
 Tytuł tematu   Autor   Odpowiedzi 
 liczby pierwsze
Kto mi przedstawi najszybszy algorytm na sprawdzenie czy liczba x jest liczba pierwsza. ...
 Anonymous  4
 metody numeryczne na liczenie rzedu macierzy ?!?
Witam Mam nastepujacy problem: musze napisac program ktory bedzie liczyl rzad macierzy (duzych) i ma to robic w &quot;mgnieniu oka&quot;. Napisalem program ktory robi to rekurencyjnie, ale zajmuje mu to starsznie duzo czasu.. :/ Ma ktos jakis pomysl...
 Anonymous  2
 ZAMIANA systemow liczbowych, liczby niecalkowite.
witam, mamy na infie zamiane systemow liczbowych i tlumaczy go emerytowana babcia na zastepstwie z kartki tak ze nikt tego nie rozumie, moglby ktos to wyjasnic w 3 slowach ? bo kiedys wiem ze to kumałem, wystarczy ze chociaz poda 3 przyklady np po bi...
 bisz  1
 Liczby binarne...wartosci po przecinku
Moze mi ktos wyjasnic jak zamienia sie liczbe 51,27 na binarna jaka jest metoda czy wpierw zamieniamy 57 na binarne a pozniej 27 bo nie mam pojecia jak to zrobic...
 moczul  5
 dziwne liczby ?
Na studiach mam przedmiot o nazwie arytmetyka komputerów. Moje pytania nie dotyczą elektroniki tylko rachunków. Co to są liczby zmiennoprzecinkowe. Jak wykonuje się działania na liczbach zmniennoprzecinkowych? Co to jest i jak wykonać dzielenie bez ...
 vip_9999_vip  5
 pierwiastek n stopnia z liczby rzeczywistej dodatniej
Chciałbym wiedzieć jak ktoś rozwiąże następujące zadanie: Napisać funkcję(funkcja napisana w pascalu), która oblicza pierwiastek stopnia n(n naturalne i niezerowe) z liczby rzeczywistej dodatniej(chodzi tu o algorytm)....
 kwadrat1  1
 liczby zmienno i stałoprzecinkowe
mam gorąca prośbę, czy może mi ktoś tak krótko i prosto napisać co to sa liczby stało i zmiennoprzcinkowe. Too jest jedno z zagadnień do opracowania na egzamin z informatyki a nie rozumiem definicji które do tej pory znalazłem... Za wszelką pomoc se...
 =jazzownik=  3
 [Pascal] sprawdzanie czy p jest kwadratem liczby nat.
To co w temacie czyli po prostu nie wiem jak napisac taki algorytm ktory sprawdzalby czy dana liczba p jest kwadratem innej liczby naturalnej. Prosiłbym o jakis kod źródłowy albo przynajmniej o wskazowki ...
 matti  2
 Co to są liczby zmiennopozycyjne?
jak w temacie proszę o szybką odpowiedz...
 piotrzed  2
 Algorytm obliczania liczby Fibonacciego
Narysuj schemat blokowy algorytmu opartego na programowaniu dynamicznym dla obliczenia liczby Fibonacciego. F(n)= dla n...
 petro  1
 mediana i najczestsze wartosci
Witam mam mały problem. Dostałęm na zadanie z informatyki program w c++, który ma za zadanie Wczytać i wypełnic tablicę 20 elementową z zakresu od 0 do 10. Wypisać najczęstsze wartości i podać ile ich jest oraz podać medianę. Tablicę stworzyć umiem, ...
 slawoj5  8
 Minimalizacja liczby przecięć krawędzi przy rysowaniu gra
Witam, Czy zajmował się ktoś badaniem planarności grafów lub minimalizacją liczby przecięć krawędzi grafu? Jesli tak, to bardzo prosze o jakieś namiary na materiały na ten temat. Szczególnie przydatne byłyby kody źródłowe C, C++ lub Java. Przeglądałe...
 UNIX_admin  0
 Liczby zmiennoprzecinkowe w delphi.
Mam do napisania taki oto program: Liczby rzeczywiste zakodowane w formacie zmiennoprzecinkowym należą do skończonego zbioru wartości. Czyli jest tak mała liczba dodatnia, że mniejsza od niej jest zerem. Program wyznacza metodą numeryczną (trzeba ją...
 pover  4
 ANSI C - konwersja tablicy znakow na liczby
WITAM! Czy ktos sie orientuje jak skonwertowac kilka elementow talbicy (nazwijmy ja char tablica;) na liczby. Chodzi mi glownie o to: 1. Wczytuje do tablicy ciag znakow, tak ze da nam to w uproszczeniu: tablica=&quot;123 aasd &#91...
 soku11  27
 Liczby pierwsze C++
Jak powinien wygladac kod w C++ do: &quot;Program wypisujący liczby pierwsze ze zbioru {1,2,3,...,n} (n podaje użytkownik)&quot; Pogubilem sie troche w petlach......
 19Radek88  10
 
Atom [Regulamin Forum] [Instrukcja LaTeX-a] [Poradnik] [Reklama] [Kontakt]
Copyright (C) ParaRent.com