Podstawy Programowania. Wprowadzenie

Podobne dokumenty
Podstawy Programowania. Wprowadzenie

Podstawy Programowania

Podstawy Programowania

Podstawy Programowania. Wprowadzenie

Informatyka 1. Wprowadzenie

Informatyka 1. Wprowadzenie

Informatyka I. Wyk lad I. Wprowadzenie. Robert Muszyński Instytut Cybernetyki Technicznej Politechnika Wroc lawska

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

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!

Wstęp do Programowania, laboratorium 02

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

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

Praktyka Programowania

Programowanie w języku Python. Grażyna Koba

Wstęp do programowania

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

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

Proste algorytmy w języku C

Metodyki i techniki programowania

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

Metodyki i techniki programowania

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

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

KONSTRUKCJA KOMPILATORÓW

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

Schemat konstrukcja pliku Makefile

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

Podstawy Programowania.

PRZEWODNIK PO PRZEDMIOCIE

Technologie informacyjne - wykład 12 -

PROGRAMOWANIE w C prolog

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

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

Algorytm. a programowanie -

Spis treści JĘZYK C - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Podstawy i języki programowania

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

Podstawy programowania wykład

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

Podstawy Programowania

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

Definicje. Algorytm to:

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Podstawy programowania - 1

Spis treści JĘZYK C - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Metodyki i techniki programowania

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

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

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

Podstawy programowania (1)

Język ludzki kod maszynowy

Język programowania PASCAL

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

Wprowadzenie do programowania

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

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

Wstęp do programowania. Wykład 1

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Proste algorytmy w języku C

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

Technologie informacyjne lab. 4

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

Zmienne, stałe i operatory

Programowanie w C. dr inż. Stanisław Wszelak

Podstawy programowania C. dr. Krystyna Łapin

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

PRZEWODNIK PO PRZEDMIOCIE

Programowanie obiektowe zastosowanie języka Java SE

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

Programowanie I. Kornel Warwas. ATH Katedra Matematyki i Informatyki

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

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

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

Rozdział 4. Algorytmy sortowania 73 Rozdział 5. Typy i struktury danych 89 Rozdział 6. Derekursywacja i optymalizacja algorytmów 147

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

Wstęp do Informatyki dla bioinformatyków

Spis treści JĘZYK C - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

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

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

Instrukcje sterujące. Programowanie Proceduralne 1

Sposoby wykrywania i usuwania błędów. Tomasz Borzyszkowski

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Tworzenie oprogramowania

Tworzenie oprogramowania

1 Podstawy c++ w pigułce.

INFORMATYKA Informatics. forma studiów: studia stacjonarne. Liczba godzin/tydzień: 2W, 2L PRZEWODNIK PO PRZEDMIOCIE

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

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

Języki i metody programowania. Omówienie języków C, C++ i Java

IBM SPSS Modeler Social Network Analysis 16 podręcznik instalowania i konfigurowania

Wykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.

ETAP I SZKOLNY. Czas rozwiązywania testu 30 minut. Za każdą poprawną odpowiedź otrzymujesz 1pkt. POWODZENIA!!

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

PLUTO Sterownik bezpieczeństwa Skrócona Instrukcja obsługi oprogramowania. PlutoProgrammingManualPL_v7A.pdf 1

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

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

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

Transkrypt:

Podstawy Programowania Wykład I Wprowadzenie email: pokój: Robert Muszyński Katedra Cybernetyki i Robotyki Politechnika Wrocławska robert.muszynski@pwr.edu.pl 331 budynek C3 (Kompleks Wydziału Elektroniki) GPS: N 51 06 31.75 E 17 03 38.02 Copyright c 2007 2018 Robert Muszyński Niniejszy dokument zawiera materiały do wykładu na temat podstaw programowania w językach wysokiego poziomu. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może być kopiowany wyłącznie w całości, razem ze stroną tytułową. Skład FoilTEX

Wprowadzenie 1 Literatura 1. B. Kernighan, D. Ritchie, Język ANSI C, WNT, (1987), 1994, 2007 2. G. Glass, K. Ables, Linux dla programistów i użytkowników, Helion, 2007 3. B. W. Kernighan, R. Pike, Lekcja programowania, WNT, 2002 4. T. Cormen, C. Leiserson, R. Rivest, Wprowadzenie do algorytmów, WNT 1998, 2007 5. N. Wirth, Algorytmy + struktury danych = programy, WNT, 1980, 2004 6. S. Granneman, Linux. Rozmówki, Helion, 2006 7. D. Cameron, GNU Emacs, Helion, 2002

Wprowadzenie 1 Literatura 1. B. Kernighan, D. Ritchie, Język ANSI C, WNT, (1987), 1994, 2007 2. G. Glass, K. Ables, Linux dla programistów i użytkowników, Helion, 2007 3. B. W. Kernighan, R. Pike, Lekcja programowania, WNT, 2002 4. T. Cormen, C. Leiserson, R. Rivest, Wprowadzenie do algorytmów, WNT 1998, 2007 5. N. Wirth, Algorytmy + struktury danych = programy, WNT, 1980, 2004 6. S. Granneman, Linux. Rozmówki, Helion, 2006 7. D. Cameron, GNU Emacs, Helion, 2002

Wprowadzenie 1 Literatura 1. B. Kernighan, D. Ritchie, Język ANSI C, WNT, (1987), 1994, 2007 2. G. Glass, K. Ables, Linux dla programistów i użytkowników, Helion, 2007 3. B. W. Kernighan, R. Pike, Lekcja programowania, WNT, 2002 4. T. Cormen, C. Leiserson, R. Rivest, Wprowadzenie do algorytmów, WNT 1998, 2007 5. N. Wirth, Algorytmy + struktury danych = programy, WNT, 1980, 2004 6. S. Granneman, Linux. Rozmówki, Helion, 2006 7. D. Cameron, GNU Emacs, Helion, 2002

Wprowadzenie 1 Literatura 1. B. Kernighan, D. Ritchie, Język ANSI C, WNT, (1987), 1994, 2007 2. G. Glass, K. Ables, Linux dla programistów i użytkowników, Helion, 2007 3. B. W. Kernighan, R. Pike, Lekcja programowania, WNT, 2002 4. T. Cormen, C. Leiserson, R. Rivest, Wprowadzenie do algorytmów, WNT 1998, 2007 5. N. Wirth, Algorytmy + struktury danych = programy, WNT, 1980, 2004 6. S. Granneman, Linux. Rozmówki, Helion, 2006 7. D. Cameron, GNU Emacs, Helion, 2002

