enum nazewnik {lista elementów} lista zmiennych; typedef enum nazewnik (lista elementów) nazwa typu;

Wielkość: px
Rozpocząć pokaz od strony:

Download "enum nazewnik {lista elementów} lista zmiennych; typedef enum nazewnik (lista elementów) nazwa typu;"

Transkrypt

1 Rozszerzenia języka C Typ wyliczeniowy Typy wyliczeniowe poszerzają możliwości definiowania stałych (ułatwiają grupowanie stałych związanych z daną nazwą typu) i są stosowane wszędzie tam, gdzie wygodniej jest operować nazwami, a nie wartościami liczbowymi. enum nazewnik lista elementów lista zmiennych; lub typedef enum nazewnik (lista elementów) nazwa typu; Przykład: enum karta dwojka, trojka,..., walet, dama, krol, as; enum karta talia_1, talia_2; Poszczególnym elementom danego typu wyliczeniowego przypisane są wartości całkowitoliczbowe. Wartości domyślne: stałe wyliczeniowe otrzymują standardowo wartości całkowite 0,1,2, itd. np. enum kolory czarny, niebieski, zielony, fioletowy, bialy; czarny = 0 niebieski = 1 zielony = 2 fioletowy = 3 bialy = 4 Wartości ustalone: stałe wyliczeniowe mogą otrzymać wartości narzucone z góry np. enum poziomy niski=100, sredni=500, wysoki=2000; niski = 100 sredni = 500 wysoki = 2000

2 W przypadku, gdy po wartości narzuconej z góry następują stałe którym nie przypisano wartości, stałe definiowane są automatycznie przez kompilator np. enum kolory czarny= 1, niebieski, zielony, fioletowy=10, bialy; czarny = 1 niebieski = 0 zielony = 1 fioletowy = 10 bialy = 11 Operacje na zmiennych typu wyliczeniowego w języku C (jak na zmiennych typu całkowitego): enum kolory CZARNY, NIEBIESKI, ZIELONY, FIOLETOWY, BIALY; enum kolory k1; k1=0; k1=(enum kolory)1; k1=niebieski; k1=bialy+2; k1++; if(k1==zielony) printf( Zielona jest trawa ); Ponieważ elementy składowe typu wyliczeniowego są stałymi definiowanymi, dla lepszego rozróżnienia ich w tekście programu zaleca się je pisać dużymi literami.

3 #include <stdio.h> main() enum auta SYRENKA, FIAT125P, TRABI, ZAPORO, ZASTAWKA au; enum asortyment AUTA, WALCE, DESKI, TRAMPKI, LALKI=8 as; au=syrenka+2; switch (au) case SYRENKA: case FIAT125P: printf( \nnasze dobre auto ); break; case TRABI: printf( \nmodel biedny, ale zachodni ); break; case ZAPORO: case ZASTAWKA: printf( \nmodel post-kom... ); break; default: printf( \nniewiadomo co to za model ); break; as=trampki; printf( \nasortyment = %d,as); if(au==trampki) printf( \n Trabant jest trampek! ); else printf( \n Trabant nie jest trampek! ); Wydruk: Model biedny, ale zachodni Asortyment=3 Trabant nie jest trampek!

4 Parametry funkcji main Funkcja main może posiadać parametry formalne. Oznacza to, że program może być wywoływany (uruchamiany) z listą parametrów aktualnych napisanych w linii zlecenia systemowego. Funkcja main posiada następujący nagłówek: void main(int lpar, char *par[]) gdzie: lpar oznacza liczbę parametrów wywołania, par tablica dla zmiennych tekstowych o rozmiarze lpar. Ogólna postać linii zlecenia jest następująca: nazwa_programu parametr_1 parametr_2... parametr_n np. #include <stdio.h> main(int lpar, char *par[]) int n; printf( liczba parametrow funkcji main = %d\n,lpar); for(n=0; n<lpar; n++) printf( Parametr [%d] = %s\n,n,par[n]); Dla wywołania: program aaa bbb cccc zielony niebieski karo Wynik: Liczba parametrow funkcji main = 7 Parametr [0] = program.exe Parametr [1] = aaa Parametr [2] = bbb Parametr [3] = cccc Parametr [4] = zielony Parametr [5] = niebieski Parametr [6] = karo

