Praktyka Programowania



Podobne dokumenty
Podstawy programowania wykład

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!

Metodyki i techniki programowania

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

Metodyki i techniki programowania

Wstęp do programowania. Wykład 1

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Proste algorytmy w języku C

Algorytm. Krótka historia algorytmów

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

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

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

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Podstawy i języki programowania

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

Technologie informacyjne - wykład 12 -

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

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie.

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

Wykład 1

Podstawy Programowania Algorytmy i programowanie

Programowanie obiektowe i C++ dla matematyków

Podstawy programowania - 1

Jerzy Nawrocki, Wprowadzenie do informatyki

dr inż. Jarosław Forenc

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

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

Algorytm. Krótka historia algorytmów

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

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

Programowanie I. Wprowadzenie. Proces programowania

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

Wstęp do Informatyki dla bioinformatyków

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wstęp do Informatyki i Programowania

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

PODSTAWY PROGRAMOWANIA STRUKTURALNEGO (C) SYLABUS A. Informacje ogólne

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Wstęp do programowania

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Proste algorytmy w języku C

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

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

Podstawy programowania (1)

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

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

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

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

Stefan Sokołowski JĘZYKIPROGRAMOWANIA. Inst. Informatyki UG, Gdańsk, 2012/2013

Podstawy Programowania

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Katedra Elektrotechniki Teoretycznej i Informatyki. sem. III. Dr inż. M. Czyżak

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

1 Podstawy c++ w pigułce.

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

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

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

Algorytmy, reprezentacja algorytmów.

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

Podstawy Programowania. Wykład 1

Algorytm. Definicja i algorytmu METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE

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

Języki i paradygmaty programowania

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

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016

Podstawy programowania strukturalnego (C) SYLABUS A. Informacje ogólne

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO

dr inż. Jarosław Forenc

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Podstawy programowania

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie I C15

Wstęp do Programowania, laboratorium 02

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

PRZEWODNIK PO PRZEDMIOCIE

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

Kierunek i poziom studiów: Matematyka, studia I stopnia (licencjackie), rok I

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

JĘZYKI PROGRAMOWANIA

Język ludzki kod maszynowy

KARTA KURSU. Wstęp do programowania

Algorytmy i struktury danych. wykład 2

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Szablony funkcji i klas (templates)

Podstawy programowania w języku C

Paradygmaty programowania

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

1 Wprowadzenie do algorytmiki

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Jerzy Nawrocki, Wprowadzenie do informatyki

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

Wykład z Technologii Informacyjnych. Piotr Mika

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Język programowania PASCAL

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Szablony funkcji i szablony klas

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Język C zajęcia nr 7. Uwagi dotyczące stylu programowania

Transkrypt:

Praktyka Programowania Dariusz Dereniowski Materiały udostępnione przez Adriana Kosowskiego Katedra Algorytmów i Modelowania Systemów Politechnika Gdańska deren@eti.pg.gda.pl Gdańsk, 2010 strona przedmiotu: https://www.spoj.pl/pp2010/ Na podstawie materiałów dr. Krzysztofa Manuszewskiego i dr Olgi Choreń

Zasady zaliczenia przedmiot: 1 godz. wykładu, 1 godz. projektu, 1 godz. laboratorium obecność na laboratorium i projekcie jest sprawdzana do zdobycia 100pkt., progi na poszczególne oceny co 10pkt. (od 100 pkt. ocena 5.5, od 90 pkt. ocena 5.0, ) Laboratorium (30 pkt.) zasady zaliczenia ustalają prowadzący próg zaliczenia: 50% (15pkt.) Projekt (30 pkt.) Wykład (40 pkt.) 2 kolokwia po 20 pkt. próg zaliczenia: 50% (20pkt.) PP 2010 // Zasady, plan wykładu, wprowadzenie 2

Cel przedmiotu Nauka podstaw programowania strukturalnego i obiektowego Wprowadzenie do algorytmów i najprostszych struktur danych Obowiązujący język programowania: C, elementy C++ Literatura J. Grębosz: Symfonia C++. Programowanie w języku C++ orientowane obiektowo, wyd. Kallimach, Kraków B. W. Kernighan, D. M. Ritchie, Język ANSI C, Wydawnictwa Naukowo-Techniczne, Warszawa Internet PP 2010 // Zasady, plan wykładu, wprowadzenie 3

