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

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

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

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Programowanie strukturalne język C - wprowadzenie

Programowanie strukturalne i obiektowe

2 Przygotował: mgr inż. Maciej Lasota

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

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

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

PROGRAMOWANIE w C prolog

Język ludzki kod maszynowy

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

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

Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28:

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Zmienne, stałe i operatory

Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia. Krzysztof Banaś Podstawy programowania 1

Wykład 1

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

Język C - podstawowe informacje

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Program w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59:

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

1 Podstawy c++ w pigułce.

Wstęp do Programowania, laboratorium 02

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

Tablice, funkcje - wprowadzenie

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Języki programowania - podstawy

1 Podstawy c++ w pigułce.

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

Microsoft IT Academy kurs programowania

Wstęp do programowania 1

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

Język C zajęcia nr 11. Funkcje

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

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

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

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

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

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawy programowania w języku C

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Programowanie Proceduralne

Bardzo szybkie podsumowanie: wykład 1 wer. 6 z drobnymi modyfikacjami!

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

PODSTAWY PROGRAMOWANIA W C. Bibliografia W-1. Dr. Inż. Hab. Siergiej Fialko, PK,

Elementarne wiadomości o języku C

Elementy pliku źródłowego w języku C

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

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wstęp do programowania. Wykład 1

( wykł. dr Marek Piasecki )

1. Wprowadzanie danych z klawiatury funkcja scanf

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

KURS C/C++ WYKŁAD 1. Pierwszy program

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,

Formatowane (tekstowe) wejście/wyjście. Binarne wejście/wyjście.

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

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

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

MATERIAŁY DO ZAJĘĆ II

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Język ANSI C. Pierwsze starcie. Programowanie Proceduralne 1

Podstawy programowania C. dr. Krystyna Łapin

ECLIPSE wnioski z dwóch pierwszych laboratoriów

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Podstawy Programowania Podstawowa składnia języka C++

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

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Programowanie obiektowe

Wstęp do programowania

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

IX. Wskaźniki.(3 godz.)

ZMIENNE P R O G R A M O W A N I E C + +

Podstawy Programowania.

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

Podstawy programowaniu. Wykład: 3. Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Podstawy programowania, sem.

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

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

Funkcja (podprogram) void

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Podstawy Programowania. Składnia wyrażeń i instrukcji, złożoności obliczeniowej, operacje wejścia i wyjścia, definicja

Proces tworzenia programu:

Laboratorium 10: Maszyna stanów

Transkrypt:

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

Język C Język programowania ogólnego przeznaczenia Historia: M. Richards - BCPL - lata 60-te ubiegłego stulecia K. Thompson - B dla UNIX (DEC PDP-7) - 1970 wprowadzenie PDP-11 w 1970 roku D. Ritchie - nowe B dla PDP-11 - język C C staje się standardowym językiem UNIXa w latach 1983-88 standaryzacja C - ANSI C Literatura: B. W. Kernighan i D. M. Ritchie: Język ANSI C JiMP, JC/2006 w01 2

Język C język niskiego poziomu - język programowania systemów operacyjnych działa na znakach, liczbach całkowitych i zmiennoprzecinkowych, adresach, strukturach nie zawiera operacji na obiektach złożonych typu ciągi znaków, tablice, listy, pliki czy zbiory zapewnia tylko jednowątkowy mechanizm kontroli brak mechanizmu garbage collection nie definiuje operacji wejścia/wyjścia wszystkie operacje wyższego poziomu realizowane poprzez odwołanie się do funkcji JiMP, JC/2006 w01 3

Język C zwarty, mocny język duża swoboda programowania (zakłada się, że programista wie co robi) używanie standardu pozwala na dobrą przenośność oprogramowania standard definiuje też bibliotekę (operacje we/wy, operacje na znakach, przydzielanie pamięci) w oparciu o składnię C powstały języki takie jak C++ czy też Java JiMP, JC/2006 w01 4

