Wikipedysta:Soul windsurfer

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania
13 Ten wikipedysta edytuje polskojęzyczną Wikibooks od 13 lat, 4 miesięcy i 30 dni.
Obliczono 29 stycznia 2023.
pl Polski jest językiem ojczystym tego użytkownika.
en-2 This user can read and write intermediate English.




Witam.

Moja strona domowa ( angielska).

Wikipedia-logo.png Wikipedia - Adam majewski

Commons-logo.svg Commons - Adam majewski


wikibooks[edytuj]

<syntaxhighlight lang= c>    </syntaxhighlight >


Witaj w polskich Wikibooks![edytuj]

Cieszymy się, że udało Ci się do nas dołączyć! Na początek polecamy przydatne strony pomocy:

Poniżej znajdują się dalsze, użyteczne dla użytkownika strony

Śmiało edytuj strony i pamiętaj, że zawsze możesz liczyć na pomoc innych użytkowników.

Chcąc skontaktować się z innym wikipedystą, wpisuj się na stronę jego dyskusji - wtedy dana osoba otrzyma komunikat o wiadomości i będzie mogła Ci odpowiedzieć. Zapraszamy również na IRC-a: #wikibooks-pl. Aktywnych edytujących zobaczysz na ostatnich zmianach. W sprawach projektu dyskutuj w Barze.

Mamy nadzieję, że zostaniesz z nami na dłużej!


kategorie[edytuj]

Kategorie na Wikibooks mają nieco inne użycie niż na Wikipedii. Na Wikipedii każda strona znajduje się w jakiejś kategorii; na Wikibooks to podręczniki są podstawowymi jednostkami i tylko stronę główną podręcznika (okładkę, a wobec jej braku spis treści) umieszcza się w określonej kategorii. Podręcznik dopasujesz do odpowiedniej kategorii, przeglądając Kategoria:Podręczniki według tematu.

Wykaz ważnych stron "technicznych", "administracyjnych" i ogólnej natury znajdziesz w kategorii: meta-strony Wikibooks.

Błędnym postępowaniem jest także tworzenie podkategorii dla podręczników językowych. Dlatego też, np. podręcznik do języka niemieckiego powinien znajdować się tylko w kategorii "Języki". Nie należy więc wstawiać w modułach tego podręcznika kategorii "Język niemiecki" i ją osobno tworzyć. Podobnie nie powinno się tworzyć oddzielnych podkategorii "Język portugalski", "Język rumuński" itp.

Wstawiając komendę [[Kategoria:...]], na okładce należy ją obudować komendą "noinclude", np.

<noinclude>
[[Kategoria:Języki]]
</noinclude>

Dzięki temu unikniemy problemów z tworzeniem wersji do druku.

mediawiki[edytuj]

MediaWiki is a software (wiki engine software) for Wikipedia and the other Wikimedia projects

book features[edytuj]

  • level
  • status
  • topic

hierarchy[edytuj]

Hierarchy

Or

  • collection

See also

collection[edytuj]

At one time they could also be:

  • rendered as PDF (see PDF Writer)
  • exported as ODF Text Document (see OpenDocument Export)
  • exported as DocBook XML (see XML Bridge)
  • exported as ZIM file (see openZIM)
  • exported as ePub file (ebook)

other[edytuj]

{{wikipedia|Object Pascal}}
{{wikipedia|Pascal (język programowania)}}

{{TODO|Dodać jakiś przykład użycia.}}
<syntaxhighlight lang="c">  </syntaxhighlight>

Przydatne linki

admin - import

spr. - NPA


Szablon {{Wolumin}}[edytuj]

Wikipedia-kategoyzacja schemat

A nie lepiej użyć szablon {{Wolumin}}, a nie [[Kategoria:Książka:C]], tak jest prostszej.

Wystarczy napisać na stronie końca artykułu:

{{BrClear}} <noinclude>{{Wolumin}}</noinclude>


Jeżeli wstawiłeś na stronę książki C, to wystarczy to ona zwróci kategorię: Książka:C, co jest równoważne kodowi: [[Kategoria:Książka:C]].