5 Przykład programu kopiującego plik. Zakłada się, że nazwy pliku wejściowego i wyjściowego przekazywane są jako parametry wywołania funkcji main. #include <stdio.h> main (int lpar, char *par[]) FILE *plik_we, *plik_wy; int znak; plik_we=fopen(par[1], r ); plik_wy=fopen(par[2], w ); while((znak=fgetc(plik_we))!=eof) /*czytanie*/ putc(znak,plik_wy); fclose(plik_we); fclose(plik_wy); Uruchomienie programu: program nazwa_pliku_we nazwa_pliku_wy np. program plik plik_kop program plik.c con program con plik.txt /*kopiowanie*/ W przypadku braku parametru wywołania na ekranie pojawi się komunikat o błędzie: Null pointer assignment

6 Funkcje ze zmienną liczbą parametrów #include <stdio.h> #include <stdarg.h> #include <string.h> main() void sumal(long *suma, int n,...); void sumat(char *text, int n,...); long suma1=0, suma2=0; int dod=5; char text1[100]=, text2[200]=, napis[]= komputer ; sumal(&suma1, 3, 4, 5, 6); printf( suma1=%ld \n,suma1); sumal(&suma2, 9, 1, 2, 3, 4, dod, 6, 7, 8, 9); printf( suma2=%ld \n,suma2); sumal(&suma2, 5, 1, 2, 3, 4, dod); printf( suma2=%ld \n,suma2); sumat(text1, 2, aaaaa, bbbb ); printf( tekst1 = %s\n,text1); sumat(text2, 4, Program, w jezyku C, napis, Pentium IV ); printf( tekst2 = %s\n,text2); strcpy(napis, CD-ROM ); sumat(text2, 3, + drukarka, +,napis); printf( tekst2 = %s\n,text2); /* sumal sumowanie liczb calkowitych*/ void sumal (long *suma, int n,...) va_list stan; va_start (stan, n); while (n--) *suma+=va_arg(stan,int); va_end(stan);

7 /* sumat sumowanie tekstow*/ void sumat (char text[], int n,...) va_list stan; va_start (stan, n); while (n--) strcat(text, va_arg(stan,char*)); va_end(stan); Wydruk: suma1=15 suma2=45 suma2=60 tekst1=aaaaabbbb tekst2=program w jezyku C komputer Pentium IV tekst2=program w jezyku C komputer Pentium IV + drukarka + CD- ROM Wykorzystano trzy makroinstrukcje biblioteczne i typ pomocniczy va_list. Makroinstrukcja va_start dokonuje przygotowania do udostępnienia parametrów; makroinstrukcja va_arg udostępnia kolejne parametry określonego typu, reprezentowane przez... (trzykropek); makroinstrukcja va_end kończy czynności związane z udostępnianiem parametrów reprezentowanych przez trzykropek. Ogólna postać wywołania tak opracowanych funkcji jest następująca: nazwa_funkcji (&zm, lp, par1, par2,..., parn); gdzie: zm lp par1... parn oznacza nazwę zmiennej wynikowej, liczba parametrów bieżącego wywołania, kolejne parametry wywołania (określonego typu).

8 Funkcja max wartość największa z kilku liczb #include <stdio.h> #include <stdarg.h> main() void max(int *imax, int n,...); int a=12, b=55, c=33, d=99, e=44, f=77, imax; max(&imax, 6, a, b, c, d, e, f); printf( Max =%d\n,imax); max(&imax, 4, a, b, c, e); printf( Max =%d\n,imax); void max(int *imax, int n,...) va_list stan; int pom; *imax=-32767; va_start (stan, n); while(n--) pom=va_arg(stan, int); if(pom>*imax) *imax=pom; va_end(stan); Wynik: Max =99 Max =55

