Programowanie Łukasz Dulny 18 marca 2016

Podobne dokumenty
Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Wstęp do programowania. Wykład 1

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Dodatki. Dodatek A Octave. Język maszyn

Pracownia Komputerowa wykład III

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

1 Przygotował: mgr inż. Maciej Lasota

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Kalipso wywiady środowiskowe

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

vi - Edytor tekstu. 1. To, co każdy powinien wiedzieć o vi!!!

Pracownia komputerowa. Dariusz wardecki, wyk II

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Wprowadzenie do środowiska Qt Creator

Zakład Systemów Rozproszonych

Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Pracownia Komputerowa wykład III

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

BASH - WPROWADZENIE Bioinformatyka 4

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Ćwiczenie 6. Wiadomości ogólne.

1. Wypisywanie danych

Programowanie proceduralne w języku C++ Pojęcia podstawowe - kod źródłowy

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Windows XP Wiersz polecenia

Technologie Informacyjne - Linux 1

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

C++ - [1-3] Debugowanie w Qt Creator

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Podstawy Programowania

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

EDYTOR TEKSTOWY VIM WYBRANE POLECENIA. Pracownia Informatyczna 5

Programowanie w języku C++ Grażyna Koba

Technologie Informacyjne - Linux 2

e-podręcznik dla seniora... i nie tylko.

Notepad++ / PuTTY. Interaktywne środowisko programowania w języku ForthLogic. Wersja dokumentu P.1. Wersja dokumentu NP1.

Ćwiczenie nr 14: System Linux

Chemiateoretyczna. Monika Musiał. Ćwiczenia

Wstęp do informatyki Shell podstawy

Wstęp do systemu Linux

Podstawy programowania w C++

Podstawy Programowania.

Programowanie obiektowe i C++ dla matematyków

tworzenie katalogów Aby utworzyć nowy katalog wpisz: mkdir katalog1 Ta komenda utworzy katalog o nazwie katalog1.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

SYSTEMY OPERACYJNE ĆWICZENIE POLECENIA SYSTEMU MSDOS

WordPad Materiały szkoleniowe

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Wstęp. Opis programu :

ABC poczty elektronicznej

Podstawy Programowania

Języki i metodyka programowania. Wprowadzenie do języka C

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Wstęp do systemu Linux

Konsola i interpreter poleceń


Utworzenie pliku. Dowiesz się:

Programowanie komputerowe. Zajęcia 1

Podręcznik użytkownika programu. Ceremonia 3.1

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

System operacyjny Linux wybrane zagadnienia. Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Pracownia Komputerowa wyk ad III

Laboratorium 0: System Linux, edytor vim i kompilator gcc. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

7. Pętle for. Przykłady

Instrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF

Skróty klawiaturowe w systemie Windows 10

MS-DOS polecenia wewnętrzne i

DOKUMENTY I GRAFIKI. Zarządzanie zawartością Tworzenie folderu Dodawanie dokumentu / grafiki Wersje plików... 7

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

GRUB (GRand Unified Bootloader) - jest bootloaderem instalowanym standardowo w Ubuntu, potrafiącym obsłużyć kilka systemów jednocześnie (Multiboot).

Wstęp do Programowania, laboratorium 02

Wstęp do obsługi Linux a

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Windows Commander (WinCmd)

Kopiowanie, przenoszenie plików i folderów

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Znaki globalne w Linuxie

Wstęp do obsługi Linux a

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Instrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF

PRACA Z PLIKAMI I FOLDERAMI

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.

Transkrypt:

