Jezyk C cz 1

background image

Język C, © Daniel Pociecha, danpoc@agh.edu.pl

1

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

początkujących C++, Wydawnictwo W&W, Warszawa 2006

Zanim zaczniesz pisać


– 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

Język C został napisany przez D. Ritchie’go. Pierwszy okres rozwoju języka to lata 1969-
1973. Początkowo język ten był przeznaczony do tworzenia oprogramowania
systemowego (przy jego pomocy został napisany system operacyjny UNIX). W miarę
upływu czasu stał się językiem ogólnego przeznaczenia. Język C jest uważany za język
umożliwiający szybkie pisanie efektywnych programów. Łączy on w sobie zalety
języków programowania strukturalnego wysokiego poziomu z zaletami niskiego
poziomu języków asemblerowych.

Struktura programu w C

– Nagłówek funkcji zawiera: typ zwracanego wyniku, nazwę funkcji i listę argumentów

umieszczoną nawiasach okrągłych (argumenty oddziela się przecinkiem).

– Instrukcje składające się na kod funkcji umieszcza się w nawiasach klamrowych

{ i }. Para nawiasów klamrowych może służyd do grupowania instrukcji.
Ciąg instrukcji umieszczony wewnątrz nawiasów klamrowych określany jest mianem
instrukcji złożonej.

– Każda instrukcja musi byd zakooczona średnikiem ;. Średnika nie umieszcza się po

zamykającym nawiasie klamrowym (są wyjątki). To średnik, a nie koniec linii,
decyduje o tym gdzie kooczy się instrukcja. Sam średnik traktowany jest, jako
instrukcja pusta.

– Nie można dzielid (przenosid do nowej linii) nazw zmiennych, funkcji i słów

kluczowych.

– Komentarz w C++, to dowolnej długości tekst ograniczony znakami /* i */

background image

Język C, © Daniel Pociecha, danpoc@agh.edu.pl

2

Przykład 1

#include <stdio.h>
int main()
{

printf("Hello World!\n");

return 0;

}

Preprocesor
Przed uruchomieniem kompilatora zawsze jest wywoływany preprocesor, który
przetwarza wiersze program rozpoczynające się znakiem #. Jest to dyrektywa
preprocesora.

#include

jest to podstawowa dyrektywa preprocesora. Ma ona dwie postacie:

#include <nazwa> plik nagłówkowy dostępny w systemie C
#include “nazwa” plik zdefiniowany przez użytkownika

Inne dyrektywy preprocesora wykorzystywane w plikach nagłówkowych to:

#ifndef dowolna_nazwa
#define dowolna_nazwa

/* Zawartość pliku nagłówkowego dowolna_nazwa.h */

#endif

Biblioteki standardowe
<stdio.h>

Standard Input/Output – standardowe operacje wejścia/wyjścia

<math.h>

operacje matematyczne

<stdlib.h> przydatne, najczęściej używane funkcje
<string.h> operacje na łaocuchach znaków
<time.h>

funkcje obsługi czasu


Funkcja main()
Program w języku C składa się z funkcji, w ten sposób złożony problem, możemy
podzielid na mniejsze, łatwiejsze do zakodowania i czytelniejsze fragmenty. Główną
funkcją, od której rozpoczyna się wykonywanie programu jest funkcja main().

int main()
{

/* kod program */

return 0;

}

background image

Język C, © Daniel Pociecha, danpoc@agh.edu.pl

3

Aby po zakooczeniu działania programu uzyskad informację o tym czy program
wykonał się poprawnie, nadajemy funkcji main() typ int (integer – liczba
całkowita), a funkcję kooczymy poleceniem return 0;. Jeżeli program wykonał się
poprawnie, funkcja main() zwraca wartośd „0‟.

UWAGA! Program powinien byd zapisywany z wykorzystaniem wcięd tak, aby widad
było strukturę poszczególnych instrukcji

UWAGA! System zwraca uwagę na wielkośd liter.
Return – to nie to samo co: return

Podstawowe typy danych

void

typ pusty - brak wartości


char