Wprowadzenie 2 W sieci 1. www.kcir.pwr.edu.pl strona Katedry Cybernetyki i Robotyki 2. kcir.pwr.edu.pl/ mucha/pprog strona tego kursu 3. diablo.kcir.pwr.edu.pl strona studenckiego serwera diablo 4. diablo.kcir.pwr.edu.pl/pomoc strona pomocy: studenci AiR studentom AiR 5. laboratoria.ict.pwr.wroc.pl strona wydziałowych laboratoriów komputerowych

Wprowadzenie 2 W sieci 1. www.kcir.pwr.edu.pl strona Katedry Cybernetyki i Robotyki 2. kcir.pwr.edu.pl/ mucha/pprog strona tego kursu 3. diablo.kcir.pwr.edu.pl strona studenckiego serwera diablo 4. diablo.kcir.pwr.edu.pl/pomoc strona pomocy: studenci AiR studentom AiR 5. laboratoria.ict.pwr.wroc.pl strona wydziałowych laboratoriów komputerowych 6. www.kcir.pwr.edu.pl/ witold/info3/n1124.pdf dokumentacja języka C standard ISO/IEC 9899 7. wazniak.mimuw.edu.pl/index.php?title=wstęp do programowania strona kursu Wstęp do programowania ze Studiów informatycznych

Wprowadzenie 3 Zawartość tematyczna wykładu System operacyjny UNIX narzędzia, powłoki, środowisko graficzne. Język C: gramatyka, kompilacja, struktury danych, wyrażenia i instrukcje. Algorytmy: metody konstruowania, weryfikacja poprawności. Operacje wejścia/wyjścia. Strumienie danych. Struktury sterujące programu: sekwencja, wybór warunkowy, iteracja. Funkcje, ich parametry. Moduły. Tablice. Przeszukiwanie i sortowanie. Reguły stylu programowania. Dokumentacja programu. Wskaźniki, zmienne dynamiczne. Struktury, listy, stosy, sterty, kolejki FIFO, priorytetowe. Drzewa. Efektywność programów.

Wprowadzenie 3 Zawartość tematyczna wykładu System operacyjny UNIX narzędzia, powłoki, środowisko graficzne. Język C: gramatyka, kompilacja, struktury danych, wyrażenia i instrukcje. Algorytmy: metody konstruowania, weryfikacja poprawności. Operacje wejścia/wyjścia. Strumienie danych. Struktury sterujące programu: sekwencja, wybór warunkowy, iteracja. Funkcje, ich parametry. Moduły. Tablice. Przeszukiwanie i sortowanie. Reguły stylu programowania. Dokumentacja programu. Wskaźniki, zmienne dynamiczne. Struktury, listy, stosy, sterty, kolejki FIFO, priorytetowe. Drzewa. Efektywność programów.

Wprowadzenie 3 Zawartość tematyczna wykładu System operacyjny UNIX narzędzia, powłoki, środowisko graficzne. Język C: gramatyka, kompilacja, struktury danych, wyrażenia i instrukcje. Algorytmy: metody konstruowania, weryfikacja poprawności. Operacje wejścia/wyjścia. Strumienie danych. Struktury sterujące programu: sekwencja, wybór warunkowy, iteracja. Funkcje, ich parametry. Moduły. Tablice. Przeszukiwanie i sortowanie. Reguły stylu programowania. Dokumentacja programu. Wskaźniki, zmienne dynamiczne. Struktury, listy, stosy, sterty, kolejki FIFO, priorytetowe. Drzewa. Efektywność programów.

Wprowadzenie 3 Zawartość tematyczna wykładu System operacyjny UNIX narzędzia, powłoki, środowisko graficzne. Język C: gramatyka, kompilacja, struktury danych, wyrażenia i instrukcje. Algorytmy: metody konstruowania, weryfikacja poprawności. Operacje wejścia/wyjścia. Strumienie danych. Struktury sterujące programu: sekwencja, wybór warunkowy, iteracja. Funkcje, ich parametry. Moduły. Tablice. Przeszukiwanie i sortowanie. Reguły stylu programowania. Dokumentacja programu. Wskaźniki, zmienne dynamiczne. Struktury, listy, stosy, sterty, kolejki FIFO, priorytetowe. Drzewa. Efektywność programów.

-, 4 Wprowadzenie Środowisko pracy Laboratoria 103, 104, 127L, 127P kajki, kokosze Skład FoilTEX milusie, melasie Indeks c R. Muszyński, 29 października 2018

-, 4 Wprowadzenie Środowisko pracy Laboratoria 103, 104, 127L, 127P kajki, kokosze milusie, melasie serwer sieciowy Skład FoilTEX Indeks c R. Muszyński, 29 października 2018

-, 4 Wprowadzenie Środowisko pracy Laboratoria 103, 104, 127L, 127P kajki, kokosze serwer plików Skład FoilTEX milusie, melasie serwer sieciowy Indeks c R. Muszyński, 29 października 2018

-, 4 Wprowadzenie Środowisko pracy Laboratoria 103, 104, 127L, 127P kajki, kokosze serwer plików Skład FoilTEX milusie, melasie INTERNET serwer sieciowy Indeks c R. Muszyński, 29 października 2018

-, 4 Wprowadzenie Środowisko pracy Laboratoria 103, 104, 127L, 127P kajki, kokosze serwer plików milusie, melasie INTERNET serwer sieciowy Laboratorium 07 okocim, warka, eb Skład FoilTEX Indeks c R. Muszyński, 29 października 2018

-, 4 Wprowadzenie Środowisko pracy Laboratoria 103, 104, 127L, 127P kajki, kokosze serwer plików milusie, melasie INTERNET serwer sieciowy Laboratorium 07 okocim, warka, eb... serwer plików diablo, panamint, inyo Skład FoilTEX Indeks c R. Muszyński, 29 października 2018

