!"" ' #$$$%&' ()*$+&',! Nazwy programów, polece, katalogów, wyniki działania wydawanych polece.

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

Download "!"" ' #$$$%&' ()*$+&',! Nazwy programów, polece, katalogów, wyniki działania wydawanych polece."

Transkrypt

1 !"" "! "#$%&$ ' #$$$%&' ()*$+&',! (" " $! #)' -$$!.$$/)$! ! 3$ Czcionka o stałej szerokoci Nazwy programów, polece, katalogów, wyniki działania wydawanych polece. Czcionka o stałej szerokoci pogrubiona Podaje tekst, który naley dosłownie przepisa. W przypadku plików ródłowych wyrónia istotniejsze fragmenty. Czcionka o stałej szerokoci kursyw Tekst komentarza w przykładowych sesjach przy terminalu. Czcionka o stałej szerokoci kursyw pogrubiona Wyrónia istotniejsze fragmenty wyników działania wydawanych polece. "! ')$ Celem wiczenia jest zapoznanie studenta z podstawami pracy z kompilatorem GNU cc (gcc), który de facto jest standardem we wszystkich dystrybucjach systemu LINUX. Praca z nim nie jest specjalnie trudna (przynajmniej do czasu, gdy nie musimy uywa jego bardzo zaawansowanych moliwoci), jednak wymaga poznania paru podstawowych jego elementów. opracowali: dr in. Artur Gramacki, dr in. Jarosław Gramacki 1

2 Przede wszystkim naley uwiadomi sobie (i to zaakceptowa), e praca z tym kompilatorem odbywa bdzie si wyłcznie w trybie tekstowym. Innymi słowy wszystkie polecenia bd wydawane wprost z konsoli systemowej. Poniewa zwykle ilo tych polece jest do dua, niemal zawsze bdziemy posługiwa si programem make ułatwiajcym tworzenie bardziej złoonych aplikacji. Praca z programem make bdzie tematem jednego z kolejnych laboratoriów. Na pocztek moemy spokojnie obej si bez tego narzdzia. 4! 3$$)$) Najprostszy program w jzyku C moe mie nastpujc klasyczn posta (uwaga: numery poszczególnych linii nie s czci kodu ródłowego. Umieszczono je wyłcznie w celu łatwiejszego odwoływania si do niego): 1 #include<stdio.h> 2 int main(void) 3 4 printf("hello, world!\n"); 5 return(0); 6 Zadaniem powyszego programu jest, jak pewnie nie trudno si domyle, wywietlenie napisu Hello, world! na ekranie komputera. W linii 1 umieszczono tzw. dyrektyw #include, która zleca dołczy w czasie kompilacji programu zawarto tzw. pliku nagłówkowego o nazwie stdio.h (tam zawarta jest min. definicja funkcji standardowej printf i wiele, wiele innych informacji. Warto choby pobienie zapozna si z jego zawartoci, cho prawdopodobnie na pocztku wikszo jego zawartoci bdzie dla nas kompletnie nieczytelna). W linii 2 umieszczona jest deklaracja funkcji main. W kadym pliku ródłowym w jzyku C musi istnie przynajmniej jedna funkcja i musi ona nazywa si main. Napis int oznacza, e funkcja zwraca bdzie liczb (zmienn) typu całkowitego, natomiast napis void oznacza, e funkcja nie otrzymuje z zewntrz adnych parametrów. W liniach 3-6 znajduje si ciało funkcji main. Wewntrz niej znajduje si standardowa funkcja o nazwie printf, której zadaniem jest wywietlenie na ekranie podanego jako jej argument napisu. Znaki sterujce \n nakazuj po wywietleniu napisu ustawi kursor w nowej linii. Po wywietleniu napisu funkcja koczy działanie i zwraca do rodowiska wywołujcego warto 0, co zwykło si interpretowa jako poprawne zakoczenie działania programu. Aby skompilowa powyszy program wydajemy polecenie: $ gcc hello.c W wyniku otrzymujemy skompilowany plik o nazwie a.out. Gdy chcemy, aby plik wynikowy miał inn nazw (a zwykle tak chcemy), wówczas wydajemy polecenie kompilacji w takiej jak poniej postaci: $ gcc hello.c o hello Wówczas powstanie plik wynikowy o nazwie hello (bez typowego dla systemów DOS / Windows rozszerzenia.exe cho nic oczywicie nie stoi na przeszkodzie, aby takie rozszerzenie nada plikowi wynikowemu. W rodowiskach UNIX nie jest to jednak praktykowane). opracowali: dr in. Artur Gramacki, dr in. Jarosław Gramacki 2

