Podstawy programowania w języku C



Podobne dokumenty
1. Wprowadzanie danych z klawiatury funkcja scanf

1. Podstawy budowania wyra e regularnych (Regex)

Podstawy programowania C. dr. Krystyna Łapin

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

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Zmienne, stałe i operatory

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

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

Elementy typografii. Technologia Informacyjna Lekcja 22

1. Wprowadzenie do C/C++

J ZYK C: STAŁE I ZMIENNE, TYPY DANYCH, OPERATORY I WYRA ENIA ARYTMETYCZNE

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

2 Przygotował: mgr inż. Maciej Lasota

1. Wprowadzenie do C/C++

1 Podstawy c++ w pigułce.

Rozliczenia z NFZ. Ogólne założenia. Spis treści

z programowania z przykładowymi rozwiązaniami

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

PERSON Kraków

Systemy mikroprocesorowe - projekt

Kilka zasad o których warto trzeba pamiętać

1 Podstawy c++ w pigułce.

Bazy danych. Andrzej Łachwa, UJ, /15

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

znaczeniu określa się zwykle graficzne kształtowanie tekstu za pomocą dostęp-

Użytkowanie elektronicznego dziennika UONET PLUS.

for (i=1; i<=10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

Spis treści PLIKI TEKSTOWE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF22

Programowanie strukturalne i obiektowe

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

2.Prawo zachowania masy

Typy danych i formatowanie

Wybrane mechanizmy programowania w językach C/C++

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

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

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

Harmonogramowanie projektów Zarządzanie czasem

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

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Zarządzanie Zasobami by CTI. Instrukcja

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

#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 ); }

Podstawowe pojęcia: Populacja. Populacja skończona zawiera skończoną liczbę jednostek statystycznych

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

#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 ); }

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1

PAKIET MathCad - Część III

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

Wyższa Szkoła Zarządzania i Bankowości w Krakowie

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Architektura komputerów

Niniejszy dokument obejmuje: 1. Szablon Umowy zintegrowanej o rachunek ilokata, 2. Szablon Umowy zintegrowanej o rachunek ilokata oraz o rachunek

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

Warunki Oferty PrOmOcyjnej usługi z ulgą

Podstawy programowania sterowników GeFanuc

Laboratorium 1: Podstawy języka c. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

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

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

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Podstawy programowania

VinCent Office. Moduł Drukarki Fiskalnej

Proces tworzenia programu:

Logowanie do systemu Faktura elektroniczna

MATLAB skalary, macierze, liczby zespolone, standardowe funkcje

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

Elementy cyfrowe i układy logiczne

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.

Projekt z dnia 2 listopada 2015 r. z dnia r.

Wtedy wystarczy wybrać właściwego Taga z listy.

( wykł. dr Marek Piasecki )

Kopia zapasowa i odzyskiwanie Podręcznik użytkownika

Poniżej instrukcja użytkowania platformy

Regulamin reklamy produktów leczniczych na terenie Samodzielnego Publicznego Zakładu Opieki Zdrowotnej Ministerstwa Spraw Wewnętrznych w Białymstoku

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

Komentarz Sesja letnia 2012 zawód: technik eksploatacji portów i terminali 342[03] 1. Treść zadania egzaminacyjnego wraz z załączoną dokumentacją

Warszawa, r.

SPRZĄTACZKA pracownik gospodarczy

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

1. Korzyści z zakupu nowej wersji Poprawiono Zmiany w słowniku Stawki VAT Zmiana stawki VAT w kartotece Towary...

Instrukcja obsługi panelu operacyjnego XV100 w SZR-MAX-1SX

K P K P R K P R D K P R D W

Umowa o pracę zawarta na czas nieokreślony

'()(*+,-./01(23/*4*567/8/23/*98:)2(!."/+)012+3$%-4#"4"$5012#-4#"4-6017%*,4.!"#$!"#%&"!!!"#$%&"#'()%*+,-+

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

EGZAMIN MATURALNY Z MATEMATYKI CZERWIEC 2012 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

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

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Parowanie urządzeń Bluetooth. Instrukcja obsługi

OSTRZEŻENIA DANE TECHNICZNE. Wbudowana bateria słoneczna oraz alkaliczna bateria manganowa (1,5 V LR44)

Centrum Informatyki "ZETO" S.A. w Białymstoku. Instrukcja użytkownika dla urzędników nadających uprawnienia i ograniczenia podmiotom w ST CEIDG

EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015

Pierwsze kroki. Krok 1. Uzupełnienie danych własnej firmy

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

ZAPYTANIE OFERTOWE NR 1

API transakcyjne BitMarket.pl

14.Rozwiązywanie zadań tekstowych wykorzystujących równania i nierówności kwadratowe.

Transkrypt:

Ćwiczenie 1 1.1. Pierwszy program w C Podstawy programowania w języku C Program w języku C, składa się ze zmiennych, stałych oraz funkcji. Zmienne i stałe służą do przechowywania danych, na których program operuje przy pomocy funkcji. W języku C program zawsze rozpoczyna się od głównej funkcji o nazwie main(). Funkcja ta, jak wszystkie funkcje, zwraca domyślnie wartość typu całkowitego (int). Nazwę funkcji można poprzedzić jawną deklaracją typu zwracanej wartości. Jeśli funkcja nie zwraca żadnej wartości, to należy ją zadeklarować jako typu void. W nawiasach () można umieścić listę argumentów. Jeśli funkcja jest bezargumentowa, to w nawiasach należy umieścić słowo void. Treść funkcji (blok instrukcji) umieszcza się w nawiasach klamrowych, które można zagęszczać. Oprócz funkcji zdefiniowanych przez programistę, program może wykorzystywać wcześniej zdefiniowane funkcje biblioteczne zawarte w plikach nagłówkowych, niezbędne do zapewnienia komunikacji z systemem operacyjnym i obsługujące operacje wejścia-wyjścia (klawiatura, monitor, dyski, drukarka). Aby skorzystać z funkcji bibliotecznych, należy dołączyć odpowiedni plik nagłówkowy umieszczając przed funkcją główną dyrektywę #include <nazwa pliku nagłówkowego>. Najczęściej dołączanym plikiem nagłówkowym jest stdio.h. Zawiera on deklaracje standardowych funkcji do obsługi wejścia/wyjścia. W treści programu można umieścić komentarz jednowierszowy poprzedzony znakiem // lub wielowierszowy rozpoczęty znakiem /* a zakończony znakiem */. W języku C rozróżnia się duże i małe litery. Program 1.1 #include <stdio.h> //dołączenie pliku nagłówkowego zawierającego funcję printf() void main( ) //nagłówek funkcji głównej typu nieokreślonego, bez parametrów { //nawias otwierający ciało funkcji printf("pierwszy program\n"); /* wywołanie funkcji printf() z jednym tekstowym argumentem */ } //nawias zamykający funkcję main() i koniec programu 1.. Typy i rozmiary danych W języku C mamy do dyspozycji predefiniowane podstawowe typy danych: char jeden bajt, mieści jeden znak ze zbioru znaków int typ całkowity, na platformach 3-bitowych zakres liczb reprezentowanych przez ten typ to - 31 do + 31-1; float typ zmiennoprzecinkowy pojedynczej precyzji, do przechowywania liczb rzeczywistych; double typ zmiennoprzecinkowy podwójnej precyzji, do przechowywania liczb rzeczywistych, ale z większą precyzją. Dodatkowo dostępne kwalifikatory do stosowania razem z typem int: short int któtki całkowity, long int długi całkowity, unsigned int całkowity bez znaku (tylko dodatnie). Słowo int może być opuszczone, a więc równoważny jest zapis: short, long, unsigned.

Aby określić rozmiar poszczególnych typów (zależy od parametrów komputera i stosowanego kompilatora), można skorzystać z operatora sizeof. Operator sizeof umożliwia określenie rozmiaru (ile bajtów zajmuje w pamięci) danego typu (również typy złożone jak tablice i struktury) lub zmiennej danego typu. Rozmiar ten jest obliczany na etapie kompilacji, a wartość zwracana jest typu int. Stałymi są liczby całkowite lub rzeczywiste bez znaku. Stałe całkowite mogą być przedstawiane w postaci znakowej (ujęte w apostrofy), dziesiętnej, ósemkowej lub heksagonalnej (szesnastkowej). Stałe znakowe są liczbami całkowitymi, więc można ich używać wszędzie tam, gdzie używa sie liczb całkowitych np. 'A' +5 daje w wyniku 70 czyli znak D, 'a' - 'A' jest równe 3 czyli znakowi spacji. Stałe rzeczywiste są typu double. Stała łańcuchowa (tekst) - jest ciągiem znaków ujętym w cudzysłowy. Na końcu zawiera zawsze ogranicznik czyli znak \0, dlatego zajmuje w pamięci o jeden bajt więcej niż wskazywałaby długość tekstu. Sekwencje sąsiadujących stałych łańcuchowych są traktowane jako jeden łańcuch np.: "Ala" "i As" jest równoważne "Ala i As", natomiast napisy "A" i 'A' nie są równoważne. Preprocesor języka C posiada możliwość definiowania stałych symbolicznych. Robi się to przy użyciu dyrektywy #define identyfikator ciąg_znaków. Zdefiniujemy np. stała symboliczną początek, która będzie miała wartość 10 #define początek 10 Jeśli teraz gdzieś w programie w wyrażeniu wystąpi słowo początek, to zostanie ono zamienione na liczbę 10, przed właściwą kompilacją. W języku C wszystkie zmienne muszą być zadeklarowane przed użyciem. Deklaracja składa się z typu i listy zmiennych tego typu, odzielonych przecinkami i musi być zakończona średnikiem. Deklaracjami są np.: float x; int a, b=; Deklaracje te są także definicjami - definicja powoduje przydział pamięci dla definiowanej zmiennej. Mówią one że x jest zmienną typu float (zmiennoprzecinkowa), oraz a i b są typu int (całkowite). Zmienna b podczas deklarowania została ponadto zainicjowana wartością. Zasięgiem deklaracji zmiennej jest najwęższy blok obejmujący tę deklarację. Jeśli w obszarze zasięgu zmiennej wystąpi w bloku wewnętrznym deklaracja zmiennej o tej samej nazwie, to przesłania ona zmienna zewnętrzną. 1.3. Wprowadzanie i wyprowadzanie danych. W programie 1.1 użyto funkcji bibliotecznej printf(). Argumentem tej funkcji, jest stała tekstowa Pierwszy program\n zawarta pomiędzy dwoma znakami cudzysłowu ". Sekwencja \n jest znakiem sterującym, który powoduje przejście kursora do nowej linii. Funkcja printf() może posiadać wiele argumentów oddzielonych przecinkami. Pierwszym jej argumentem jest ciąg znaków (umieszczony w cudzysłowie) zawierający tekst do wyświetlenia oraz nie wyświetlane ale interpretowane, znaki sterujące i wzorce konwersji dla wyprowadzanych zmiennych. Kolejnymi argumentami funkcji printf() są nazwy zmiennych, które mają być wyprowadzone, oddzielone przecinkami.

Znakami sterującymi są także: \t - znak tabulacji, \0 - null (znak oznaczający koniec tekstu), \b - backspace (znak cofnięcia), \r - znak powrotu karetki, \n - przesunięcie kursora do następnego wiersza, \' - apostrof, \" - cudzysłów, \a - dzwonek. Wzorzec konwersji poprzedzony jest znakiem %. Następnie może zawierać szerokość pola (dla liczb zmiennoprzecinkowych szerokość pola i ilość znaków po przecinku oddzielone kropką) oraz znak określający typ konwersji. Podstawowe typy konwersji dla zmiennych: - typu: int: i, d, u - dziesiętny, o -ósemkowy, x - szesnastkowy, - typu float: e, f, g - postać dziesiętna z wykładnikiem lub bez, - typu char: c, - typu char[]: s, - typu void*: p - para liczb szesnastkowych z dwukropkiem. Ponadto można stosować znaczniki: "-" - oznaczający wyrównywanie lewostronne, "+" - poprzedzenie liczby znakiem, spacja - poprzedzenie liczby spacją, # - poprzedzenie liczby ósemkowej zerem, a szesnastkowej symbolem 0x lub 0X. Do przeprowadzania podstawowych operacji we/wy często używa się funkcji putc(), getc(), putch (), getch(), puts(), gets(), printf(), scanf(), cprintf() Funkcjami przydatnymi do obsługi ekranu są zawarte w pliku conio.h: clrscr(), clreol(), gotoxy(x,y), textbackground(kolor), textcolor(kolor), window(x1,y1,x,y), gettext(x1,y1,x,y,bufor), puttext(x1,y1,x,y,bufor). Czyszczenie bufora klawiatury - funkcja fflush(stdin) lub instrukcja: while (kbhit()). Program 1.. #include <stdio.h> #include <conio.h> void main(void) { //funkcja czyszcząca ekran char imie[15]; //deklaracja tablicy typu char na przechowanie łancucha znaków int wiek; //deklaracja zmiennej typu całkowitego puts("podaj swoje imie"); /*funkcja wyprowadza na ekran łancuch znaków, który jest jej argumentem*/ gets(imie); /*funkcja pobiera z klawiatury łancuch znaków i umieszcza go w tablicy imie[ ]*/ puts("podaj swoj wiek"); scanf("%d", &wiek); /*funkcja pobiera wartość w postaci określonej przez łańcuch formatujący %d i umieszcza ją w pamięci pod adresem wskazywanym przez &wiek*/ textbackground(yellow); textcolor(red); gotoxy(30,10); //przesunięcie kursora ekranowego do 30 kolumny i 10 wiersza printf ("\n %s ma %d lat.", imie, wiek); /*wypisanie na ekran wartości zmiennej imie jako łancucha znakowego oraz wartości zmiennej całkowitej wiek */ 3

getch(); /*funkcja pobierająca znak z bufora klawiatury użyta w celu zatrzymania ekranu wynikowego */ } // koniec programu 1.4. Operatory arytmetyczne Do zapisania w języku C podstawowych działań matematycznych służą następujące operatory: + - dodawanie, - - odejmowanie, * - mnożenie, / - dzielenie, (dla argumentów całkowitych jest to dzielenie całkowitoliczbowe), % - reszta z dzielenia całkowitoliczbowego (modulo). 1.5. Operatory inkrementacji i dekrementacji (zwiększania i zmniejszania) Operator inkrementacji ++ jest jednoragumentowy i powoduje zwiększenie o 1 wartości swojego argumentu. Jeśli umieszczony jest przed zmienną, to zwiększa jej wartość przed jej wykorzystaniem w instrukcji, a jeśli jest umieszczony za zmienna, to zwiększy jej wartość po jej wykorzystaniu. Podobnie operator dekrementacji - - powoduje zmniejszenie o jeden wartości argumentu. 1.6. Operatory przypisania Wyrażenia, w których lewa strona powtarza się po prawej stronie operatora = można zapisać w bardziej zwartej postaci np.: a=a+1 jest równoważne a+=1 b=b*c jest równoważne b*=c Program 1.3. # include <stdio.h> # include <conio.h> # define STALA 0 void main() { int a=100, n; float x=.55555, y; char zn='a'; printf("a=%d\n",a); printf("osemkowo: a=%o\n",a); printf("szesnastkowo: a=%x\n",a); printf("znakowo: a=%c\n",a); printf("x=%8.f\n",x); printf("stala+a=%d\n",a+stala); printf("int(x)=%d\n",int(x)); //konwersja typu float do int printf("int(zn)=%d\n",zn); //konwersja typu char do int printf("char(a)=%c\n",char(a)); //konwersja typu int do char printf("++a=%d\n",++a); //użycie operatora inkrementacji printf("y=x*= %f\n",y=x*=); /*obliczamy od prawej strony*/ printf("y=n=a/=x-=1 %f\n",y=n=a/=x-=1); printf("a*=x++ %d\n",a*=x++); printf("podaj znak "); 4

} zn=getchar(); putchar(zn); printf("\nkod ASCII znaku: %c jest równy %d",zn, zn); getch(); 1.5. Obliczanie wartości wyrażeń Operatory w języku C mają określone priorytety i konieczne jest zapoznanie się z nimi. Operatory przypisania i jednoargumentowe są prawostronnie łączne; wszystkie inne są lewostronnie łączne. Tak więc a=b=c oznacza a=(b=c) natomiast a+b+c oznacza (a+b)+c. Wyrażenia, w których występuje wiele operatorów przypisania są opracowywane od prawej strony. Plik nagłówkowy math.h zawiera wiele funkcji matematycznych przydatnych w wykonywaniu obliczeń np. sin() - sinus, sqrt() - pierwiastek, abs() - wartość bezwzględna oraz predefiniowane stałe M_PI oznaczającą liczbę pi (π) czy M_E - stałą Eulera e. Programy do samodzielnego napisania: 1. Jaki znak w kodzie ASCII odpowiada podanej z klawiatury liczbie naturalnej?. Jaki jest rozmiar zmiennej typu long int? 3. Zapisać liczbę 35 w systemie ósemkowym. 4. Obliczyć wartości pierwiastków równania kwadratowego 3x -8x+1=0 z dokładnością do dwóch miejsc po przecinku. 5. W środkowym wierszu ekranu wypisać na środku 5 znaków * oddzielonych tabulatorem. 6. Jaki jest kod ASCII znaku <ENTER>? 7. Jaka jest wartość dziesiętna liczby heksadecymalnej F1? sin(x) cos( x) + 5x 8. Obliczyć wartości funkcji y = dla x =π. 1 x + 7 8 9. Obliczyć wartość końcową zmiennej a, jeśli wiadomo, że miała wartość początkową 1. ++a+=a-=b+=a/b=a++ 10. Obliczyć wartość wyrażenia 1 3 -e 4 +ln5-log 10 6 10. 5