SPOSÓB PRZETWARZA -NIA DANYCH

Podobne dokumenty
Cel stosowania metod i środków informatyki

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

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

Algorytm. Krótka historia algorytmów

Algorytm. a programowanie -

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

Programowanie komputerów

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Definicje. Algorytm to:

Podstawy Programowania Algorytmy i programowanie

Programowanie w języku Python. Grażyna Koba

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

ALGORYTMY I PROGRAMY

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

Podstawy Programowania

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

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

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

Algorytm. Krótka historia algorytmów

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

Technologie informacyjne - wykład 12 -

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

Języki programowania zasady ich tworzenia

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

1 Podstawy c++ w pigułce.

Język ludzki kod maszynowy

Algorytmy. Programowanie Proceduralne 1

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

Wprowadzenie do algorytmiki

Wstęp do Programowania, laboratorium 02

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytmy. Programowanie Proceduralne 1

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

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

Algorytmy, reprezentacja algorytmów.

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

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

Wstęp do programowania. Wykład 1

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!

Języki i metodyka programowania

Język programowania PASCAL

Algorytmy od problemu do wyniku

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

Praktyka Programowania

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Algorytmy i schematy blokowe

Podstawy programowania

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

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

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

Algorytm. Algorytmy Marek Pudełko

2.8. Algorytmy, schematy, programy

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

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Programowanie i techniki algorytmiczne

2 Przygotował: mgr inż. Maciej Lasota

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Zapisywanie algorytmów w języku programowania

Podstawy i języki programowania

Język C++ zajęcia nr 1

Algorytmy i struktury danych. wykład 2

Algorytmika i pseudoprogramowanie

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

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

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania

Historia modeli programowania

Programowanie w języku C++ Podstawowe paradygmaty programowania

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

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

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

1 Podstawy c++ w pigułce.

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Język C zajęcia nr 11. Funkcje

Metodyki i techniki programowania

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

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

Wstęp do programowania

Jerzy Nawrocki, Wprowadzenie do informatyki

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

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Podstawy Informatyki Języki programowania

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

Schematy blokowe. Algorytmy Marek Pudełko

Wykład z Technologii Informacyjnych. Piotr Mika

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

1. WSTĘP. Dr inż. Robert Wójcik, p. 313, C-3, tel

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

KARTA KURSU. Wstęp do programowania

EGZAMIN MATURALNY Z INFORMATYKI 17 MAJA 2016 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

Podstawy programowania wykład

Języki i paradygmaty programowania. I. Wprowadzenie

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Język C zajęcia nr 5

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

Podstawy Programowania 2

Transkrypt:

Język C zajęcia nr 1 Cel stosowania metod i środków informatyki Głównym celem stosowania metod i środków informatyki jest wspomaganie człowieka w procesie rozwiązywania problemów. Przykładowe rodzaje problemów: obliczenia numeryczne - realizacja złożonych obliczeń, przetwarzanie danych - realizacja prostych obliczeń na dużej liczbie danych (np. tworzenie listy płac, rozliczanie rozmów telefonicznych), obsługa systemów baz danych - systemy magazynowe, systemy rezerwacji biletów kolejowych lub lotniczych, symulacja komputerowa - modelowanie fragmentów rzeczywistości (systemów biologicznych, ekonomicznych, fizycznych), zapewnienie komunikacji - poczta elektroniczna, transmisja plików, strony WWW w sieci Internet, sterowanie procesami - np. sterowanie linią produkcyjną, wspomaganie nauczania - słowniki, testy, programy do nauki języków obcych, programy encyklopedyczne, gry i zabawy komputerowe. PROBLEM Reprezentacja cyfrowa Wyjście Modelowanie Wejście Obliczenia cyfrowe DANE Wyniki obliczeń cyfrowych Rozwiązanie problemu SPOSÓB PRZETWARZA -NIA DANYCH Maszyna