3 Uwaga: Ostatnia linia w pliku ródłowym MUSI by poprawnie zakoczona, tzn. ostatnim znakiem musi by znak koca linii (LF ang. line feed, kod ASCII 0A). Gdy bdzie inaczej kompilator wygeneruje ostrzeenie: $ gcc hello.c -o hello hello.c:6:2: warning: no newline at end of file Poprawny plik ródłowy Hello world (ogldany jako kody szesnastkowe) bdzie wygldał wic jak poniej. Znak koca linii, o którym mowa wyej, został powikszony i wytłuszczony: E63 6C C F 2E68 #include<stdio.h 3E0A 696E D61 696E F >.int main(void) 0A7B 0A E C 6C6F..printf("Hello 2C20 776F 726C C 6E22 293B 0A72, world!\n");.r E B0A 7D0A eturn(0);.. O tym, e plik powstał moemy przekona si wydajc polecenie ls l systemu operacyjnego. Zwrómy uwag na atrybut x tego pliku. Oznacza on, e plik jest wykonywalny (ang. executable). Aby uruchomi skompilowany włanie program wydajemy nastpujce polecenie: $./hello Hello, world! (uwaga: kropka oznacza, e chcemy wykona program znajdujcy si w katalogu biecym. Bez tej kropki system, operacyjny bdzie poszukiwał wskazanego pliku w katalogach zapisanych w zmiennej systemowej $PATH a to w niektórych sytuacjach moe by bardzo grone. Czy domylasz si dlaczego?). Kompilujc program kompilatorem gcc moemy poda kompilatorowi róne szczegółowe informacje w jaki sposób ma kompilowa nasze programy. Informacje te podajemy w formie tzw. przełczników kompilatora. Ich pełen opis zajmuje kilkanacie stron w dokumentacji (patrz polecenie man gcc lub Poniej podajemy tylko kilka przykładowych opcji: -Ikatalogu -Lkatalogu -lcostam -Wall -w -pedantic -pedanticerrors -werror wstawia katalog na pocztek listy katalogów, które kompilator bdzie przegldał w poszukiwaniu plików nagłówkowych wstawia katalog na pocztek listy katalogów, które kompilator bdzie przegldał w poszukiwaniu bibliotek dołcza bibliotek o nazwie libcostam. Uwaga: w systemach z rodziny UNIX przyjło si, e biblioteki maj nazwy rozpoczynajce si od słowa lib. Wobec tego, gdy napiszemy lcostam kompilator gcc bdzie szukał na dysku pliku o nazwie libcostam.a lub libcostam.so. Rozszerzenia.a oraz.so s standardowymi rozszerzeniami bibliotek w systemie UNIX i uywajc przełcznika l nie podajemy ich jawnie wywietla wszystkie ostrzeenia kompilatora gcc wyłcza wszystkie ostrzeenia kompilatora. Uywanie tej opcji nie jest zalecane. Wywietla wszystkie ostrzeenia wymagane przez ANSI C Wywietla wszystkie błdy wymagane przez ANSI C ostrzeenia zamienia na błdy, zatrzymujc kompilacj opracowali: dr in. Artur Gramacki, dr in. Jarosław Gramacki 3

4 -g wstawia do pliku wynikowego (binarnego) standardowe informacje wyszukiwania błdów (tzw. informacje dla debuggera bdzie o nim mowa w jednym z kolejnych wicze) -ggdb -ansi podobnie jak g, ale informacji tych jest znacznie wicej ciekawy przełcznik o walorach dydaktycznych. cisła kontrola zgodnoci ze standardem ANSI C. Poniej wykonano pewien cig czynnoci demonstrujcych działanie tych przełczników. Aby zmusi kompilator go wygenerowania ostrzeenia zmieniono druga lini w przykładowym programie na: void main(void) Kompilator bdzie wówczas ostrzegał nas o niepoprawnej definicji funkcji main. Definicja mówi, e funkcja nie zwraca adnej wartoci (słowo kluczowe void), cho w rzeczywistoci funkcja zwraca warto typu całkowitego. Zwykle powinnimy dy do tego, aby eliminowa przyczyny pojawiania si ostrzee kompilatora. W bardzo prostych programach moe nie jest to a tak istotne, jednak w złoonych projektach ostrzeenia kompilatora mog by zwiastunem trudnych do zdiagnozowania błdów w działaniu programów. Zwrómy równie uwag na zmian wielkoci pliku wynikowego po uyciu opcji g oraz ggdb. Na pocztku mamy tylko plik ródłowy. -rw-r--r-- 1 root root 82 Sep 21 21:53 hello.c Kompilujemy plik ródłowy. Powstaje plik wynikowy a.out. Jest to plik wykonywalny (atrybut x). $ gcc hello.c -rwxr-xr-x 1 root root 4819 Sep 22 00:12 a.out -rw-r--r-- 1 root root 82 Sep 21 21:53 hello.c Wykonujemy program. Uwaga na kropk. $./a.out Hello, world! Kompilujemy plik ródłowy. Powstaje plik wynikowy hello. $ gcc hello.c -o hello -rwxr-xr-x 1 root root 4819 Sep 22 00:13 a.out -rwxr-xr-x 1 root root 4819 Sep 22 00:13 hello -rw-r--r-- 1 root root 82 Sep 21 21:53 hello.c Kompilujemy plik ródłowy. Dodajemy informacje dla debuggera. Rozmiar pliku wynikowego powiksza si. $ gcc hello.c -o hello -g -rwxr-xr-x 1 root root 4819 Sep 22 00:13 a.out -rwxr-xr-x 1 root root Sep 22 00:14 hello opracowali: dr in. Artur Gramacki, dr in. Jarosław Gramacki 4

