PODSTAWY INFORMATYKI wykład 1.

Podobne dokumenty
PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Język programowania PASCAL

PODSTAWY INFORMATYKI wykład 10.

PODSTAWY INFORMATYKI wykład 5.

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Programowanie komputerów

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

PODSTAWY INFORMATYKI wykład 6.

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Technologie informacyjne - wykład 12 -

Programowanie w Turbo Pascal

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

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

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

1 Wprowadzenie do algorytmiki

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

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

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

PODSTAWY INFORMATYKI wykład 4.

Podstawy programowania

Algorytmy. Programowanie Proceduralne 1

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Wstęp do programowania

Wstęp do informatyki

Algorytmy. Programowanie Proceduralne 1

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

Wstęp do programowania. Różne różności

2.Sprawdzanie czy podana liczba naturalna jest pierwsza Liczba pierwsza to liczba podzielna tylko przez 1 i przez siebie.

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

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

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

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

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

Podstawy i języki programowania

ECDL Podstawy programowania Sylabus - wersja 1.0

Algorytmy od problemu do wyniku

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

SZTUCZNA INTELIGENCJA

Definicje. Algorytm to:

Programowanie w języku Python. Grażyna Koba

Informatyka 1. Przetwarzanie tekstów

Algorytm. a programowanie -

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

PRZEWODNIK PO PRZEDMIOCIE

Zasady Programowania Strukturalnego

Języki i metodyka programowania

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Podstawy programowania w języku C

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

Instrukcja warunkowa i wyboru

KARTA KURSU. Wstęp do programowania

NAZWA PRZEDMIOTU/MODUŁU KSZTAŁCENIA:

Pascal - wprowadzenie

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Scenariusz lekcji. podać przykłady zalet użycia takiej instrukcji; opisać algorytm obliczania średniej n liczb;

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

Podstawy programowania.

Języki programowania zasady ich tworzenia

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

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

Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Niestacjonarne (stacjonarne / niestacjonarne)

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Podprogramy. Procedury

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

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

Wrocław, dn. 19 kwietnia 2006 roku. Anna Kaleta Piotr Chojnacki IV rok, informatyka chemiczna Liceum Ogólnokształcące nr 10 we Wrocławiu

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Informatyka 1. Wyrażenia i instrukcje cd., ręczna symulacja, operacje wejścia/wyjścia

Zapisywanie algorytmów w języku programowania wysokiego poziomu

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

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Tablice (wstęp) Rzut okiem na języki programowania

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Wstęp do programowania

Podstawy Programowania

Podstawy programowania

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

Algorytmika i pseudoprogramowanie

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

WSTĘP DO INFORMATYKI WPROWADZENIE DO ALGORYTMIKI

Programowanie, algorytmy i struktury danych

Algorytm. Krótka historia algorytmów

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Podstawy programowania

Algorytmy i struktury danych - opis przedmiotu

PLIKI TEKSTOWE F C E 30 0D 0A 42 6F 72 6C 61 6E 64 1A T U R B O _ P A S C A L _ 7. 0

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Delphi Laboratorium 3

KURS PASCAL A. 1.Wprowadzenie

Wprowadzenie komentarzy do programu

EGZAMIN MATURALNY OD ROKU SZKOLNEGO

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Transkrypt:

PODSTAWY INFORMATYKI wykład 1. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutniacza w Krakowie WEAIiE, Katedra Automatyki http://www.agh.edu.pl Mickiewicza Av. 30, 30-059059 Cracow, Poland

Czym będziemy się zajmować? Pojęcia dotyczące informatyki i programowania Język programowania Pascal i styl programowania Systemy kodowania liczb i konwersje Błędy obliczeniowe, zaokrągleń i ich eliminacja Struktury danych zalety i wady, wykorzystanie i dobór Modelowanie świata i projektowanie rozwiązań Algorytmy operujące na różnych strukturach danych Sortowanie i wyszukiwanie danych Badanie i wyznaczanie złożoności algorytmów Efektywność i złożoność obliczeniowa i pamięciowa Kierunki rozwoju informatyki: Sztuczna inteligencja i biocybernetyka Lingwistyka komputerowa Bazy i hurtownie danych Szyfrowanie i kryptografia Sieci komputerowe i Internet Wykład 1. Strona 2.

