Bajtek 2/1987
Bajtek 2/1987

 No i w końcu jest  - kolejny zreduksowany numer Batjka z roku Anno Domini 1987, w środku bez większych niespodzianek, no może oprócz sporego odbica się działu ATARI - począwszy od kobyły W. Zientary "Symulator 6502", pozwalający ...

Zobacz stronę związaną z tym artykułem w Reduksach Try2emu
Spis treści:
Listingi dołączone do numeru w ReadyRun
Andrzej Pilaszek

Maszyna do wszystkiego

Jedną z pierwszych nazw starszych odpowiedników naszego komputera była (oprócz bezsensownego „mózgu elektronowego") „maszyna matematyczna".



 

Również „komputer", to spolszczony angielski termin „computer", oznaczający maszynę do wykonywania obliczeń. Nie jest to przypadek, pierwszymi zadaniami komputerów byty rzeczywiście obliczenia — wyznaczanie wartości skomplikowanych wzorów, rozwiązywanie równań, uktadów równań, itd.

Pomimo pojawienia się wielu nowych sposobów wykorzystywania elektronicznych maszyn cyfrowych (kolejna nazwa, często skracana jako EMC), typowe zadania obliczeniowe dalej są wykonywane w wielu dziedzinach.

Żeby mosteczek się nie uginał

Ogromny obszar stanowią tzw. obliczenia inżynierskie. Żeby zaprojektować nawet niezbyt skomplikowane urządzenie trzeba obliczyć mnóstwo rzeczy, np. siły działające na wszystkie elementy, wytrzymałość części składowych i całości, odkształcenia, drgania itd. Wszystkie potrzebne wielkości umiemy wyznaczać właśnie jako wartości pewnych formuł matematycznych, na ogół mocno skomplikowanych. Jeśli do tego konstruujemy nie hulajnogę tylko dużą koparkę lub most kolejowy, to obliczeń jest rzeczywiście masa.

Czy jednak zastosowanie komputerów może się tu opłacać? Przecież za każdym razem konstruktor tworzy coś innego, więc i obliczenia są inne, czyli za każdym razem potrzebny jest nowy (często drogi) program. Tak, wszystko to prawda, ale mimo to sytuacja nie jest całkiem zła, gdyż okazuje się, że liczne elementy obliczeń są typowe dla wielu zagadnień praktycznych. Przykładem niech będzie rozwiązywanie układów równań liniowych. Znacie ze szkoły układ dwóch równań z dwoma niewiadomymi. Zupełnie analogicznie wyglądają układy trzech równań z trzema niewiadomymi, czy też pięciu, dziesięciu albo stu równań, mających odpowiednio pięć, dziesięć czy sto niewiadomych. Ogólnie problem można określić jako rozwiązanie układu n równań z n niewiadomymi. Metoda rozwiązania nie zależy od liczby równań, więc można napisać procedurę, która będzie uniwersalna — rozwiąże każdy poprawny układ równań. Procedura taka będzie mogła służyć wszystkim, którzy w swojej pracy muszą rozwiązywać układy równań liniowych. Analogicznych zadań jest w matematyce bardzo dużo, a raz zaprogramowane rozwiązania tworzą biblioteki procedur matematycznych. Gotowe procedury biblioteczne dołącza się w odpowiednich miejscach do programów użytkowych, co znacznie zmniejsza nakład pracy potrzebny do ich stworzenia.

Na marginesie warto zaznaczyć, że znajdowaniem coraz lepszych (chodzi przede wszystkim e jak największą dokładność wyników i szybkość działania) metod rozwiązywania zadań obliczeniowych zajmuje się specjalna gałąź nauki — analiza numeryczna. Jest to właściwie dział matematyki, bardzo blisko związany z informatyką.

Tajemniczy CAD/CAM

My jednak pozostańmy przy inżynierach. Mają oni do dyspozycji także oprogramowanie bardziei wyspecjalizowane. Są to np. pakiety programów przygotowane z myślą o wykonywaniu konkretnych zadań. Może to być obliczanie wytrzymałości belki czy stropu, projektowanie ścieżek na płytkach z obwodami drukowanymi, czy też projektowanie rurociągów. Takie programy (i wiele, wiele innych) są dostępne na IBM PC, Amstrada, czasami nawet na Spectrum.

Inny przykład to programy pozwalające tworzyć na ekranie rysunki techniczne, które łatwo budować i modyfikować, a po nadaniu ostatecznej postaci, przenieść na papier za pomocą urządzenia kreślącego (plottera). Dobre programy tego typu mają gotowe zestawy często występujących na rysunkach elementów, z których można tworzyć własne konstrukcje — pozwala to zaoszczędzić czasu.

Oczywiście można robić powiększenia, obroty, obrabiać rysunek fragmentami, itd.

Komputerowe wspomaganie projektowania, często w skrócie nazywane CAD (ang. Computer Aided Design) systematycznie zwiększało swoje rozmiary, i w pewnym momencie znacznie przekroczyło pierwotny zasięg, wkraczając również w sferę produkcji. Określa to nowy skrót: CAM, czyli właśnie komputerowe wspomaganie wytwarzania.

Wróćmy teraz do punktu wyjścia, czyli obliczeń „matematycznych". We wszystkich dziedzinach życia, w których potrafimy opisać interesujące nas zjawiska językiem formuł matematycznych i zadawać pytania na temat rzeczywistego świata tak, aby odpowiedź była wynikiem ciągu obliczeń, znajdują zastosowanie komputery. Oczywiście w każdej z dziedzin sytuacja jest podobna do tej z zastosowań inżynierskich. Po pierwsze, wszyscy mogą korzystać z bibliotek procedur typowo matematycznych. Po drugie pojawiają się pakiety specjalistyczne, rozwiązujące, lub wspomagające rozwiązywanie zadań typowych dla tej dziedziny.

Reaktor nie poczeka

Maszyny zastępujące ludzi w skomplikowanych warunkach zostawiaią więcej czasu na pracę twórczą, ale nie jest to jedyna korzyść. Dzięki swej ogromnej szybkości pozwalają na realizację zadań, które bez nich w ogóle nie byłyby możliwe, gdyż potrzebne obliczenia zajęłyby rachmistrzom setki lat. Przykładem mogą być tutaj loty kosmiczne, czy też prace fizyków jądrowych.

Zauważmy wreszcie, ze dane dla programów nie muszą być koniecznie wprowadzane za pośrednictwem klawiatury (czy też czytnika kart perforowanych lub taśmy). Informacje o świecie zewnętrznym, np. temperatura, ciśnienie, szybkość, czy inne parametry wybranych zjawisk mogą być rejestrowane za pomocą odpowiednich czujników i przekazywane do maszyny. (Zwykle potrzebne są tu tzw. przetworniki analogowo-cyfrowe, przekształcające fizyczne wyniki pomiarów na postać cyfrową, akceptowalną dla komputera). Tak wyposażona maszyna może, dzięki szybkości z jaką działa, śledzić na bieżąco procesy, w których zmiany zachodzą w bardzo krótkim czasie — często odczyt danych z przyrządów pomiarowych odbywa się kilkanaście tysięcy razy w ciągu sekundy! Nie musimy zresztą ograniczać się do śledzenia. Odpowiedni program może, również na bieżąco, analizować napływające dane, określić jakie akcje trzeba podjąć, i wreszcie przekazać polecenia (znów za pośrednictwem odpowiednich przetworników), do właściwych urządzeń sterujących. Taki tryb pracy określa się jako praca w czasie rzeczywistym (ang. realtime).

Powyższy schemat jest całkiem uniwersalny, można go równie dobrze użyć do badań, np, do pomiarów niewidocznych gołym okiem odkształceń podwozia w jadącym po wybojach autobusie, jak i do sterowania pracą wielkiego pieca hutniczego czy fabryki chemicznej.

Narzuca się również natychmiast możliwość użycia maszyn cyfrowych do celów, ogólnie mówiąc wojskowych, ponieważ jednak uważam, że osiągnięcia w tej dziedzinie nie są dla nikogo powodem do dumy, tych zastosowań nie będę prezentował.

Zajmijmy się raczej komputerem służącym jako narzędzie pracy naukowców. O naukach ścisłych, wykorzystujących metody matematyki, już mówiliśmy. Ale i inne dziedziny, np. biologia, rolnictwo, psychologia czy medycyna z powodzeniem używają maszyn liczących i to zarówno tych dużych jak i tych mikro. Wyobraźmy sobie na przykład, że otrzymaliśmy kilkanaście tysięcy danych z doświadczeń przeprowadzonych w różnych warunkach. Trzeba teraz ustalić związki, np. między rodzajem gleby, a przydatnością nowej odmiany zboża. Statystyka stawia do dyspozycji odpowiednie metody analizy danych, ponieważ jednak metody te wymagają zwykle sporo liczenia dalszy bieg wypadków nietrudno odgadnąć. Jest on na tyle oczywisty, że metody statystycznej obróbki danych też mają własne biblioteki typowych procedur komputerowych.

A może karmić rybki?

Cykl „Przed Ekranem" rozpoczęliśmy od prezentacji oprogramowania w pełni uniwersalnego — baza danych czy edytor tekstów tak samo dobrze mogą służyć naukowcowi, inżynierowi, czy lekarzowi, jak i każdemu z Was. Dziś stwierdziliśmy, że każda dziedzina życia może mieć własne, typowe dla swoich problemów oprogramowanie. Pójdźmy jeszcze krok dalej. Zdarza się, że trzeba napisać program, który będzie używany tylko do rozwiązywania pojedynczego, zupełnie nietypowego zadania. Z tego powodu lista miejsc, czy też tematów, w których stosuje się komputery, nigdy nie będzie pełna. Każdy rok wydłuża ją o nowe pozycje. Niektóre z nich są dość oryginalne.

W październiku ubiegłego roku miesięcznik „Byte" opublikpwał obszerną odpowiedź na list czytelnika proszącego o pomoc w kwestiach technicznych związanych z zastosowaniem mikrokomputera do sterowania ruchem pociągów — zabawek na makiecie kolejowej. Oczywiście takie zastosowanie wymaga rozwiązań nie tylko programowych lecz i sprzętowych. Okazuje się jednak, że wszystkie trudności można pokonać.

Choćby dlatego, że zdarzają się tak oryginalne pomysły, nie uważam tematu: „zastosowania mikrokomputerów" za wyczerpany. Mam natomiast nadzieję, że kończący się dziś cykl artykułów pokazał zarówno typowe kierunki poważnych zastosowań sprzętu liczącego, jak i rzeczywiste korzyści płynące z tych zastosowań.

Myślę również, że jeśli opracowane przez Was nowe, oryginalne zastosowania czy też oprogramowanie podbiją świat, z przyjemnością wznowimy „Przed Ekranem", żeby o tym napisać.

Andrzej Pilaszek