Programowanie 2016 Łukasz Dulny 18 marca 2016 Jeszcze raz polecam, żeby zdobyli państwo Symfonię C++ Standard. Wygląda, że w bibliotece FUWu jest koło 30 egzemplarzy, więc lepiej, żeby chemicy wypożyczali na chemii i żeby wypożyczali państwo parami. W najgorszym razie można czytać niewypożyczalny egzemplarz w bibliotece. 1 Nasza pracownia Na pracowni mamy dystrybucję Linuksa, Fedorę. Środowisko graficzne to Gnome 3 i jak widać, wymaga nieraz wyszukiwania programów, ale w sumie nie jest chyba wiele dziwniejszy niż Windows 8. Po kliknięciu Activities (polskie Podgląd), po lewej są ulubione i uruchomione programy. Klikając prawym przyciskiem myszy, można usunąć program z ulubionych. Żeby dodać do ulubionych, klikamy prawym przyciskiem na znaleziony program. Wybór języka można dostać wpisując w wyszukiwarce languages, ale nie wiem, na ile jest skuteczny na pracowni. Do pisania programów potrzebujemy w praktyce menadżera plików, edytora tekstu i terminala. Menadżer plików w Gnome to Nautilus, w wyszukiwarce trzeba wpisać Files. Ctrl+L pozwala zmienić pasek adresu w pole tekstowe. Przeciągnięcie pliku albo katalogu, nawet z paska adresu, do terminala, wpisuje nazwę pliku z pełnym adresem. Usuwanie wymaga kliknięcia prawym przyciskiem i wybranie przenieś do kosza. Edytor tekstu to Gedit. Terminal to program taki, jak dosowe okno w Windowsie. Powłoka (shell), na pracowni bash (w ogóle chyba najpopularniejsza), interpretuje wpisane polecenia, jak command.com albo cmd.exe w systemach Microsoftu. sh to najbardziej standardowa powłoka, gwarantowana przez standard POSIX, ale robi tylko to, co przewiduje ten standard. Może dojdziemy np. do tego, że jest wykorzystywana np. przez funkcję system() w C++. Polecenia powłoki niezbędne na początek: 1

cd przenosi nas do podanego katalogu. (.. to katalog poziom wyżej w hierarchii,. to bieżący katalog). Katalogi w ścieżce dostępu oddzielamy symbolem /, a nie \, jak w Windows. ~ zmienia się w katalog domowy. * zmienia się w listę nazw plików. pwd podaje bieżący katalog, czyli ten, w którym jesteśmy. ls wypisuje pliki. Można też podać parametr, z jakiego katalogu ma wypisać pliki (zamiast bieżącego). ls -l dodatkowo opisuje pliki. Jeśli po poleceniu wpiszemy &, program uruchomi się w tle. W ten sposób warto uruchamiać programy graficzne. Ctrl+C kończy program. Ctrl+Z zatrzymuje go i wraca do powłoki. bg uruchamia zatrzymany program w tle. W ten sposób można odzyskać terminal, jeśli zapomni się o wpisaniu &. man podaje opis polecenia podanego jako parametr. Poleceń wbudowanych w Bash czasem (akurat nie na pracowni) trzeba szukać pod man bash. Można też szukać opisu w Internecie. Powłoka uruchamia swoje polecenia wbudowane i pliki wykonalne ze ścieżki dostępu $PATH, a inne tylko wtedy, jeśli podamy wyraźnie ścieżkę. Przed plikami w bieżącym katalogu trzeba podać./. Wciśnięcie Tab daje podpowiedź. Raz tak długo, jak jest jedna możliwość, dwa razy wypisuje możliwości. Strzałka w górę pozwala powtarzać polecenia (w dół pozwala wracać), a w lewo i w prawo pozwalają je zwyczajnie zmieniać. 1.1 Pisanie programów Pliki z kodem źródłowym w C++ mają zwykle rozszerzenia.cpp,.cxx,.cc albo.c. (Rozszerzeniem C było po prostu.c.) Jeśli rozszerzenie jest niewłaściwe, do polecenia kompilacji trzeba dodać przed plikiem wejściowym -x c++. Na naszej pracowni uruchamiamy terminal i przechodzimy do katalogu, do którego chcemy. Wygląda na to, że w Gnome 3 prawym przyciskiem można tworzyć katalogi, ale nie pliki, więc trzeba tworzyć nowy plik (z odpowiednim rozszerzeniem) przez gedit nazwa &, albo ręcznie zapisywać pod odpowiednią nazwą. Bieżący katalog można otworzyć w Nautilusie poleceniem nautilus. &. 2