Zasady zaliczenia przedmiotu 1. Obecność na wykładach i laboratoriach obowiązkowa 2. Kolokwium w 2. połowie semestru na laboratoriach 3. Projekty zaliczeniowe w Pascalu na laboratoriach 4. Egzamin pisemny na ostatnim wykładzie Punktacja, oceny i zwolnienia 10 pkt - kolokwium 10 pkt - projekty zaliczeniowe 2 pkt - wykonanie projektów zaliczeniowych w sposób wyjątkowy 21 22 pkt 6,0 (cel) zwolniony z egzaminu 19 20 pkt 5,0 (bdb) zwolniony z egzaminu 17 18 pkt 4,5 (+db) 15 16 pkt 4,0 (db) 13 14 pkt 3,5 (+dst) 11 12 pkt 3,0 (dst) 0 10 pkt 2.0 (ndst) Wykład 1. Strona 3.

Pojęcia podstawowe: informatyka i algorytm Informatyka to dziedzina nauki i techniki zajmująca się ogółem zagadnień automatyzacji przetwarzania informacji. Algorytm to pewien przepis (opis sposobu) wykonania określonego zadania lub rozwiązania problemu wyrażony za pomocą skończonego uporządkowanego ciągu jasno zdefiniowanych operacji, które wykonawca (np. komputer) rozumie i potrafi wykonać. Algorytm opisuje (krok po kroku) sposób przekształcania danych wejściowych w dane wyjściowe zgodnie z celem zadaniem. Algorytm opisuje obiekty, na których są wykonywane działania realizujące postulaty zadania, uwzględniając kolejność ich wykonywania. Działania algorytmu zapisane w pewnej określonej kolejności nazywamy krokami algorytmu. Wykład 1. Strona 4.

Przykład algorytmu Przykład: Obsługa automatycznego garażu wielopoziomowego: Dane wejściowe: c = ciężar samochodu Wynik: n = numer poziomu lub brak miejsca (n=0) Algorytm: (1) Zważ samochód na automatycznej wadze, ciężar c ; krok (2) (2) Jeśli c > 10 T to krok (6), inaczej krok (3) (3) Jeśli c > 5 T to krok (5), inaczej krok (4) (4) Jeśli jest miejsce na poziomie III to "WJEDŹ NA POZIOM III"; zmniejsz liczbę miejsc na poziomie III; STOP, inaczej krok (5) (5) Jeśli jest miejsce na poziomie II to "WJEDŹ NA POZIOM II"; zmniejsz liczbę miejsc na poziomie II; STOP, inaczej krok (6) (6) Jeśli jest miejsce na poziomie I to "WJEDŹ NA POZIOM I"; zmniejsz liczbę miejsc na poziomie I; STOP, inaczej krok (7) (7) "NIESTETY BRAK MIEJSCA" ; STOP Wykład 1. Strona 5.

Pojęcia podstawowe: program i programowanie Program opisuje proces przekształcania danych wejściowych w dane wyjściowe według pewnego algorytmu. Program zapisywany jest w języku programowania (np. PASCAL, C, JAVA, BASIC, FORTRAN, ASEMBLER) w postaci ciągu instrukcji ściśle według reguł i składni danego języka programowania. Dane wejściowe są dostarczane do programu przez użytkownika lub inny program czy też urządzenie wejściowe. Dane wyjściowe generowane są przez program i stanowią wyniki działania programu. Programowanie polega na zapisywaniu algorytmów w formie programów zrozumiałych dla komputera. Programowanie to proces projektowania, tworzenia, testowania, modyfikowania i utrzymania kodu źródłowego programów. Wykład 1. Strona 6.