Dane stanowią reprezentację pewnych faktów, pojęć lub wielkości występujących w danym problemie. Sposób tej reprezentacji musi umożliwiać dalsze przetwarzanie danych. Algorytm - określony sekwencyjny sposób postępowania (przetwarzania danych) prowadzący do rozwiązania postawionego problemu. Twórcą algorytmu jest zawsze człowiek. Algorytm może być realizowany prze człowieka lub przez komputer. Wybrane definicje algorytmu: Władysław Turski, Propedeutyka informatyki, PWN: Przez algorytm będziemy rozumieć opis obiektów łącznie z opisem czynności, które należy wykonać z tymi obiektami, aby osiągnąć określony cel. Maciej Sysło, Algorytmy, WSiP, Algorytm jest przepisem opisującym krok po kroku rozwiązanie problemu lub osiągnięcie jakiegoś celu. Algorytmika - gałąź wiedzy zajmująca się algorytmami. Ciekawostki: Słowo algorytm pochodzi od nazwiska perskiego matematyka Muhammada ibn Musa al-chorezmi (przełom VIII i IX w. n.e.), którego nazwisko w języku łacińskim przyjęło postać: Algorismus. Uważa się, że pierwszym algorytmem stworzonym przez człowieka był podany przez Euklidesa algorytm wyznaczania największego wspólnego podzielnika dwóch dodatnich liczb całkowitych (IV wiek p.n.e.).

Pierwszym urządzeniem realizującym algorytm było krosno tkackie Jacquarda (1801, Francja). Sposób pracy maszyny (tkane wzory) zapisywane były na kartach perforowanych. Wzory kart perforowanych Jacquarda. Podstawowe cechy algorytmu Aby pewien sposób postępowania można było uznać za algorytm, musi on spełniać następujące warunki: dyskretność - algorytm składa się z szeregu realizowanych w odpowiedniej kolejności kroków. Każdy krok jest pewną operacją elementarną (np. dodaj dwie liczby) lub innym algorytmem (np. rozwiąż równanie kwadratowe), jednoznaczność - muszą istnieć ściśle określone zasady dotyczące kolejności wykonywania poszczególnych kroków algorytmu. Dla określonych danych wejściowych algorytm musi być zawsze realizowany w ten sam sposób, skończoność (finistyczność) - algorytm musi się zakończyć po zrealizowaniu skończonej liczby kroków. Wynikiem działania algorytmu może być rozwiązanie problemu lub informacja, że zadanie nie ma rozwiązania.

Dobry algorytm powinien spełniać również dwa dodatkowe postulaty: Efektywność - algorytm zapewnia uzyskanie rozwiązania w rozsądnym czasie, adekwatnym do rozmiaru rozwiązywanego problemu. Uniwersalność - ten sam algorytm rozwiązuje możliwie szeroką klasę problemów umożliwiając ich parametryzację. Problem szczegółowości algorytmów Przy zapisie algorytmu może być przyjęty różny poziom szczegółowości. Na różnych poziomach szczegółowości przyjmuje się inny zestaw operacji elementarnych (a więc takich, które mogą być zrealizowane przez maszynę lub człowieka bez dodatkowych objaśnień). Algorytm obliczania wartości y = a + b c + d

Rozważmy niżej opisaną maszynę. Maszyna umie wykonywać następujące czynności: - wczytywać liczbę podaną na wejściu do rejestru A, - przesyłać zawartość rejestru A na wyjście, - przesyłać zawartość A do rejestrów R1 i R2 i na odwrót, - sprawdzać, czy A = 0 - wykonywać dwuargumentowe operacje +, -, *, / na zawartościach A i R1 lub A i R2, umieszczając wynik w A. WEJŚCIE A +, -, *, / WYJŚCIE R1 R2 Program Algorytm zrozumiały dla maszyny: Krok 1. Wczytaj wartość c do rejestru A Krok 2. Prześlij wartość A do rejestru R1 Krok 3. Wczytaj wartość d do rejestru A Krok 4. Wykonaj dodawanie A + R1, umieszczając wynik w A Krok 5. Jeżeli A = 0 to zgłoś komunikat o błędzie dzielenia przez 0 i zakończ obliczenia, w przeciwnym wypadku przejdź do kroku 6. Krok 6. Prześlij wartość A do rejestru R1 Krok 7. Wczytaj wartość a do rejestru A Krok 8. Prześlij wartość A do rejestru R2 Krok 9. Wczytaj wartość b do rejestru A Krok 10. Wykonaj dodawanie A + R2, umieszczając wynik w A Krok 11. Wykonaj dzielenie A / R1, umieszczając wynik w A Krok 12. Drukuj zawartość A i stop.

