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

Podobne dokumenty
Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania

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

Wstęp do Programowania, laboratorium 02

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Make jest programem komputerowym automatyzującym proces kompilacji programów, na które składa się wiele zależnych od siebie plików.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Fragment wykładu z języka C ( )

Wstęp do systemu Linux

Podstawy programowania C. dr. Krystyna Łapin

Podstawy Programowania.

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

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

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Wprowadzenie do biblioteki klas C++

Wstęp do programowania. Wykład 1

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Podstawy informatyki

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

Podstawy Programowania

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

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

Programowanie Proceduralne

Tworzenie oprogramowania

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Tablice, funkcje - wprowadzenie

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

1 Przygotował: mgr inż. Maciej Lasota

Wstęp do systemu Linux

2 Przygotował: mgr inż. Maciej Lasota

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

Utworzenie pliku. Dowiesz się:

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

Zmienne, stałe i operatory

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Programowanie w C++ Wykład 10. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

1. Wprowadzanie danych z klawiatury funkcja scanf

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

Programowanie w języku Python. Grażyna Koba

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

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

KURS C/C++ WYKŁAD 1. Pierwszy program

Wstęp do programowania

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

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

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

Schemat konstrukcja pliku Makefile

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

1 Podstawy c++ w pigułce.

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

Chemiateoretyczna. Monika Musiał. Ćwiczenia

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

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

Programy użytkowe (utilities)

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

System operacyjny Linux

BASH - WPROWADZENIE Bioinformatyka 4

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

Pytania sprawdzające wiedzę z programowania C++

Proces tworzenia programu:

Funkcja (podprogram) void

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

Jerzy Nawrocki, Wprowadzenie do informatyki

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

WYKŁAD 1 - KONSPEKT. Program wykładu:

Programowanie obiektowe

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

ZASADY PROGRAMOWANIA KOMPUTERÓW

Zadanie programistyczne nr 3 z Sieci komputerowych

Algorytm. a programowanie -

Laboratorium nr 5: Mnożenie wektorów i macierzy

C++ wprowadzanie zmiennych

Programowanie obiektowe i C++ dla matematyków

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

Co nie powinno być umieszczane w plikach nagłówkowych:

Podstawy programowania skrót z wykładów:

Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C. mgr inż. Arkadiusz Chrobot

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Podstawy programowania

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

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

Podstawy Programowania

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Podstawy Kompilatorów

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

1 Podstawy c++ w pigułce.

Transkrypt:

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe było czytanie danych i drukowanie wyników, trzeba dołączyć plik nagłówkowy biblioteki standardowego wejścia i wyjścia (stdio). Wykonuje się to umieszczając na początku programu dyrektywę include: Każda zmienna jaką używamy w funkcji do przechowywania wartości musi być zadeklarowana na początku funkcji: Do przeczytania wartości służy funkcja scanf(): 1

s c a n f ( "%d", &x ) ; s c a n f ( "%d", &y ) ; Wartości całkowite typu int czyta się formatem %d, natomiast wartości rzeczywiste typu float (pojedynczej dokładności) formatem %f. Aby podstawić wyliczoną wartość pod zmienną należy użyć instrukcji podstawienia 1 : s c a n f ( "%d", &x ) ; s c a n f ( "%d", &y ) ; z = x+y ; Wartość dowolnego wyrażenia (w tym tak prostego jak złożonego z pojedynczej zmiennej) można wydrukować za pomocą funkcji printf(): s c a n f ( "%d", &x ) ; s c a n f ( "%d", &y ) ; z = x+y ; p r i n t f ( "Suma %d i %d wynosi %d. \ n", x, y, z ) ; 1 Prawdę mówiąc w języku C nie ma instrukcji podstawienia ale będzie o tym więcej powiedziane na wykładzie. 2

Wartości całkowite drukuje się przy użyciu formatu %d, natomiast rzeczywiste formatem %f. Opis podstawowych poleceń systemu Linux, w tym korzystanie z prostego edytora tekstowego, znajduje się w dodatku A. Po utworzeniu pliku ze źródłami programu, należy go skompilować za pomocą polecenia clang opisanego w dodatku B. Aby ułatwić kompilację i usuwanie niepotrzebnych plików będziemy przygotowywać pliki Makefile dla polecenia make. Krótki opis tego polecenia zamieszczono w dodatku C. Polecenie 1 Napisz program, który wczytuje dwie liczby rzeczywiste (typu float) i wyprowadza ich sumę, różnicę, iloczyn i iloraz. Polecenie 2 Napisz program, który przekształca temperaturę podaną w stopniach Celsjusza na temperaturę w stopniach Fahrenheita. Związek pomiędzy temperaturą wyrażoną w stopniach Celsjusza i stopniach Fahrenheita wyraża się wzorem F = 1.8 C + 32. A Podstawowe polecenia Linuxa polecenie opis przykłady mkdir NAZWA stworzenie katalogu mkdir zadanie1 mkdir ŚCIEŻKA/NAZWA mkdir zadanie1/src rmdir NAZWA usunięcie katalogu rmdir zadanie1 rmdir ŚCIEŻKA/NAZWA (katalog musi być pusty) rmdir../zadanie2/src cd ŚCIEŻKA przejście do katalogu cd zadanie1/src cd../../zadanie2/src ls wyświetlenie zawartości ls ls -l bieżącego katalogu ls -l (opcja pełnego opisu plików); ls ŚCIEŻKA wyświetlenie zawartości ls zadanie1/src ls -l ŚCIEŻKA katalogu ls -l../../zadanie2/src nano edycja pliku tekstowego nano nano ŚCIEŻKA/NAZWA (na dole ekranu opis nano src/main.c skrótów klawiszowych dla podstawowych operacji, np. ^X oznacza Ctrl-x) man POLECENIE opis polecenia man man man nano 3