Kiedy zapiszemy plik z kodem źródłowym, uruchamiamy kompilator g++. Jako parametr podajemy plik z kodem źródłowym, np. g++ program1.cc wtedy program będzie w pliku a.out. Nazwę inną niż ta domyślna można podać po -o, np. -o program1. Po udanej kompilacji mamy program. Żeby go uruchomić musimy podać nazwę, koniecznie jako ścieżkę, czyli z /, np../a.out albo./program1, powtarzając, że jest w bieżącym katalogu (.). Co do programu podanego w ściądze: #include<biblioteka > dołącza plik nagłówkowy. iostream to strumienie wyjścia/wyjścia. (Innym sposobem pisania jest wykorzystanie pliku nagłówkowego cstdio, standardowe wyjście/wyjście z C.) using namespace to po prostu używając przestrzeni nazw. std to standardowa p-ń nazw. Bez tej linijki musielibyśmy pisać np. std::cout, ale to miałoby tę zaletę, że wiadomo, co jest nasze własne, a co z biblioteki standardowej, i nie okaże się, że jakieś nazwy się nie zgadzają. Średniki wstawia się po poleceniach. int main() to deklaracja funkcji głównej (main). int oznacza, że funkcja ma zwracać. W nawiasie byłyby argumenty, gdybyśmy jakieś podali. Funkcja główna jest trochę dziwna, np. jeśli nie napisać, co zwraca, to zwraca 0 (patrz dalej return), a inne funkcje przewiduję dopiero za jakiś czas. Nawiasy {} otaczają bloki kodu, w tym zawsze ciało funkcji. cout (console output) to strumień standardowego wyjścia. cin to strumień standardowego wejścia. Jest jeszcze cerr strumień błędu. << to operator, który w sumie należy czytać jak strzałeczkę. Cudzysłowy "" oznaczają łańcuch znaków. endl każe przejść do nowej linijki. Czyli jakby na wyjście witaj i koniec wiersza (czytanie to cin >> zmienna, z wejścia zmienna ). return 0 oznacza, że funkcja ma zwrócić 0. Program powinien zwracać zero, kiedy kończy się prawidłowo. Ważna rzecz, której nie ma w ściądze, to komentarze, których kompilator nie czyta i które przydają się dla ludzi: // komentarz do końca linii i /* komentarz wielolinijkowy */. 2 Kompilacja g++ -o zad1 zad1.cc daje plik zad1 g++ -o smiec zad1.cc daje plik smiec g++ zad1.cc daje plik a.out 3

make zad1 tworzy (jeśli wie jak i stwierdzi, że trzeba) plik zad1, w naszym wypadku przez g++ -o zad1 zad1.cc Jeśli skompilowany program, np. przy kopiowaniu, zgubi właściwość wykonalny, nie daje się uruchomić. Można go kompilować na nowo (make może nie zadziałać), albo zmienić tę własność z powrotem (klikając prawym przyciskiem, albo z pomocą chmod). Pliki skompilowane pod Windowsem nie dadzą się uruchomić pod Linuksem i na odwrót (chyba, że użyjemy Wine czy czegoś takiego). 3 Polecenia powłoki man podaje opis polecenia podanego jako parametr. Polecenia wbudowane w Bash czasem (akurat nie na pracowni) są tylko w help (można też szukać pod man bash). Ogólnie, oczywiście można też szukać opisu w Internecie. cd (change directory) przenosi nas do podanego katalogu. Katalogi w ścieżce dostępu oddzielamy symbolem /, a nie \, jak w Windows. Jeśli nic nie podamy, będzie katalog domowy,.. to katalog poziom wyżej w hierarchii,. to bieżący katalog, ~ zmienia się (zobacz echo ~ itp.) w katalog domowy, ~kaste czy ~ld276974 w katalog domowy innego użytkownika, a * w listę nazw plików (Jakby zastępuje fragment nazwy, np. a*a zmieni się w nazwy zaczynające się i kończące na a, jeśli takie są. Podobnie? zastępuje jeden dowolny znak.) pwd podaje bieżący katalog, czyli ten, w którym jesteśmy. mkdir (make directory) tworzy katalog podany jako parametr. touch dotyka plik, czyli zmienia datę ostatniego dostępu i tworzy, jeśli go nie było. rm usuwa plik. rm -r (rekurencyjnie) dla katalogów. ls wypisuje pliki. Można też podać parametr, z jakiego katalogu ma wypisać pliki (zamiast bieżącego). ls -a wypisuje też ukryte pliki (z nazwą zaczynającą się od kropki), a ls -l opisuje. echo po prostu wypisuje podane parametry. 4