typ znakowy - jeden z podstawowych typów danych, mający
na celu przechowywanie pojedynczego znaku tekstu.


int

liczba całkowita

zakres: -32768 … 32767

unsigned int liczba całkowita

zakres: 0 … 65535

long

liczba całkowita

zakres: - 2 miliardy … 2 miliardy

unsigned long liczba całkowita

zakres: 0 … 4 miliardy


float

liczba rzeczywista zakres: 3.4 * E-38 … 3.4 * E38

double

liczba rzeczywista zakres: bardzo duży

long double

liczba rzeczywista zakres: olbrzymi


Typ rzeczywisty

L = mantysa * 10

wykładnik


Przykład zapisu:
L = 15.67
L = 83.5E+3

background image

Język C, © Daniel Pociecha, danpoc@agh.edu.pl

4

Zmienne

– Zmienną w języku programowania nazywamy wielkośd, która może przechowywad

wartośd należącą do pewnego zbioru nazywanego typem zmiennej. Zmienna jest
jednoznacznie identyfikowana przez swoją nazwę. Każda zmienna w programie musi
zostad wcześniej zadeklarowana, tzn. należy określid jej nazwę i typ wartości.

– Identyfikatorem (nazwą) nazywamy ciąg liter, cyfr i znaków podkreślenia,

rozpoczynający się od litery lub znaku podkreślenia. Nazwami nie mogą byd słowa
kluczowe, tj. słowa zastrzeżone używane w konstrukcjach języka. W dobrym
zwyczaju jest nadawanie nazw zmiennym, odzwierciedlających ich znaczenie.
Wartośd sumy pewnych elementów powinna nazywad się suma a nie np. 2_wdx.

– Wartośd zmiennej jest tym, co przechowujemy w obszarze pamięci określanym

przez nazwę. W momencie deklaracji wartośd zmiennej lokalnej jest nieokreślona,
zmienne globalne są inicjalizowane na zero.

– Do nadawania wartości zmiennej służy instrukcja przypisania.

Przykłady deklaracji zmiennych i instrukcji przypisania

int a;
int b = 2;
float x, y;
float z = 3.2;
float suma;
a = 10;
x = y = 3.14;

Przykład 2

#include <stdio.h>

int main()
{
float a, b, pole;
printf("Podaj długości boków prostokąta:\n");
printf("a = ");
scanf("%f", &a);
printf("b = ");
scanf("%f", &b);
pole = a * b;
printf("pole = %5.2f\n", pole);
return 0;
}

background image

Język C, © Daniel Pociecha, danpoc@agh.edu.pl

5

Operacje wejścia wyjścia

Komunikację użytkownika z programem zapewniają funkcje wejścia wyjścia.
Umożliwiają one wyświetlanie komunikatów na ekranie komputera oraz wprowadzanie
danych z klawiatury.

printf("Jakiś tekst\n");
Funkcja printf() znajduje się w bibliotece stdio.h. W cudzysłowach ""
umieszczamy tekst, który chcemy wyświetlid na ekranie komputera.
Znak znajdujący się po znaku \ jest traktowany w sposób specjalny, przykładowo:
\n

nowy wiersz

\t

tabulacja

\b

cofanie

\f

nowa strona

\0

znak NUL


scanf("%f", &a);
Funkcja scanf() znajduje się w bibliotece stdio.h. Wyrażenie "%f" oznacza, że
spodziewamy się liczby zmiennoprzecinkowej, a to nazwa zmiennej, natomiast & to
wskaźnik (adres) do zmiennej a

%f – jest to tekst sterujący, narzucający formatowanie wprowadzanego bądź
wyświetlanego tekstu, przykładowo:
%d

liczba dziesiętna

%s

tekst znakowy

%e

liczba zmiennoprzecinkowa – notacja wykładnicza

%f

liczba zmiennoprzecinkowa – notacja dziesiętna

%6.2f co najmniej 6 znaków, z dwoma miejscami po kropce
%3.0f co najmniej 3 znaki, bez części ułamkowej
%.2f z dwoma miejscami po kropce
%3d