Języki programowania Język programowania to zbiór zasad i reguł syntaktycznych i semantycznych, które opisują z wykorzystaniem specyficznych ciągów symboli, jak należy zbudować wyrażenia, żeby je komputer mógł poprawnie zinterpretować i wykonać. Program zapisany w języku programowania nazywamy kodem źródłowym w danym języku programowania. PASCAL jest to język strukturalny wyższego poziomu, który umożliwia zapis algorytmów i ich kompilację na postać zrozumiałą przez komputer, którą nazywany kodem maszynowym. Pascal powstał na bazie Algola, który ewoluował z Fortranu. Obecny język Delphi bazuje na Pascalu. Kod źródłowy w danym języku programowania podlega dalszej translacji do kodu maszynowego danego komputera lub do kodu języka pośredniego albo też może być na bieżąco interpretowany w trakcie jego wykonywania. Proces zamiany kodu źródłowego na kod maszynowy lub kod języka pośredniego nazywamy kompilacją dokonywaną przed uruchomieniem programu. Proces zamiany kodu źródłowego lub kodu języka pośredniego na kod maszynowy w trakcie wykonywania programu nazywamy interpretacją kodu. Wykład 1. Strona 7.

Język programowania PASCAL Rozróżniamy następujące instrukcje: procedury, funkcje, przypisania, puste, skoku, sekwencji, warunkowe, wyboru, iteracyjne, pętli, wiążące. Instrukcje procedury Nazwa_procedury; Nazwa_procedury ( <LISTA_PARAMETRÓW_AKTUALNYCH> ); Przykłady: Exit; Writeln ('Dzień dobry' ); Readln ( dzien, miesiac, rok ); Write ( 'liczba przykladow = ',n ); Assign ( plik, 'dane.txt' ); UWAGA! Liczba, kolejność i typy parametrów muszą być zgodne z definicją procedury. Wykład 1. Strona 8.

Instrukcje przypisania Nazwa_zmiennej := <WYRAŻENIE>; Nazwa_funkcji := <WYRAŻENIE>; Przykłady: srednia := (a+b)/2; dataur.miesiac := 5; wektor[1] := wektor_roboczy; nwd := c; klasa[1].uczen.nazwisko := 'Jan'+' '+'Nowak ; UWAGA! Typ wyrażenia musi być zgodny z typem zmiennej. Instrukcja pusta Przykłady:... IF <WARUNEK> THEN {*} ELSE <INSTRUKCJA>...... REPEAT {*} UNTIL...... BEGIN {*} ; {*} ; {*}... UWAGA! W miejscach oznaczonych {*} występuje instrukcja pusta. Wykład 1. Strona 9.

Instrukcja skoku GOTO <ETYKIETA> Przykład: LABEL 13; { deklaracja etykieta numer 13 }... { Deklaracja, skok i instrukcja } GOTO 13; { etykietowana muszą znajdować }... { się w tym samym bloku. } 13 : <INSTRUKCJA>; {etykieta miejsce skoku} UWAGA! Nie należy używać bez wyraźnej potrzeby! Zaburza dobry styl programowania! { komentarz } znaki komentarza w PASCALu Wykład 1. Strona 10.

Instrukcja sekwencji BEGIN <CIĄG_INSTRUKCJI> <CIĄG_INSTRUKCJI> <INSTRUKCJA> <CIĄG_INSTRUKCJI> <CIĄG_INSTRUKCJI>; <INSTRUKCJA> Przykład: BEGIN Write('podaj dwie liczby calkowite '); Readln(a,b); c:=a+b; Writeln(a,'+',b,'=',c) { brak średnika przed end! } Instrukcje w języku programowania PASCAL oddzielamy średnikiem poza pewnymi wyjątkami! Wykład 1. Strona 11.