B Skrócony opis polecenia clang Do kompilacji programów w języku C używać będziemy polecenia clang. Załóżmy, że następujące źródła programu znajdują się w pliku witaj.c: p r i n t f ( " w i t a j s w i e c i e! \ n" ) ; Aby skompilować program wystarczy wydać polecenie: clang witaj.c Skompilowany program wykonywalny znalazł się w pliku a.out Można teraz go uruchomić wydając polecenie:./a.out Zwróć uwagę na kropkę w powyższym poleceniu, która wskazuje, że plik a.out znajduje się w bieżącym katalogu. Jeśli chcemy aby wykonywalny program znalazł się w pliku witaj, zamiast a.out, należy wydać polecenie: clang -o witaj witaj.c Opcja -o służy do określenia nazwy pliku wykonywalnego. Programy kompilować będziemy z dodatkową opcją -Wall nakazującą kompilatorowi informować o wszystkich ostrzeżeniach: $ clang -Wall -o witaj witaj.c witaj.c: In function main : witaj.c:5: warning: control reaches end of non-void function $ Ostrzeżenie control reaches end of non-void function oznacza, że w funkcji main (dokładniej w wierszu 5 pliku witaj.c) sterowanie, tj. wykonywanie, osiąga klamrę zamykającą definicję funkcji, mimo tego, że została ona zadeklarowana jako zwracająca wartość typu całkowitego (int). Nasz program należy poprawić dopisując między instrukcją printf(...) a klamrą instrukcję return 0; Program po poprawieniu wygląda następująco: p r i n t f ( " w i t a j s w i e c i e! \ n" ) ; Tym razem kompiluje się beż żadnych ostrzeżeń: $ clang -Wall -o witaj witaj.c $ Jeśli w programie korzysta się z funkcji bibliotecznych, to należy za pomocą opcji -l podać nazwę wykorzystywanej biblioteki. 4

Dla przykładu, jeśli program calkowanie.c korzysta z funkcji matematycznych, to kompilujemy go poleceniem: clang -o calkowanie calkowanie.c -lm Opcja -lm w powyższym poleceniu zawiera nazwę m biblioteki funkcji matematycznych. Więcej o poleceniu clang można dowiedzieć się z jego opisu uzyskanego poleceniem: man clang Opis ten zawiera ponad 8800 wierszy i większość opisanych w nim opcji wykracza poza zakres wykładu ze Wstępu do Informatyki i Programowania a nawet innych, bardziej zaawansowanych, kursów. C Skrócony opis polecenia make Jeśli często wykonujemy kompilację, a szczególnie w przypadku dużych projektów podzielonych na wiele plików źródłowych, przydatne jest użycie polecenia make. Polecenie to czyta plik Makefile, w którym za pomocą reguł opisuje się w jaki sposób jakie pliki otrzymać z jakich plików: CO: Z CZEGO JAK Ważne jest aby polecenia w opisie JAK zapisane były po znaku tabulacji. Powróćmy do przykładowego programu witaj.c z dodatku B. W pliku Makefile wpiszemy następujące trzy reguły: all: witaj witaj: witaj.c clang -Wall -o witaj witaj.c clean: rm -f witaj *~ Pierwsza reguła: all: witaj opisuje jak wszystko (ang. all) skompilować. Podano w niej, że w tym celu potrzebny będzie plik witaj. Część JAK reguły jest pusta, gdyż jeśli otrzyma się plik witaj, to nic już nie trzeba robić. Druga reguła: witaj: witaj.c clang -Wall -o witaj witaj.c opisuje, że plik witaj otrzyma się z pliku witaj.c wykonując polecenie: clang -Wall -o witaj witaj.c Ostatnia reguła: 5

clean: rm -f witaj *~ opisuje co zrobić by posprzątać (usunąć niepotrzebne pliki). W tym celu należy wykonać polecenie: rm -f witaj *~ Koniecznie zwróć uwagę na znak tyldy ~. Bez niego usunięte byłyby wszystkie pliki (wzorzec * pasuje do każdej nazwy pliku) a tak zostaną usunięte tylko stare (poprzednie) wersje plików (w systemach Linux/Unix poprzednia wersję pliku oznacza się dopisując na końcu jego nazwy tyldę). Opcja -f w poleceniu rm wskazuje, że kasowanie plików powinno odbywać się bez każdorazowego pytania o potwierdzenie i jakichkolwiek ostrzeżeń jeśli nie ma plików do skasowania o zadanej nazwie. Wykonajmy czyszczenie. W tym celu uruchamiamy polecenie: make clean Po jego wykonaniu na pewno w bieżącym katalogu nie ma pliku wykonywalnego witaj. Aby go otrzymać wykonamy polecenie make all albo krócej make Jeśli jeszcze raz spróbujemy skompilować plik witaj.c wydając polecenie make otrzymamy komunikat make: Nothing to be done for all co oznacza, że nic nie ma do roboty bo plik źródłowy witaj.c jest starszy niż plik wykonywalny witaj. Kontrola czasu ostatniej modyfikacji plików źródłowych oraz wynikowych, wykonywana przez polecenie make, umożliwia w dużych projektach (wiele plików źródłowych) kompilację tylko tych fragmentów programu (tych plików źródłowych), które uległy zmianie od ostatniej ich kompilacji. Więcej o poleceniu make dowiesz się na kursie Środowisko Programisty a wcześniej czytając podręcznik GNU Make. A Program for Directing Recompilation (znajdziesz go na stronach http://www.gnu.org/software/make/ ) 6