5 -rw-r--r-- 1 root root 82 Sep 21 21:53 hello.c $ gcc hello.c -o hello -ggdb -rwxr-xr-x 1 root root 4819 Sep 22 00:13 a.out -rwxr-xr-x 1 root root Sep 22 00:14 hello -rw-r--r-- 1 root root 82 Sep 21 21:53 hello.c Plik ródłowy został zmieniony. W drugiej linii jest: void main(void). Kompilator generuje ostrzeenie (ang. warning). $ gcc hello.c -o hello hello.c: In function `main': hello.c:5: warning: `return' with a value, in function returning void hello.c:3: warning: return type of `main' is not `int' Za pomoc przełcznika w ignorujemy wszystkie ew. ostrzeenia kompilatora. Nie jest to jednak dobra praktyka! Ostrzeenia kompilatora mog by preludium do powanych kłopotów! $ gcc hello.c -o hello -w -rwxr-xr-x 1 root root 4803 Sep 22 00:26 hello -rw-r--r-- 1 root root 83 Sep 22 00:25 hello.c Program uruchomił si, mimo ostrzee kompilatora. W ogólnoci tak by nie musi. Program moe nie działa lub działa z trudnymi do zdiagnozowania błdami. $./hello Hello, world! $ 5!.)$67 Tylko bardzo proste programy składaj si wyłcznie z jednego pliku ródłowego. Zwykle tych plików jest wiele, gdy dzielenie kodów ródłowych na wiele plików jest po prostu wygodne i zwiksza efektywno programowania. Proces kompilacji programów za pomoc kompilatora gcc składa si z czterech etapów: przetwarzania wstpnego, kompilacji, asemblacji oraz łczenia. Nie wnikajc w tej chwili w szczegóły powiedzmy tylko tyle, e efektem porednim pomidzy plikiem ródłowym a plikiem wynikowym jest tzw. kod obiektowy (plik poredni). Gdy plików ródłowych jest kilka, kilka jest te plików obiektowych. Za pomoc programu scalajcego (ang. linker) naley połczy je w jeden plik wykonywalny. Obrazuje to poniszy rysunek: plik1.c Kompilator gcc plik1.o Linker plik2.c plik3.c Kompilator gcc Kompilator gcc plik2.o plik3.o Program wykonywalny opracowali: dr in. Artur Gramacki, dr in. Jarosław Gramacki 5

6 Kady z plików ródłowych mona oczywicie kompilowa oddzielnie, ale chcc otrzyma jeden wynikowy plik wykonywalny naley skompilowa je w taki sposób, aby automatycznie nastpiło utworzenie plików obiektowych oraz (tu jednego) pliku wynikowego. Wykonanie powyszego zadania z uyciem kompilatora gcc jest bardzo proste. Naley po prostu w wierszu polece gcc poda nazw wszystkich plików ródłowych, które maj by skompilowane. Reszta zostanie wykonana automatycznie. Poniej zamieszczono przykład programu z 3 plikami ródłowymi oraz sposób ich kompilacji. Prosimy o bardzo wnikliwe zapoznanie si z plikami ródłowymi oraz z przykładowym zapisem sesji przy terminalu. // calc.c #include <stdio.h> #include <stdlib.h> // Funkcje nazywam div2, bo istnieje juz w bibliotece standardowe // funkcja o nazwie div extern double add (double, double); extern double sub (double, double); extern double mul (double, double); extern double div2(double, double); // extern gdy definicje funkcji znajduj si w innym pliku int main(void) double a, b; char str[80]; printf("\n\nprosty kalkulator: \n"); printf("==================\n\n"); printf ("Podaj pierwsza liczbe (a): "); gets(str); a = atof(str); printf ("Podaj druga liczbe (b): "); gets(str); b = atof(str); printf("\n"); printf("liczba a: %8.2f\nLiczba b: %8.2f\n\n", a, b); printf("a + b: %8.2f\n", add(a, b)); printf("a - b: %8.2f\n", sub(a, b)); printf("a * b: %8.2f\n", mul(a, b)); printf("a / b: %8.2f\n", div2(a, b)); printf("\n *** Koniec ***\n\n"); return 0; // addsub.c double add (double a, double b) return a + b; double sub (double a, double b) return a - b; opracowali: dr in. Artur Gramacki, dr in. Jarosław Gramacki 6

7 // muldiv.c double mul (double a, double b) return a * b; double div2 (double a, double b) return a / b; Na pocztku mamy tylko 3 pliki ródłowe. -rw-r--r-- 1 root root 130 Sep 21 23:57 addsub.c -rw-r--r-- 1 root root 761 Sep 22 00:35 calc.c -rw-r--r-- 1 root root 130 Sep 21 23:57 muldiv.c Kompilujemy pliki. Kompilator gcc wie co z nimi zrobi. Automatycznie stworzy pliki obiektowe oraz połczy je w jeden wynikowy plik wykonywalny. Ostrzeenia o uywaniu funkcji gets wynikaj z podatnoci tej funkcji na ataki hacker-ów (przepełnienie bufora). $ gcc calc.c addsub.c muldiv.c -o calc /tmp/ccnhljiv.o: In function `main': /tmp/ccnhljiv.o(.text+0x3e): the `gets' function is dangerous and should not be used. W wyniku kompilacji powstaje plik wykonywalny. -rw-r--r-- 1 root root 130 Sep 21 23:57 addsub.c -rwxr-xr-x 1 root root 6049 Sep 22 00:39 calc -rw-r--r-- 1 root root 761 Sep 22 00:35 calc.c -rw-r--r-- 1 root root 130 Sep 21 23:57 muldiv.c Tym razem kompilujemy pliki ródłowe tylko do postaci obiektowej. Na dysku powstaj pliki z rozszerzeniem.o $ gcc -c calc.c addsub.c muldiv.c -rw-r--r-- 1 root root 130 Sep 21 23:57 addsub.c -rw-r--r-- 1 root root 793 Sep 22 00:39 addsub.o -rwxr-xr-x 1 root root 6049 Sep 22 00:39 calc -rw-r--r-- 1 root root 761 Sep 22 00:35 calc.c -rw-r--r-- 1 root root 1904 Sep 22 00:39 calc.o -rw-r--r-- 1 root root 130 Sep 21 23:57 muldiv.c -rw-r--r-- 1 root root 794 Sep 22 00:39 muldiv.o Utworzone pliki obiektowe łczymy w jeden wynikowy plik wykonywalny. Pliki calc oraz calc2 maj identyczne rozmiary i de facto identyczn struktur. $ gcc calc.o addsub.o muldiv.o -o calc2 calc.o: In function `main': calc.o(.text+0x3e): the `gets' function is dangerous and should not be used. -rw-r--r-- 1 root root 130 Sep 21 23:57 addsub.c -rw-r--r-- 1 root root 793 Sep 22 00:39 addsub.o opracowali: dr in. Artur Gramacki, dr in. Jarosław Gramacki 7