Bardziej przyjazny dla człowieka ale niezrozumiały bezpośrednio dla maszyny sposób zapisu algorytmu: Krok 1. Wczytaj a, b, c, d Krok 2. Oblicz y = c + d Krok 3. Jeżeli y = 0 to - drukuj komunikat o błędzie w przeciwnym przypadku - oblicz y = (a + b) / y - drukuj y Krok 4. Stop. Problem efektywności (złożoności obliczeniowej) algorytmów Często istnieje wiele różnych algorytmów służących rozwiązaniu tego samego zadania. W takiej sytuacji należy wybrać ten, który charakteryzuje się najmniejszą złożonością obliczeniową. Złożoność obliczeniowa algorytmu ilość zasobów komputerowych potrzebnych do realizacji algorytmu. Do podstawowych zasobów zalicza się czas działania (złożoność czasowa) i ilość zajmowanej pamięci (złożoność pamięciowa). Złożoność obliczeniowa jest uzależniona od wielkości zadania (jest funkcją wielkości zadania). Czas potrzebny na rozwiązanie pewnego problemu przez komputer można zredukować dwoma sposobami: można zastosować szybszy komputer, można zmodyfikować sposób rozwiązywania problemu (algorytm).

Sposoby zapisu algorytmów zapis w języku naturalnym - z uwagi na niejednoznaczność i małą precyzję opis taki jest rzadko stosowany, Jeżeli ciąg wejściowy nie jest pusty, to pobierz kolejny znak z wejścia, a w przeciwnym przypadku zdejmuj kolejne znaki umieszczone na stosie i przekazuj je na wyjście, a po opróżnieniu stosu zatrzymaj się. Jeżeli znak pobrany z wejścia jest operandem, to przekaż go bezpośrednio na wyjście... zapis przy pomocy notacji matematycznej - bardzo precyzyjny, ale nie posiada pełnych możliwości w zakresie opisu struktury algorytmu, 2 Algorytm znajdowania pierwiastków równania kwadratowego ax + bx + c = 0 = b 2 4ac x 1 = b 2a x 2 = b + 2a W zależności od wartości, a raczej znaku, wyróżnika rozwiązywane równanie ma: dwa różne pierwiastki rzeczywiste ( >0), jeden podwójny pierwiastek rzeczywisty ( =0), dwa różne pierwiastki zespolone ( <0). zapis przy pomocy schematów blokowych - graficzny sposób opisu kolejnych kroków postępowania,

Algorytm rozwiązywania równania kwadratowego - schemat blokowy

Bloki a) początek algorytmu b) koniec algorytmu c) opis czynności d) blok warunkowy

zapis przy pomocy języków programowania - umożliwia zapis algorytmu w sposób zrozumiały przez komputer (i w większości przypadków przez człowieka). Program zawiera: opis obiektów na których wykonywane będą operacje, opis czynności wykonywanych w trakcie realizacji algorytmu. Uwagi: Program ma postać tekstu, na który składa się opis danych oraz instrukcje opisujące algorytm, Każdy język programowania posiada inny zestaw instrukcji (różny od zestawu instrukcji procesora), Program zapisany przy pomocy języka programowania jest określany programem źródłowym. Przykład (język Pascal): program dwieliczby; var x,y:integer; begin writeln('podaj dwie liczby calkowite:'); read(x,y); write('x=',x,' y=',y) end. Program źródłowy musi zostać przetłumaczony do postaci binarnej (czyli na ciąg instrukcji zrozumiałych przez procesor).

Maszynowa reprezentacja programów... 00110101 11001101 10011011 11000011... Programista (człowiek) Zapis algorytmu i danych w języku programowania (wysokiego poziomu) Kompilator (program realizowany na komputerze) Zapis algorytmu i danych w języku maszynowym (niskiego poziomu) TRANSLACJA - proces tłumaczenia programu z postaci źródłowej na postać wynikową (binarną, maszynową). Wykonywany jest program w postaci binarnej (wynikowej, maszynowej). Translacja wykonywana jest przez program zwany translatorem. Dla każdego języka programowania istnieje odpowiedni program tłumaczący (translator danego języka).

