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

Podobne dokumenty
Podstawy Programowania.

Podstawy Programowania

Podstawy Programowania Podstawowa składnia języka C++

1 Podstawy c++ w pigułce.

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

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Programowanie komputerowe. Zajęcia 1

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

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

Część 4 życie programu

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Programowanie - wykład 4

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

C++ wprowadzanie zmiennych

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

Programowanie obiektowe i C++ dla matematyków

1 Podstawy c++ w pigułce.

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

Wstęp do Programowania, laboratorium 02

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

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

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

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wstęp do Programowania 2

JAVA?? to proste!! Autor: wojtekb111111

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

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

Struktura pliku projektu Console Application

3. Instrukcje warunkowe

I - Microsoft Visual Studio C++

Programowanie proceduralne w języku C++ Pętle, tablice

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

Wstęp do programowania

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Pytania sprawdzające wiedzę z programowania C++

Wstęp do programowania. Wykład 1

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

lekcja 8a Gry komputerowe MasterMind

Programowanie Obiektowe i C++

1. Wprowadzenie do C/C++

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

Warunki logiczne instrukcja if

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Grzegorz Paweł Korbaś. Podstawy C++ Zbiór zadań z rozwiązaniami. Opole 2011 wydanie pierwsze wydawnictwo czytnia.pl

1. Wypisywanie danych

Wstęp do programowania

1. Wprowadzenie do C/C++

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

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

Programowanie - instrukcje sterujące

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Warunek wielokrotnego wyboru switch... case

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Konstrukcje warunkowe Pętle

Podstawy Programowania

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

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

Zajęcia nr 4 Programowanie obiektowe konstruktory. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

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

Język ludzki kod maszynowy

Wstęp do programowania

Instrukcje sterujące. Programowanie Proceduralne 1

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Programowanie strukturalne i obiektowe

7. Pętle for. Przykłady

Instrukcje sterujące

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Microsoft IT Academy kurs programowania

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

Programowanie komputerowe. Zajęcia 4

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Język C++ Różnice między C a C++

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

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Podstawy Programowania. Wykład 1

Pytania dla języka C++

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wstęp do informatyki- wykład 7

Proste programy w C++ zadania

Podstawy i języki programowania

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

2 Przygotował: mgr inż. Maciej Lasota

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

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Technologie cyfrowe semestr letni 2018/2019

Kontrola przebiegu programu

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

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Język C - podstawowe informacje

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

4. Funkcje. Przykłady

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

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

Pytania z języka C/C++ main dyrektywy preprocesora #include 15. #define 16. #define słowa zastrzeżone \n, \t, \f 26.

Transkrypt:

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

Ramowy program warsztatów 1. Pierwsze: Podstawy programowania 2. Drugie: Programowanie strukturalne 3. Trzecie: Programowanie obiektowe 4. Czwarte: Kontenery i algorytmy STL 5. Piąte: Biblioteki graficzne i grafika 2D Materiały do warsztatów: http://www.if.pw.edu.pl/~lgraczyk/wiki/index.php/young_programmer - zadania, polecana literatura, najważniejsze informacje http://yp.karpiarz.net/ - instrukcje wspólne 3

Na czym pracujemy? System operacyjny: Linux Debian 8.2 Kompilator: GCC 4.9.2 Edytor: KATE 4

Komendy systemu linux ls (list) - wyświetla zawartość bieżącego katalogu lub katalogu podanego jako parametr. cd (change directory) - wchodzi do katalogu, no. cd katalog1 mkdir (make directory) - do tworzenia katalogów. Przykład: mkdir nazwa_katalogu cp (copy) - do kopiowania plików i katalogów. Przykłady: cp plik1 plik2 cp -r - kopiuje katalog wraz z zawartością np. cp -r katalog1 katalog2 * - gwiazdka zastępuje dowolny ciąg znaków np.: cp * alfa/ - kopiuje wszystkie pliki z bieżącego katalogu do katalogu alfa mv (move) - przenosi plik/pliki, służy też do zmiany nazwy pliku lub katalogu. mv plik1 plik2 - zmienia nazwę plik1 na plik2 rm (remove) - usuwa pliki. Przykład: rm plik1 - usuwa plik1 rm * - usuwa wszystkie pliki z bieżącego katalogu (należy używać bardzo ostrożnie - sprawdzić, czy rzeczywiście chcemy wszystko skasować). rm -r - usuwa cały katalog razem z zawartością more - pozwala na przeglądanie danych (plików, komunikatów poleceń) ekran po ekranie. kate plik.txt uruchamia edytor kate tworząc plik plik.txt cat - podobnie do polecenia 'more' pokazuje zawartość pliku ale nie zatrzymuje się ekran po ekranie tylko wyświetla od razu całość. 5