Cykl wytwarzania oprogramowania Najprostszy model Projekt, analiza sformułowanie problemu opracowanie algorytmu Implementacja zaprogramowanie algorytmu Wdrożenie kompilacja programu, dołączanie bibliotek uruchamianie i testowanie programu PP 2010 // Zasady, plan wykładu, wprowadzenie 4

Algorytm Definicje Algorytm to skończony ciąg sekwencji/reguł, które aplikuje się do skończonej ilości danych, pozwalający rozwiązywać zbliżone do siebie klasy problemów. Algorytm to zespół reguł charakterystycznych dla pewnych obliczeń lub czynności informatycznych Abū Abdallāh Muhammad ibn Mūsā al-khwārizmī (VIII IX w. n.e.) PP 2010 // Zasady, plan wykładu, wprowadzenie 5

Jakie są podstawowe właściwości algorytmu? przyjmuje dane wejściowe (w ilości większej lub równej zero), pochodzące z dobrze zdefiniowanego zbioru produkuje wynik, niekoniecznie numeryczny, POWIN BYĆ precyzyjnie zdefiniowany każdy krok algorytmu musi być jednoznacznie określony, deterministyczny POWIN BYĆ skończony - wynik algorytmu musi być kiedyś dostarczony, algorytm ma własność stopu PP 2010 // Zasady, plan wykładu, wprowadzenie 6

Ten sam problem można rozwiązać na różne sposoby Start 2 Algorytm 1 Czytaj: 3 N i := 52 N=2 6 27 Pisz: N 3jest L.P. 71 8 i dzieli N Stop 2 Pisz: N nie 3 jest L.P. i := 5i+1 1 7 i = 8 N 2 7 sprawdzanie, czy liczba jest pierwsza PP 2010 // Zasady, plan wykładu, wprowadzenie 7

Ten sam problem można rozwiązać na różne sposoby Start 2 Algorytm 2 Czytaj: 3 N 1 N = 2, 3 72 Pisz: N 3jest L.P. 2 dzieli 6 N Stop 2 17 i := 53 8 i dzieli N Pisz: N nie 3 jest L.P. i := 5i+2 71 i = 8 N 2 7 sprawdzanie, czy liczba jest pierwsza PP 2010 // Zasady, plan wykładu, wprowadzenie 8

Ten sam problem można rozwiązać na różne sposoby Start 2 Algorytm 3 Czytaj: 3 N 1 N = 2, 3 72 Pisz: N 3jest L.P. 2 dzieli 6 N Stop 2 17 i := 53 8 i dzieli N Pisz: N nie 3 jest L.P. i := 5i+2 71 i > Sqrt(N) 8 2 7 sprawdzanie, czy liczba jest pierwsza PP 2010 // Zasady, plan wykładu, wprowadzenie 9

Podejścia różnią się czasem działania Algorytm 1 Algorytm 2 Algorytm 3 N wszystkie i 2 oraz wszystkie nieparzyste i < N 2 oraz wszystkie nieparzyste i < sqrt(n) 10 8 5 2 100 98 50 5 1000 998 500 16 miara czasu działania PP 2010 // Zasady, plan wykładu, wprowadzenie 10

Maksymy programistyczne Wybieraj starannie algorytm rozwiązania. Dbaj o uniwersalność programu. Najpierw algorytm, potem kodowanie. Dobry algorytm - to warunek konieczny, ale nie dostateczny napisania dobrego programu. PP 2010 // Zasady, plan wykładu, wprowadzenie 11

Dlaczego język C? Rys historyczny 1972 język C Dennis Ritchie, Bell Labs (rozwinięty na potrzeby systemu Unix) 1978 Brian Kernighan i Dennis Ritchie opracowują nieformalną specyfikację języka standaryzacja: 1989/1990 (ANSI/ISO), 1999 ( C99 nowszy standard języka) rozwinięcia: C++, Objective C języki wzorujące się: Java, C#, JavaScript, Perl, PHP, Główne zastosowania programowanie systemowe (Unix/Widnows), programowanie mikrokontrolerów, urządzeń osadzonych, programowanie wydajnych aplikacji do przetwarzania danych, obliczeń numerycznych, aplikacji graficznych (C/C++) aplikacje ogólnego przeznaczenia PP 2010 // Zasady, plan wykładu, wprowadzenie 12