A w przypadku stron artykułów, to są: Spis treści w sekcji dotyczącej kategorii. Przeczytaj tam wspomnianą stronę i jego podstrony: Wikibooks:Szablony. Szablony: {{Kategoria}} (patrz dokumentacja) - dodawanie pojedynczych kategorii, {{Kategorie}} (patrz dokumentacja) - dodawanie zbioru kategorii. Szablon {{Status}} - wstawiany zwykle na strony główne podręczników, ewentualnie dodaje do tej strony kategorię książkową, w przypadku tego podręcznika, to będzie ta sama kategoria, jak dla innych artykułów, na stronie głównej książki używany szablonu {{Status}} (patrz dokumentacja), a na innych artykułach {{Wolumin}} (patrz dokumentacja). Szablony liczb: {{Łączna liczba stron w kategoriach}} (patrz dokumentacja) - liczy nierekurencyjnie liczbę stron w kategoriach, a {{Rekurencyjna łączna liczba stron w kategoriach}} (patrz dokumentacja) - liczy rekurencyjnie liczbę stron w kategoriach. Szablon {{OpakujKategorie}} (patrz dokumentacja) - opakowuje kategorie, zwykle bez nazw sortowania, w ramkę i nie umieszcza ich na samej dole strony, tylko w tej ramce, {{OpakujKategorieZeSortowaniem}} (patrz dokumentacja) - opakowuje kategorie wraz z ich nazwami sortowania.



Na Wikibooksie nie używamy zapisu: [[Kategoria:Nazwa kategorii]] lub [[Kategoria:Nazwa kategorii|nazwa sortowania]], tylko zamiast tego używamy te szablony wspomniane wcześniej, ze względu na kontrolę ich z jednego miejsca, np. jakaś kategoria nie istnieje, to jest wtedy łatwo, to naprawić, w przypadku systemowych wywołań jest trudno, w szablonach od zwracania kategorii: {{Status}}, {{Wolumin}}, {{Kategoria}} i {{Kategorie}}, mają w sobie ukryte te wywołania systemowe w swojej budowie, łatwo to sprawdzić wywołując: {{Nowiki|{{Wolumin}}}}. Szablony kategorii domyślnie dodają sortowanie kategorii, więc nie trzeba sortować wszystkich kategorii razem wziętych bez sortowania według: {{DEFAULTSORT:Nazwa sortowania}}.


Możesz poczytać artykuł na Wikipedii: Kategorie.

Przypisy bibliograficzne i rzeczowe[edytuj]

Jak używasz przypisów bibliograficznych, użyj:

== Przypisy ==
{{Przypisy}}

W przypadku uwag, przypisów rzeczowych:

== Uwagi ==
{{Uwagi}}

Szablony pomocnicze: {{r}} - do przypisów bibliograficznych, i {{u}} - do przypisów rzeczowych (uwag): szablony, że tutaj używamy przypisów jako jego wskazania, ale jako referencję bez definicji, oraz {{Ref}} - definicja przypisów we wnętrzu szablonów {{Przypisy}}, {{Uwagi}} i {{Przypisy-lista}}, jako ich parametry, wskazanych przez te dwa pierwsze szablony. Za pomocą szablonu {{Ref}} możemy wskazać definicję referencji w tekście, a na samym końcu używamy, któreś z trzech szablonów, ale tym razem bez parametrów, a nie z parametrami.


Szablony do innych przypisów wielokolumnowych, ale bibliograficznych:

== Przypisy ==
{{Przypisy-lista}}

nie używamy = Poziomu 1 = w artykułach ( wikipedia)

Szablony nawigacji[edytuj]

A jak używasz nawigacji, to użyj szablonów stronicowych, nawigacja na Wikibooksie, w książkach jest do poprawienia. Zobacz dokumentację szablonu {{AktualnaKsiążka}}, a tam są przykłady szablonów stronicowych dla nawigacji. Jeśli używasz szablonu {{Autonawigacja}}, to użyj tego szablonu, przykłady w dokumentacji jeszcze nieukończonej, ale to wystarczy dla książek, w nich artykułów.

video[edytuj]

