PODSTAWY INFORMATYKI 1 PRACOWNIA NR 2 TEMAT: Obsługa

Transkrypt

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 2 TEMAT: Obsługa
PODSTAWY INFORMATYKI 1
PRACOWNIA NR 2
TEMAT: Obsługa pakietu - środowiska do tworzenia, analizy
i uruchomienia programów w języku C/C++: Dev-C++.
Ogólna struktura programu w języku C, stałe i zmienne, typy
danych, operatory matematyczne, wyrażenia arytmetyczne.
Środowisko Dev-C++:
-
produkcja:
internet:
licencja:
wersja:
download:
Bloodshed Software
www.bloodshed.net
Free Software distributed under the GNU General Public License
5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2
http://prdownloads.sourceforge.net/dev-cpp/devcpp4.9.9.2_setup.exe
Wymagania sprzętowe (minimalne):
- Microsoft Windows 95, 98, NT 4, 2000, XP
- 8 MB RAM with a big swapfile
- 100 MHz Intel compatible CPU, 30 MB free disk space
Wymagania sprzętowe (zalecane):
- Microsoft Windows 2000, XP
- 32 MB RAM
- 400 MHz Intel compatible CPU, 200 MB free disk space
Domyślna instalacja:
- ok. 60 MB
Wybrane cechy:
- środowisko typu IDE (ang. Integrated Development Environment) dla języka
C/C++,
- umożliwia stworzenie programów typu:
- Windows application - program dla systemu Windows wykorzystujący
Win32 API,
- Console application - program uruchamiany w konsoli (oknie tekstowym),
- Static library - biblioteka statyczna,
- DLL - biblioteka dynamiczna (ang. Win32 Dynamic Link Library),
- polskojęzyczne menu.
Podstawy Informatyki 1
-1-
© 2005 Jarosław Forenc
Okno główne programu
1
2
3
4
5
6
1 - Menu główne programu
2 - Paski narzędzi (Główny, Edycja, Przeszukiwanie, Projekt, Kompilowanie
i uruchamianie, Opcje, Dodatki, Klasy)
3 - Przeglądarka projektu / klas
4 - Edytor
5 - Pasek Zakładek
6 - Pasek stanu
Podstawy Informatyki 1
-2-
© 2005 Jarosław Forenc
Menu główne programu:
- zawiera wszystkie polecenia programu,
- dostęp do wybranych pozycji w menu możliwy jest także poprzez przyciski na
pasku narzędzi, skróty klawiszowe (ang. hot keys) i menu kontekstowe.
Paski narzędzi:
- zawierają najczęściej wywoływane polecenia programu.
Główny:
Projekt... - stworzenie nowego projektu,
Otwórz projekt lub plik... (Ctrl+O) - otwarcie istniejącego pliku lub
projektu,
Plik źródłowy (Ctrl+N) - stworzenie nowego pustego pliku i ewentualne
dodanie go do projektu - nowy plik otrzymuje domyślnie nazwę
BezNazwyx, gdzie x jest kolejnym numerem,
Zapisz (Ctrl+S) - zapisanie edytowanego pliku,
Zapisz wszystko - zapisanie wszystkich otwartych plików,
Zamknij (Alt+F4) - zamknięcie edytowanego pliku,
Drukuj (Ctrl+P) - wydrukowanie edytowanego pliku.
Edycja:
Cofnij (Ctrl+Z) - cofnięcie ostatniej operacji edytorskiej,
Powtórz (Shift+Ctrl+Z) - powtórzenie ostatniej operacji edytorskiej.
Przeszukiwanie:
Znajdź (Ctrl+F) - wyszukanie ciągu znaków,
Zamień (Ctrl+R) - wyszukanie i zamiana ciągu znaków,
Szukaj ponownie (F3) - ponowne szukanie ciągu znaków,
Przejdź do wiersza... (Ctrl+G) - przejście w edytowanym pliku do
wiersza o podanym numerze.
Podstawy Informatyki 1
-3-
© 2005 Jarosław Forenc
Projekt:
Dodaj do projektu - dodanie istniejącego pliku do projektu,
Usuń z projektu - usunięcie pliku z projektu,
Opcje projektu (Alt+P) - wyświetlenie opcji projektu.
Kompilowanie i uruchamianie:
Kompiluj (Ctrl+F9) - kompilacja programu,
Uruchom (Ctrl+F10) - uruchomienie wcześniej skompilowanego
programu,
Kompiluj i uruchom (F9) - kompilacja i uruchomienie programu,
Przebuduj wszystko (Ctrl+F11) - ponowna kompilacja wszystkich plików
tworzących projekt,
Odpluskwiaj (F8) - uruchomienie odpluskwiania programu.
Opcje:
Indeks pomocy Dev-C++ - uruchomienie systemu pomocy,
O Dev-C++... - wyświetlenie informacji o programie.
Dodatki:
Zawiera cztery opcje:
- Plik źródłowy (Ctrl+N),
- Projekt,
- Plik zasobów,
- Szablon...
Zawiera dwie opcje:
- Data/Czas - wstawia do pliku źródłowego aktualną datę i czas
w postaci: dd-mm-yy hh:mm,
- Komentarz nagłówkowy - wstawia do pliku źródłowego nagłówek
zawierający pola: Name, Copyright, Author, Date, Description,
Umożliwia zdefiniowanie w pliku źródłowym do 9 zakładek,
Umożliwia przejście do wcześniej zdefiniowanych zakładek.
Podstawy Informatyki 1
-4-
© 2005 Jarosław Forenc
Przeglądarka projektu / klas:
- zawiera trzy zakładki: Projekt, Klasy, Odpluskwiacz.
Zakładka Projekt
Zakładka Klasy
Zakładka Odpluskwiacz
Zakładka Projekt:
- zawiera listę wszystkich plików tworzących projekt (jeśli projekt nie został
stworzony, to zakładka ta jest pusta),
- kliknięcie nazwy pliku na liście powoduje otwarcie go w edytorze.
Zakładka Klasy:
- zawiera listę klas, struktur, funkcji i zmiennych globalnych zdefiniowanych w
programie,
- kliknięcie wybranej nazwy powoduje przeniesienie w edytorze kursora do
miejsca deklaracji wybranego elementu.
Zakładka Odpluskwiacz:
- w zakładce tej wyświetlane są wartości zmiennych obserwowanych podczas
odpluskwiania programu.
Edytor:
- umożliwia jednoczesną edycję kilku plików źródłowych, każdy plik
wyświetlany jest na oddzielnej zakładce,
- umożliwia wykonywanie typowych operacji edytorskich, np. zaznaczanie,
wycinanie, kopiowanie, zastępowanie tekstu,
Podstawy Informatyki 1
-5-
© 2005 Jarosław Forenc
- wyświetla kod źródłowy odpowiednio „kolorując” go (np. słowa kluczowe
języka C są pogrubione, łańcuchy znaków mają kolor czerwony zaś dyrektywy
preprocesora - zielony),
- jeśli edytowany plik zmienił się, ale nie został zapisany na dysku, to przed
nazwą pliku pojawia się symbol [*].
Kompilator:
- wyświetla listę błędów, które wystąpiły podczas kompilacji programu.
Log kompilacji:
- wyświetla przebieg kompilacji programu zawierający wszystkie wywoływane
polecenia.
Odpluskwiacz:
- zawiera polecenia wykorzystywane podczas odpluskwiania programu.
Podstawy Informatyki 1
-6-
© 2005 Jarosław Forenc
Wyniki poszukiwań:
- zawiera wyniki poszukiwań wyrażeń, ale tylko wtedy, gdy dotyczy ono kilku
plików.
Pasek stanu:
Liczba wierszy w edytowanym pliku
Wstaw / Nadpisz - tryb edycji (Wstawianie / Nadpisywanie)
Pojawienie się słowa Modyf. oznacza, że edytowany plik zmienił
się, ale nie został zapisany na dysku
Pozycja kursora w edytowanym pliku (numer wiersza i numer kolumny)
Przykład programu w języku C
#include <stdio.h>
int main(void)
{
printf(“Witaj swiecie\n“);
return 0;
}
Podstawy Informatyki 1
-7-
© 2005 Jarosław Forenc
Ogólna struktura programu w języku C/C++
#include < .... .h>
- dołączenie pliku nagłówkowego,
int main()
{
...
...
...
return (0);
}
- główna funkcja programu, zawsze musi występować
w programie, można nie podawać typu int (jest to
domyślny typ wartości zwracanej przez funkcję),
- treść programu,
- wartość zwracana przez funkcję main, wartość
można zapisać także bez nawiasów, np. return 0;
Komentarze
/* komentarz w języku C i C++ */
// komentarz do końca linii – tylko w języku C++
Zmienne
- służą do reprezentacji danych, mogą przyjmować różne wartości,
- zbiór wartości jakie mogą przyjmować zmienne nazywa się typem,
- zmienne przechowywane są w pamięci operacyjnej komputera, więc każda
z nich posiada swój adres,
- aby móc skorzystać z danej zmiennej trzeba ją zadeklarować.
Deklarowanie zmiennych
int a;
int a;
float b,c;
średnik
nazwa zmiennej
nazwa typu
Elementarne typy arytmetyczne
*
nazwa typu
zakres wartości danych
rozmiar*
char
-128 ... 127
1
int
-32768 … 32768
2
float
-3,4⋅10-38 … 3,4⋅1038
4
double
-1,7⋅10-308 … 1,7⋅10308
8
uwagi
małe liczby całkowite,
znaki ASCII
liczby całkowite
liczby rzeczywiste,
7 cyfr znaczących
liczby rzeczywiste,
15 cyfr znaczących
Wszystkie rozmiary podane są dla kompilatora Borland C++ 3.1
Podstawy Informatyki 1
-8-
© 2005 Jarosław Forenc
Dodatkowe słowa kluczowe:
- short, long - dla typu int oznaczają krótką lub długą liczbę całkowitą,
- long - dla typu double pozwala zwiększyć precyzję (liczbę miejsc po przecinku),
- signed, unsigned - stosowane do typów całkowitych, określają czy zmienna ma
być ze znakiem czy bez znaku.
nazwa typu
signed char = char
unsigned char
signed int = int
unsigned
= unsigned int
short
= signed short int
short unsigned
= unsigned short int
long
= signed long int
long unsigned
= unsigned long int
float
double
long double
*
zakres wartości danych rozmiar*
uwagi
-128 ... 127
0 … 255
-32768 … 32767
1
1
2
liczby całkowite
liczby całkowite
liczby całkowite
0 … 65535
2
liczby całkowite
-32768 … 32767
2
liczby całkowite
0 … 65535
2
liczby całkowite
-2147483648 …
2147483647
4
liczby całkowite
0 … 4294967295
4
liczby całkowite
-3,4⋅10-38 … 3,4⋅1038
-1,7⋅10-308 … 1,7⋅10308
3,4⋅10-4932 … 1,1⋅104932
4
8
10
7 cyfr znaczących
15 cyfr znaczących
19 cyfr znaczących
Wszystkie rozmiary podane są dla kompilatora Borland C++ 3.1
Rozmiar zmiennej a kompilator
Kompilator
int
long double
Borland C++ 3.1
2
10
Dev-C++
4
12
Microsoft Visual C++ 6.0
4
8
Borland C++ Builder 6
4
10
Nazwy zmiennych
- nazwa zmiennej może składać się z liter i cyfr, pierwszym znakiem nazwy musi
być litera,
- znak podkreślenia traktowany jest jak litera,
- jako nazw zmiennych nie można używać słów kluczowych języka C (np. if, else,
int, float, class, private, this, sizeof, try, static, register).
Podstawy Informatyki 1
-9-
© 2005 Jarosław Forenc
Deklaracje zmiennych w programie
zmienne globalne
zmienne lokalne
#include <stdio.h>
#include <stdio.h>
int a;
double b;
int main()
{
int a;
double b;
...
return 0;
}
int main()
{
...
return 0;
}
Przypisywanie wartości zmiennej (inicjlizacja)
przy deklaracji zmiennej
void main()
{
int a = 10;
float b = -10.15;
...
}
w treści programu
void main()
{
int a;
float b,c,d;
...
a = 10;
b = c = d = 10.12;
...
}
- operator przypisania
=
Literały liczbowe
Typy literałów liczbowych wynikają z formy ich zapisu i wartości jakie reprezentują.
- liczby całkowite (int, long int, unsigned long int)
1
25000
39000
4100000000
- liczba całkowita, typ int,
- liczba całkowita, typ int,
- liczba całkowita, typ long (bo przekracza maksymalną
wartość dla typu int),
- liczba całkowita, typ unsigned long int (bo przekracza
long),
Liczby całkowite można zapisywać także w formie ósemkowej (0 na początku)
lub szesnastkowej (0x lub 0X na początku), np.
011
0x11
- 11 w systemie ósemkowym to 9 w systemie dziesiętnym,
- 11 w systemie szesnastkowym to 17 w systemie dziesiętnym.
Podstawy Informatyki 1
- 10 -
© 2005 Jarosław Forenc
- liczby rzeczywiste (double)
- liczba rzeczywista, typ double,
- liczba rzeczywista 1,312·102, typ double,
- liczba rzeczywista -2,124·10-1, typ double.
1.0
1.312e2
-2.124E-1
Zmiana typu literału liczbowego
Typy literałów liczbowych mogą być zmieniane przez programistę poprzez użycie
przyrostków:
- dla typów całkowitych:
- wartość ma być potraktowana jako unsigned (int lub long),
u lub U
l lub L
- wartość ma być potraktowana jako long (int lub unsigned int).
- dla typów rzeczywistych:
- wartość ma być potraktowana jako long double,
l lub L
f lub F
- wartość ma być potraktowana jako float.
Przykłady:
- liczba całkowita typu long,
- liczba rzeczywista typu float (a nie long),
- liczba rzeczywista typu long double.
5L
4.52f
2.5L
Literały znakowe
Literały znakowe (pojedyncze znaki) zapisywane są za pomocą apostrofów, np.
char c = ’a’;
c = ’1’;
Operatory arytmetyczne
- jednoargumentowe:
+
++
--
- plus, znak liczby,
- minus, zmienia wartość wyrażenia na przeciwną,
- operator inkrementacji (zwiększa wartość zmiennej o 1),
- operator dekrementacji (zmniejsza wartość zmiennej o 1).
Operatory ++, -- mogą występować jako:
- przedrostek (przed nazwą zmiennej): ++i, --i
wartość zmiennej modyfikowana jest przed jej wykorzystaniem,
- przyrostek (po nazwie zmiennej): i++, i-wartość zmiennej modyfikowana jest po jej wykorzystaniu.
Podstawy Informatyki 1
- 11 -
© 2005 Jarosław Forenc
- dwuargumentowe multiplikatywne:
- mnożenie,
- dzielenie (zastosowany do liczb całkowitych obcina część ułamkową),
- dzielenie modulo (reszta z dzielenia), może być stosowany tylko dla
typów całkowitych (char, int, unsigned, long),
*
/
%
- dwuargumentowe addytywne:
- dodawanie,
- odejmowanie.
+
-
Priorytet operatorów arytmetycznych
Najwyższy
Najniższy
++ -- + (jednoargumentowe)
*
/
%
+ (dwuargumentowe)
W wyrażeniach arytmetycznych można oczywiście stosować nawiasy, które
zmieniają priorytet operatorów.
Przykłady:
a
d
k
z
=
=
=
=
b+c;
a*b + d*c;
k+1;
(a+d)*c;
Operatory przypisania (złożone)
Operatory te zapisywane są jako:
Zamiast
Podstawy Informatyki 1
i = i + 10;
i = i - 20;
i = i * 40;
i = i / 15;
i = i % 5;
+=
-=
*=
/=
można napisać
- 12 -
%=
i += 10;
i -= 20;
i *= 40;
i /= 15;
i %= 5;
© 2005 Jarosław Forenc
Funkcja printf
printf(”tekst opcjonalny + sp_for”,argumenty);
Funkcja printf wyprowadza tekst, gdy w tekście występuje sp_for (specyfikator
formatu) zaczynający się od %, to następuje przekształcenie - w miejsce
specyfikatora wstawiana jest wartość argumentu. Liczba specyfikatorów formatu
musi być zgodna z liczbą argumentów.
sp_for = %[znacznik][szerokość][.precyzja][modyfikator]typ
[znacznik]
- ”+” - przed liczbą stawiany jest znak (plus lub minus), ”-” wyrównanie wyświetlanych znaków do lewej strony,
[szerokość]
- określa minimalną liczbę wyprowadzanych znaków, jeśli znaków
jest mniej to pole jest z lewej strony uzupełniane spacjami, jeśli
więcej - podana szerokość jest ignorowana,
.precyzja
- liczba znaków po kropce dziesiętnej,
typ
- określa rodzaj i typ argumentu:
d,i
u
x,X
o
f
e,E
g
s
c
- liczba całkowita ze znakiem, dziesiętna,
- liczba całkowita bez znaku, dziesiętna,
- liczba całkowita bez znaku, szesnastkowa,
- liczba całkowita bez znaku, ósemkowa,
- liczba rzeczywista w postaci [-]ddd.ddd,
- liczba rzeczywista w formacie „naukowym” (z użyciem e lub E),
- liczba rzeczywista (format f lub e),
- ciąg znaków,
- pojedynczy znak.
[modyfikator] - służy do zmodyfikowania podstawowego typu podawanego
przez znak typu:
l
L
- stosowany tylko do liczb całkowitych do wyświetlania wartości typu
long (może stać przed d, i, o, u, x, X, o, np. %ld, %li),
- stosowany do wyświetlania wartości rzeczywistych typu long double
Przykłady:
int a = -10;
float b = 10.23;
char imie[5] = “Jan”;
printf(“liczba1 = %d, liczba2 = %f \n”,a,b);
printf(“Imie: %s Nazwisko: %s \n”,imie,”Kowalski”);
Podstawy Informatyki 1
- 13 -
© 2005 Jarosław Forenc
Funkcja scanf
scanf(”sp_for”,argumenty);
Funkcja scanf wczytuje znaki ze standardowego wejścia (klawiatura), interpretuje je
zgodnie z zadanym sp_for (specyfikatorem formatu) i przypisuje wyniki
argumentom w odpowiedniej kolejności.
sp_for = %[szerokość_pola][modyfikator]typ
[szerokość_pola]
- określa ile znaków zostanie przeczytanych
typ
- określa rodzaj i typ argumentu:
d
D
o
O
x
X
i
I
u
U
f,e,E
g,G
s
c
- liczba całkowita dziesiętna, typ int,
- liczba całkowita dziesiętna, typ long,
- liczba całkowita ósemkowa, typ int,
- liczba całkowita ósemkowa, typ long,
- liczba całkowita szesnastkowa, typ int,
- liczba całkowita szesnastkowa, typ long,
- liczba całkowita dziesiętna, ósemkowa lub szesnastkowa, typ int,
- liczba całkowita dziesiętna, ósemkowa lub szesnastkowa, typ long,
- liczba całkowita dziesiętna bez znaku, typ unsigned,
- liczba całkowita dziesiętna bez znaku, typ unsigned long,
- liczba rzeczywista, typ float,
- liczba rzeczywista, typ float,
- ciąg znaków,
- pojedynczy znak, typ char.
[modyfikator] - służy do zmodyfikowania podstawowego typu podawanego
przez znak typu:
l
L
h
- zmienia wszystkie typy całkowitoliczbowe na ich długie wersje;
zastosowany do znaków typu f, e, E, g, G spowoduje interpretację
zawartości pól wejściowych jako liczb typ double,
- zastosowany do znaków typu f, e, E, g, G spowoduje interpretację
zawartości pól wejściowych jako liczb typ long double,
- typy całkowitoliczbowe będą traktowane jako short.
Argumenty funkcji scanf są adresami obszarów w pamięci, dlatego też muszą być
poprzedzone znakiem & (nie dotyczy ciągu znaków).
Przykłady:
int a;
int a;
char name[20];
scanf(”%d”,&a); float b,c;
scanf(”%s”,name);
scanf(”%d %f %f”,&a,&b,&c);
Podstawy Informatyki 1
- 14 -
© 2005 Jarosław Forenc
Plik nagłówkowy math.h
abs()
- wartość bezwzględna (liczby całkowitej),
acos()
- arcus cosinus (zwraca kąt w radianach),
asin()
- arcus sinus (zwraca kąt w radianach),
atan()
- arcus tanges (zwraca kąt w radianach),
cabs()
- moduł liczby zespolonej,
ceil()
- zaokrąglenie w górę,
cos()
- cosinus (kąt w radianach),
cosh()
- cosinus hiperboliczny (kat w radianach),
div()
- iloraz dwóch liczb całkowitych,
exp()
- liczba e do potęgi argument,
fabs()
- wartość bezwzględna argumentu (liczby rzeczywistej),
floor()
- zaokrąglenie w dół,
fmod()
- dzielenie modulo,
log()
- logarytm naturalny,
log10()
- logarytm dziesiętny,
modf()
- udostępnia część całkowitą i ułamkową argumentu,
pow()
- funkcja wykładnicza (oblicza x do potęgi y),
pow10()
- udostępnia liczbę 10 do wybranej potęgi,
rand()
- udostępnia liczbę pseudolosową z zakresu (0 ... 32767),
random()
- udostępnia liczbę pseudolosową z podanego zakresu,
randomize() - inicjacja generatora liczb pseudolosowych,
sin()
- sinus (kąt w radianach),
sinh()
- sinus hiperboliczny (kąt w radianach),
tan()
- tangens (kąt w radianach),
tanh()
- tangens hiperboliczny (kąt w radianach).
M_PI
- stała określająca liczbę π (π = 3,1415926...),
M_E
- stała określająca liczbę e (e = 2,7182818...),
Podstawy Informatyki 1
- 15 -
© 2005 Jarosław Forenc