Przetwarzanie danych przez komputer

Przetwarzanie danych przez komputer
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 dni
  • Postów:639
0

Może się to wydać trywialne z mojej strony ale jestem początkujący jeśli idzie o informatyke. Mianowicie zastanawiam się nad interpretacją definicji słowa komputer. Wiem że można powiedzieć że jest to urządzenie, które służy do przetwarzania danych. Ja bym natomiast chciał nieco rozszerzyć tą definicje o to że jest to urządzenie, które zamienia dane wejściowe na kod binarny z wykorzystaniem odpowiednich instrukcji, a następnie trafiają do procesora gdzie są przetwarzane w odpowiedni sposób z wykorzystaniem instrukcji zaszytych w procesorze. Głównie chciałbym się odnieść w tej definicji do zamiany danych wejściowych na kod binarny z wykorzystaniem odpowiednich instrukcji. Chciałbym wiedzieć czy zanim procesor zacznie przetwarzać informacje ma miejsce właśnie zamiana danych wejściowych na kod binarny, jakie operacje są za to odpowiedzialne, oraz gdzie ewentualnie ma to miejsce?

SP
SP
  • Rejestracja:prawie 3 lata
  • Ostatnio:ponad 2 lata
  • Postów:181
1

Te dane są binarne od początku.

Jak na klawiaturze naciśniesz przycisk to zwierasz blaszkę i mikrokontroler w klawiaturze ma dla konkretnego zwarcia jakąś liczbę i wysyła tą informację, liczbę do kompa.

Jak coś powiesz do mikrofonu to będzie zamienione ciśnienie powietrza na napięcie, a te za pomocą ADC (analog to digital converter) przekonwertowane na liczbę i też wysłane do komputera.

A jak wyświetlany będzie tekst na ekranie to jest konkretna czcionka i ona jest listą, jak wybierzesz element z tej listy, o danym numerze, którym wcisnąłeś na klawiaturze to dostaniesz obrazek, który jak narysujesz na ekranie to będzie tą twoją liczbą.


Knowledge Distiller
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 10 godzin
2

@Szalony Programista2: No przeciez jak przyjmiesz, ze inputem jest fizyczna fala to po prodze jest ona interpretowana i zamieniana w forme cyfrowa. Wszystko sie zgadza.

Natomiast po co to zawierac w definicji? Szczegol implementacyjny. Nic wiecej.

Jak na klawiaturze naciśniesz przycisk to zwierasz blaszkę i mikrokontroler w klawiaturze ma dla konkretnego zwarcia jakąś liczbę i wysyła tą informację, liczbę do kompa.

Tylko ze inputem jest fizyczne wcisniecie klawisza a nie wyslanie (juz pozniej) sygnalu


λλλ
edytowany 4x, ostatnio: stivens
SP
Szalony Programista2
Jak masz master-slave to klawiatura czeka, aż zostanie odpytana i potem wysyła, ale co to za różnica? a mapowanie danej klawiatury też występuje bo są różne układy klawiatur i są przekształcane na ascii, ale nie chciało mi się wszystkich szczegółów zawierać.
stivens
Taka roznica ze nie jest prawda ze dane od poczatku sa binarne :)
SP
Szalony Programista2
Jak to nie, przecież klawisz wciśnięty albo nie 1/0 :>
stivens
A od kiedy reka wciskajaca przycisk jest dana binarna?:)
LukeJL
No teraz to nie wiadomo. Osoba wciskająca przycisk może być niebinarna. I klops.
SL
  • Rejestracja:około 7 lat
  • Ostatnio:około 10 godzin
  • Postów:876
3

Co da ci rozszerzenie tej definicji? Dodając jakieś dodatkowe obostrzenie ograniczasz to co jest komputerem a co nie. Nie widzę problemu, żeby ktoś zrobił komputer, który nie jest binarny. I taki komputer byłby komputerem.

SP
Szalony Programista2
W sumie taki komputer analogowy, mechaniczny lub nawet neuronowy. Da się takie skonstruować gdzie dane nie będą binarne.
elwis
  • Rejestracja:ponad 18 lat
  • Ostatnio:16 dni
2

No właśnie istnieją i istniały komputery, które nie są cyfrowe tylko analogowe. Zanim elektryczne komputery weszły na dobre, komputery hydrauliczne były obiecujące, wykonywały obliczenia używając mechaniki cieczy. Są też komputery biologiczne. przecież komputery kwantowe też nie do końca działają tak, że konwertują na binarny i liczą…
Komputer to jest takie urządzenie, które używa jednych zjawisk fizycznych by obliczać wartości analogiczne do tych zjawisk. :)


ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
2
elwis napisał(a):