cat wypisuje zawartość podanego pliku. Bez parametru powtarza to, co wpiszemy. tee wpisuje to, co piszemy do podanego pliku i jednocześnie powtarza na ekranie. ps wypisuje procesy uruchomione w danym terminalu, a ps -e wszystkie procesy. Ctrl+C kończy program. Ctrl+Z zatrzymuje go i wraca do powłoki. bg (background) uruchamia zatrzymany program w tle. W ten sposób można odzyskać terminal, jeśli zapomni się o wpisaniu &. fg (foreground) przywraca zatrzymany program na pierwszy plan. Jako parametry bg i fg można podać numer poleceń w tle. jobs daje listę programów w tle. chmod zmienia uprawnienia. chown zmienia właściciela (a w zasadzie tylko grupę, jeśli nie mamy specjalnych uprawnień). Jak dokładnie, sam zawsze szukam, normalnie da się to zmienić też w trybie graficznym. Powłoka uruchamia swoje polecenia wbudowane i pliki wykonalne ze ścieżki dostępu $PATH, a inne tylko wtedy, jeśli podamy wyraźnie ścieżkę. Przed plikami w bieżącym katalogu trzeba podać./. Programy w innych katalogach można uruchamiać bez dodatkowych komplikacji, podając tylko ten katalog, np. katalog/program albo../program, albo nawet ~/Pulpit/program z pulpitu, /etc/smietnik/zagubiony program czy../../kolega/jego programy/program19. Spacja utrudnia życie trzeba pisać cudzysłów (gedit "plik ze spacjami".txt) albo wyescapeować spacje (gedit plik\ ze\ spacjami.txt). Polskie litery mogą zmienić się w krzaczki albo nie działać po przeniesieniu pliku na inny komputer. Jakiś program może sobie w ogóle nie radzić z takimi rzeczami. Wciśnięcie Tab daje podpowiedź. Raz tak długo, jak jest jedna możliwość, dwa razy wypisuje możliwości. Strzałka w górę pozwala powtarzać polecenia (w dół pozwala wracać), a w lewo i w prawo pozwalają je zwyczajnie zmieniać. Zmienna $0 oznacza wykonywany plik. W skryptach (którymi chyba się nie będziemy zajmować) $1, $2 itp. to kolejne parametry, a $# to liczba parametrów. $? to wartość zwrócona (przez return) przez ostatni zakończony program. Przekierowywanie standardowego wejścia i wyjścia: < zastępuje wejście treścią pliku, > zapisuje wyjście do pliku (usuwa jego poprzednią zawartość), >> dopisuje wyjście do pliku (zachowuje poprzednią zawartość), a przekierowuje wyjście do innego programu. Zatem./suma < we.txt uruchomi 5

plik program suma w bieżącym katalogu (jeśli jest) tak, jakbyśmy sami wpisywali to, co jest w pliku we.txt. echo pies > fasola sprawia, że treścią pliku fasola będzie pies, a echo pies >> fasola dopisuje pies do tego pliku../suma > wy.txt pozwoli zapisać wyjście, ale będziemy pracować na ślepo, a./suma tee wy.txt pozwoli zapisać wyjście i widzieć, co jest wypisywane. 4 Inne możliwości Popularną dystrybucją Linuksa jest Ubuntu. Mam je zainstalowane w domu, więc najlepiej znam. Wystarczy ściągnąć, nagrać płytę i można instalować albo wypróbować bez instalowania. Gnome 2 było podobne do Windows 95 Windows 7, z tym, że zamiast menu start było normalne menu. Kontynuują je Cinamon i Mate. Unity (standard w Ubuntu) przypomina Gnome 3. Jest też KDE, ale w sumie nie wiem, jak wygląda, możliwe, że mocno się zmieniło. (Jest też UbuntuMate, UbuntuGnome i Kubuntu (z KDE).) Menadżer plików w Unity to też Nautilus, w Mate jest Caja, na innych się nie znam. Poza Geditem edytory tekstu to np. Kate z KDE i Pluma z Mate (polecenie to nazwa z małej litery). W trybie tekstowym można używać nano albo mcedit (z mc, Midnight Commander, klon Norton Commandera, dwupanelowego dosowego menadżera plików). Słynne potężne i trudne edytory (sam ich nie znam) to vi, vim i emacs. Zawsze można poszukać, który jest dostępny na którym komputerze. Inne powłoki to np. dash, csh, tcsh, zsh i fish. Powłokę można rozpoznać (Na innych komputerach znak zachęty podaje często adres, a nie powłokę) wpisując echo $0. Zamiast gcc (dla C++ g++) można używać clang (dla C++ polecenie to clang++, używane bardzo podobnie do g++). Dev-C++ to połączony z edytorem tekstu darmowy kompilator, który działa bez problemów pod Windowsem. Ctrl+Alt+F1, Ctrl+Alt+F2 itd. pozwalają przejść do trybu tekstowego. Ctrl+Alt+F7 to powrót do trybu graficznego. Na naszej pracowni najwyraźniej Ctrl+Alt+F1 to tryb graficzny, a od Ctrl+Alt+F2 do Ctrl+Alt+F6 jest tryb tekstowy. 6