9 Funkcje otwarte: Funkcja zamknięta akcje wykonywane będą od początku do końca w sposób nieprzerwany bez oddania sterowania. Funkcja otwarta wykonuje część swoich akcji, zwraca sterowanie do innej funkcji, po pewnym czasie otrzymuje sterowanie z powrotem, wykonuje dalsze akcje, znowu oddaje sterowanie, itd. Funkcja otwarta pracuje w przeplocie czasowym z innymi funkcjami. Typowym przykładem aplikacyjnym mogą być procesy równoległe obsługiwane przez jeden procesor lub symulacja systemów dyskretnych zdarzeń. Rozważmy program, który realizuje pracę funkcji otwartych w sposób skuteczny, aczkolwiek nieco prymitywny, przy użyciu instrukcji skoku ( zakazanego ) goto oraz etykiet kontynuacyjnych. #include <stdio.h> enum etykiety_kontynuacji ET1, ET2, ET3, ET4, ET5, ETmax; main() void funkcja1 (int et, int a, float b); void funkcja2 (int et, float x, int y); int i; /* sekwencja uporzadkowanych wywolan*/ for(i=0; i<2; i++) funkcja1(et1, i+5, 7.7); funkcja2(et1, 8.8, i+6); funkcja1(et2, i+9, 1.1); funkcja2(et2, 5.5, i-6); funkcja1(et3, i-5, 1.1); funkcja2(et3, 5.5, i+6); i=10; /*wywolania swobodne */ funkcja1(et3, i+5, 7.7); funkcja2(et1, 8.8, i+6); funkcja1(et3, i+9, 1.1);

10 funkcja2(et4, 5.5, i-6); funkcja1(et1, i-5, 1.1); funkcja2(et2, 5.5, i+6); funkcja2(et3, 8.5, i-6); void funkcja1(int et, int a, float b) switch (et) case ET1: goto et1; case ET2: goto et2; case ET3: goto et3; default: printf( \nfunkcja1... ); printf( niepoprawna kontynuacja! ); et1: - sekwencja zaraz po starcie*/ printf( \nfunkcja1 (po et1) a=%d, a); et2: - dalszy ciag*/ printf( \nfunkcja1 (po et2) b=%g, b); et3: - dalszy ciag*/ printf( \nfunkcja1 (po et3) b=%g, b); void funkcja2(int et, float x, int y) switch (et) case ET1: goto et1; case ET2: goto et2; case ET3: goto et3; default: printf( \nfunkcja2... ); printf( niepoprawna kontynuacja! ); et1: - sekwencja zaraz po starcie*/

11 printf( \nfunkcja2 (po et1) ); if(y>(int)x) printf( y wieksze od x ); et2: /*@@@@ - dalszy ciag*/ printf( \nfunkcja2 (po et2) x=%g, x); else printf( x wieksze lub rowne y ); et3: /*@@@@ - dalszy ciag*/ printf( \nfunkcja2 (po et3) y=%i, y); Wynik: Funkcja1 (po et1) a=5 Funkcja2 (po et1) x wieksze lub rowne y Funkcja1 (po et2) b=1.1 Funkcja2 (po et2) x=5.5 Funkcja1 (po et3) b=1.1 Funkcja2 (po et3) y=6 Funkcja1 (po et1) a=6 Funkcja2 (po et1) x wieksze lub rowne y Funkcja1 (po et2) b=1.1 Funkcja2 (po et2) x=5.5 Funkcja1 (po et3) b=1.1 Funkcja2 (po et3) y=7 Funkcja1 (po et3) b=7.7 Funkcja2 (po et1) y wieksze od x Funkcja1 (po et3) b=1.1 Funkcja2... niepoprawna kontynuacja! Funkcja1 (po et1) a=5 Funkcja2 (po et2) x=5.5 Funkcja2 (po et3) y=4