No właśnie istnieją i istniały komputery, które nie są cyfrowe tylko analogowe. Zanim elektryczne komputery weszły na dobre, komputery hydrauliczne były obiecujące, wykonywały obliczenia używając mechaniki cieczy. Są też komputery biologiczne. przecież komputery kwantowe też nie do końca działają tak, że konwertują na binarny i liczą…
Komputer to jest takie urządzenie, które używa jednych zjawisk fizycznych by obliczać wartości analogiczne do tych zjawisk. :)

Mechaniczne też były, wojsko lata 1940-... długo, a może do dzisiaj
A pierwsze cyfrowe nie były binarne, a dziesiętne.

Nie da się powiedzieć o "przetwarzaniu danych", bez von Neumana.
W praktyce, w 95% jak mówimy komputer (cyfrowy), to myślimy komputer von Neumanna - gdzie nie ma rozdzielenia przestrzeni kodu i danych. A nawet, jak w chwili t1 mamy gdzieś obszar kodu, to został on załadowany w t0, czyi był traktowany jako dane.

Przeciwieństwem jest komputer, zwykle jakiś maluch, mikrokontroler, sterownik, arduino (ale nie raspberry) itd, gdzie kod jest w 100% w pamięci stałej.

piotrek1998 napisał(a):

Ja bym natomiast chciał nieco rozszerzyć tą definicje o to że jest to urządzenie, które zamienia dane wejściowe na kod binarny z wykorzystaniem odpowiednich instrukcji, a następnie trafiają do procesora gdzie są przetwarzane w odpowiedni sposób z wykorzystaniem instrukcji zaszytych w procesorze.

Nie weź emocjonalne, ale to bełkot. "Urządzenie, które wykonuje instrukcje" ... to co to wykonuje, jak nie procesor, który daje dane do ... procesora??? A co daje dane pierwszemu procesorowi? inny procesor ?
Z "instrukcje zaszyte w procesorze" też bym dyskutował.

Nie zajdziesz w dobrą stronę, jak będzie kombinował "jak sobie mały Jasio wyobraża", poczytaj coś solidnego.


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 16 godzin
  • Lokalizacja:Poznań
  • Postów:8769
3

A ja mam pytanie - jakie znaczenie dla Ciebie ma to, gdzie i kiedy następuje zamiana danych wejściowych na kod binarny? Czy planujesz pracować dla Intela i schodzić naprawdę tak nisko? OK, jeśli to ciekawość to spoko, ale uwierz mi - jeśli pytasz w kontekście przyszłej pracy, to nie ma to żadnego znaczenia (poza kilkoma niszami, ale to dość hermetyczne i rzadkie specjalizacje). Jeśli nie planujesz siedzieć w jakichś systemach real-time, projektować procesorów albo pisać sterowników, to w życiu Ci się to nie przyda.

Po prostu - uznaj, że komputer to maszyna, która jest w stanie wykonać zdane przez Ciebie zadania/obliczenia/przetwarzanie danych i wszystko dookoła (typu wyświetlenie UI, animacji czy puszczenie dźwięku). Nie musisz rozumieć dokładnie, co się dzieje pod spodem. Tak samo, jak mechanik samochodowy nie musi rozumieć, co się dzieje podczas spalania paliwa i jakie reakcje fizyczne czy chemiczne tam zachodzą. Wystarczy, że wie, że do pracy silnik potrzebuje paliwa i powietrza i wtedy robi "brum brum" i koła się kręcą. Jak chcesz się doktoryzować na temat optymalnych warunków spalania paliwa w silniku, to nie zostajesz mechanikiem, ale inżynierem projektującym silniki. Żeby stworzyć aplikację, która ma przycisk "OK", nie musisz wiedzieć, w jaki sposób system wyświetli ten przycisk, ani jak ma zostać on podświetlony, gdy na niego najedzie myszka. Ty po prostu dajesz informację, że w danym miejscu ma być klawisz i w ogóle Cię nie interesuje, w jaki sposób system operacyjny sobie z tym poradzi, ani jak karta graficzna wyśle do monitora informację, że w określonym położeniu na zostać coś narysowane.


edytowany 1x, ostatnio: cerrato
SP
Szalony Programista2
A to dobra analogia, bo taki mechanik nie zaprojektowałby układu, regulując przepustnicę zmieniamy przepływ powietrza i za pomocą czujników możemy zbadać ten przepływ i wyliczyć odpowiednią ilość paliwa jaką musimy za pomocą wtryskiwaczy dostarczyć do cylindra, pewne mechanizmy są mechaniczne sterowane, a reszta elektronicznie. Każdego elementu samochodu nie jest w stanie wykonać, ani nawet się dowiedzieć jak działa dokładnie(różne rozwiązania), ale przy naprawie i wymianie części to nie tworzy sam tego rozwiązania, tylko kupuje gotowe i sprawdzone.
P1
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 dni
  • Postów:639
0

Dzięki za pomoc. Zawsze warto dopytać ekspertów. Jeszcze raz dzięki

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)