Istnieją dwie podstawowe techniki translacji: kompilacja - wykonywana przez kompilator, interpretacja - wykonywana przez interpreter. Kompilator - tłumaczy cały program źródłowy na język maszynowy. Program w języku maszynowym zapisywany jest na dysk lub umieszczany w pamięci operacyjnej. Po zakończeniu kompilacji możliwe jest uruchomienie przetłumaczonego programu. Interpreter - tłumaczy kolejne instrukcje składające się na program. Po przetłumaczeniu instrukcji następuje jej realizacja. Proces tłumaczenia prowadzony jest na przemian z procesem realizacji. Obecnie większość translatorów działa na zasadzie kompilatora.

Ewolucja metod programowania Programowanie w językach wewnętrznych Programista posługuje się binarnymi kodami instrukcji procesora.... 00110101 11001101 10011011 11000011... Programowanie w językach symbolicznych (językach asemblerowych) Binarne kody rozkazów zastąpione zostały instrukcjami w postaci słów (lub ich skrótów) kojarzących się z wykonywaną czynnością. dispbyte PROC FAR ;--------------------------------- ; Procedura wyswietla szesnastkowo ; zawartosc rejestru DL ;--------------------------------- push ax push dx mov ah,02h mov dh,dl rol dl,4 and dl,0fh cmp dl,9 jbe lab1 add dl,7 lab1: add dl,30h int 21h mov dl,dh and dl,0fh cmp dl,9

Programowanie w językach wysokiego poziomu (I generacji) Języki wysokiego poziomu pozwalały na ukrycie szczegółów budowy i zasad działania komputerów i dostarczały instrukcji odpowiadających ogólnym pojęciom pozwalających na opisanie algorytmów. Przykładowe języki: Fortran (1954 r., John Backus) FORTRAN = FORmula Translator Opis algorytmu: Istniała możliwość stosowania instrukcji: podstawienia (przypisania), warunkowej, pętli (iteracji), skoku. Przy opisie algorytmy następuje rezygnacja ze stosowania rozkazów z listy rozkazów procesora i pojawia się możliwość stosowania pojęć o znacznie większym stopniu ogólności. Liczba możliwych do zastosowania instrukcji była stosunkowa niewielka, co wymuszało częste stosowanie instrukcji skoku. Struktury danych: W programach pojawiły się instrukcje umożliwiając deklarowania zmiennych (deklaracja zmiennej określenie nazwy i typu zmiennej), np. w języku FORTRAN: INTEGER I, J, K Ułatwione zostało operowanie na tekstach Pojawiła się możliwość korzystania ze złożonych typów danych (tablice, pliki).

Języki proceduralne Języki proceduralne pozwalają programiście na definiowanie podprogramów (procedur oraz funkcji). Przykładowy język programowania: Fortran II, Cobol, BASIC. Opis algorytmu: zdefiniowanie nowego podprogramu pozwala na rozszerzenie zbioru instrukcji dostępnych w stosowanym języku programowania. mechanizm parametrów zwiększył uniwersalność definiowanych instrukcji. Struktury danych: pojawiła się możliwość definiowania danych lokalnych (dostępnych tylko w podprogramie) oraz danych globalnych (dostępnych w całym programie), dostępność struktur danych uzależniona była od przeznaczenia języka programowania (w języku FORTRAN nacisk położono na struktury przydatne przy rozwiązywaniu problemów numerycznych /liczby zespolone, tablice/; język Cobol posiadał szereg narzędzi specjalizowanych w zakresie przetwarzania plików).