Instrukcje warunkowe IF <WARUNEK> THEN <INSTRUKCJA> IF <WARUNEK> THEN <INSTRUKCJA> ELSE <INSTRUKCJA> Przykłady: IF x<0 THEN x:=-x; { to samo, co x:=abs(x) } IF c>d THEN c:=c-d ELSE d:=d-c; IF delta>0 THEN BEGIN x1 := (-b-sqrt(delta))/(2*a); {Sqrt oblicza pierwiastek} x2 := (-b+sqrt(delta))/(2*a) ELSE IF delta=0 THEN x1 := -b/2/a {Uwaga na zagnieżdżanie!} ELSE {nic nie rób} 1) x:=0; IF a>b THEN BEGIN IF c>a THEN x:=5 ELSE x:=2 ; 2) x:=0; IF a>b THEN BEGIN IF c>a THEN x:=5 ELSE x:=2; 3) x:=0; IF a>b THEN IF c>a THEN x:=5 ELSE x:=2 ; a b c 1) x 2) x 3) x 7 6 8 5 5 5 7 6 4 2 0 2 6 7 8 0 2 0 Wykład 1. Strona 12.

Instrukcja wyboru CASE <WYRAŻENIE> OF <SEKW.INSTR.WYB.> <SEKW.INSTR.WYB.> <INSTR.WYB.> <SEKW.INSTR.WYB.> <SEKW.INSTR.WYB.>; <INSTR.WYB.> <INSTR.WYB.> <ETYKIETY>: <INSTRUKCJA> <ETYKIETY> <ETYKIETA> <ETYKIETY> <ETYKIETY>, <ETYKIETA> <ETYKIETA> <STAŁA> <ETYKIETA> <STAŁA>.. <STAŁA> Przykłady: CASE numer_dnia_tygodnia OF 0 : Writeln ( 'niedziela ' ); 1 : Writeln ( 'poniedziałek' ); 2 : Writeln ( 'wtorek ' ); 3 : Writeln ( środa ' ); 4 : Writeln ( 'czwartek ' ); 5 : Writeln ( 'piątek ' ); 6 : Writeln ( 'sobota ' ); Wykład 1. Strona 13.

Instrukcja wyboru - przykłady CASE punkty OF 0.. 10 : ocena := 'niedostateczny ; 11.. 12 : ocena := dostateczny ; 13.. 14 : ocena := + dostateczny ; 15.. 16 : ocena := dobry ; 17.. 18 : ocena := + dobry ; 19.. 20 : ocena := bardzo dobry ; 21.. 22 : ocena := celujący ; ELSE ocena := 'nieklasyfikowany' CASE miesiac OF 4,7 : {instrukcja pusta! }; 1,10 : redukt := redukt + 1; 5 : redukt := redukt + 2; 8 : redukt := redukt + 3; 2,3,11 : redukt := redukt + 4; 6 : redukt := redukt + 5; 9,12 : redukt := redukt + 6; CASE miesiac OF 1,3,5,7,8,10,12 : liczba_dni := 31; 4,6,9,11 : liczba_dni := 30; 2 : IF (rok MOD 4)=0 THEN liczba_dni := 29 ELSE liczba_dni := 28 UWAGI: <WYRAŻENIE> musi być typu wyliczeniowego, <ETYKIETY> muszą być typu <WYRAŻENIE>, Zbiory etykiet muszą być rozłączne, <WYRAŻENIE> musi przyjmować wartość którejś <ETYKIETY> Wykład 1. Strona 14.

Instrukcje iteracji i pętli WHILE <WARUNEK> DO <INSTRUKCJA>; REPEAT <CIĄG_INSTRUKCJI> UNTIL <WARUNEK>; FOR <ZMIENNA> := <WP> TO <WK> DO <INSTRUKCJA>; FOR <ZMIENNA> := <WP> DOWNTO <WK> DO <INSTRUKCJA>; UWAGI: <WP - wyrażenie początkowe <WK> - wyrażenie końcowe <ZMIENNA>, <WP>, <WK> muszą być tego samego typu porządkowego <ZMIENNA> nie może być jawnie modyfikowana wewnątrz pętli, jeżeli " TO " to <WP> <= <WK> jeżeli "DOWNTO " to <WP> >= <WK> Przykłady: REPEAT UNTIL Keypressed; WHILE Keypressed DO z:=readkey; {najczęściej stosowane} {czyszczenie bufora} Wykład 1. Strona 15.

Instrukcje iteracji i pętli - przykłady Przykład 1.: { obliczanie y = x^(-n), tj. x do potęgi -n } { x<>0, n>=0 } { x<>0, n>0 } { x<>0, n>0 } y := 1; y := 1; y := 1; i := n; i := n; FOR i := n DOWNTO 1 DO WHILE i>0 DO BEGIN REPEAT y := y/x; y := y/x; y := y/x; i := i-1 i := i-1 UNTIL i=0 Przykład 2.: { czytanie ciągu n danych: d[1],d[2],...,d[n] } czytaj(n); czytaj(n); czytaj(n); i := 1; i := 1; WHILE i<=n DO REPEAT FOR i:=1 TO n DO BEGIN czytaj(d[i]); czytaj(d[i]); czytaj(d[i]); i := i+1 i:=i+1 UNTIL i>n Wykład 1. Strona 16.

Instrukcje iteracji i pętli - przykłady Przykład 3. { czytanie z pliku danych } { wprowadzanie kolejnych } { gdy nie znamy ich liczby } { danych przez użytkownika } Reset ( plik ); n := 0; n := 0; REPEAT WHILE NOT Eof(plik) DO n := n + 1; BEGIN wprowadz(d[n]); n := n + 1; Write( Koniec? [t/n] '); Read(plik,d[n]) Readln(z); UNTIL z='t'; Dla poniższych przykładów dane są typy: CONST mx = 1000; { stała } TYPE student = RECORD imie,nazwisko,uczelnia,wydzial,kierunek: STRING[12]; rok, nrind : Integer ; VAR ls : Integer; { liczba studentów } baza : ARRAY [1..mx] OF student; ster : Char; { znak sterujący } Wykład 1. Strona 17.

Instrukcje iteracji i pętli - przykłady WITH <ZMIENNA> DO <INSTRUKCJA> Przykład: Zamiast pisać tak: BEGIN baza[25].imie := 'Jan'; baza[25].nazwisko := 'Nowak'; baza[25].uczelnia := 'UJ'; baza[25].kierunek := 'informatyka'; baza[25].rok := 1 można napisać tak: WITH baza[25] DO BEGIN imie := 'Jan'; nazwisko := 'Nowak'; uczelnia := 'UJ'; kierunek := 'informatyka'; rok := 1 Wykład 1. Strona 18.

Literatura i bibliografia: L. Banachowski, K. Diks, W. Rytter: Algorytmy i struktury danych, WNT, Warszawa, 2001 Z. Fortuna, B. Macukow, J. Wąsowski, Metody numeryczne, WNT, Warszawa, 1993. K. Jakubczyk, Turbo Pascal i Borland C++, Wydanie II, Helion, 2006. J. i M. Jankowscy, Przegląd metod i algorytmów numerycznych, WNT, Warszawa, 1988. A. Kiełbasiński, H. Schwetlick, Numeryczna algebra liniowa, WNT, Warszawa 1992. A. Kierzkowski, Turbo Pascal. Ćwiczenia praktyczne., Helion 2006. K. Koleśnik, Wstęp do programowania z przykładami w Turbo Pascalu, Helion, M. Sysło: Elementy Informatyki. A. Szepietowski: Podstawy Informatyki. R. Tadeusiewicz, P. Moszner, A. Szydełko: Teoretyczne podstawy informatyki. W. M. Turski: Propedeutyka informatyki. N. Wirth: Wstęp do programowania systematycznego. N. Wirth: ALGORYTMY + STRUKTURY DANYCH = PROGRAMY. Wykład 1. Strona 19.