8 -rwxr-xr-x 1 root root 6049 Sep 22 00:39 calc -rw-r--r-- 1 root root 761 Sep 22 00:35 calc.c -rw-r--r-- 1 root root 1904 Sep 22 00:39 calc.o -rwxr-xr-x 1 root root 6049 Sep 22 00:40 calc2 -rw-r--r-- 1 root root 130 Sep 21 23:57 muldiv.c -rw-r--r-- 1 root root 794 Sep 22 00:39 muldiv.o Oczywicie gdy zmodyfikujemy tylko jeden plik, to nie ma potrzeby kompilowania wszystkich plików ródłowych. Przeanalizuj takie podejcie: $ gcc -c calc.c $ gcc calc.o addsub.o muldiv.o -o calc2 Załómy, e w katalogu biecym znajduj si pliki ródłowe, a w podkatalogu moje-pliki-n nasze własne pliki nagłówkowe. Niech pocztek pliku calc.c wyglda tak: // calc.c #include <stdio.h> #include <stdlib.h> #include "moj.h" // tak zwykło si pisa dla plików niestandardowych... Przykładowa zawarto pliku moj.h: // moj.h #define AUTOR Artur_Gramacki Aby teraz poprawnie skompilowa program, naley uy przełcznika -I $ gcc -c Imoje-pliki-n calc.c Uycie przełcznika pedantic bardzo rygorystycznie sprawdza poprawno kodu. W tym przypadku pokazuje, e w pliku moj.k zapomnielimy nacisn Enter na kocu wiersza $ gcc -c Imoje-pliki-n pedantic calc.c In file included from calc.c:5: moje-pliki-n/moj.h:1: warning: file does not end in newline Uruchamiamy nasz program. $./calc Prosty kalkulator: ================== Podaj pierwsza liczbe (a): 10 Podaj druga liczbe (b): 20 Liczba a: Liczba b: a + b: a - b: a * b: a / b: 0.50 *** Koniec *** I to by było na tyle! opracowali: dr in. Artur Gramacki, dr in. Jarosław Gramacki 8

Nazwy programów, polece, katalogów, wyniki działania wydawanych polece.

Nazwy programów, polece, katalogów, wyniki działania wydawanych polece. ! "!" # #$$$%& '()*$&&$$& +&!,-$%&.$.'$.$.!*%-&$ $%&'()*! $ ($()*!/! %" &,$$! ($$-%$! 0'1 01! 2$ Czcionka o stałej szerokoci Nazwy programów, polece, katalogów, wyniki działania wydawanych polece. Czcionka

Bardziej szczegółowo

!"# %!*%+,-.! Nazwy programów, polece, katalogów, wyniki działania wydawanych polece.

!# %!*%+,-.! Nazwy programów, polece, katalogów, wyniki działania wydawanych polece. !"!"$%& ' $%&%'make(&' %%')! ( %!*%+,-.! $ ' /%%! *%%&'%! 01 0.1! 2% Czcionka o stałej szerokoci Nazwy programów, polece, katalogów, wyniki działania wydawanych polece. Czcionka o stałej szerokoci pogrubiona

Bardziej szczegółowo

%$-,./+,-.0! Nazwy programów, polece, katalogów, wyniki działania wydawanych polece.

%$-,./+,-.0! Nazwy programów, polece, katalogów, wyniki działania wydawanych polece. !" $$$%&'! (%&'$)*)$$ +,-.!!" " " %$-,./+,-.0! $%& 1$$! %$$23$! 45 45!6$ Czcionka o stałej szerokoci Nazwy programów, polece, katalogów, wyniki działania wydawanych polece. Czcionka o stałej szerokoci