Programowanie strukturalne Programowanie zostało mocno powiązane z procesem projektowania. Sposób realizacji poszczególnych funkcji programu opisany jest przez składające się na program podprogramy. Przykładowe języki programowania: Pascal, C. Opis algorytmu: dopasowanie struktury programu do struktury algorytmu, zwiększenie liczby instrukcji sterujących (np.: różne postaci pętli, instrukcji warunkowych, wyboru, podstawienia) dzięki czemu można było wyeliminować instrukcję skoku bezwarunkowego Struktury danych: zwiększenie liczby dostępnych typów danych (tablice, rekordy, zbiory, pliki), możliwość stosowania dynamicznych struktur danych (stos, kolejka, listy, drzewa), możliwość definiowania własnych struktur danych. W programie wyraźnie uwidocznił się podział na dwie zasadnicze części: opis danych (służących do przechowywania informacji o stanie przetwarzanych obiektów), opis algorytmów (sposób przetwarzania obiektów). Idea programowania strukturalnego wprowadziła pewien porządek i systematykę w proces powstawania programów komputerowych.

Główny postulat programowania strukturalnego można sformułować w postaci następującego zalecenia dla programisty: Tworzony program musi być czytelny i zrozumiały nie tylko dla jego autora. Struktura programu powinna odpowiadać strukturze rozwiązywanego problemu. Istotna metoda programowania strukturalnego: Jedną z metod programowania strukturalnego jest programowanie metodą kolejnych ulepszeń. Zgodnie z tą metodą programowanie i konstruowanie algorytmu obejmuje szereg etapów. W pierwszym etapie skupiamy się na sprawach ogólnych. Pierwsza wersja rozwiązania nie zawiera szczegółów. W miarę postępu prac projektowych główny problem rozpada się na podproblemy. Rozważanych jest coraz więcej szczegółów. Podczas programowania cały proces obliczeń dzielimy na akcje, co odpowiada dzieleniu programu na instrukcje. Podział taki musi gwarantować, że z rozwiązania wszystkich cząstkowych podproblemów wynika rozwiązanie całości problemu. W programowaniu strukturalnym występują dwie różne odmiany metody kolejnych ulepszeń, które charakteryzuje przeciwstawny kierunek podążania od sformułowania problemu do utworzenia programu, który służy rozwiązywaniu postawionego zadania: metoda analityczna nazywana również zstępującą lub metodą Top-Down; programista tworzy kolejne wersje programu w każdej z nich uwzględniające coraz więcej szczegółów,

metoda syntetyczna nazywana także wstępującą lub Bottom-Up; programista buduje proste podprogramy złożone z niewielu instrukcji procesora, a dalej łączy je w większe moduły, aż do utworzenia pełnego programu. Obydwie metody prowadzą do powstania programów o wyraźnej strukturze odzwierciedlającej algorytm rozwiązania. Programowanie obiektowe Zasadniczą cechą programowania obiektowego jest łączne rozpatrywanie zagadnień dotyczących algorytmów i struktur danych. Wyrazem tego jest zmiana w sposobie reprezentacji rzeczywistych obiektów przejawiająca się w możliwości definiowania klas. Definicja klasy obejmuje opis stanu obiektu (dane charakteryzujące obiekt) oraz sposób zachowania (lub przetwarzania) obiektu. Języki programowania pozwalające na programowanie obiektowe: Simula (1967, pierwszy język obiektowy), Ada, Object Pascal, Modula-3, C++, Smalltalk, Java.

Ogólna charakterystyka języków C i C++ C powstał w 1972 roku, jest językiem wysokiego poziomu, ale posiada również mechanizmy bezpośredniego operowania na elementach sprzętowych komputera (np. rejestrach, pamięci operacyjnej), jest niezależny sprzętowo, program składa się z szeregu podprogramów, tekst źródłowy jest krótki (zwartość), jest bardzo popularny wśród programistów tworzących programy w systemie UNIX (kompilator języka C jest częścią składową systemu operacyjnego UNIX). C++ unowocześniona wersja języka C, powstał w roku 1985, umożliwia stosowanie techniki programowania obiektowego.