-, 4 Wprowadzenie Środowisko pracy Laboratoria 103, 104, 127L, 127P kajki, kokosze serwer plików milusie, melasie INTERNET serwer sieciowy Laboratorium 07 okocim, warka, eb... serwer plików diablo, panamint, inyo Skład FoilTEX Indeks c R. Muszyński, 29 października 2018

-, 5 Wprowadzenie Topologia sieci (;-p) diablo sequo ia y itne wh inyo int am pan Skład FoilTEX Indeks ama rgo sa c R. Muszyński, 29 października 2018

-, 5 Wprowadzenie Topologia sieci (;-p) diablo sequo ia y itne wh inyo int am pan Skład FoilTEX Indeks ama rgo sa c R. Muszyński, 29 października 2018

-, 5 Wprowadzenie Topologia sieci (;-p) a st sha las sen tahoe kel ber ey mono limba diablo y itne wh inyo nc ha sequo ia int am pan ama rgo sa ma libu ola rd stanfo Skład FoilTEX Indeks c R. Muszyński, 29 października 2018

Wprowadzenie 6 Dostęp z terenu Kampusu PWr dowolne laboratorium komputerowe z dostępem do internetu

Wprowadzenie 6 Dostęp z terenu Kampusu PWr dowolne laboratorium komputerowe z dostępem do internetu PWR-WiFi otwarta sieć bezprzewodowa dostępna na terenach Politechniki Wrocławskiej (jednakże z zablokowanymi wieloma portami, w tym portem 22 (ssh, scp, sftp remote login protocols))