Pierwszy program Komentarz blokowy dowolny tekst pomiędzy znakami /* oraz */ /****************** * Jan Kowalski * * 15.03.2013 r. * ******************/ Instrukcja preprocesora zaczyna się od znaku # #include <iostream> Funkcja main() tutaj zaczyna się sterowanie programem int main () // Wyświetla linijkę tekstu std::cout << "Moj pierwszy Program!" << std::endl; return 0; // kończy program Komentarz zaczyna się od // kończy wraz z końcem linii Instrukcja linijki na ogół kończą się średnikiem 6

Prosta kompilacja programu Linux Plik z kodem źródłowym: program00.cpp (pliki z kodem źródłowym języka C++ powinny mieć rozszerzenie.cpp) Plik wynikowy: progam00 (w środowisku linux programy nie posiadają rozszerzenia, lecz wyróżnia je flaga wykonywalności 'x') g++ -o program00 program00.cpp -Wall -pedantic Flagi kompilacji: -Wall wyświetla wszystkie ostrzeżenia -pedantic wyświetla niezgodności ze standardem ISO 7

Wypisywanie na ekran int main () std::cout << "Hello world!" << std::endl; return 0; cout << " Napis"; // pisanie po ekranie 8

Wczytaj i wypisz int main () int n; std::cin >> n; std::cout << n << std::endl; return 0; cin >> zmienna; // standardowe wejście (klawiatura) wpisz do zmiennej cout << zmienna; // na standardowe wyjście (ekran) wypisz zmienną 9

Wczytaj i wypisz int main () int n; std::cin >> n; std::cout << n << std::endl; return 0; cin >> zmienna; // standardowe wejście (klawiatura) wpisz do zmiennej cout << zmienna; // na standardowe wyjście (ekran) wypisz zmienną 10

Pętla "for" int main () int n; std::cin >> n; std::cout << n << std::endl; for (int i=1;i<=n;i++) std::cout<<i; //... return 0; Pętla "for": (int i=1;i<=n;i++) Zaczynając od i równego 0 (int i = 1), do i mniejszego równego n (i<=n), wykonuj raz po raz to co jest w pętli, przy każdej iteracji zwiększając i (i++) Czyli: n razy wykonaj to, co jest w pętli za każdym razem zwiększając i 11

Instrukcja warunkowa "if" int main () Jeśli n większe równe 0 int n; std::cin >> n; if (n >= 0) wtedy rób to co w klamrach long silnia = 1; for (int i = 1; i <= n; i++) silnia *= i; std::cout << "Silnia wynosi " << silnia << std::endl; return 0; 12

Instrukcja warunkowa "if" oraz "else" int main () Jeśli n większe równe 0 int n; std::cin >> n; if (n >= 0) wtedy rób to co w klamrach long silnia = 1; for (int i = 1; i <= n; i++) silnia *= i; W przeciwnym std::cout << "Silnia wynosi " << silnia << std::endl; wypadku else std::cout << "Nie moge obliczyc silni z liczby ujemnej!\n"; wtedy rób to co w kolejnych klamrach return 0; 13

Indentacja int main () int n; std::cin >> n; if (n >= 0) long silnia = 1; for (int i = 1; i <= n; i++) silnia *= i; std::cout << "Silnia wynosi " << silnia << std::endl; else std::cout << "Nie moge obliczyc silni z liczby ujemnej!\n"; return 0; Brak wcięć nie powoduje błędów kompilacji, jednak prawidłowe używanie wcięć zwiększa czytelność kodu! 14

Indentacja Python W ostatnio popularnym języku Python wcięcia stanowią ważny element języka wskazują na bloki kodu (zamiast klamer stosowanych w C/C++) 15

Zajęcia nr 1 Podstawy programowania Zadania

(1) "Hello world" Wypisać na ekran (w terminalu) słowa "Hello World!" - tworzymy nowy plik tekstowy, nadajemy mu nazwę hello.cpp - na początku załączamy bibliotekę: #include <iostream> - określamy przestrzeń nazw: using namespace std; - tworzymy funkcję main int main() return 0; - w środku funkcji wypisujemy słowo przy użyciu "cout" : cout<<"napis!"<<endl; - kompilujemy w terminalu wpisujemy: g++ -Wall hello.cpp -o hello 17