Podstawowe paradygmaty w języku C Programowanie imperatywne programista opisuje w jasny sposób ciąg instrukcji przetwarzania i sterujących (skoków, warunków, pętli, wywołań podprogramów) do wykonania tak: silnia(n): wynik = 1, w pętli dla i od 1 do n wykonuj: wynik = i * wynik, zwróć wynik nie: silnia(1) = 1, silnia(n) = silnia(n-1)*n; Programowanie strukturalne program podzielony jest na funkcje/procedury, rozwiązujące konkretne podproblemy podział na funkcje, opcjonalnie grupowane w moduły, opisuje logiczną strukturę programu PP 2010 // Zasady, plan wykładu, wprowadzenie 13

Pierwszy program w języku C #include <stdio.h> int main () { printf("witamy na I wykładzie!\n"); printf("przedmiot: Praktyka programowania\n"); return 0; } Witamy na I wykładzie! Przedmiot: Praktyka Programowania PP 2010 // Zasady, plan wykładu, wprowadzenie 14

Co się dzieje w pierwszym prrogramie? w każdym programie w języku C musi być specjalna funkcja o nazwie main; od tej funkcji zaczyna się wykonywanie programu; instrukcje wykonywane w ramach tej funkcji zawarte są między dwoma nawiasami klamrowymi { } ; operacje wejścia/wyjścia nie są częścią definicji języka C podprogramy odpowiedzialne za te operacje znajdują się w jednej ze standardowych bibliotek; jeżeli chcemy skorzystać w programie z takiej biblioteki, musimy na początku programu umieścić wiersz: #include < stdio.h > wówczas kompilator przed przystąpieniem do pracy nad dalszą częścią programu wstawi w tym miejscu tzw. plik nagłówkowy stdio.h. PP 2010 // Zasady, plan wykładu, wprowadzenie 15

Ten sam program można napisać na różne sposoby Sum_Dod = 0; Licz_Dod = 0; Sum_Poz = 0; Licz_Poz = 0; for (i = 1; i <= N; i = i+1) if (a[i] > 0) { Sum_Dod = Sum_Dod + a[i]; Licz_Dod = Licz_Dod + 1; } else { Sum_Poz = Sum_Poz + a[i]; Licz_Poz = Licz_Poz + 1; }; PP 2010 // Zasady, plan wykładu, wprowadzenie 16

Ten sam program można napisać na różne sposoby Sum_Dod = 0; Licz_Dod = 0; Sum_Poz = 0; Licz_Poz = 0; i = 1; et1: if (a[i] > 0) goto et2; Sum_Poz = Sum_Poz + a[i]; Licz_Poz = Licz_Poz + 1; goto et3; et2: Sum_Dod = Sum_Dod + a[i]; Licz_Dod = Licz_Dod + 1; et3: i = i + 1; if (i <= N) goto et1; PP 2010 // Zasady, plan wykładu, wprowadzenie 17

Ten sam program można napisać na różne sposoby Sum_Dod = 0; Licz_Dod = 0; Sum_Poz = 0; Licz_Poz = 0; i = 1; et1: if (a[i] > 0) goto et2; Sum_Poz = Sum_Poz + a[i]; Licz_Poz = Licz_Poz + 1; goto et3; et2: Sum_Dod = Sum_Dod + a[i]; Licz_Dod = Licz_Dod + 1; et3: i = i + 1; if (i <= N) goto et1; PP 2010 // Zasady, plan wykładu, wprowadzenie 18

Styl programowania Programy mają być czytane przez ludzi; Stosuj komentarze wstępne; Stosuj komentarze wyjaśniające; Komentarz - to nie parafraza instrukcji; Stosuj odstępy do poprawienia czytelności; Używaj dobrych nazw mnemonicznych; Wystarczy jedna instrukcja w wierszu; Stosuj wcięcia do uwidocznienia struktury programu. PODPROGRAMY!!! PP 2010 // Zasady, plan wykładu, wprowadzenie 19