12 Program bardziej zdyscyplinowany, każdy proces ma swoje lokalne atrybuty a w wywołaniach podawana jest tylko wartość etykiety kontynuacji. #include <stdio.h> enum etykiety_kontynuacji ET1, ET2, ET3, ET4, ET5, ETmax; main() void proces1 (int et); void proces2 (int et); /*uruchomienie i wznowienie procesow krok po kroku*/ proces1(et1); proces2(et1); proces1(et2); proces2(et2); proces1(et3); proces2(et3); proces1(et1); proces1(et2); proces1(et3); proces2(et1); proces2(et2); proces2(et3); void proces1(int et) static int a=10; /*atrybut procesu*/ static float b=100.; /*atrybut procesu*/ switch (et) case ET1: goto et1; case ET2: goto et2; case ET3: goto et3; default: printf( \nproces1... ); printf( niepoprawna kontynuacja! ); et1: /*@@@@ - sekwencja zaraz po starcie procesu*/ printf( \nproces1 (po et1) a=%d, a);

13 a++; et2: - dalszy ciag procesu1 (akcja)*/ printf( \nproces1 (po et2) b=%6.2f, b); b+=200.; et3: - dalszy ciag procesu1 (akcja)*/ printf( \nproces1 (po et3) b=%6.2f, b); b+=300.; void proces2(int et) static float x=50.; static int y=20; switch (et) case ET1: goto et1; case ET2: goto et2; case ET3: goto et3; default: printf( \nproces2... ); printf( niepoprawna kontynuacja! ); et1: - sekwencja zaraz po starcie procesu*/ printf( \nproces2 (po et1) ); y+=20; if(y>(int)x) printf( y wieksze od x ); x++; et2: /*@@@@ - dalszy ciag procesu2 (akcja)*/ printf( \nproces2 (po et2) x=%6.2f, x); x++; else

14 printf( x wieksze lub rowne y ); x+=5; et3: /*@@@@ - dalszy ciag procesu2 (akcja)*/ printf( \nproces2 (po et3) y=%i, y); y+=(int)x; Wynik: Proces1 (po et1) a=10 Proces2 (po et1) x wieksze lub rowne y Proces1 (po et2) b= Proces2 (po et2) x=55.00 Proces1 (po et3) b= Proces2 (po et3) y=40 Proces1 (po et1) a=11 Proces1 (po et2) b= Proces1 (po et3) b= Proces2 (po et1) y wieksze od x Proces2 (po et2) x=57.00 Proces2 (po et3) y=116

15 Dwie funkcje biblioteczne setjmp i longjmp istota ich działania. #include <stdio.h> #include <setjmp.h> #include <process.h> jmp_buf Bufor_adresu; main() int wartosc =999; printf( Zapamietanie stanu programu \n ); wartosc=setjmp(bufor_adresu); /*wartosc =0*/ printf( Miejsce dla powrotu...\n ); printf( Zwracana wartosc = %d...\n,wartosc); if(wartosc) printf( Akcja druga...\n ); printf( Zwracana warosc = %d...\n,wartosc); exit(wartosc); else printf( Akcja pierwsza...\n ); printf( Uruchomienie longjmp()...\n ); longjmp(bufor_adresu, wartosc); Wynik Zapamietanie stanu programu Miejsce dla powrotu... Zwracana warosc = 0... Akcja pierwsza... Uruchomienie longjmp()... Miejsce dla powrotu... Zwracana warosc = 1... Akcja druga... Zwracana warosc = 1...

16 Funkcja setjmp umożliwia zapamiętanie stanu programu, a konkretniej stanu rejestrów oraz flag procesora, w zmiennej typu jmp_buf predefiniowanego w pliku nagłówkowym setjmp.h. Funkcja setjmp posiada nagłówek: int setjmp(jmp_buf stprog) Rezultatem funkcji jest dana typu int o wartości 0, albo dana o wartości określonej przez longjmp w chwili powrotu. Stan programu zostaje zapamiętany w zmiennej stprog. Funkcja longjmp umożliwia powrót w miejsce, w którym zapamiętano stan wykonywania programu. Nagłówek funkcji longjmp jest następujący: void longjmp(jmp_buf stprog, int zm) Jeżeli zm reprezentuje daną o wartości 0, to przyjmuje się, reprezentuje daną o wartości 1 (po to, aby w miejscu odtworzenia /powrotu/ program mógł pójść dalej, w przypadku użycia instrukcji if). Program bez wymuszeń etykietowych switch oraz goto za to z funkcjami setjmp i longjmp. #include <stdio.h> #include <setjmp.h> #define AKCJA \ static jmp_buf stan; /*stan programu*/ \ static int pro=-1; /*zm. pomocnicza*/ \ if(pro!=-1) \ longjmp(stan,-1); #define POWROT \ pro=setjmp(stan); \ if(!pro) \ main() void proces1(void); void proces2(void);