Wprowadzenie 6 Dostęp z terenu Kampusu PWr dowolne laboratorium komputerowe z dostępem do internetu PWR-WiFi otwarta sieć bezprzewodowa dostępna na terenach Politechniki Wrocławskiej (jednakże z zablokowanymi wieloma portami, w tym portem 22 (ssh, scp, sftp remote login protocols)) edurom miedzynarodowa, zamknięta sieć bezprzewodowa dostępna na terenie większości uczelni (dla studentów i pracowników naukowych po uprzednim skonfigurowaniu i jednorazowym zalogowaniu z terenu uczelni macierzystej więcej na http://eduroam.pwr.edu.pl/)

Wprowadzenie 6 Dostęp z terenu Kampusu PWr dowolne laboratorium komputerowe z dostępem do internetu PWR-WiFi otwarta sieć bezprzewodowa dostępna na terenach Politechniki Wrocławskiej (jednakże z zablokowanymi wieloma portami, w tym portem 22 (ssh, scp, sftp remote login protocols)) edurom miedzynarodowa, zamknięta sieć bezprzewodowa dostępna na terenie większości uczelni (dla studentów i pracowników naukowych po uprzednim skonfigurowaniu i jednorazowym zalogowaniu z terenu uczelni macierzystej więcej na http://eduroam.pwr.edu.pl/) ict-stud otwarta, nieblokowana sieć bezprzewodowa dostępna we fragmentach budynku C3 (Wydział Elektroniki)

Wprowadzenie 7 Podstawowe pojęcia Komputer zestaw odpowiednio dobranych urządzeń... System operacyjny program komputerowy, który zarządza sprzętem oraz aplikacjami komputera.

Wprowadzenie 7 Podstawowe pojęcia Komputer zestaw odpowiednio dobranych urządzeń... System operacyjny program komputerowy, który zarządza sprzętem oraz aplikacjami komputera. Program komputerowy ciąg poleceń wykonywanych przez komputer w celu realizacji zadanego algorytmu.

Wprowadzenie 7 Podstawowe pojęcia Komputer zestaw odpowiednio dobranych urządzeń... System operacyjny program komputerowy, który zarządza sprzętem oraz aplikacjami komputera. Program komputerowy ciąg poleceń wykonywanych przez komputer w celu realizacji zadanego algorytmu. Algorytm ciąg czynności prowadzących do rozwiązania zadania.

Wprowadzenie 7 Podstawowe pojęcia Komputer zestaw odpowiednio dobranych urządzeń... System operacyjny program komputerowy, który zarządza sprzętem oraz aplikacjami komputera. Program komputerowy ciąg poleceń wykonywanych przez komputer w celu realizacji zadanego algorytmu. Algorytm ciąg czynności prowadzących do rozwiązania zadania. Specyfikacja zadania określenie dopuszczalnych danych wejściowych i oczekiwanych wyników jako funkcji danych wejściowych, charakteryzujące stawiany problem. Problem zadanie do rozwiązania.

Wprowadzenie 8 Systemy operacyjne Windows, Mac OS, OpenVMS przeznaczone dla jednej rodziny sprzętu UNIX, Linux dostępne dla różnych platform sprzętowych

Wprowadzenie 8 Systemy operacyjne Windows, Mac OS, OpenVMS przeznaczone dla jednej rodziny sprzętu UNIX, Linux dostępne dla różnych platform sprzętowych pierwsza zaleta Linuksa

Wprowadzenie 8 Systemy operacyjne Windows, Mac OS, OpenVMS przeznaczone dla jednej rodziny sprzętu UNIX, Linux dostępne dla różnych platform sprzętowych pierwsza zaleta Linuksa Windows, Mac OS, UNIX tworzone pod presją harmonogramów Linux dzieło tysięcy doświadczonych programistów ochotników

Wprowadzenie 8 Systemy operacyjne Windows, Mac OS, OpenVMS przeznaczone dla jednej rodziny sprzętu UNIX, Linux dostępne dla różnych platform sprzętowych pierwsza zaleta Linuksa Windows, Mac OS, UNIX tworzone pod presją harmonogramów Linux dzieło tysięcy doświadczonych programistów ochotników druga zaleta Linuksa

Wprowadzenie 8 Systemy operacyjne Windows, Mac OS, OpenVMS przeznaczone dla jednej rodziny sprzętu UNIX, Linux dostępne dla różnych platform sprzętowych pierwsza zaleta Linuksa Windows, Mac OS, UNIX tworzone pod presją harmonogramów Linux dzieło tysięcy doświadczonych programistów ochotników druga zaleta Linuksa Windows, Mac OS pozwalają na pracę jednego użytkownika UNIX, Linux, OpenVMS systemy wielodostępne

Wprowadzenie 8 Systemy operacyjne Windows, Mac OS, OpenVMS przeznaczone dla jednej rodziny sprzętu UNIX, Linux dostępne dla różnych platform sprzętowych pierwsza zaleta Linuksa Windows, Mac OS, UNIX tworzone pod presją harmonogramów Linux dzieło tysięcy doświadczonych programistów ochotników druga zaleta Linuksa Windows, Mac OS pozwalają na pracę jednego użytkownika UNIX, Linux, OpenVMS systemy wielodostępne trzecia zaleta Linuksa

Wprowadzenie 9 Systemy operacyjne cd. Windows, Mac OS, UNIX oprogramowanie komercyjne Linux tysiące narzędzi GNU, Open Source Linux z wierzchu wygląda dokładnie tak jak UNIX Linux jest znacznie lepiej napisany niż UNIX Linux pozwala... czwarta zaleta Linuksa piąta zaleta Linuksa szósta zaleta Linuksa siódma zaleta Linuksa

Wprowadzenie 10 na początku był MULTICS (1964) Krótka historia Linuksa

Wprowadzenie 10 Krótka historia Linuksa na początku był MULTICS (1964) 1969 Ken Thomson tworzy w asemblerze system UNICS 1971 wraz z Ritchiem przepisuje go w języku C powstaje UNIX 1971 Bell Lab udostępnia uniwersytetom kod źródłowy UNIX-a

Wprowadzenie 10 na początku był MULTICS (1964) Krótka historia Linuksa 1969 Ken Thomson tworzy w asemblerze system UNICS 1971 wraz z Ritchiem przepisuje go w języku C powstaje UNIX 1971 Bell Lab udostępnia uniwersytetom kod źródłowy UNIX-a 1975 85 powstaje BSD UNIX i UNIX System V później powstaje Solaris (Sun), HP-UX (Hewlett-Packard), AIX (IBM), IRIX (Silicon Graphics) wojna o UNIX-a w tym czasie powstaje koncepcja oprogramowania GNU

Wprowadzenie 10 na początku był MULTICS (1964) Krótka historia Linuksa 1969 Ken Thomson tworzy w asemblerze system UNICS 1971 wraz z Ritchiem przepisuje go w języku C powstaje UNIX 1971 Bell Lab udostępnia uniwersytetom kod źródłowy UNIX-a 1975 85 powstaje BSD UNIX i UNIX System V później powstaje Solaris (Sun), HP-UX (Hewlett-Packard), AIX (IBM), IRIX (Silicon Graphics) wojna o UNIX-a w tym czasie powstaje koncepcja oprogramowania GNU 1991 Linus Torvalds z grupą przyjaciół zaczyna pracę nad jądrem systemu

Wprowadzenie 10 na początku był MULTICS (1964) Krótka historia Linuksa 1969 Ken Thomson tworzy w asemblerze system UNICS 1971 wraz z Ritchiem przepisuje go w języku C powstaje UNIX 1971 Bell Lab udostępnia uniwersytetom kod źródłowy UNIX-a 1975 85 powstaje BSD UNIX i UNIX System V później powstaje Solaris (Sun), HP-UX (Hewlett-Packard), AIX (IBM), IRIX (Silicon Graphics) wojna o UNIX-a w tym czasie powstaje koncepcja oprogramowania GNU 1991 Linus Torvalds z grupą przyjaciół zaczyna pracę nad jądrem systemu 1994 udostępnia on system Linux 1.0 na zasadach GNU GPL

Wprowadzenie 10 na początku był MULTICS (1964) Krótka historia Linuksa 1969 Ken Thomson tworzy w asemblerze system UNICS 1971 wraz z Ritchiem przepisuje go w języku C powstaje UNIX 1971 Bell Lab udostępnia uniwersytetom kod źródłowy UNIX-a 1975 85 powstaje BSD UNIX i UNIX System V później powstaje Solaris (Sun), HP-UX (Hewlett-Packard), AIX (IBM), IRIX (Silicon Graphics) wojna o UNIX-a w tym czasie powstaje koncepcja oprogramowania GNU 1991 Linus Torvalds z grupą przyjaciół zaczyna pracę nad jądrem systemu 1994 udostępnia on system Linux 1.0 na zasadach GNU GPL obecnie tysiące ochotników pracuje dostarczając wielu dystrybucji Linuksa: Debian, Ubuntu, SuSe, Fedora, Mandriva, Slackware, TurboLinux ;)

Wprowadzenie 11 Specyfikacja zadania Etapy pracy nad programem

Wprowadzenie 11 Specyfikacja zadania Praca nad algorytmem Etapy pracy nad programem

Wprowadzenie 11 Specyfikacja zadania Praca nad algorytmem Edycja programu Etapy pracy nad programem

Wprowadzenie 11 Etapy pracy nad programem Specyfikacja zadania Praca nad algorytmem Edycja programu Kompilacja i konsolidacja programu

Wprowadzenie 11 Etapy pracy nad programem Specyfikacja zadania Praca nad algorytmem Edycja programu Kompilacja i konsolidacja programu Uruchamianie i odpluskwianie programu

Wprowadzenie 11 Etapy pracy nad programem Specyfikacja zadania Praca nad algorytmem Edycja programu Kompilacja i konsolidacja programu Uruchamianie i odpluskwianie programu

Wprowadzenie 11 Etapy pracy nad programem Specyfikacja zadania Praca nad algorytmem Edycja programu Kompilacja i konsolidacja programu Uruchamianie i odpluskwianie programu Dokumentacja!!!

Wprowadzenie 11 Etapy pracy nad programem Specyfikacja zadania Praca nad algorytmem Edycja programu Kompilacja i konsolidacja programu Uruchamianie i odpluskwianie programu Dokumentacja!!! Problem

Wprowadzenie 11 Etapy pracy nad programem Specyfikacja zadania Praca nad algorytmem Edycja programu Kompilacja i konsolidacja programu Uruchamianie i odpluskwianie programu Dokumentacja!!! Problem Algorytm Modelowanie

Wprowadzenie 11 Etapy pracy nad programem Specyfikacja zadania Praca nad algorytmem Edycja programu Kompilacja i konsolidacja programu Uruchamianie i odpluskwianie programu Dokumentacja!!! Problem Algorytm Program Modelowanie Kodowanie

Wprowadzenie 11 Etapy pracy nad programem Specyfikacja zadania Praca nad algorytmem Edycja programu Kompilacja i konsolidacja programu Uruchamianie i odpluskwianie programu Dokumentacja!!! Problem Algorytm Program Proces Modelowanie Kodowanie Uruchamianie

Wprowadzenie 11 Etapy pracy nad programem Specyfikacja zadania Praca nad algorytmem Edycja programu Kompilacja i konsolidacja programu Uruchamianie i odpluskwianie programu Dokumentacja!!! Problem Algorytm Program Proces Modelowanie Kodowanie Uruchamianie

Wprowadzenie 12 Edytor GNU Emacs (by Real Programmers)

Wprowadzenie 13 Edytor GNU Emacs Podstawowe komendy edytora GNU Emacs 94-9-1 Edytor GNU Emacs jest wywoływany komendą: emacs nazwa pliku. Przemieszczanie kursora Ctrl-B, Ctrl-N, Ctrl-P, Ctrl-F Przemieszczanie kursora o jeden znak ( ) ESC F Słowo do przodu Ctrl-A Kursor na początek linii ESC B Słowo do tyłu Ctrl-E Kursor na koniec linii ESC < Kursor na początek pliku Ctrl-V Przejście do następnej strony ESC > Kursor na koniec pliku ESC V Przejście do poprzedniej strony ESC X goto-line Przejście do linii o numerze podanym przez użytkownika Kasowanie znaków DEL Kasowanie znaku przed kursorem ESC DEL Kasowanie słowa przed kursorem Ctrl-D Kasowanie znaku na pozycji kursora ESC D Kasowanie słowa za kursorem Ctrl-K Kasowanie znaków od kursora do końca linii Poszukiwanie i zamiana ciągu znaków Ctrl-S ciąg znaków ESC Przyrostowe poszukiwanie w przód Ctrl-R ciąg znaków ESC Przyrostowe poszukiwanie w tył ESC % ciąg znaków RETURN nowy ciąg RETURN Warunkowa zamiana cia gu znaków: Operacje na regionach (region - obszar między markerem a kursorem) Ctrl-@ Ustawienie markera (lub Ctrl-SPACJA) Ctrl-W Skasowanie regionu i zapis jego zawartości do bufora ESC W Zapis regionu do bufora bez jego kasowania Ctrl-Y Skopiowanie zawartości regionu w miejsce położenia kursora

Wprowadzenie 14 Edytor GNU Emacs cd. Operacje na oknach Ctrl-X 2 Otwarcie drugiego okna Ctrl-X 0 Zamknięcie aktywnego okna Ctrl-X O Przejście do drugiego okna Ctrl-X 1 Zamkniȩcie wszystkich okien oprócz aktywnego Operacje na plikach i buforach plikowych Ctrl-X Ctrl-S Zapis bufora plikowego na dysk Ctrl-X Ctrl-F Otwarcie/utworzenie nowego pliku Ctrl-X Ctrl-W Utworzenie i zapis do pliku o nowej nazwie Ctrl-X I Wstawienie zawartości innego pliku do aktywnego bufora plikowego Pomoc Ctrl-H Klawisz pomocy Ctrl-H T wyświetla samouczek ESC X describe-function wyświetla opis funkcji o podanej nazwie (Ctrl-H F) ESC X describe-key wyświetla nazwę i opis funkcji przypisanej do klawisza (Ctrl-H K) ESC X apropos wyświetla nazwy funkcji ze słowem kluczowym (Ctrl-H A) Inne ważne komendy Ctrl-G Przerwanie komendy Ctrl-L Odświeżenie ekranu Ctrl-X U Odtworzenie zawartości bufora sprzed ostatniej zmiany ESC! Uruchomienie shella w buforze edytora Ctrl-X Ctrl-C Zakończenie pracy z edytorem Istnieje wiele samouczków edytora GNU Emacs w sieci www, na przykład tutaj jest jakiś.

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; }

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; } Komentarze

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; } Definicja funkcji

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; } Definicja funkcji Nagłówek funkcji

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; } Definicja funkcji Deklaracja zmiennych

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; } Definicja funkcji Część operacyjna

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; } Definicja funkcji Część operacyjna Wczytanie danych

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; } Definicja funkcji Część operacyjna Kontrola poprawności danych

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; } Definicja funkcji Część operacyjna Część obliczeniowa

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; } Definicja funkcji Część operacyjna Wyświetlenie wyników

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; } Dołaczenie prototypów funkcji bibliotecznych