Język C Plik źródłowy. Tekst programu w języku C może być zapisany w jednym lub większej liczbie plików. Kompilacja każdego pliku źródłowego (modułu źródłowego) przebiega oddzielnie. Wszystkie uzyskane podczas kompilacji fragmenty wynikowe (moduły półskompilowane) są łączone ze sobą oraz innymi podobnymi fragmentami pochodzącymi z bibliotek, co prowadzi do utworzenia modułu wykonywalnego. Niezależna kompilacja modułów źródłowych: kotek1.c kotek1.obj kotek2.c kotek2.obj kotek3.c kotek3.obj Konsolidacja modułów półskompilowanych i bibliotek: kotek1.obj + kotek2.obj + kotek3.obj + bib_1.lib +... + bib_n.lib kotek.exe Pierwsze programy: Zadanie 1. Program wypisujący określony tekst. a) Uruchom Dev C++. Rozpocznij pracę z nowym projektem. Wybierz typ projektu: Console Application, opcje: Projekt C, nazwę: C01-1. Zapisz projekt w dostępnej lokalizacji (zalecane: Twój pendrive).

Zaproponowany zostanie początkowy, stały fragment programu w języku C, który należy potem uzupełnić: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { } system("pause"); return 0; Uwagi: #include <stdio.h> - dyrektywa preprocesora (informacja dla kompilatora), realizująca dołączenie standardowej biblioteki wejścia wyjścia umieszczonej w pliku stdio.h, która zawiera m.in. definicję funkcji printf #include <stdlib.h> - j.w. - dotyczy pliku stdlib.h zawierającego zestaw standardowych przydatnych funkcji main nazwa funkcji, funkcja o tej nazwie musi wystąpić w programie; program zaczyna działanie od początku funkcji main; funkcja ta powinna zwracać wartość całkowitą (int) (nie jest to wymóg języka C, a tylko zalecenie Dev C++) i może posiadać argumenty (lista argumentów w nawiasach po nazwie funkcji) return 0; instrukcja określająca wartość zwracaną przez funkcję main (w naszym przypadku wartość ta jest nieistotna) system funkcja wydająca komendę dla systemu operacyjnego, tekst komendy (przekazywanej tak jak w wierszu poleceń systemu operacyjnego) stanowi argument funkcji SYSTEM (w nawiasie), w przypadku komendy PAUSE

następuje wstrzymanie wykonania programu do chwili naciśnięcia dowolnego klawisza Skompiluj i uruchom program, zapisując pliki w tej samej lokalizacji co projekt. Program ten oczywiście nic nie robi. b) Zmodyfikuj program do postaci jak niżej, skompiluj i uruchom; jaki jest efekt wykonania programu? #include <stdio.h> #include <stdlib.h> int main() { printf("nasz pierwszy program\n"); system("pause"); return 0; } Uwagi: printf funkcja wypisująca określone wartości na urządzeniu wyjścia "tekst" ciąg znaków (stała tekstowa, tekst) ujęty w cudzysłowy, tu stanowi argument funkcji PRINTF \n sekwencja stanowiąca znak sterujący powodujący przejście do nowej linii (w kodzie ASCII dwa znaki: CR i LF) c) zmodyfikuj program tak, aby wypisywał tekst w postaci: Nasz pierwszy program

Zadanie 2. a) Program C01-2, wypisujący wartość całkowitą. Wprowadź, skompiluj i uruchom następujący program: #include <stdio.h> int i; int main() { i=1; printf("zmienna i ma wartosc: %d \n",i); system("pause"); return 0; } Uwagi: int i deklaracja zmiennej i typu całkowitego, i=1 przypisanie, zmiennej i przypisana zostaje wartość 1 %d specyfikator elementu listy wyjściowej dziesiętna liczba całkowita b) Wprowadź, skompiluj i uruchom program C01-3 przypisujący dwóm zmiennym całkowitym i, j wartości 1234 i 5678 i wypisujący wynik: Zmienne i, j mają odpowiednio wartości: 1234 5678

c) Napisz program C01-4 przypisujący dwóm zmiennym całkowitym i, j określone (dowolne) wartości i wypisujący ich sumę i różnicę w układzie: i = 1234, j = 5678 suma = roznica = Uwaga: wykorzystaj przypisanie postaci: suma = i+j; w wyniku którego najpierw obliczana jest wartość wyrażenia po prawej stronie znaku =, a następnie wartość ta zostaje przypisana zmiennej stojącej po lewej stronie =,pamiętaj aby zadeklarować odpowiednie zmienne!