Jak zacząć? stworzenie kodu źródłowego używając dowolnego edytora tekstu (standardowe rozszerzenie.c) kompilacja kodu - stworzenie kodu pośredniego (.o) konsolidacja (linkowanie) kodu pośredniego+bibliotek daje kod wykonywalny wykonanie (wywołanie kodu wykonywalnego) Linux: edytor: vi, emacs, piko, kompilacja: gcc -c prog1.c prog2.c wytworzy prog1.o, prog2.o konsolidacja: gcc prog1.o prog2.o lista_bibliotek -o wynik kompilacja+linkowanie: gcc prog1.c prog2.c lista_bibliotek -o wynik warto użyć flagi -Wall w czasie kompilacji JiMP, JC/2006 w01 5

Struktura programu Podstawową jednostką jest funkcja: typ nazwa_funkcji (lista_argumentów) { ciało funkcji } funkcje nie mogą być zagnieżdżone typ - określa typ zwracanej wartości nawiasy ( ) konieczne nawet gdy lista_argumentów jest pusta szczególna rola funkcji main od jej pierwszej instrukcji zaczyna się wykonywanie programu, a więc może być tylko jedna musi wystąpić w każdym programie! (w dowolnym pliku kodu) JiMP, JC/2006 w01 6

Raczkowanie #include <stdio.h> main() { printf(" czesc ziutek \n"); } Dyrektywa preprocesora włączenie standardowego we/wy definicja funkcji main początek ciała funkcji otoczonego przez { } wywołanie funkcji bibliotecznej printf printf - drukowanie ciągu znaków \n - znak nowej linii (escape sequence) prompt> gcc czesc.c -o czesc prompt>./czesc wynik programu to: kompilacja i linkowanie programu wywołanie (wykonanie) czesc ziutek JiMP, JC/2006 w01 7

Jak działa printf? #include <stdio.h> main() { printf(" czesc "); printf(" ziutek "); printf( \n "); } wiele wywołań printf bez użycia \n daje jedną linię tekstu Wyprowadza ciąg znaków zawartych w cudzysłowach (stała tekstową) na stdout Wynik to: czesc ziutek Sekwencje specjalne (escape sequence) \a - alarm \b - cofnięcie \f - nowa strona \n - nowa linia \r - powrót karetki drukarki \t - tabulacja pozioma \v - tabulacja pionowa \\ - backslash (znak \) \? - pytajnik \ - apostrof \ - cudzysłów \ooo - liczba ósemkowa (znak o kodzie ooo) \xhh - liczba szesnastkowa (znak o kodzie hh) JiMP, JC/2006 w01 8

#include <stdio.h> Zmienne i wyrażenia arytmetyczne /* drukuj tablice Fahrenheit-Celsius dla różnych wartości */ main() { int fahr,cels,low,up,krok; float fc; /* dolna granica w tablicy */ low = 0; } up = 300; /* górna granica*/ krok = 20; fahr = low; while(fahr<= up) { cels = 5*(fahr-32)/9; printf( %d\t%d\n,fahr,cels); fahr = fahr+krok; } Komentarz pomiędzy /* i */ jest ignorowany przez kompilator; dobre komentarze do kodu mają dużą wartość. Definicja zmiennych: nazwa_typu lista_nazw_zmiennych; muszą zaczynać się od litery lub podkreślenia nie mogą być słowami kluczowymi auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while JiMP, JC/2006 w01 9

Zmienne i wyrażenia arytmetyczne deklaracja powoduje rezerwację pamięci - znany jest adres rozmiar przydzielonej pamięci zależy od typu zmiennej oraz kompilatora czy też maszyny Typy podstawowe char - znak ( jeden znak lokalnego zbioru znaków) int - zmienna całkowita float - zmienna zmiennoprzecinkowa double - zmiennoprzecinkowa zmienna w podwójnej precyzji Mogą być modyfikowane przez: short - krótka zmienna long - długa zmienna signed - ze znakiem unsigned - bez znaku Można tworzyć również tablice, struktury i zbiory tych zmiennych. Operator sizeof(nazwa_typu) - liczba bajtów koniecznych do zapamiętania obiektu o typie nazwa_typu sizeof(char) wynosi 1, dla tablicy o rozmiarze n poda n*(rozmiar elementu w bajtach) JiMP, JC/2006 w01 10