Wprowadzenie 15 Przykładowy program w C /* kompilacja: Sun C: cc -Xc trojmian.c -lm GNU C: gcc -pedantic -Wall trojmian.c -lm */ #include <stdio.h> #include <math.h> int main() { float a, b, c; /* parametry rownania */ float delta, sqrtdelta, x1, x2; /* wyniki */ printf("program rozwiazuje rownanie kwadratowe.\n"); printf("podaj wspolczynnik a, b, c:\n"); scanf("%f%f%f", &a, &b, &c); if (a == 0.0) /* przypadek rownania liniowego */ printf("to nie jest rownanie kwadratowe.\n"); else { delta = (b*b) - (4.0*a*c); if (delta < 0.0) /* kontrola istnienia rozwiazan */ printf("brak rozwiazan rzeczywistych.\n"); else { /* rozwiazanie rownania */ sqrtdelta = (float)sqrt( (double)delta ); x1 = (-b - sqrtdelta) / (2*a); x2 = (-b + sqrtdelta) / (2*a); printf("rozwiazaniem rownania sa pierwiastki:\n"); printf(" x1 = %f\n x2 = %f\n", x1, x2); } } return 0; } Komentarze Dołaczenie prototypów funkcji bibliotecznych Definicja funkcji Nagłówek funkcji Deklaracja zmiennych Część operacyjna Wczytanie danych Kontrola poprawności danych Część obliczeniowa Wyświetlenie wyników

Wprowadzenie 16 Diagram algorytmu START Program znajduje rozwiązania równania kwadratowego Wczytaj współczynniki równania: a, b, c

Wprowadzenie 16 Diagram algorytmu START Program znajduje rozwiązania równania kwadratowego Wczytaj współczynniki równania: a, b, c Wylicz wyróżnik d = b 2 4ac

Wprowadzenie 16 Diagram algorytmu START Program znajduje rozwiązania równania kwadratowego Wczytaj współczynniki równania: a, b, c Wylicz wyróżnik d = b 2 4ac x 1 = b d 2a x 2 = b+ d 2a

