Informatyka I Wyk lad I Wprowadzenie Robert Muszyński Instytut Cybernetyki Technicznej Politechnika Wroc lawska pokój 331 budynek C3 email: mucha@inyo.ict.pwr.wroc.pl Zagadnienia: literatura, zawartość tematyczna wyk ladu, systemy operacyjne Unix/Linux, edytor GNU Emacs, kompilacja i uruchamianie programów.
Literatura 1. W. Paluszyński, Kurs informatyki z ćwiczeniami: Unix, Pascal i struktury danych, Oficyna Wydawnicza Politechniki Wroc lawskiej, Wroc law 1994. 2. R. Kott, Programowanie w j ezyku Pascal, WNT, Warszawa 1990. 3. N. Wirth, Algorytmy + struktury danych = programy, WNT Warszawa 2000. 4. T. Cormen, C. Leiserson, R. Rivest, Wprowadzenie do algorytmów, WNT Warszawa 1998. 1
Zawartość tematyczna wyk ladu Wykonywanie podstawowych operacji w systemie operacyjnym Unix. Pos lugiwanie si e edytorem tekstów GNU Emacs. gramatyka j ezyka, kompilacja pro- Jezyk Pascal: gramów. Typy, wyrażenia, operatory, instrukcje. Metody konstruowania algorytmów. Procedury i funkcje; modu ly. Regu ly stylu programowania, dokumentacja programu. Iteracje i rekurencje. Tablice i rekordy. Przeszukiwanie i sortowanie tabic. Operowanie tekstami. Efektywność programów. 2
Edytor GNU Emacs Podstawowe komendy edytora GNU Emacs 94-9-1 Edytor GNU Emacs jest wywo lywany komend a: emacs nazwa pliku. Przemieszczanie kursora Ctrl-B, Ctrl-N, Ctrl-P, Ctrl-F Przemieszczanie kursora o jeden znak ( ) ESC F S lowo do przodu Ctrl-A Kursor na poczatek linii ESC B S lowo do ty lu Ctrl-E Kursor na koniec linii ESC < Kursor na poczatek pliku Ctrl-V Przejście do nastepnej strony ESC > Kursor na koniec pliku ESC V Przejście do poprzedniej strony ESC X goto-line Przejście do linii o numerze podanym przez użytkownika Kasowanie znaków DEL Kasowanie znaku przed kursorem ESC DEL Kasowanie s lowa przed kursorem Ctrl-D Kasowanie znaku na pozycji kursora ESC D Kasowanie s lowa za kursorem Ctrl-K Kasowanie znaków od kursora do końca linii Poszukiwanie i zamiana ciagu znaków Ctrl-S ciag znaków ESC Przyrostowe poszukiwanie w przód Ctrl-R ciag znaków ESC Przyrostowe poszukiwanie w ty l ESC % ciag znaków RETURN nowy ciag RETURN Warunkowa zamiana ci agu znaków: Operacje na regionach (region - obszar miedzy markerem a kursorem) Ctrl-@ Ustawienie markera (lub Ctrl-SPACJA) Ctrl-W Skasowanie regionu i zapis jego zawartości do bufora ESC W Zapis regionu do bufora bez jego kasowania Ctrl-Y Skopiowanie zawartości regionu w miejsce po lożenia kursora Operacje na oknach Ctrl-X 2 Otwarcie drugiego okna Ctrl-X O Przejście do drugiego okna Ctrl-X 0 Zamkniecie aktywnego okna Ctrl-X 1 Zamkniȩcie wszystkich okien oprócz aktywnego Operacje na plikach i buforach plikowych Ctrl-X Ctrl-S Zapis bufora plikowego na dysk Ctrl-X Ctrl-F Otwarcie nowego pliku Ctrl-X Ctrl-W Utworzenie i zapis do pliku o nowej nazwie Ctrl-X I Wstawienie zawartości innego pliku do aktywnego bufora plikowego Pomoc Ctrl-H Klawisz pomocy ESC X describe-function wyświetla opis funkcji o podanej nazwie ESC X describe-key wyświetla nazwe i opis funkcji przypisanej do klawisza ESC X apropos wyświetla nazwy funkcji ze s lowem kluczowym Inne ważne komendy Ctrl-G Przerwanie komendy Ctrl-L Odświeżenie ekranu Ctrl-X U Odtworzenie zawartości bufora sprzed ostatniej zmiany ESC! Uruchomienie shella w buforze edytora Ctrl-X Ctrl-C Zakończenie pracy z edytorem 3
Przyk ladowy program w Pascalu { 1} PROGRAM fib(input,output); { 2} (* wylicza liczby Fibonacciego metoda iteracyjna *) { 3} { 4} VAR liczba: INTEGER; {liczba Fibon. do wyliczenia} { 5} p, p1, p2, i: INTEGER; { 6} { 7} BEGIN { 8} WRITELN( Program wylicza liczby Fibonacciego. ); { 9} WRITELN( Podaj ktora liczba ma byc wyliczona: ) {10} READLN(liczba); {11} IF (liczba < 0) {12} THEN {13} WRITELM( Zle, liczba nie moze byc ujemna!! ) {14} ELSE {15} BEGIN {16} p1 := 0; p2 := 1; {17} {18} FOR i := 2 TO liczba DO {19} BEGIN {20} p := p1 + p2; p1 := p2; p2 := p {21} END; {22} {23} WRITELN( Gotowe, fib(,liczba, )=,p); {24} WRITELN( Zycze milego popoludnia. ); {25} {26} END { if (liczba < 0) } {27} END. 4
Kompilacja programów pc -c prog1.p pc prog1.o pc -o prog1 prog1.c pc -C prog1.p pc prog1.p = tworzy forme object prog1.o = tworzy program binarny a.out = tworzy program binarny prog1 = sprawdza jednynie poprawnośc pliku = tworzy program binarny a.out /opt/pascal/bin/pc fib.p FILE: fib.p 7 10.000 1 {10} READLN(liczba); ^ **** ERROR # 1 MISSING ; (026) FILE: fib.p 9 13.000 1 {13} WRITELM( Zle, liczba nie moze byc ujemna!! ) ^ **** ERROR # 2 IDENTIFIER NOT DEFINED (014) NUMBER OF ERRORS = 2 NUMBER OF WARNINGS = 0 PROCESSOR TIME 0: 0: 0 ELAPSED TIME 0: 0: 0 NUMBER OF LINES = 27 LINES/MINUTE = 16200.0 NUMBER OF NOTES = 0 pc: Errors detected; no link done 5