Programowanie wykład dla I roku bioinformatyki semestr letni 2013 Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel. 58 523 2466 e-mail: danuta.makowiec at gmail.com
Cel bloku zajęć pt.: PROGRAMOWANIE: opanowanie podstawowych zasad tworzenia i uruchamiania złożonych programów komputerowych Umiejętności i kompetencje: znajomość teoretycznych podstaw programowania tworzenie złożonych programów w języku wyższego rzędu Metoda: zajęcia praktyczne w laboratorium komputerowym:2 godz./tyg. zajęcia praktyczne analityczne: 2 godz./tyg. wykłady : 2 godz./tyg. zaliczenie Warunki uzyskania wpisu ZAL: Zaliczenie na wspólną ocenę obecność na wykładach poprawne napisanie kolokwium zaliczającego na zajęciach 3 czerwca 2013 2
Umiejętność: projektowania programu Umiejętność: kodowania w wyznaczonym języku programowania Para język: formalny aparat do reprezentowania i przetwarzania informacji 3
Pierwsze i ostatnie (?) starcie z C Wykład 1 4
OPERACJE WEJŚCIA_WYJŚCIA Zadanie 1: Wyświetl na ekranie w kolejnych liniach komunikaty: **Witaj w C ** oraz Zaczynamy programowanie Dane: tekst_1= **Witaj w C** tekst_2= Zaczynamy programowanie Wynik: wyświetlenie na ekranie w/w komunikatów w kolejnych liniach funkcja_wyświetlania_na ekranie(tekst_1) funkcja_wyświetlania_na_ekranie(teskt_2) Początek komentarza Koniec komentarza Dołączenie deklaracji użytecznych funkcji Główna funkcja programu /* pierwszy.c: pierwszy program w C */ #include <stdio.h> pierwszy.c int main( ){ char tekst_1= **Witaj w C** ; char tekst_2= Zaczynamy programowanie ; puts(tekst_1); puts(tekst_2); return 0; 5
OPERACJE WEJŚCIA_WYJŚCIA Zadanie 1a: Wyświetl na ekranie w kolejnych liniach komunikaty: **Witaj w C++** oraz teraz programujemy w C++ Dane: tekst_1= **Witaj w C++** tekst_2= teraz programujemy w C++ Wynik: wyświetlenie na ekranie w/w komunikatów w kolejnych liniach funkcja_wyświetlania_na ekranie(tekst_1) funkcja_wyświetlania_na_ekranie(teskt_2) Początek komentarza Koniec komentarza Dołączenie deklaracji użytecznych funkcji Główna funkcja programu /* pierwszy.cpp: pierwszy program w C++ */ #include <iostream> pierwszy.cpp int main( ){ std::cout<<"** Witaj w C++ **"; std::cout<< \n teraz programujemy w C++! "; return 0; 6
OPERACJE WEJŚCIA_WYJŚCIA cin i cout czyli pierwsze spotkanie z klasami cout to obiekt klasy ostream cin to obiekt klasy istream definicje obu klas są w pliku iostream Klasa opisuje wszystkie właściwości typu danych: typ przechowywanych informacji przez klasę, typ akcji, działania jakie mogą być na tych danych podjęte. Obiekt to byt stworzony zgodnie z taką definicją. Aby wykonać działanie na konkretnym obiekcie, trzeba do tego obiektu wysłać komunikat. Komunikat uruchamia akcje danej klasy. Sposoby przesłania komunikatu do obiektu: użycie metody klasy ( np.: cin.get() ) przedefiniowanie operatora ( np.: << lub >> ) 7
Zadanie 2: Przygotuj funkcję obliczania odległości 2 punktów na płaszczyźnie Dane: współrzędne punktu 1: a1, a2 współrzędne punktu 2: b1, b2 Wynik: liczba dystans równa odległości punktu 1 i punktu 2 Zmienne pomocnicze: liczby dx i dy dx= (a1-b1) 2 dy= (a2-b2) 2 dystans=( dx+dy) 1/2 INSTRUKCJA PRZYPISANIA float dystans( float a1, float a2, float b1, float b2 ) { float poziomo= (a1-b1)*(a1-b1); float pionowo= (a2-b2)*(a2-b2); return sqrt(poziomo +pionowo); float dystans ( float a1, float a2, float b1, float b2 ) { float poziomo= (a1-b1)*(a1-b1); float pionowo= (a2-b2)*(a2-b2); return sqrt(poziomo +pionowo); 8
Zadanie 3: Przygotuj funkcję wyznaczania liczby większej z dwóch liczb Dane: liczby liczba_1 i liczba_2 Wynik: liczba wieksza o wartosci większej z w/w liczb Zmienne pomocnicze: nie ma INSTRUKCJA WARUNKOWA jeśli liczba_1 < liczba_2 to wieksza=liczba_2 w przeciwnym wypadku wieksza =liczba_1 float wieksza(float a, float b) { if ( a<b) return b; else return a; float wieksza(float a, float b) { if ( a<b) return b; else return a; 9
Zadanie 3: Przygotuj funkcję wyznaczania najmniejszej liczby składników w sumie kolejnych liczb naturalnych, których suma przekracza zadaną liczbę B Dane: liczba B Wynik: liczba n o wartości równej minimalnej liczbie kolejnych liczb naturalnych takich, że 1+2+..+n > B Zmienna pomocnicza: suma aktualna wartość sumy kolejnych liczb n=1 suma = n dopóki suma < B wykonuj n=n+1 suma= suma +n INSTRUKCJA PĘTLI int suma(int B) { int n=1, s=n; while (s<b) { ++n; s +=n; return n; int suma(int B) { int n=1, s=n; while (s<b) { ++n; s +=n; return n; 10
Podsumowanie: Program w C++ składa się z jednego lub kilku modułów zwanych funkcjami. Program zaczyna swoje działanie od wykonania funkcji main(). Funkcja składa się z nagłówka i treści. Nagłówek funkcji mówi, czy i ewentualnie jakiego typu wartość funkcja zwraca oraz jakich parametrów oczekuje. Treść funkcji to ciąg instrukcji C++ zamknięty w nawiasy klamrowe { Instrukcja w C++ to: deklaracja - opisuje nazwę i typ zmiennej używanej w funkcji przypisanie - wykorzystuje operator przypisania = do przypisania wartości zmiennej wywołanie funkcji - uruchomienie funkcji. Po wykonaniu funkcji program wraca do instrukcji znajdującej zaraz za wywołaniem prototyp funkcji deklaruje typ zwracany przez funkcję oraz liczbe i typy parametrów funkcji instrukcja powrotu wysyła wartość z wywołanej funkcji z powrotem do funkcji wywołującej komunikat instrukcja wysyła komunikat do obiektu, uruchamiając pewna akcję 11
#include <iostream> int main() { // Specifying formats with manipulators: std::cout << "a number in decimal: << dec << 15 << std::endl; std::cout << "in octal: " << oct << 15 << std::endl; std::cout << "in hex: " << hex << 15 <<std:: endl; std::cout << "a floating-point number: " << 3.14159 << std::endl; std::cout << "non-printing char (escape): " << char(27) << std::endl; 12