Wprowadzenie 16 Diagram algorytmu START Program znajduje rozwiązania równania kwadratowego Wczytaj współczynniki równania: a, b, c Wylicz wyróżnik d = b 2 4ac x 1 = b d 2a x 2 = b+ d 2a Wyświetl pierwiastki STOP

Wprowadzenie 17 Diagramy algorytmów (schematy blokowe) blok terminatora Elementy składowe schematów blokowych algorytmów.

Wprowadzenie 17 Diagramy algorytmów (schematy blokowe) blok terminatora blok przetwarzania Elementy składowe schematów blokowych algorytmów.

Wprowadzenie 17 Diagramy algorytmów (schematy blokowe) blok terminatora blok przetwarzania blok wejścia/wyjścia Elementy składowe schematów blokowych algorytmów.

Wprowadzenie 17 Diagramy algorytmów (schematy blokowe) blok terminatora blok przetwarzania blok wejścia/wyjścia Nie blok decyzyjny Tak Elementy składowe schematów blokowych algorytmów.

Wprowadzenie 17 Diagramy algorytmów (schematy blokowe) blok terminatora blok wywołania podprogramu blok przetwarzania blok wejścia/wyjścia Nie blok decyzyjny Tak Elementy składowe schematów blokowych algorytmów.

Wprowadzenie 17 Diagramy algorytmów (schematy blokowe) blok terminatora blok wywołania podprogramu blok przetwarzania blok fragmentu blok wejścia/wyjścia Nie blok decyzyjny Tak Elementy składowe schematów blokowych algorytmów.

Wprowadzenie 17 Diagramy algorytmów (schematy blokowe) blok terminatora blok wywołania podprogramu blok przetwarzania blok fragmentu blok wejścia/wyjścia łącznik wewnętrzny Nie blok decyzyjny Tak Elementy składowe schematów blokowych algorytmów.

Wprowadzenie 17 Diagramy algorytmów (schematy blokowe) blok terminatora blok wywołania podprogramu blok przetwarzania blok fragmentu blok wejścia/wyjścia łącznik wewnętrzny Nie blok decyzyjny łącznik zewnętrzny Tak Elementy składowe schematów blokowych algorytmów.

Wprowadzenie 17 Diagramy algorytmów (schematy blokowe) blok terminatora blok wywołania podprogramu blok przetwarzania blok fragmentu blok wejścia/wyjścia łącznik wewnętrzny Tak Nie blok decyzyjny łącznik zewnętrzny blok komentarza Elementy składowe schematów blokowych algorytmów.

Wprowadzenie 18 Diagramy czynności język UML Czynność (Activity) Wybrane elementy składowe diagramów czynności UML.

Wprowadzenie 18 Diagramy czynności język UML Czynność (Activity) Akcja (Action) Wybrane elementy składowe diagramów czynności UML.

Wprowadzenie 18 Diagramy czynności język UML Czynność (Activity) Akcja (Action) Wywołanie aktywności Wybrane elementy składowe diagramów czynności UML.

Wprowadzenie 18 Diagramy czynności język UML Czynność (Activity) Akcja (Action) Wywołanie aktywności Przepływ sterujący (Control flow) Wybrane elementy składowe diagramów czynności UML.

Wprowadzenie 18 Diagramy czynności język UML Czynność (Activity) Uwaga Warunek wstępny/końcowy Akcja (Action) Wywołanie aktywności Przepływ sterujący (Control flow) Wybrane elementy składowe diagramów czynności UML.

Wprowadzenie 18 Diagramy czynności język UML Czynność (Activity) Uwaga Warunek wstępny/końcowy Akcja (Action) Węzeł początkowy Wywołanie aktywności Przepływ sterujący (Control flow) Wybrane elementy składowe diagramów czynności UML.

Wprowadzenie 18 Diagramy czynności język UML Czynność (Activity) Uwaga Warunek wstępny/końcowy Akcja (Action) Węzeł początkowy Węzeł końcowy Wywołanie aktywności Przepływ sterujący (Control flow) Wybrane elementy składowe diagramów czynności UML.

Wprowadzenie 18 Diagramy czynności język UML Czynność (Activity) Uwaga Warunek wstępny/końcowy Akcja (Action) Węzeł początkowy Węzeł końcowy Wywołanie aktywności Węzeł decyzyjny/połączenia Przepływ sterujący (Control flow) Wybrane elementy składowe diagramów czynności UML.

Wprowadzenie 19 Diagramy czynności przykłady Wczytaj współczynniki równania: a, b, c Program znajduje rozwiązania równania kwadratowego Wylicz wyróżnik d = b 2 4ac x 1 = b d 2a x 2 = b+ d 2a Wyświetl pierwiastki

Wprowadzenie 19 Diagramy czynności przykłady Program znajduje rozwiązania równania kwadratowego Przedstaw się ȧ i b Wczytaj wartości Wczytaj współczynniki równania: a, b, c Czy a < b? Wylicz wyróżnik d = b 2 4ac Tak Nie Wyświetl b x 1 = b d 2a x 2 = b+ d 2a Wyświetl a Wyświetl pierwiastki

Wprowadzenie 20 Diagramy czynności przykłady Źródło: ikari.pl

Wprowadzenie 21 Diagramy czynności przykłady Źródło: A. Szczepański, AGH

Wprowadzenie 22 Kompilacja i konsolidacja programów kod źródłowy program.c

Wprowadzenie 22 Kompilacja i konsolidacja programów kod źródłowy program.c cc -c program.c kod wynikowy program.o

Wprowadzenie 22 Kompilacja i konsolidacja programów kod źródłowy program.c cc -c program.c kod wynikowy program.o cc program.o kod wykonywalny a.out

Wprowadzenie 22 Kompilacja i konsolidacja programów kod źródłowy program.c cc -c program.c kod wynikowy program.o cc program.c cc program.o kod wykonywalny a.out

Wprowadzenie 22 Kompilacja i konsolidacja programów kod źródłowy program.c cc -o program program.c cc -c program.c kod wynikowy program.o cc program.c cc program.o kod wykonywalny a.out cc -o program program.c kod wykonywalny program