Zmienne i wyrażenia arytmetyczne Operator przypisania = x = 30; /* przypisanie x wartości, podstawienie */ z = k+7.4; /* przypisanie z wartości wynikającej z prawostronnej operacji */ t = t+1; /* to wyrażenie ma sens bo w odróżnieniu od codziennego życia operator przypisania to nie jest logiczne porównanie oznaczane przez = */ g = d = (bb+8)/kk /* prawostronna łączność */ Wynik zależy od typu zmiennej, cf. int icel; float fcel; icel = 5*(fahr-32)/9; fcel = (5.0/9.0)*(fahr-32.0); JiMP, JC/2006 w01 11

Pełna składnia funkcji printf Formatowany wydruk na standardowy strumień outputowy: int printf(const char *format, arg1, arg2,...) Łańcuch znaków format służy do kontroli formatu wydruku i może zawierać: zwykłe znaki - kopiowane do wydruku specyfikacje wydruku kolejnych argumentów: zaczyna się od znaku % kończy znakiem formatu, czyli d,i int Postać dziesiętna o int Postać ósemkowa x,x int Postać szesnastkowa u int Liczba dziesiętna bez znaku c int Znak s char * Łańcuch znaków f double Liczba zmiennoprzecinkowa, [-]m.dddddd; zwyczajowa precyzja 6 e,e double Postać wykładnicza g,g double Postać f lub e,e % Drukowanie znaku % JiMP, JC/2006 w01 12

printf cd. Pomiędzy znakiem % a specyfikacją konwersji może wystąpić: znak minus - równanie do lewej strony, znak plus - liczba drukowana zawsze ze znakiem, spacja - jeśli pierwszy znak nie jest znakiem to wystąpi spacja, zero - uzupełnianie liczby zerami, liczba oznaczająca minimalną szerokość pola, znak kropki rozdzielający szerokość pola od precyzji, liczba oznaczająca precyzję: maksymalną liczbę znaków lub liczbę cyfr po przecinku dla liczby typu float, lub minimalną liczbę cyfr dla liczby całkowitej, literę h jeśli liczba całkowita ma być wydrukowana jako short lub literę l gdy ma być wydrukowana jako long lub double lub L dla liczb long double. JiMP, JC/2006 w01 13

printf cd. Przykłady: printf(format, ala ma kota ); format wydruk :%s: :ala ma kota: :%8s: :ala ma kota: :%.8s: :ala ma k: :%-8s: :ala ma kota: :%.15s: :ala ma kota: :%-15s: :ala ma kota : :%15.10s: : ala ma kot: :%-15.10s :ala ma kot : Wyjątki: printf( %.*s,max,string); - konwersja zgodna z nastepnym argumentem typu int! printf(s); źle działa jeśli łańcuch s zawiera znak %, printf( %s,s); jest bezpieczny. JiMP, JC/2006 w01 14

Formatowane wprowadzanie danych: scanf int scanf(char *format, arg1, arg2,...) wprowadza dane ze stdin zgodnie z opisem danym przez format i przypisuje je zmiennym określonym przez pozostałe argumenty (muszą być wskaźnikami) adres zmiennej x jest dany poprzez &x zwraca liczbę wczytanych i przypisanych wartości. format: % * (opcjonalnie) wstrzymanie przekształcenia h, l lub L (opcjonalnie) liczba (opcjonalnie) - maksymalna długość pola inne znaki - muszą wystąpić w strumieniu wejściowym int x,y; scanf( (%d,%d),&a,&b); na wejściu: (33,66) to a = 33 i b = 66 na wejściu: 33 66 da błąd! JiMP, JC/2006 w01 15