Bardziej szczegółowo

Proces tworzenia programu:

Proces tworzenia programu: Temat 1 Pojcia: algorytm, program, kompilacja i wykonanie programu. Proste typy danych i deklaracja zmiennych typu prostego. Instrukcja przypisania. Operacje wejcia/wyjcia. Przykłady prostych programów

Bardziej szczegółowo

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

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

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Makefile Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 14 Co to jest Makefile Makefile jest plikiem reguł dla programu make. Wykorzystywany jest

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++ Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub

Bardziej szczegółowo

Podstawy Programowania.

Podstawy Programowania. Podstawy Programowania http://www.saltbox.com/img/under_the_hood.png O mnie... dr inż. Łukasz Graczykowski Zakład Fizyki Jądrowej Wydział Fizyki Politechniki Warszawskiej lgraczyk@if.pw.edu.pl www.if.pw.edu.pl/~lgraczyk/wiki

Bardziej szczegółowo

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!

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! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

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

Wprowadzenie do kompilatorów

Wprowadzenie do kompilatorów Wprowadzenie do kompilatorów Czy ja kiedykolwiek napisz jaki kompilator? Jakie zadania ma do wykonania kompilator? Czy jzyk formalny to rodzaj jzyka programowania? Co to jest UML?, Czy ja kiedykolwiek

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania http://www.saltbox.com/img/under_the_hood.png Any sufficiently advanced technology is indistinguishable from magic. Arthur C. Clarke O mnie... dr inż. Małgorzata Janik Zakład Fizyki

Bardziej szczegółowo

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Programowanie w C++ Wykład 1 Katarzyna Grzelak 26 luty 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 28 Umiejętność, która otwiera

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

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

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

Sposoby przekazywania parametrów w metodach.

Sposoby przekazywania parametrów w metodach. Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych

Bardziej szczegółowo

Kompilacja image z CVS

Kompilacja image z CVS Kompilacja image z CVS Tworzenie image na Dreamboxa nie jest tajemnic, a opis czynnoci, jakie naley wykona, aby stworzy własny soft mona znale na wikszoci niemieckich stron traktujcych o Dreamboxach. Kto

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy Laboratorium 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Na podstawie: G. Perry, D. Miller, Język C Programowanie dla

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

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

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład

Bardziej szczegółowo

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat 02 Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat 2012.10.07 Program w języku C Program w języku C jest pisany w pliku tekstowym, następnie przetwarzany przez kompilator do pliku

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38 Programowanie w C++ Wykład 1 Katarzyna Grzelak 25 luty 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 38 Umiejętność, która otwiera

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych wersja: 1.32 Nr ćwiczenia: 5 Temat: Cel ćwiczenia: Wymagane przygotowanie teoretyczne:

Bardziej szczegółowo

Wstęp. do języka C na procesor 8051. (kompilator RC51)

Wstęp. do języka C na procesor 8051. (kompilator RC51) Wstęp do języka C na procesor 8051 (kompilator RC51) Kompilator języka C Kompilator RC51 jest kompilatorem języka C w standardzie ANSI Ograniczeń w stosunku do ANSI jest niewiele głównie rzadkie operacje