Wprowadzenie 23 Opcje wywołania kompilatorów (wspólne) Tradycyjnie, kompilatory C (cc, gcc) jednakowo rozpoznają opcje: -onazwa umieść postać wykonywalną kompilacji w pliku nazwa (domyślnie a.out)

Wprowadzenie 23 Opcje wywołania kompilatorów (wspólne) Tradycyjnie, kompilatory C (cc, gcc) jednakowo rozpoznają opcje: -onazwa umieść postać wykonywalną kompilacji w pliku nazwa (domyślnie a.out) -c pomiń ostatnią fazę przetwarzania (linkowanie), nie twórz programu wykonywalnego, pozostaw postać wynikową.o

Wprowadzenie 23 Opcje wywołania kompilatorów (wspólne) Tradycyjnie, kompilatory C (cc, gcc) jednakowo rozpoznają opcje: -onazwa umieść postać wykonywalną kompilacji w pliku nazwa (domyślnie a.out) -c pomiń ostatnią fazę przetwarzania (linkowanie), nie twórz programu wykonywalnego, pozostaw postać wynikową.o -g wpisz w program wykonywalny dodatkowe informacje dla debuggera

Wprowadzenie 23 Opcje wywołania kompilatorów (wspólne) Tradycyjnie, kompilatory C (cc, gcc) jednakowo rozpoznają opcje: -onazwa umieść postać wykonywalną kompilacji w pliku nazwa (domyślnie a.out) -c pomiń ostatnią fazę przetwarzania (linkowanie), nie twórz programu wykonywalnego, pozostaw postać wynikową.o -g wpisz w program wykonywalny dodatkowe informacje dla debuggera -lbib przeglądaj przez linker biblioteki bib (w kartotece /usr/lib lub innych, zdefiniowanych ścieżką linkera)

Wprowadzenie 23 Opcje wywołania kompilatorów (wspólne) Tradycyjnie, kompilatory C (cc, gcc) jednakowo rozpoznają opcje: -onazwa umieść postać wykonywalną kompilacji w pliku nazwa (domyślnie a.out) -c pomiń ostatnią fazę przetwarzania (linkowanie), nie twórz programu wykonywalnego, pozostaw postać wynikową.o -g wpisz w program wykonywalny dodatkowe informacje dla debuggera -lbib przeglądaj przez linker biblioteki bib (w kartotece /usr/lib lub innych, zdefiniowanych ścieżką linkera) -On wykonaj optymalizację kodu poziomu n (domyślnie poziom 2, na ogół bezpieczny)

Wprowadzenie 23 Opcje wywołania kompilatorów (wspólne) Tradycyjnie, kompilatory C (cc, gcc) jednakowo rozpoznają opcje: -onazwa umieść postać wykonywalną kompilacji w pliku nazwa (domyślnie a.out) -c pomiń ostatnią fazę przetwarzania (linkowanie), nie twórz programu wykonywalnego, pozostaw postać wynikową.o -g wpisz w program wykonywalny dodatkowe informacje dla debuggera -lbib przeglądaj przez linker biblioteki bib (w kartotece /usr/lib lub innych, zdefiniowanych ścieżką linkera) -On wykonaj optymalizację kodu poziomu n (domyślnie poziom 2, na ogół bezpieczny) -w pomiń ostrzeżenia (opcja zwykle szkodliwa!)

Wprowadzenie 24 Opcje wywołania kompilatorów (różne) Niektóre ważne i pożyteczne opcje występują tylko dla niektórych kompilatorów, lub mają inną postać: -V wyświetlaj wywołania kolejnych faz kompilacji (Sun cc) -v wyświetlaj wywołania kolejnych faz kompilacji (HP cc, GNU gcc)

Wprowadzenie 24 Opcje wywołania kompilatorów (różne) Niektóre ważne i pożyteczne opcje występują tylko dla niektórych kompilatorów, lub mają inną postać: -V wyświetlaj wywołania kolejnych faz kompilacji (Sun cc) -v wyświetlaj wywołania kolejnych faz kompilacji (HP cc, GNU gcc) -Xc ściśle przestrzegaj standardu ANSI C (Sun cc) -Aa ściśle przestrzegaj standardu ANSI C (HP cc) -ansi przestrzegaj standardu ANSI C (GNU gcc) -pedantic ściśle przestrzegaj standardu ANSI C (GNU gcc)

Wprowadzenie 24 Opcje wywołania kompilatorów (różne) Niektóre ważne i pożyteczne opcje występują tylko dla niektórych kompilatorów, lub mają inną postać: -V wyświetlaj wywołania kolejnych faz kompilacji (Sun cc) -v wyświetlaj wywołania kolejnych faz kompilacji (HP cc, GNU gcc) -Xc ściśle przestrzegaj standardu ANSI C (Sun cc) -Aa ściśle przestrzegaj standardu ANSI C (HP cc) -ansi przestrzegaj standardu ANSI C (GNU gcc) -pedantic ściśle przestrzegaj standardu ANSI C (GNU gcc) -Wall wyświetlaj wszystkie ostrzeżenia o dziwnych konstrukcjach programowych (GNU cc)

Wprowadzenie 25 Kompilacja programów wywołania komputer diablo cc -Xc prog.c = wynik: program binarny a.out cc -Xc prog.c -lm = wynik: program binarny a.out dołączona biblioteka matematyczna

Wprowadzenie 25 Kompilacja programów wywołania komputer diablo cc -Xc prog.c = wynik: program binarny a.out cc -Xc prog.c -lm = wynik: program binarny a.out dołączona biblioteka matematyczna cc -Xc -o prog prog.c = wynik: program binarny prog

Wprowadzenie 25 Kompilacja programów wywołania komputer diablo cc -Xc prog.c = wynik: program binarny a.out cc -Xc prog.c -lm = wynik: program binarny a.out dołączona biblioteka matematyczna cc -Xc -o prog prog.c = wynik: program binarny prog cc -Xc -c prog.c = wynik: program wynikowy prog.o

Wprowadzenie 25 Kompilacja programów wywołania komputer diablo cc -Xc prog.c = wynik: program binarny a.out cc -Xc prog.c -lm = wynik: program binarny a.out dołączona biblioteka matematyczna cc -Xc -o prog prog.c = wynik: program binarny prog cc -Xc -c prog.c = wynik: program wynikowy prog.o cc prog.o = wynik: program binarny a.out