https://fractalforums.org/mandelbulb3d/13/creating-a-video/4958/msg36079#new


ffmpeg -framerate 60 -r 60 -i image%06d.png -pix_fmt yuv420p -profile:v high -level:v 4.1 -crf:v 20 -movflags +faststart output.mp4
  • for other than 60 fps, change framerate and r
  • input is image000001.png, image000002.png, ... , %06d means a zero-padded number with six digits, change if your input images are named differently
  • -pix_fmt yuv420p is required for compatibility with most players (default is yuv444 or maybe even rgb, which most players don't handle well if at all)
  • -profile:v, -level:v also control compatibility settings, 4k probably needs a higher level setting
  • -crf:v is the quality-vs-size control, lower numbers are higher quality larger file size, higher numbers are lower quality smaller file size, crf 20 is pretty high quality, iirc changing by 6 affects the file size by a factor of 2
  • -movflags +faststart is required for streaming (otherwise the whole file has to be downloaded before playback can start)
  • ffmpeg can also add/encode a soundtrack if you want one


błędy w obliczeniach numerychnych[edytuj]

Avoiding loss of significance[edytuj]

Although the quadratic formula provides an exact solution, the result is not exact if real numbers are approximated during the computation, as usual in numerical analysis, where real numbers are approximated by floating point numbers (called "reals" in many programming languages). In this context, the quadratic formula is not completely stable.

This occurs when the roots have different order of magnitude, or, equivalently, when b2 and b2 − 4ac are close in magnitude. In this case, the subtraction of two nearly equal numbers will cause loss of significance or catastrophic cancellation in the smaller root. To avoid this, the root that is smaller in magnitude, r, can be computed as where R is the root that is bigger in magnitude.

A second form of cancellation can occur between the terms b2 and 4ac of the discriminant, that is when the two roots are very close. This can lead to loss of up to half of correct significant figures in the roots.[1][2]



https://coral.ie.lehigh.edu/~ted/files/ie496/lectures/Lecture20.pdf


Roots of a quadratic (ax2 + bx + c)

If x1 ≈ 0 and x2 >> 0, then the quadratic formula is unstable.

Computing x2 by the quadratic formula and then setting x1 = cx2 / a is stable.

Przykład 2[edytuj]

Innym przykładem na to, że nawet najprostsze algorytmy mogą być źle uwarunkowane jest „szkolny” algorytm obliczania pierwiastków równania kwadratowego

W sposobie obliczenia jednego z pierwiastków jest odejmowanie. Możliwa jest sytuacja, w której wartość i mogą być dość bliskie zeru co do modułu - nastąpi utrata cyfr znaczących.

Rozwiązanie Sposobem na ominięcie tego problemu mogą być Wzory Viète’a - dobrze uwarunkowany pierwiastek może być obliczony „wprost”, drugi otrzymany ze wzoru Viète’a. Należy również zauważyć, że możemy mieć tutaj tutaj do czynienia z dwoma przypadkami tj. b>=0 oraz b<0. Dla pierwszego przypadku dobrze uwarunkowanym będzie pierwiastek pierwszy, a dla drugiego przypadku dobrze uwarunkowanym będzie pierwiastek drugi.

Instability of the quadratic equation[edytuj]

For example, consider the quadratic equation

with the two exact solutions:

This formula may not always produce an accurate result. For example, when is very small, loss of significance can occur in either of the root calculations, depending on the sign of .

The case , , will serve to illustrate the problem:

We have

In real arithmetic, the roots are

In 10-digit floating-point arithmetic:

Notice that the solution of greater magnitude is accurate to ten digits, but the first nonzero digit of the solution of lesser magnitude is wrong.

Because of the subtraction that occurs in the quadratic equation, it does not constitute a stable algorithm to calculate the two roots.

A better algorithm[edytuj]

A careful floating-point computer implementation combines several strategies to produce a robust result. Assuming that the discriminant b2 − 4ac is positive, and b is nonzero, the computation would be as follows:[3]

Here sgn denotes the sign function, where is 1 if is positive, and −1 if is negative. This avoids cancellation problems between and the square root of the discriminant by ensuring that only numbers of the same sign are added.

To illustrate the instability of the standard quadratic formula compared this formula, consider a quadratic equation with roots and . To 16 significant digits, roughly corresponding to double-precision accuracy on a computer, the monic quadratic equation with these roots may be written as

Using the standard quadratic formula and maintaining 16 significant digits at each step, the standard quadratic formula yields

Note how cancellation has resulted in being computed to only 8 significant digits of accuracy.

The variant formula presented here, however, yields the following:

Note the retention of all significant digits for .

Note that while the above formulation avoids catastrophic cancellation between and , there remains a form of cancellation between the terms and of the discriminant, which can still lead to loss of up to half of correct significant digits.[1][2] The discriminant needs to be computed in arithmetic of twice the precision of the result to avoid this (e.g. quad precision if the final result is to be accurate to full double precision).[4] This can be in the form of a fused multiply-add operation.[1]

To illustrate this, consider the following quadratic equation, adapted from Kahan (2004):[1]

This equation has and roots

However, when computed using IEEE 754 double-precision arithmetic corresponding to 15 to 17 significant digits of accuracy, is rounded to 0.0, and the computed roots are

which are both false after the 8-th significant digit. This is despite the fact that superficially, the problem seems to require only 11 significant digits of accuracy for its solution.

Przydatne strony[edytuj]

(Skopiowałem ze strony Karola Dąbrowskiego)



  • <syntaxhighlight lang="c">...</syntaxhighlight>

http://www.theiterators.com/technologies/

zunzun

git add[edytuj]

git add is a multipurpose command – you use it to begin tracking new files, to stage files, and to do other things like marking merge-conflicted files as resolved. I

git patch[edytuj]

How to contribute your changes (bug fixes, new features, ...):

git checkout master git pull git checkout -b my-new-stuff

  1. edit files, make changes

git add your-changed-files git commit

  1. write a short description, the first line is the most important

git format-patch master

  1. then email the patches as attachments

Try to split each distinct set of changes into different commits (eg: a bug fix in one file and a new feature in another file should be two commits). On the other hand, changes in multiple files for the same bug-fix or feature should be in one commit. Make sure it compiles before you commit, and preferably make sure it runs and does the right things without breaking other stuff.

Alternatively to git format-patch and emailing, make your repository available online. https://gitorious.org has tools for forking repositories and submitting merge requests, though I've not used them much so can't offer any tips.

c[edytuj]

c= 1/4
zf= z = 0.499999996905453  +0.000000000000000 i
z = 0.503446319355695  +0.000195822466591 i
z = 0.501859335396733  +0.000051833858094 i
z = 0.504519704479711  +0.000098150630449 i

trygonometria[edytuj]

 

#define radian2degree(r) (r * 57.295779513082) // r*180/pi = r* 57.295779513082
#define degree2radian(d) (d * 0.017453292519)  //  d*pi/180 = d*0.017453292519

double radians_to_degrees(double rad)
{
  return rad * 180.0 / M_PI;
}

double degrees_to_radians(double deg)
{
  return deg * M_PI / 180.0;
}

//
angle1 = angle1/(2.0*M_PI); // from radians to turns
//
// conversion of the output of atan2 function to input of cs and sin functions 
double angle1 = M_PI + atan2(cimag(Z0) - cimag(Z1), creal(Z0) - creal(Z1)); //  radians from range [-pi,pi] to range [0,2 pi]
double x = creal(Z0) +  (radius + dr) *  cos(angle1);
double y = cimag(Z0) +  (radius + dr) *  sin(angle1);
complex double Z1new = x+y*I;

funkcje[edytuj]

  • aint(x) returns the integral value between x and 0, nearest x.
  • anint(x) returns the nearest integral value to x, except halfway cases are rounded to the integral value larger in magnitude.
  • Nearest Integer Function = nint(x) converts x into int format rounding to the nearest int value, except halfway cases are rounded to the int value larger in magnitude.


plik[edytuj]

dwa podstawowe mechanizmy połączenia między programem a plikiem ( oraz z urządzeniem takim jak terminal lub potokiem lub gniazdem do komunikacji z innym procesem): [5]

  • deskryptory plików ( ang. file Descriptors). Deskryptory plików są reprezentowane jako obiekty typu int. Deskryptory plików zapewniają prymitywny, niskopoziomowy interfejs do operacji wejścia i wyjścia.
  • strumienie ( ang. stream). Strumienie są reprezentowane jako obiekty FILE *.


róznice[edytuj]

  • plik ( dane na plik na dysku)
    • file descriptor
    • file pointer
  • strumień ( przepływ danych)
  • bufor ( miejsce w pmięci)
  • wskażnik ( adres pamięci)


Pojęcia są związane ze sobą ale mają inne znaczenie (określają różne rzeczy )[6]

strumienie[edytuj]

Strumień ( ang stream) jest to termin o szerokim i zmiennym znaczeniu ( ang. a loose term) [7]

  • zwykle oznacza ciąg o nieokreślonej długości
    • Długość może być nieznana nawet nadawcy. Weźmy na przykład zadanie tworzenia strumienia w locie, prawdopodobnie z innych strumieni. Strumień może być nawet nieskończenie długi. Czasami długość strumienia jest znana, ale po prostu jest ignorowana. Czasami długość jest znana, ale nie w jednostkach użytkowych. Program odczytujący wiersze o zmiennej długości ze strumienia prawdopodobnie nie może zrobić nic użytecznego z długością strumienia w bajtach.
    • pojęcie to jest używane w komunikacji w odniesieniu do danych przekazywanych między autorem/nadawcą/producentem a czytelnikiem/odbiorcą/konsumentem
    • dostęp do strumienia jest sekwencyjny, niezależnie od tego, czy jest to konieczne, czy wygodne. Możliwość przeskoczenia do innego miejsca w strumieniu nie dyskwalifikuje automatycznie użycia tego terminu.
  • reprezentacja przepływu danych z jednej strony na drugą, np. z dysku do pamięci i z pamięci na dysk[8]. Użycie strumieni pozwala przesyłać duże ilości dane, w taki sposób aby nie zabrakło pamięci. [9]
  • w Biblioteki Standardowej C ( ang. the C Standard Library ) strumień jest ogólnym interfejsem do wykonywania pewnych operacji wejścia i wyjścia( ang. I/O operations ).
    • Ze względów historycznych typ struktury danych C reprezentujący strumień nosi nazwę PLIK ( ang. FILE), a nie „strumień”. Ponieważ większość funkcji bibliotecznych dotyczy obiektów typu FILE*, czasami termin wskaźnik pliku jest również używany w znaczeniu „strumień”. Prowadzi to do niefortunnego zamieszania w terminologii w wielu książkach na temat C[10]




Stream (disambiguation) - Computing and technology[edytuj]


Strumień (ujednoznacznienie) - Informatyka i technologia

  • Strumień danych: sekwencja elementów danych udostępnionych w czasie
  • graficzna reprezentacja przepływów
  • wstępnie połączone strumienie wejściowe i wyjściowe dla programów komputerowych
  • Przetwarzanie strumieniowe ,
  • paradygmat programowania komputerowego
  • Media strumieniowe , multimedia przesyłane strumieniowo do użytkownika końcowego .stream , ogólna domena najwyższego poziomu przeznaczona do przesyłania strumieniowego witryny medialne Transmisja strumieniowa na żywo,
  • transmisja mediów w czasie rzeczywistym do widza Usługi strumieniowe,
  • Platformy strumieniowelista platform strumieniowych opartych na subskrypcji
  • STREAM konwencja pomiaru przepustowości pamięci i test porównawczy
  • STREAMS - framework Unix System V

typy[edytuj]

strumienie w C:

tablice[edytuj]

  • typ
    • statyczne (
    • dynamiczne (
  • wymiar
    • jednowymiarowe (1D , wektor)
    • dwuwymiarowe ( 2D , macierz , ang. matrix)
      • wielowymiarowe
  • operacje na tablicach
    • deklaracja
    • initializacja
    • użycie
    • usunięcie
  • ???
    • Flexible array member =
    • variable-length array = VLA, runtime-sized

analiza programu w języku Haskell[edytuj]

-- Haskell code by Claude Heiland-Allen
-- http://mathr.co.uk/blog/

import Control.Monad (forM_)
import Data.List (genericTake, genericDrop, intercalate)
import Data.Fixed (mod')
import Data.Ratio ((%), numerator, denominator)
import Numeric (readInt)
import System.Environment (getArgs)

type InternalAngle = Rational

type ExternalAngle = ([Bool], [Bool])

pretty :: ExternalAngle -> String
pretty (pre, per) =  bits pre ++ "(" ++ bits per ++")"

bits :: [Bool] -> String
bits = map bit

bit :: Bool -> Char
bit False = '0'
bit True = '1'

binary :: [Bool] -> Integer
binary [] = 0
binary s = case readInt 2 (`elem`"01") (\c -> case c of '0' -> 0 ; '1' -> 1) (bits s) of
  [(b, "")] -> b

rational :: ExternalAngle -> Rational
rational (pre, per) = (binary pre % 2^p) + (binary per % (2^p * (2^q - 1)))
  where
    p = length pre
    q = length per

bulb :: InternalAngle -> (ExternalAngle, ExternalAngle)
bulb pq = (([], bs ++ [False, True]), ([], bs ++ [True, False]))
  where
    q = denominator pq
    bs
      = genericTake (q - 2)
      . map (\x -> 1 - pq < x && x < 1)
      . iterate (\x -> (x + pq) `mod'` 1)
      $ pq

hub :: InternalAngle -> [ExternalAngle]
hub pq =
  [ (sm, shift k sp) | k <- [0, b .. (q - p - 1) * b] ] ++
  [ (sp, shift k sp) | k <- [(q - p) * b, (q - p + 1) * b .. (q - 1) * b] ]
  where
    p = numerator pq
    q = denominator pq
    (([], sm), ([], sp)) = bulb pq
    (ab, cd) = parents pq
    b = denominator ab
    shift k = genericTake q . genericDrop k . cycle -- 

parents :: InternalAngle -> (InternalAngle, InternalAngle)
parents pq = go q 1 0 p 0 1
  where
    p = numerator pq
    q = denominator pq
    go r1 s1 t1 r0 s0 t0
      | r0 == 0 =
          let ab = - s1 % t1
              a = numerator ab
              b = denominator ab
              c = p - a
              d = q - b
              cd = c % d
          in  (min ab cd, max ab cd)
      | otherwise =
          let (o, r) = divMod r1 r0
              s = s1 - o * s0
              t = t1 - o * t0
          in  go r0 s0 t0 r s t

main :: IO ()
main = do
  [sp, sq] <- getArgs
  p <- readIO sp
  q <- readIO sq
  let pq = p % q
      (lo, hi) = bulb pq
      hs = hub pq
  putStrLn $ "internal angle p/q = " ++ sp ++ " / " ++ sq 
  putStrLn $ "internal angle in lowest terms = "
  print pq
  putStrLn $ "rays of the bulb:"
  putStrLn $ pretty lo ++ " = " ++ show (rational lo)
  putStrLn $ pretty hi ++ " = " ++ show (rational hi)
  putStrLn $ ""
  putStrLn $ "rays of the hub:"
  forM_ hs $ \h -> putStrLn $ pretty h  --- ++ " = " ++ show (rational h)
  1. 1,0 1,1 1,2 1,3 Szablon:Citation
  2. 2,0 2,1 Szablon:Citation
  3. Szablon:Citation, Section 5.6: "Quadratic and Cubic Equations".
  4. Szablon:Citation
  5. stackoverflow question: what-is-the-difference-between-a-stream-and-a-file
  6. stackoverflow question: difference-between-file-pointer-stream-file-descriptor-and-file
  7. stackoverflow question: difference-between-file-pointer-stream-file-descriptor-and-file
  8. social.msdn.microsoft Forum vstudio: difference-between-file-and-stream
  9. mathr blog: exponential mapping with kalles fraktaler
  10. gnu software: libc manual - Streams