17 /*uruchomianie i wznawianie procesow */ proces1(); proces2(); proces1(); proces2(); proces1(); proces2(); void proces1(void) static int a=10; /*atrybut procesu*/ static float b=100.; /*atrybut procesu*/ AKCJA /*@@@@ - sekwencja zaraz po starcie procesu*/ printf( \nproces1(po dawnym et1) a=%d,a); a++; POWROT /*@@@@ - dalszy ciag procesu1 (akcja)*/ printf( \nproces1(po dawnym et2) b=%6.2f,b); b+=200.; POWROT /*@@@@ - dalszy ciag procesu1 (akcja)*/ printf( \nproces1(po dawnym et3) b=%6.2f,b); b+=300.; POWROT void proces2(void) static float x=50.; /*atrybut procesu*/ static int y=20; /*atrybut procesu*/ AKCJA /*@@@@ - sekwencja zaraz po starcie procesu*/ printf( \nproces2 (po dawnym et1) ); y+=20; if(y>(int)x) printf( y wieksze od x );

18 else x++; POWROT - dalszy ciag procesu2 (akcja)*/ printf( \nproces2 (po dawnym et2) x=%6.2f, x); x++; POWROT printf( x wieksze lub rowne y ); x+=5; POWROT /*@@@@ - dalszy ciag procesu2 (akcja)*/ printf( \nproces2 (po dawnym et3) y=%i, y); y+=(int)x; POWROT Wynik Proces1 (po dawnym et1) a=10 Proces2 (po dawnym et1) x wieksze lub rowne y Proces1 (po dawnym et2) b=100.00; Proces2 (po dawnym et3) y=40 Proces1 (po dawnym et3) b=300.00;

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Funkcja (podprogram) void

Funkcja (podprogram) void Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji

Bardziej szczegółowo

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

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

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

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

Podstawy programowania komputerów

Podstawy programowania komputerów Podstawy programowania komputerów Wykład 14: Programowanie współbieżne w C Definicja programowania współbieżnego Programowanie współbieżne jest tworzeniem programów, których wykonanie powoduje uruchomienie

Bardziej szczegółowo

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

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

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal Instrukcja wyboru, pętle 2 wykład. Podstawy programowania - Paskal Tematy Instrukcja wyboru jeden z wielu wariantów: case Pętle while repeat for Instrukcje sterowania pętli break continue goto Instrukcja

Bardziej szczegółowo

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

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Typ znakowy Typ znakowy Typ wyliczeniowy # include

Bardziej szczegółowo

Wstęp do programowania 1

Wstęp do programowania 1 Wstęp do programowania 1 Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 12 Struktura dla dat - przykład #include struct Date { int y; short m; short

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

Programowanie strukturalne język C - wprowadzenie

Programowanie strukturalne język C - wprowadzenie Programowanie strukturalne język C - wprowadzenie Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Cechy programowania strukturalnego Możliwość

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 10 Co dziś będzie: Definiowanie struktury Deklarowanie zmiennych bȩda cych strukturami

Bardziej szczegółowo

Tablice, funkcje - wprowadzenie

Tablice, funkcje - wprowadzenie Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

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

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy

Bardziej szczegółowo

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

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym

Bardziej szczegółowo

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

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji? Zadanie 01 W przedstawionym ponizej programie w jezyku ANSI C w miejscu wykropkowanym brakuje jednej linii: #include... int main() { printf("tralalalala"); return 0; } A. B. "iostream" C.

Bardziej szczegółowo

Wykład 1

Wykład 1 Wstęp do programowania 1 Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświęcony językowi C i jego