Bardziej szczegółowo

Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym

Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++   w odpowiednim systemie operacyjnym Laboratorium 1 I. Zainstaluj program Eclipse (wersja C/C++ http://www.eclipse.org/downloads/) w odpowiednim systemie operacyjnym II. Zainstaluj narzędzia Windows CDT (w Eclipse jako software site dodajemy

Bardziej szczegółowo

Podział programu na moduły

Podział programu na moduły Materiały Podział programu na moduły Informatyka Szczegółowe informacje dotyczące wymagań odnośnie podziału na moduły: http://www.cs.put.poznan.pl/wcomplak/bfiles/c_w_5.pdf Podział programu na moduły pozwala

Bardziej szczegółowo

Programowanie obiektowe i C++ dla matematyków

Programowanie obiektowe i C++ dla matematyków Programowanie obiektowe i C++ dla matematyków Bartosz Szreder szreder (at) mimuw... 04 X 2011 Wszelkie uwagi, poprawki, braki czy sugestie najlepiej wysyłać na maila. 1. wprowadzenie do Linuksa: kompilacja

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

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania Język C Budowa programu napisanego w języku C podział na pliki z definicjami funkcji, korzystanie z bibliotek systemowych i własnych automatyzacja kompilacji za pomocą make dzielenie

Bardziej szczegółowo

Argumenty wywołania programu, operacje na plikach

Argumenty wywołania programu, operacje na plikach Temat zajęć: Argumenty wywołania programu, operacje na plikach Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (Zmienne statyczne) W języku C można decydować o sposobie przechowywania zmiennych. Decydują

Bardziej szczegółowo

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty. !"! " #$%& '()#$$ &%$! #$ %$ &%$& &$&! %&'" )$$! *$$&%$! +,- +-.! $ Celem wiczenia jest zapoznanie studenta ze strukturami: lista, stos, drzewo oraz ich implementacja w jzyku ANSI C. Zrozumienie działania

Bardziej szczegółowo

Utworzenie pliku. Dowiesz się:

Utworzenie pliku. Dowiesz się: Dowiesz się: 1. Jak rozpocząć pisanie programu 2. Jak wygląda szkielet programu, co to są biblioteki i funkcja main() 3. Jak wyświetlić ciąg znaków w programie 4. Jak uruchamiać (kompilować) napisany program

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

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

Wprowadzenie do środowiska Qt Creator

Wprowadzenie do środowiska Qt Creator 1.Instalacja środowiska Qt Creator Qt Creator jest wygodnym środowiskiem programistycznym przeznaczonym do tworzenia projektów, czyli aplikacji zarówno konsolowych, jak i okienkowych z wykorzystaniem biblioteki

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

Wstęp do programowania. Wykład 1 Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.

Bardziej szczegółowo

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana Wykład Materiały bazują częściowo na slajdach Marata Dukhana Języki programowania Kompilowane np. C, C++, Pascal Interpretowane np. JavaScript, PHP, Python, VBA Pośrednie np. Java, C# Znane kompilatory

Bardziej szczegółowo

Konsolidacja (linking)

Konsolidacja (linking) Konsolidacja (linking) 1 Ostatni etap budowania programu PRE- PROCESSING KOMPILACJA ASEMBLACJA LINKING Łączenie osobnych fragmentów kodu maszynowego w plik wykonywalny Wykonywana przez linker ld w systemie

Bardziej szczegółowo

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

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

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 1 Podstawy programowania dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Ramowy program warsztatów 1. Pierwsze: Podstawy programowania 2. Drugie:

Bardziej szczegółowo

Make jest programem komputerowym automatyzującym proces kompilacji programów, na które składa się wiele zależnych od siebie plików.

Make jest programem komputerowym automatyzującym proces kompilacji programów, na które składa się wiele zależnych od siebie plików. Spis treści 1 Krótkie wprowadzenie do makefile'a 1.1 Typowa reguła programu make 1.2 Zmienne w pliku Makefile 1.3 Zmienne standardowe 1.4 Zmienne automatyczne 1.5 Więcej o regułach 1.5.1 Reguły z wzorcem

Bardziej szczegółowo

Fragment wykładu z języka C ( )

Fragment wykładu z języka C ( ) Fragment wykładu z języka C (2002-2009) Piotr Szwed pszwed@agh.edu.pl Program make Typowy program w języku C/C++ składa się z wielu odrębnych modułów (jednostek translacji). Ich liczba może dochodzić do

Bardziej szczegółowo

/*W tym miejscu funkcja system wywołuje systemową komendę PAUSE tj.czeka tak długo, aż zostanie wciśnięty dowolny znak z

/*W tym miejscu funkcja system wywołuje systemową komendę PAUSE tj.czeka tak długo, aż zostanie wciśnięty dowolny znak z Języki i metodyka Programowania Zajęcia 1. 1. Spróbujmy uruchomić pierwszy program. Otwórzmy okno dosowe (polecenie cmd) i po przejściu do katalogu projektu uruchamiamy z linii poleceń nasz program wielokrotnie.

Bardziej szczegółowo

W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane: Deklaracje W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane: int i,j,n; double x, tab[1000]; przykładowe deklaracje w C Pierwsze

Bardziej szczegółowo

... Ireneusz Mrozek. Wydział Informatyki

... Ireneusz Mrozek. Wydział Informatyki Ireneusz Mrozek Wydział Informatyki Proces wykonujcy si program Proces jednostka pracy systemu zarzdzan przez system operacyjny. W skład procesu wchodz: - program; - dane - zawarto rejestrów, stosu; -

Bardziej szczegółowo

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 1 O mnie prowadzący wykład i laboratoria: Dariusz Wardowski pokój: 102

Bardziej szczegółowo

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

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA Metodyki i Techniki Programowania 1 1 ZAJ CIA 3. 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA IDE zintegrowane środowisko programistyczne, zawierające kompilator, edytor tekstu i linker,

Bardziej szczegółowo

Kompilacja i scalanie programów w linii poleceń gcc i make

Kompilacja i scalanie programów w linii poleceń gcc i make Kompilacja i scalanie programów w linii poleceń gcc i make Małgorzata Stankiewicz kwiecień 2012 Małgorzata Stankiewicz () gcc i make kwiecień 2012 1 / 26 GCC - GNU Compiler Collection GCC Zestaw kompilatorów

Bardziej szczegółowo

Przegldanie stron wymaga odpowiedniej mikroprzegldarki w urzdzeniu mobilnym lub stosownego emulatora.

Przegldanie stron wymaga odpowiedniej mikroprzegldarki w urzdzeniu mobilnym lub stosownego emulatora. I. Temat wiczenia Podstawy tworzenia stron WAP II. Wymagania Podstawowe wiadomoci z technologii Internetowych. III. wiczenie 1. Wprowadzenie WAP (ang. Wireless Application Protocol) - to protokół umoliwiajcy

Bardziej szczegółowo

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

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 1 Podstawy Wprowadzenie do programowania w języku C Kraków 2010 Twój pierwszy program w C Program w języku C, jak i w wielu innych językach

Bardziej szczegółowo

Deklaracje. W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

Deklaracje. W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane: Deklaracje Wykład5TYPYDANYCH,str1 W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane: int i,j,n; double x, tab[1000]; } przykładowe

Bardziej szczegółowo

Podstawy informatyki

Podstawy informatyki Podstawy informatyki WYKŁAD nr 02 Fizyka Techniczna, WFT PP Michał Hermanowicz Zakład Fizyki Obliczeniowej, Instytut Fizyki, Politechnika Poznańska Rok akademicki 2018/2019 M. Hermanowicz (IF PP) Podstawy

Bardziej szczegółowo

Kompilowanie programów

Kompilowanie programów Rozdziaª 2 Kompilowanie programów 2.1 Wst p 2.2 Kompilatory, IDE Zacznijmy od podania kilku podstawowych informacji: ˆ Program - to ci g polece«(instrukcji) do wykonania dla komputera ˆ Program to algorytm

Bardziej szczegółowo

Planowanie adresacji IP dla przedsibiorstwa.

Planowanie adresacji IP dla przedsibiorstwa. Planowanie adresacji IP dla przedsibiorstwa. Wstp Przy podejciu do planowania adresacji IP moemy spotka si z 2 głównymi przypadkami: planowanie za pomoc adresów sieci prywatnej przypadek, w którym jeeli

Bardziej szczegółowo

Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów Krzysztof Banaś Podstawy programowania 1 Programy Większość programów w C stanowią rozbudowane kody, definiujące wiele funkcji

Bardziej szczegółowo

Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C. mgr inż. Arkadiusz Chrobot

Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C. mgr inż. Arkadiusz Chrobot Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C mgr inż. Arkadiusz Chrobot 21 października 2010 1 Wprowadzenie Pisząc programy w języku C, szczególnie te duże, nie musimy umieszczać całości

Bardziej szczegółowo

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

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

Systemy operacyjne laboratorium 3 Paweł Gmys strona 1

Systemy operacyjne laboratorium 3 Paweł Gmys strona 1 Systemy operacyjne laboratorium 3 Paweł Gmys strona 1 Windows Host Script WSH udostpnia dwa tryby uruchamiania skryptów: tekstowy i graficzny. O sposobie przetwarzania programu moe zadecydowa powłoka systemowa

Bardziej szczegółowo

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

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 Język C część 1 Literatura [1] Brian W. Kernighan, Dennis M. Ritchie: Język ANSI C, Wydawnictwa Naukowo Techniczne, Warszawa 2003 [2] Anna Strudzioska-Walczak, Krzysztof Walczak, Nakuka programowania dla

Bardziej szczegółowo

Systemy Operacyjne - Operacje na plikach

Systemy Operacyjne - Operacje na plikach Systemy Operacyjne - Operacje na plikach Andrzej Stroiński Institute of Computer Science Poznań University of Technology 1 październik, 2012 Wprowadzenie do ANSI-C Pomoc systemowa man gcc man 2 write man

Bardziej szczegółowo

RODOWISKO DEV-C++ Wymagania sprz towe (zalecane): - Microsoft Windows 2000, XP - 32 MB RAM - 400 MHz Intel compatible CPU, 200 MB free disk space

RODOWISKO DEV-C++ Wymagania sprz towe (zalecane): - Microsoft Windows 2000, XP - 32 MB RAM - 400 MHz Intel compatible CPU, 200 MB free disk space rodowisko Dev-C++: RODOWISKO DEV-C++ - produkcja: Bloodshed Software - internet: www.bloodshed.net - licencja: Free Software distributed under the GNU General Public License - wersja: 5.0 beta 9.2 (4.9.9.2)

Bardziej szczegółowo

Programowanie w C++ Wykład 10. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21

Programowanie w C++ Wykład 10. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21 Programowanie w C++ Wykład 10 Katarzyna Grzelak 21 maja 2018 K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21 Makefiles K.Grzelak (Wykład 10) Programowanie w C++ 2 / 21 Kompilacja programu zapisanego w

Bardziej szczegółowo

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

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu

Bardziej szczegółowo

Zastosowanie programu Microsoft Excel do analizy wyników nauczania

Zastosowanie programu Microsoft Excel do analizy wyników nauczania Grayna Napieralska Zastosowanie programu Microsoft Excel do analizy wyników nauczania Koniecznym i bardzo wanym elementem pracy dydaktycznej nauczyciela jest badanie wyników nauczania. Prawidłow analiz

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1 Programowanie niskopoziomowe w systemie operacyjnym

Bardziej szczegółowo

Errata. Instalacja sklepu internetowego

Errata. Instalacja sklepu internetowego Errata. Instalacja sklepu internetowego Aplikacja sklepu internetowego została napisana i przetestowana w rodowisku PHP 4 oraz MySQL 4.0. Poniewa jednak na płycie CD-ROM dołczonej do ksiki znajduje si

Bardziej szczegółowo

Proste algorytmy w języku C

Proste algorytmy w języku C Proste algorytmy w języku C Michał Rad AGH Laboratorium Maszyn Elektrycznych 2016-12-01 Outline Język C Zadanie pierwsze - obliczanie miejsc zerowych wielomianu Zadanie drugie - znajdowanie największego

Bardziej szczegółowo

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak: Ćwiczenie nr 6 Temat: Operacje na łańcuchach znaków. Zagadnienia: Zasady pracy z łańcuchami tekstowymi (tablice wartości typu char). funkcje standardowe operacji na łańcuchach, funkcje I/O dla operacji

Bardziej szczegółowo

{Opracowała Małgorzata Roguska} Tematy lekcji:

{Opracowała Małgorzata Roguska} Tematy lekcji: Pascal {Opracowała Małgorzata Roguska} Tematy lekcji: c) Ogólne omówienie Pascala, d) rodowisko Borland Pascala 7.0 (BP 7.0), e) Struktura programu w Pascalu, a. identyfikatory b. słowa kluczowe c. literały

Bardziej szczegółowo

Piotr Dwieczkowski. Code coverage. Mierzenie pokrycia kodu, teoria oraz praktyka w C/C++

Piotr Dwieczkowski. Code coverage. Mierzenie pokrycia kodu, teoria oraz praktyka w C/C++ Piotr Dwieczkowski Code coverage Mierzenie pokrycia kodu, teoria oraz praktyka w C/C++ Plan Co to jest pokrycie kodu? Możliwe sposoby wykorzystania Rodzaje statystyk Wady i zalety mierzenia porycia kodu

Bardziej szczegółowo

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania Rok akademicki 2013/2014, Pracownia nr 10 2/20 Informatyka 1 Tablica elementów ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu Politechnika Białostocka - Wydział Elektryczny Elektrotechnika,

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

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

Języki i metody programowania I

Języki i metody programowania I Języki i metody programowania I dr inż. Piotr Szwed Katedra Informatyki Stosowanej C2, pok. 403 e-mail: pszwed@agh.edu.pl http://home.agh.edu.pl/~pszwed/ Aktualizacja: 2012-10-04 Informacje o przedmiocie

Bardziej szczegółowo

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013 Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Obsługa plików Kraków 2013 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim będziemy mogli

Bardziej szczegółowo

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++ Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 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

Informatyka I: Instrukcja 4.2

Informatyka I: Instrukcja 4.2 Informatyka I: Instrukcja 4.2 1 Wskaźniki i referencje - bezboleśnie Nauczyliśmy się do tej pory, że funkcje w języku C mogą zwracać wartość. Co jednak, gdybyśmy chcieli napisać funkcję, która rozwiąże

Bardziej szczegółowo

!! "#! *&!'! & '!# 2&&! () &

!! #! *&!'! & '!# 2&&! () & !" #$!! "#! # %&&'()'& *&!'! $% &% &! +")(,-+./012%34&5 & '!# 2&&! 6&&)'&! 78 78 () & Zadanie polega na napisaniu programu umoliwiajcego wprowadzanie i odczytywaniu do / z tablicy jednowymiarowej podanego

Bardziej szczegółowo

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej

Bardziej szczegółowo

Materiały wprowadzające. dr inż. Arkadiusz Chrobot

Materiały wprowadzające. dr inż. Arkadiusz Chrobot Materiały wprowadzające dr inż. Arkadiusz Chrobot 26 lutego 2017 Spis treści Wprowadzenie 1 1. ssh 1 2. scp 1 3. Linux Cross Reference 2 Wprowadzenie W tych materiałach wstępnych zawarte są krótkie opisy

Bardziej szczegółowo

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

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Podstawy programowania w C++

Podstawy programowania w C++ Podstawy programowania w C++ Strumienie wejścia cin>> i wyjścia cout

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

! 3% !"# Nazwy programów, polece, katalogów, wyniki działania wydawanych polece.

! 3% !# Nazwy programów, polece, katalogów, wyniki działania wydawanych polece. !"# "! " $%&'%'( )*+,-%''! #! $!%% %.)%%'$*+,-! $%&" /%%! 0%%&'%! 12 1-2! 3% Czcionka o stałej szerokoci Nazwy programów, polece, katalogów, wyniki działania wydawanych polece. Czcionka o stałej szerokoci

Bardziej szczegółowo

Laboratorium 0: System Linux, edytor vim i kompilator gcc. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 0: System Linux, edytor vim i kompilator gcc. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 0: System Linux, edytor vim i kompilator gcc dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 24 lutego 2015 1. Wprowadzenie W tej instrukcji został zawarty opis środowiska, które będzie

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

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

Programowanie komputerowe. Zajęcia 1

Programowanie komputerowe. Zajęcia 1 Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program

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

Functionalization. Jeszcze o funkcjach i strukturze projektu. Marcin Makowski. 3 grudnia Zak lad Chemii Teoretycznej UJ

Functionalization. Jeszcze o funkcjach i strukturze projektu. Marcin Makowski. 3 grudnia Zak lad Chemii Teoretycznej UJ Jeszcze o funkcjach i strukturze projektu Zak lad Chemii Teoretycznej UJ 3 grudnia 2008 1 2 3 4 5 typedef Plan typedef specyfikator typu nazwa S luży do stworzenia nowej nazwy dla jakiegoś typu. Nazwa

Bardziej szczegółowo