Wprowadzenie 25 Kompilacja programów wywołania komputer diablo cc -Xc prog.c = wynik: program binarny a.out cc -Xc prog.c -lm = wynik: program binarny a.out dołączona biblioteka matematyczna cc -Xc -o prog prog.c = wynik: program binarny prog cc -Xc -c prog.c = wynik: program wynikowy prog.o cc prog.o = wynik: program binarny a.out komputer panamint gcc -pedantic -Wall prog.c = program binarny a.out gcc -pedantic -Wall prog.c -lm = program binarny a.out dołączona biblioteka matematyczna gcc -pedantic -Wall -o prog prog.c = program binarny prog gcc -pedantic -Wall -c prog.c = program wynikowy prog.o

Wprowadzenie 26 komputer diablo Kompilacja programów przykłady diablo 24: cc -Xc -o dwumian dwumian.c "dwumian.c", line 4: warning: function must be of type int: main() "dwumian.c", line 31: syntax error before or at: } "dwumian.c", line 48: syntax error before or at: else cc: acomp failed for dwumian.c

Wprowadzenie 26 komputer diablo Kompilacja programów przykłady diablo 24: cc -Xc -o dwumian dwumian.c "dwumian.c", line 4: warning: function must be of type int: main() "dwumian.c", line 31: syntax error before or at: } "dwumian.c", line 48: syntax error before or at: else cc: acomp failed for dwumian.c komputer panamint [mucha@panamint:~]:gcc -Wall -pedantic -o dwumian dwumian.c dwumian.c:4: warning: return type of main is not int dwumian.c: In function main : dwumian.c:21: warning: suggest parentheses around assignment used as truth value dwumian.c:31: error: expected ; before } token dwumian.c:45: warning: suggest parentheses around assignment used as truth value dwumian.c:48: error: expected ; before else "dwumian.c", line 4: warning: function must be of type int: main() "dwumian.c", line 31: syntax error before or at: } "dwumian.c", line 48: syntax error before or at: else cc: acomp failed for dwumian.c

Wprowadzenie 27 Uruchamianie programów diablo 25:

Wprowadzenie 27 Uruchamianie programów diablo 25:./dwumian (* alternatywnie dwumian *)

Wprowadzenie 27 Uruchamianie programów diablo 25:./dwumian (* alternatywnie dwumian *) Program rozwiazuje rownanie kwadratowe. Podaj wspolczynnik a, b, c:

Wprowadzenie 27 Uruchamianie programów diablo 25:./dwumian (* alternatywnie dwumian *) Program rozwiazuje rownanie kwadratowe. Podaj wspolczynnik a, b, c: 3 4-5

Wprowadzenie 27 Uruchamianie programów diablo 25:./dwumian (* alternatywnie dwumian *) Program rozwiazuje rownanie kwadratowe. Podaj wspolczynnik a, b, c: 3 4-5 Rozwiazanie rownania sa pierwiastki: x1 = -2.119633 x2 = 0.786300 diablo 26:

Wprowadzenie 27 Uruchamianie programów diablo 25:./dwumian (* alternatywnie dwumian *) Program rozwiazuje rownanie kwadratowe. Podaj wspolczynnik a, b, c: 3 4-5 Rozwiazanie rownania sa pierwiastki: x1 = -2.119633 x2 = 0.786300 diablo 26:./dwumian Program rozwiazuje rownanie kwadratowe. Podaj wspolczynnik a, b, c: 1 2 3 Brak rozwiazan rzeczywistych.

Wprowadzenie 28 Uruchamianie programów cd. diablo 25:./dwumian Program rozwiazuje rownanie kwadratowe. Podaj wspolczynnik a, b, c: -1 0 10000000000000000000000 Rozwiazanie rownania sa pierwiastki: x1 = 99999997952.000000 x2 = -99999997952.000000

-, 29 Wprowadzenie Ku pokrzepieniu Skład FoilTEX Indeks c R. Muszyński, 29 października 2018

Wprowadzenie 30 Podsumowanie Zagadnienia podstawowe 1. Jaka jest relacja między specyfikacją zadania a algorytmem? 2. Jaka jest różnica między algorytmem a programem? 3. Czym się różni kompilacja od konsolidacji programu? 4. Czym są opcje kompilacji programu i jak ich użyć? 5. W których miejscach w kodzie programu należy zamieszczać komentarze? 6. Czy bezbłędne skompilowanie programu gwarantuje jego poprawne działanie? 7. Czy kompilacja programu na komputerze klasy PC (domowym) i stacji roboczej (np. Sun jak diablo) daje zawsze takie same rezultaty? 8. Co przedstawia diagram algorytmu? 9. Czy za pomocą diagramu algorytmu można przedstawić projekt każdego programu? Zagadnienia rozszerzające 1. Jakie elementy powinna zawierać dokumentacja programu? 2. Jakie inne poza podanymi na wykładzie opcje wywołania kompilatora są dostępne w kompilatorze cc (na diablo), a jakie w gcc (panamint, komputer domowy)?

Wprowadzenie 31 3. Jakie informacje umieszcza w programie kompilator przy włączonej opcji -g? W jaki sposób ułatwia to debugowanie programu? 4. Wskaż elementarne metody ułatwiające proces odpluskwiania programu? 5. Linker może dołączać biblioteki do programu w sposób statyczny i dynamiczny. Czym różnią się te dwa sposoby? Jak stwierdzić, jakie biblioteki dynamiczne zostały dołączone do programu? Zadania 1. Zapisz za pomocą diagramu algorytm pozwalający na posortowanie trzech liczb. 2. Zapisz za pomocą diagramu algorytm kodujący tekst za pomocą szyfru Cezara. 3. Napisz najkrótszy z możliwych program w języku C. 4. Napisz program wyliczający liczby Fibonacciego. 5. Napisz program wypisujący przedziały, w których zadana funkcja kwadratowa przyjmuje wartości poniżej zera.

Wprowadzenie 32 Indeks Literatura Materiały dostępne w sieci www Zawartość tematyczna wykładu Środowisko pracy Etapy pracy nad programem Edytor GNU Emacs Przykład programu w C Diagram programu Kompilacja programów wywołania przykłady Uruchamianie programów