Bardziej szczegółowo

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

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest

Bardziej szczegółowo

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

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy

Bardziej szczegółowo

Język C zajęcia nr 5

Język C zajęcia nr 5 Język C zajęcia nr 5 Instrukcja wyboru switch switch ( wyr ) inst Głównym przeznaczeniem instrukcji switch jest rozgałęzianie wykonania programu na wiele różnych ścieżek w zależności od wartości pewnego

Bardziej szczegółowo

Tablice deklaracja, reprezentacja wewnętrzna

Tablice deklaracja, reprezentacja wewnętrzna Tablice deklaracja, reprezentacja wewnętrzna Tablica jest zmienną złożoną z elementów tego samego typu. Obejmuje ona ciągły obszar pamięci operacyjnej dokładnie tak duży, aby zmieścić wszystkie jej elementy.

Bardziej szczegółowo

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

KURS C/C++ WYKŁAD 1. Pierwszy program KURS C/C++ WYKŁAD 1 Pierwszy program Tworzenie programu odbywa sie w dwóch etapach: 1. opracowanie kodu źródłowego 2. generowanie kodu wynikowego Pierwszy etap polega na zapisaniu algorytmu za pomocą instrukcji

Bardziej szczegółowo

Język C - podstawowe informacje

Język C - podstawowe informacje Język C - podstawowe informacje Michał Rad AGH Laboratorium Maszyn Elektrycznych 2014-12-05 Outline Program w języku C Funkcje Składnia Instrukcje sterujace Na koniec... Po kolei napisać program (zwykły

Bardziej szczegółowo

Programowanie w elektronice: Podstawy C

Programowanie w elektronice: Podstawy C Programowanie w elektronice: Podstawy C Projekt Matematyka dla Ciekawych Świata, Robert Ryszard Paciorek 2019-05-05 C / C++ są najpopularniejszymi językami kompilowanymi do kodu maszynowego

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.

Bardziej szczegółowo

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

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

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

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 programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski

Bardziej szczegółowo

Język C zajęcia nr 11. Funkcje

Język C zajęcia nr 11. Funkcje Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji

Bardziej szczegółowo

Operacje wejścia/wyjścia odsłona pierwsza

Operacje wejścia/wyjścia odsłona pierwsza Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

tablica: dane_liczbowe

tablica: dane_liczbowe TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica

Bardziej szczegółowo

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

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

Bardziej szczegółowo

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje

Bardziej szczegółowo

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą

Bardziej szczegółowo

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

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

PROGRAMOWANIE w C prolog

PROGRAMOWANIE w C prolog PROGRAMOWANIE w C prolog dr inż. Jarosław Stańczyk Uniwersytet Przyrodniczy we Wrocławiu Wydział Biologii i Hodowli Zwierząt Katedra Genetyki 1 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Co nie powinno być umieszczane w plikach nagłówkowych:

Co nie powinno być umieszczane w plikach nagłówkowych: Zawartość plików nagłówkowych (*.h) : #include #define ESC 27 dyrektywy dołączenia definicje stałych #define MAX(x,y) ((x)>(y)?(x):(y)) definicje makr int menu(char* tab[], int ilosc); struct

Bardziej szczegółowo

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

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998. Literatura Język C 1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998. 2. Andrzej Zalewski, Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++, Nakom, Poznań

Bardziej szczegółowo

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

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; Ogólna postać definicji tablicy: TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; np. int tablica [ 10 ]; // 10-cio elementowa tablica liczb całkowitych char tekst

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Pliki. Informacje ogólne. Obsługa plików w języku C

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego

Bardziej szczegółowo

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

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VI Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Operacje na plikach Operacje na plikach Aby móc korzystać z pliku należy go otworzyć w odpowiednim

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

nowe operatory &. (kropka) * operator rzutowy ->, (przecinek) sizeof

nowe operatory &. (kropka) * operator rzutowy ->, (przecinek) sizeof nowe operatory &. (kropka) * operator rzutowy ->, (przecinek) sizeof 1 adres zmiennej Do pobrania adresu zmiennej używa się jednoargumentowego operatora & (uwaga & może mieć także znaczenie dwuargumentowego

Bardziej szczegółowo

Programowanie strukturalne i obiektowe

Programowanie strukturalne i obiektowe Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie

Bardziej szczegółowo

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

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h> Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

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

Języki i metody programowania. Omówienie języków C, C++ i Java 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

Bardziej szczegółowo

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

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop. 2010 Spis treści Wstęp 11 Część I PASCAL - wprowadzenie do programowania strukturalnego

Bardziej szczegółowo

Tablice wielowymiarowe. Przykład tablica 2-wymiarowa. Przykład. Przykład 3-wymiarowy. Tak naprawdę nie istnieją w C! Rozważmy tablicę o rozmiarze 3x2

Tablice wielowymiarowe. Przykład tablica 2-wymiarowa. Przykład. Przykład 3-wymiarowy. Tak naprawdę nie istnieją w C! Rozważmy tablicę o rozmiarze 3x2 Tablice wielowymiarowe Przykład tablica 2-wymiarowa Tak naprawdę nie istnieją w C! Tak naprawdę C i Java dopuszczają tworzenie tablic tablic tablica 2-wymiarowa = tablica (zwykłych) tablic tablica 3-wymiarowa

Bardziej szczegółowo

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego 1 /24 Pisanie pojedynczych znaków z klawiatury do pliku #include void main(void) { FILE *fptr; // wkaznik do pliku, tzw. uchwyt

Bardziej szczegółowo

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

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe: Podstawy Informatyki Metalurgia, I rok Historia Lata 0-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard Koniec lat 80 standard

Bardziej szczegółowo

external Data Representation

external Data Representation Remote Procedure Call external Data Representation Opis standardu RFC 1014 Kanoniczna reprezentacja danych oparta na formacie IEEE Deklaratywny język opisu struktur danych (zbliżony do języka C) Koncepcja

Bardziej szczegółowo

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura

Bardziej szczegółowo

( wykł. dr Marek Piasecki )

( wykł. dr Marek Piasecki ) INE 1007 Informatyka 1 Język programowania C++ ( wykł. dr Marek Piasecki ) Literatura: dowolny podręcznik do języka C++ (na laboratoriach Borland C++ 3.1) Robert Lafore Jerzy Grębosz Andrzej Zalewski Programowanie

Bardziej szczegółowo

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

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować

Bardziej szczegółowo

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

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++ Podstawy Informatyki Metalurgia, I rok Wykład 6 Krótki kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Programowanie I C / C++ laboratorium 01 Organizacja zajęć Programowanie I C / C++ laboratorium 01 Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-12 Program zajęć Zasady zaliczenia Program operacje wejścia i wyjścia instrukcje

Bardziej szczegółowo

Struktury. Przykład W8_1

Struktury. Przykład W8_1 Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla

Bardziej szczegółowo

Instrukcje sterujące. Programowanie Proceduralne 1

Instrukcje sterujące. Programowanie Proceduralne 1 Instrukcje sterujące Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne * mnożenie x * y x y x / dzielenie x / y y + dodawanie x +

Bardziej szczegółowo

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

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

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia Krzysztof Banaś Podstawy programowania 1 Typy danych Podstawowe wbudowane typy danych języka C: _Bool 0 i 1 (C99) znaki (char) 7

Bardziej szczegółowo

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

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

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

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013 Funkcje i tablice Elwira Wachowicz elwira@ifd.uni.wroc.pl 23 maja 2013 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Funkcje i tablice 23 maja 2013 1 / 22 Największy wspólny dzielnik: algorytm Euklidesa Problem:

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje

Bardziej szczegółowo

Wykład Funkcje Struktura funkcji Deklaracja i definicja funkcji Przekazywanie parametrów do funkcji

Wykład Funkcje Struktura funkcji Deklaracja i definicja funkcji Przekazywanie parametrów do funkcji Wykład 6 6. Funkcje 6.1. Struktura funkcji 6.2. Deklaracja i definicja funkcji 6.3. Przekazywanie parametrów do funkcji 6.4. Zmienne lokalne, zmienne globalne i widoczność 6.5. Klasy zmiennych: auto, static,

Bardziej szczegółowo

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja

Bardziej szczegółowo

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com Programowanie wykład dla I roku bioinformatyki semestr letni 2013 Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel. 58 523 2466 e-mail: danuta.makowiec at gmail.com Cel bloku

Bardziej szczegółowo

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

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury, , Programowanie, uzupełnienie notatek: dr Jerzy Białkowski , 1 2 3 4 , Wczytywanie liczb , Wczytywanie liczb 1 #include 2 #include < s t d l i b. h> 3 4 int main ( ) { 5 int rozmiar, numer

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

Bardziej szczegółowo

Wskaźniki w C. Anna Gogolińska

Wskaźniki w C. Anna Gogolińska Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik

Bardziej szczegółowo

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Pętla while Pętla while Pętla

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof]

۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof] 1 Plik jest wydzielonym fragmentem pamięci (najczęściej dyskowej) posiadającym nazwę. Z punktu widzenia C plik jest ciągiem bajtów, z których każdy może zostać oddzielnie odczytany. Zgodnie ze standardem

