METODYKI I TECHNIKI PROGRAMOWANIA 1 FOLIE NR 1 TEMAT

Transkrypt

METODYKI I TECHNIKI PROGRAMOWANIA 1 FOLIE NR 1 TEMAT
Okno główne programu
METODYKI I TECHNIKI PROGRAMOWANIA 1
FOLIE NR 1
1
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.
2
3
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
4
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
5
Wymagania sprz towe (zalecane):
6
- Microsoft Windows 2000, XP
- 32 MB RAM
- 400 MHz Intel compatible CPU, 200 MB free disk space
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
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.
Metodyki i Techniki Programowania 1
-1-
© 2008 Jarosław Forenc
Metodyki i Techniki Programowania 1
-2-
© 2008 Jarosław Forenc
Menu główne programu:
Projekt:
Dodaj do projektu - dodanie istniej cego pliku do projektu,
Usu z projektu - usuni cie pliku z projektu,
- 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.
Opcje projektu (Alt+P) - wy wietlenie opcji projektu.
Kompilowanie i uruchamianie:
Paski narz dzi:
Kompiluj (Ctrl+F9) - kompilacja programu,
- zawieraj najcz ciej wywoływane polecenia programu.
Uruchom (Ctrl+F10) - uruchomienie wcze niej skompilowanego
programu,
Główny:
Kompiluj i uruchom (F9) - kompilacja i uruchomienie programu,
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,
Przebuduj wszystko (Ctrl+F11) - ponowna kompilacja wszystkich plików
tworz cych projekt,
Projekt... - stworzenie nowego projektu,
Odpluskwiaj (F8) - uruchomienie odpluskwiania programu.
Opcje:
Zapisz (Ctrl+S) - zapisanie edytowanego pliku,
Indeks pomocy Dev-C++ - uruchomienie systemu pomocy,
Zapisz wszystko - zapisanie wszystkich otwartych plików,
O Dev-C++... - wy wietlenie informacji o programie.
Zamknij (Alt+F4) - zamkni cie edytowanego pliku,
Drukuj (Ctrl+P) - wydrukowanie edytowanego pliku.
Dodatki:
Edycja:
Zawiera cztery opcje:
- Plik ródłowy (Ctrl+N),
- Projekt,
- Plik zasobów,
- Szablon...
Cofnij (Ctrl+Z) - cofni cie ostatniej operacji edytorskiej,
Powtórz (Shift+Ctrl+Z) - powtórzenie ostatniej operacji edytorskiej.
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,
Przeszukiwanie:
Znajd (Ctrl+F) - wyszukanie ci gu znaków,
Zamie (Ctrl+R) - wyszukanie i zamiana ci gu znaków,
Umo liwia zdefiniowanie w pliku ródłowym do 9 zakładek,
Szukaj ponownie (F3) - ponowne szukanie ci gu znaków,
Umo liwia przej cie do wcze niej zdefiniowanych zakładek.
Przejd do wiersza... (Ctrl+G) - przej cie w edytowanym pliku do
wiersza o podanym numerze.
Metodyki i Techniki Programowania 1
-3-
© 2008 Jarosław Forenc
Metodyki i Techniki Programowania 1
-4-
© 2008 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),
Przegl darka projektu / klas:
- zawiera trzy zakładki: Projekt, Klasy, Odpluskwiacz.
- 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:
Zakładka Klasy
Zakładka Projekt
Zakładka Odpluskwiacz
- wy wietla przebieg kompilacji programu zawieraj cy wszystkie wywoływane
polecenia.
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:
Odpluskwiacz:
- w zakładce tej wy wietlane s warto ci zmiennych obserwowanych podczas
odpluskwiania programu.
- zawiera polecenia wykorzystywane 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,
Metodyki i Techniki Programowania 1
-5-
© 2008 Jarosław Forenc
Metodyki i Techniki Programowania 1
-6-
© 2008 Jarosław Forenc
PROGRAM NA ZAMIAN TEMPERATUR
Wyniki poszukiwa :
- zawiera wyniki poszukiwa wyra e , ale tylko wtedy, gdy dotyczy ono kilku
plików.
tc =
5
(t f − 32)
9
#include <studio.h>
#include <stdlib.h>
Pasek stanu:
int main()
{
foat tc, tf;
Liczba wierszy w edytowanym pliku
scanf(”%f”,&tf);
tc=5*(tf-32)/9;
printf(”%f”,tc);
Wstaw / Nadpisz - tryb edycji (Wstawianie / Nadpisywanie)
Pojawienie si słowa Modyf. oznacza, e edytowany plik zmienił
si , ale nie został zapisany na dysku
system(”pause”);
return 0;
Pozycja kursora w edytowanym pliku (numer wiersza i numer kolumny)
}
OGÓLNA STRUKTURA PROGRAMU W J ZYKU C
int main()
{
printf(”Witaj swiecie\n”);
return (0);
}
dyrektywa
preprocesora
typ warto ci
zwracanej
przez funkcj
#include <studio.h>
#include <stdlib.h>
int main()
{
foat tc, tf;
nazwa pliku
nagłówkowego
nagłówek funkcji
printf(”Podaj temp. w skali Fahrenheita: ”);
scanf(”%f”,&tf);
tc=5*(tf-32)/9;
printf(”%.3f stopni F to %.3f stopni C\n”,tf,tc);
ciało funkcji
system(”pause“);
return 0;
#include <stdio.h>
nazwa funkcji
lista argumentów
przekazywanych do funkcji
int main()
{
printf(”Witaj swiecie\n”);
return (0);
}
warto
instrukcja
instrukcja
}
zwracana przez funkcj
Metodyki i Techniki Programowania 1
-7-
© 2008 Jarosław Forenc
Metodyki i Techniki Programowania 1
-8-
© 2008 Jarosław Forenc
Wszystkie typy zmiennych
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 .
Rozmiar
(bajty)
Uwagi
signed char = char
-128 ... 127
1
liczby całkowite
unsigned char
0 … 255
1
liczby całkowite
*
liczby całkowite
*
2
liczby całkowite
Zakres warto ci danych
Nazwa typu
-32768 … 32767
signed int = int
Deklarowanie zmiennych
int a;
int a;
float b,c;
rednik
nazwa zmiennej
nazwa typu
Podstawowe typy zmiennych
Zakres warto ci danych
Rozmiar
(bajty)
char
-128 ... 127
1
Nazwa
typu
Uwagi
małe liczby całkowite, znaki ASCII
*
2
*
unsigned = unsigned int
0 … 65535
short = signed short int
-32768 … 32767
2
liczby całkowite
short unsigned =
unsigned short int
0 … 65535
2
liczby całkowite
long = signed long int
-2147483648 … 2147483647
4
liczby całkowite
long unsigned =
unsigned long int
0 … 4294967295
4
liczby całkowite
float
-3,4⋅10-38 … 3,4⋅1038
4
7 cyfr znacz cych
8
15 cyfr znacz cych
10*
19 cyfr znacz cych
-1,7⋅10
double
… 1,7⋅10
-308
308
3,4⋅10-4932 … 1,1⋅104932 *
long double
*
int
-32768 … 32767
-2147483648 ... 2147483647 **
2* / 4**
float
-3,4⋅10-38 … 3,4⋅1038
4
liczby rzeczywiste, 7 cyfr znacz cych
double
-1,7⋅10-308 … 1,7⋅10308
8
liczby rzeczywiste, 15 cyfr znacz cych
void
-
-
oznacza brak warto ci
liczby całkowite
Rozmiar zmiennej a kompilator
Kompilator
long double
Borland C++ 3.1
2
10
Dev-C++
4
12
Dodatkowe słowa kluczowe:
Microsoft Visual C++ 6.0
4
8
- 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.
Borland C++ Builder 6
4
10
int
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.
Metodyki i Techniki Programowania 1
-9-
© 2008 Jarosław Forenc
Metodyki i Techniki Programowania 1
- 10 -
© 2008 Jarosław Forenc
Słowa kluczowe j zyka C
auto
break
case
char
const
continue
default
goto
if
int
long
register
return
short
do
double
else
enum
extern
float
for
Przykłady:
- liczba całkowita typu long,
- liczba rzeczywista typu float (a nie double),
- liczba rzeczywista typu long double.
5L
4.52f
2.5L
unsigned
void
volatile
while
signed
sizeof
static
struct
switch
typedef
union
Literały znakowe
Literały znakowe (pojedyncze znaki) zapisywane s za pomoc apostrofów, np.
char c = ’a’;
c = ’1’;
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)
- 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.
- 11 w systemie ósemkowym to 9 w systemie dziesi tnym,
- 11 w systemie szesnastkowym to 17 w systemie dziesi tnym.
- liczby rzeczywiste (double)
011
0x11
- 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),
Zmiana typu literału liczbowego
*
/
%
- liczba rzeczywista, typ double,
- liczba rzeczywista 1,312·102, typ double,
- liczba rzeczywista -2,124·10-1, typ double.
- dwuargumentowe addytywne:
Typy literałów liczbowych mog by zmieniane przez programist poprzez u ycie
przyrostków:
- odejmowanie.
-
Priorytet operatorów arytmetycznych
Najwy szy
Najni szy
++ -- + (jednoargumentowe)
*
/
%
+ (dwuargumentowe)
- dla typów rzeczywistych:
l lub L
- warto ma by potraktowana jako long double,
f lub F
- warto ma by potraktowana jako float.
- dodawanie,
+
- dla typów całkowitych:
u lub U
- warto ma by potraktowana jako unsigned (int lub long),
l lub L
- warto ma by potraktowana jako long (int lub unsigned int).
W wyra eniach arytmetycznych mo na oczywi cie stosowa
zmieniaj priorytet operatorów.
- 11 -
© 2008 Jarosław Forenc
Metodyki i Techniki Programowania 1
- 12 -
Metodyki i Techniki Programowania 1
Operatory ++, -- mog wyst powa jako:
Liczby całkowite mo na zapisywa tak e w formie ósemkowej (0 na pocz tku)
lub szesnastkowej (0x lub 0X na pocz tku), np.
1.0
1.312e2
-2.124E-1
- 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).
+
++
--
- 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),
4100000000
- jednoargumentowe:
1
25000
39000
Operatory arytmetyczne
nawiasy, które
© 2008 Jarosław Forenc
Przykłady:
Funkcja printf
a
d
k
z
printf(”tekst opcjonalny + sp_for”,argumenty);
b+c;
a*b + d*c;
k+1;
(a+d)*c;
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.
=
=
=
=
Operatory przypisania (zło one)
Operatory te zapisywane s jako:
+=
-=
*=
/=
%=
- ”+” - przed liczb stawiany jest znak (plus lub minus), ”-” wyrównanie wy wietlanych znaków do lewej strony,
[znacznik]
- 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,
]
[szeroko
i += 10;
i -= 20;
i *= 40;
i /= 15;
i %= 5;
][.precyzja][modyfikator]typ
mo na napisa
Zamiast
i = i + 10;
i = i - 20;
i = i * 40;
i = i / 15;
i = i % 5;
sp_for = %[znacznik][szeroko
- liczba znaków po kropce dziesi tnej,
typ
- okre la rodzaj i typ argumentu:
.precyzja
- 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.
d,i
u
x,X
o
f
e,E
g
s
c
[modyfikator] - słu y do zmodyfikowania podstawowego typu podawanego
przez znak typu:
- 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
l
L
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”);
Metodyki i Techniki Programowania 1
- 13 -
© 2008 Jarosław Forenc
Metodyki i Techniki Programowania 1
- 14 -
© 2008 Jarosław Forenc
Funkcja scanf
Funkcja printf (przykłady)
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.
int i=15, j=-30;
float x=15.1234567;
double y=1.456e-2;
char text[10]="Napis";
printf("%d %d %f %e",i,j,x,y);
printf("%f %e",x,x);
printf("%f %e",y,y);
printf("%5d %+5d %-5d",i,i,i);
printf("%.2f %1.5f",x,x);
printf("x = %1.3f, y = 1.3f",x,y);
printf(”%10.3f”,x);
printf("Tekst: %s",text);
printf("\\ \' \" \? %%\n");
_pola][modyfikator]typ
- okre la ile znaków zostanie przeczytanych
_pola]
[szeroko
sp_for = %[szeroko
- okre la rodzaj i typ argumentu:
typ
- 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.
Funkcja scanf (przykłady)
int a,b,c;
float x,z;
double y;
char text[10];
scanf(”%d %d %d”,&a,&b,&c);
d
D
o
O
x
X
i
I
u
U
f,e,E
g,G
s
c
[modyfikator] - słu y do zmodyfikowania podstawowego typu podawanego
przez znak typu:
l
scanf(”%d %f %lf”,&a,&x,&y);
scanf(”%f %e %le”,&x,&z,&y);
scanf(”%s”,text);
- 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.
L
15 20 -30<enter>
lub
15
20 -30 <enter>
lub
15<enter>
20<enter>
-30<enter>
15 1.51 -12.467<enter>
12.1 1.45e-2 –1.34e5<enter>
napis<enter>
h
15 –30 15.123457 1.456000e-002
15.123457 1.512346e+001
0.014560 1.456000e-002
15
+15 15
15.12 15.12346
x = 15.123, y = 1.3f
15.123
Tekst: Napis
\ ' " ? %
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);
Metodyki i Techniki Programowania 1
- 15 -
© 2008 Jarosław Forenc
Metodyki i Techniki Programowania 1
- 16 -
© 2008 Jarosław Forenc
Plik nagłówkowy math.h
bezwzgl dna (liczby całkowitej),
- warto
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
floor()
- zaokr glenie w dół,
fmod()
- dzielenie modulo,
log()
- logarytm naturalny,
log10()
- logarytm dziesi tny,
modf()
- udost pnia cz
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,
abs()
bezwzgl dna argumentu (liczby rzeczywistej),
całkowit i ułamkow argumentu,
randomize() - inicjacja generatora liczb pseudolosowych,
- 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...),
sin()
Metodyki i Techniki Programowania 1
- 17 -
© 2008 Jarosław Forenc

Podobne dokumenty