liczba dziesiętna zajmująca, co najmniej 3 znaki


ZADANIE 1. Przekształd przykład 2 tak, by program liczył pole dowolnego trójkąta

ZADANIE 2. Napisz program liczący pole i obwód koła (założyd π = 3.14).

ZADANIE 3. Napisz program liczący pole i obwód trójkąta równobocznego, oraz
promieo okręgu opisanego na tym trójkącie (R) i promieo okręgu wpisanego w ten
trójkąt (r).

background image

Język C, © Daniel Pociecha, danpoc@agh.edu.pl

6

Wyrażenia i operatory


Operatory arytmetyczne
*

mnożenie

/

dzielenie

+

dodawanie

-

odejmowanie

%

reszta z dzielenia


Operatory relacyjne
<

mniejszy

<=

mniejszy lub równy

>

większy

>=

większy lub równy

==

równy

!=

nierówny


Operator przypisania
=


Operatory logiczne
!

negacja

&&

koniunkcja

||

alternatywa


Operatory zwiększania i zmniejszania
++

zwiększ wartośd zmiennej o 1

--

zmniejsz wartośd zmiennej o 1


Przykładowo:
x = ++a

zwiększa wartośd a o 1 a następnie przypisuje do x

x = a++

przypisz wartośd a do x a następnie zwiększ o 1


Wieloznakowe operatory przypisania
+=

a += b;

a = a + b;

-=

a -= b;

a = a - b;

*=

a *= b;

a = a * b;

/=

a /= b;

a = a / b;

%=

a %= b;

a = a % b;


background image

Język C, © Daniel Pociecha, danpoc@agh.edu.pl

7

Przykład 3

#include <stdio.h>

int main()
{

int a, b, wynik;


printf("Operatory relacyjne:\n");

a = 10;

b = 2;

wynik = a > b;

printf("wynik a > b = %d\n\n", wynik);


printf("Operatory logiczne:\n");

a = 1;

b = 0;

wynik = a && b;

printf("wynik a && b = %d\n", wynik);

wynik = a || b;

printf("wynik a || b = %d\n\n", wynik);


printf("Operatory zwiększania i zmniejszania:\n");

a = 100;

wynik = a++;

printf("wynik a++ = %d\n", wynik);

wynik = ++a;

printf("wynik ++a = %d\n\n", wynik);


printf("Wieloznakowe operatory przypisania:\n");

a = 10;

a += 5;

printf("wynik a += %d\n", a);

a *= 2;

printf("wynik a *= %d\n", a);


return 0;

}



Wyszukiwarka

Podobne podstrony:
Wyklad Jezyk C cz 1 Wyklad Jezyk C cz 1
Wyklad Jezyk C cz 2 Wyklad Jezyk C cz 2
jeżyk cz TR63FC7CGYRVEOFBHCH5BOV7TZ6CXXUG6JREQAA
Jezyk C cz 2
Jezyk C cz 3
jezyk C skrypt cz 1
Anglistyka 2 rok Egzamin z przedmiotu Język polski jako narzędzie pracy tłumacza z dr M Kresą cz 1
Koncepcja bohatera III cz Dziadów dlaczego ponosi klęskę, SZKOŁA, język polski, romantyzm
Prezenterzy sportowi i piękny język polski cz 2
Pisarze baroku i oświecenia w trosce o dobro kraju+tryumf cz, Szkoła, Język polski, Wypracowania
Cz 1 Język Japoński Część I (słownictwo)
sekret alchemika Sędziwoja cz. 01, STUDIA JEZYK POLSKI, Współczesna proza polska
Ocena postawy społeczeństwa polskiego w III cz Dziadów, SZKOŁA, język polski, romantyzm
Io 5 Język UML, cz I
sekret alchemika Sędziwoja cz. 04, STUDIA JEZYK POLSKI, Współczesna proza polska
sekret alchemika Sędziwoja cz. 02, STUDIA JEZYK POLSKI, Współczesna proza polska
Cz 1 Jezyk Japonski Czesc I id Nieznany

więcej podobnych podstron