Bardziej szczegółowo

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle! Funkcja wysoce niezależny blok definicji i instrukcji programu (podprogram) Każdy program napisany w języku C/C++ zawiera przynajmniej jedną funkcję o predefiniowanej nazwie: main( ). Najczęściej wykorzystuje

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 17 1. Typy i zmienne Jak wiemy, komputer

Bardziej szczegółowo

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

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

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

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku

Bardziej szczegółowo

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 4 Obsługa plików Kraków 2010 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim

Bardziej szczegółowo

Kontrola przebiegu programu

Kontrola przebiegu programu Kontrola przebiegu programu Wykład 9 Instrukcje sterujące: pętle rozgałęzienia skoki PRZYPOMINAJKA Zadanie : Zaprojektuj rekurencyjny przepis na wyznaczenie największej takiej liczby m, że 2 m jest podzielnikiem

Bardziej szczegółowo

Który ciąg instrukcji nada zmiennej n wartość równą ilości liczb w pliku binarnym skojarzonym ze strumieniem fp? Wymierz odpowiedź

Który ciąg instrukcji nada zmiennej n wartość równą ilości liczb w pliku binarnym skojarzonym ze strumieniem fp? Wymierz odpowiedź Ile bajtów zajmuje tekst "\tansi-c\n"? a. 9 b. 10 c. 8 d. 11 Niepoprawny Ocena dla tego zadania: 0/1. Zaznacz poprawne definicje inicjujące tablice a. int M[ ] [ 4 ] = { { 1, 2 }, { 0 }, { 3, Tablica o

Bardziej szczegółowo

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika Wyklad 6 Typy i zmienne: wskaznikowe, referencyjne Funkcje deklaracja, definicja. Zasieg deklaracji i widocznosc zmiennych Przekazywanie parametrów przez wartosc, referencje i wskaznik Przekazywanie wyniku

Bardziej szczegółowo

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres Funkcje przetwarzające teksty (biblioteka ) - tworzenie własnych

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Język C, tablice i funkcje (laboratorium, EE1-DI)

Język C, tablice i funkcje (laboratorium, EE1-DI) Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych

Bardziej szczegółowo

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

Programowanie obiektowe - zadania

Programowanie obiektowe - zadania Programowanie obiektowe - zadania Elementy języka Java Zad.1. Napisz program, który sprawdza, czy dana liczba całkowita jest parzysta. Zad.2. Napisz program, który sumuje dane dwie liczby tylko w przypadku,

Bardziej szczegółowo

Szablony klas, zastosowanie szablonów w programach

Szablony klas, zastosowanie szablonów w programach Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do

Bardziej szczegółowo

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C Opublikowano w: WEREWKA J..: Podstawy programowana dla automatyków. Skrypt AGH Nr 1515, Kraków 1998 20. i łączenie podprogramów a z programem napisanym w Ze względu na duże rozpowszechnienie języka, szczególnie

Bardziej szczegółowo