(2) "Zmienne, cout, cin" Stworzyć funkcję główną (main) w której należy kolejno: - zadeklarować zmienną całkowitą a = 5 i wypisać ją na ekran (int a = 5;) - zadeklarować zmienną zmiennoprzecinkową b = 3.5 i wypisać ją na ekran (double. ;) - zadeklarować zmienną zmiennoprzecinkową c która będzie wynikiem sumowania zmiennych a i b ( c = a + b; ) - wypisać na ekran napis: a + b = c oraz odpowiednio to samo równanie używając wartości zmiennych (wskazówka: cout<<"napis"<<a<<" + "<<b<<endl;) - zadeklarować zmienną typu "string" (napis) "Oto jestem napisem". Wypisać ją na ekran. - wypisać na ekran napis "Ile masz lat?" - poprosić użytkownika programu o wprowadzenie liczby z klawiatury (cin >> d) (wiek jest liczbą całkowitą!) - wypisać podany przez użytkownika wiek w postaci "Mam X lat" - poprosić użytkownika o wprowadzenie imienia z klawiatury ( cin >> imie ) (imię jest napisem!) - wypisać na ekranie "Nazywam się XXX" 18

(3) "Jeśli" Stworzyć funkcję główną (main) w której należy kolejno: - wypisać na ekranie "Ile masz lat?" - poprosić użytkownika o wprowadzenie liczby całkowitej z klawiatury - jeśli użytkownik podał wiek mniejszy niż 18 lat wypisać: " Nie masz 18 lat!", jeśli większy to wypisać " Masz XXX lat i możesz przeczytać ten tekst!" Przykład użycia w kodzie programu "jeśli" if(a > 5) cout<<"liczba a jest większa niż 5!"<<endl; else cout<<"liczba a jest mniejsza niż 5!"<<endl; 19

(3.5) "Jeśli" Stworzyć funkcję główną (main) w której należy kolejno: - wypisać na ekranie "Ile masz lat?" - poprosić użytkownika o wprowadzenie liczby całkowitej z klawiatury - jeśli użytkownik podał wiek 3-18 lat wypisać: "Nie masz 18 lat!", jeśli większy to wypisać " Masz XXX lat i możesz przeczytać ten tekst!" - jeśli użytkownik podał wiek poniżej 3 lat wypisać "Kłamiesz!" Przykład użycia w kodzie programu "jeśli" if(a > 5) cout<<"liczba a jest większa niż 5!"<<endl; else cout<<"liczba a jest mniejsza niż 5!"<<endl; Znak && oznacza "i" Znak oznacza "lub" np. if (i < 0 i >100) cout<<"zly wiek"; //Jeśli i jest mniejsze od zera bądź większe od 100 to wypisz "Zły wiek" 20

(4) Naucz brata dodawania Stworzyć funkcję główną (main) w której należy kolejno: - stworzyć pętlę while bool koniec = true; while(koniec)... A wewnątrz pętli: - pobrać od użytkownika pojedynczy znak z klawiatury (char a, cin >> a) - w zależności od podanego znaku wykonać jedną z trzech rzeczy (1), (2) lub (inne) Do tego celu służy funkcja switch-case switch(a) case '1':. break; case '2':. break; default':. break; - jeśli "default" (wartość domyślna = inna niż wymienione) to wypisz na ekran "Podaj liczbę 1 lub 2!" - jeśli (2) to wyjdź z programu (zmienną koniec należy ustawić na false) - jeśli (1) to poproś użytkownika o podanie dwóch liczb, następnie poproś użytkownika o podanie sumy tych dwóch liczb. Jeśli podał prawidłową wartość, wypisz "Poprawny wynik!" jeśli zaś nieprawidłowy, to wypisz "Wynik niepoprawny, poprawny wynik to XXX". Więcej o switch-case: http://cpp0x.pl/kursy/kurs-c++/poziom-1/warunek-wielokrotnego-wyboru-switch-case/17 21

(5) Kalkulator Korzystając z opanowanych umiejętności należy stworzyć program KALKULATOR. Powinien posiadać następujące funkcje: Dodawanie Odejmowanie Mnożenie Dzielenie Pierwiastek (sqrt) Potęgowanie (pow) Wartość absolutna (abs) 1/x Silnia #include <math.h> Przykład użycia funkcji: pierwiastek_z_2 = sqrt(2); wartosc_bezwzgl = abs(-1); 22