c, szkola, programowanie, c


  1. Podstawy języka C

    1. Język C i inne języki programowania

W języku C

W asemblerze

a = b+c-2 ;

LOAD b, %r0

LOAD c, %r1

ADD %r0, %r1

SUB &2, %r1

STORE %r1, a

1.2. Program w języku C

1.2.1. Przykład programu w języku C

0x08 graphic
/* mój pierwszy program w C */ komentarz

0x08 graphic
#include <stdio.h> dyrektywa preprocesora

0x08 graphic
int main() nagłówek funkcji

0x08 graphic
0x08 graphic
{

0x08 graphic
printf("Witam\n"); treść funkcji

return 0;

0x08 graphic
}

Elementy składowe programu

/* ... */

Komentarz języka C; komentarzem jest wszystko wewnątrz znaków /* i */; może to być kilka wierszy.

W kompilatorze Borlanda można również stosować komentarze z języka C++. Taki komentarz jest poprzedzony znakami //; może to być tylko jeden wiersz.

#include

Dyrektywa preprocesora - określa dołączany do programu plik z informacjami potrzebnymi do prawidłowej kompilacji i wykonania programu.

#include <stdio.h>

dołącza plik potrzebny dla funkcji printf().

stdio.h jest skrótem od: standard input-output header file - plik nagłówkowy standardowego wejścia-wyjścia.

int main(){ }

Definicja funkcji; funkcja ma nagłówek i treść (instrukcje) zawartą między nawiasami klamrowymi.

Typ funkcji określa rodzaj wartości, który funkcja zwraca po wykonaniu; int oznacza, że funkcja zwraca wartość całkowitą.

printf("Witam\n");

Wywołanie funkcji bibliotecznej printf() w celu wydrukowania tekstu.

Symbol \n oznacza przejście do nowego wiersza.

return 0;

Funkcja main zwraca wartość 0 (liczba całkowita) do systemu operacyjnego - oznacza to, że program wykonał się prawidłowo i do końca.

1.2.2. Struktura programu w języku C

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

1.2.3. Kompilacja programu

0x08 graphic

1.3. Przegląd konstrukcji języka C

1.3.1. Zmienne i stałe

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

1.3.2. Identyfikatory

Poprawne nazwy

Niepoprawne nazwy

licznik

1licznik

test12

test-12

test_12

test..12

1.3.3. Podstawowe typy danych

Przykład:

int licznik; /* zmienna typu int o nazwie licznik

( może przechowywać liczby całkowite

z zakresu określonego typem int) */

double suma; /* zmienna typu double o nazwie suma

(może przechowywać liczby rzeczywiste) */

char c; /* zmienna typu char o nazwie c

(może przechowywać znaki lub małe liczby całkowite)*/

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

1.3.4. Słowa kluczowe

1.3.5. Wyrażenia

2 * 3 /* mnożenie dwóch stałych:

wartość 6, typ int */

i + 1 /* dodawania stałej i zmiennej typu int:

wartość zależy od i, typ int */

5 + h*6 /* h jest typu int; wartość zalezy od h,

typ int */

0.5 * sqrt(2.) /* sqrt - pierwiastek;

wartość 0.5*1.41, typ double */

1.3.6. Operatory arytmetyczne

Symbol

Znaczenie

*

Mnożenie

/

Dzielenie

%

Reszta z dzielenia (dzielenie modulo)

+

Dodawanie

-

Odejmowanie

2 + 3 * 5 daje w wyniku 17

(2 + 3) *5 daje w wyniku 25

Przykład:

1 / 2 daje w wyniku 0

4 / 3 daje w wyniku 1

1./ 2 daje w wyniku 0.5

1./2. daje w wyniku 0.5

1.3.7. Operatory relacji

Symbol

Znaczenie

<

mniejsze

<=

mniejsze lub równe

>

większe

>=

większe lub równe

==

równe

!=

nierówne

załóżmy, że x ma wartość 2, zaś y wartość 5

x < y daje w wyniku 1

wyrażenie x + 1 < y * 2 jest interpretowane jako (x+1) < (y*2)

1.3.8. Instrukcje

;

i=2; /* przypisanie wartości 2 zmiennej i */

printf("Witamy\n"); /* wywołanie_funkcji */

{

printf("zwiększ i o 1\n");

i=i+1;

}

1.3.8.1. Instrukcja przypisania

nazwa_zmiennej = wyrażenie;

i=1;

i=(2+3)*5;

i=2+3*5;

k=i+j;

1.3.8.2. Instrukcja wywołania funkcji

nazwa_funkcji(parametr1, parametr2,...,parametrN);

printf("Witamy\n");

a=sqrt(2.); /* pierwiastek kwadratowy */

b=pow(12.0,5.); /* 12 do potęgi 5 */

1.3.8.3. Instrukcja wyboru

if (wyrażenie)

instr_1; // Wykonaj, gdy prawda:

// wartość wyrażenia

// jest różna od zera

if (punkty >= 15 )

printf("Zaliczone\n)";

0x08 graphic

0x08 graphic

Wykonanie:

  1. Oblicz wartość wyrażenia.

  1. Jeśli wartość to prawda, wykonaj instrukcję. W przeciwnym wypadku przejdź do instrukcji następującej po instrukcji wyboru.

if (wyrażenie)

instr_1 // Wykonaj, gdy prawda

else

instr_2 // Wykonaj, gdy fałsz:

// wartość wyrażenia równa zeru

0x08 graphic
0x08 graphic

1.3.8.4. Instrukcja iteracyjna

while (wyrażenie) while (x<y)

instrukcja x=x+1;

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

  1. Oblicz wyrażenie.

  1. Jeśli jego wartość jest różna od zera (prawda), wykonaj instrukcje.

  1. Wróć na początek while i ponownie oblicz wyrażenie.

  1. Powtarzaj ten cykl, aż do chwili, w której wartość wyrażenia stanie się zerem (fałsz). Wtedy przejdź do instrukcji następującej po pętli.

1.4. Instrukcje wejścia - wyjścia

1.4.1. Wyświetlanie danych na ekranie monitora - printf()

#include <stdio.h>

int main()

{

int suma;

suma=2+5;

printf("Wynik dodawania 2+5 wynosi %d\n",suma);

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
return 0;

0x08 graphic
0x08 graphic
}

0x08 graphic

printf("Witamy\n");

printf("Pole kola o promieniu %f=%f \n",r,pow);

printf("Pierwiastek %lf wynosi %lf\n",liczba, sqrt(liczba));

printf("Kwadrat liczby %d to %d\n", liczba, liczba*liczba);

Argumenty funkcji printf()

%d - typ int: liczba całkowita ze znakiem w systemie dziesiętnym

%f - typ float: liczba zmiennoprzecinkowa w systemie dziesiętnym

%e - typ float: liczba zmiennoprzecinkowa w zapisie wykładniczym

%lf - typ double: liczba zmiennoprzecinkowa w systemie dziesiętnym

%le - typ double: liczba zmiennoprzecinkowa w zapisie wykładniczym

%c - typ char: pojedynczy znak

%s - tablica znakowa zakończona znakiem NULL: napisy

1.4.2. Wczytywanie danych z klawiatury - scanf()

#include <stdio.h>

int main()

{

int liczba, kwadrat;

printf("Wpisz liczbe calkowita: ");

scanf("%d", &liczba);

kwadrat=liczba*liczba;

printf("Kwadrat %d to: %d\n",liczba, kwadrat);

return 0;

}

Argumenty funkcji scanf()

%d - typ int: liczba całkowita ze znakiem w systemie dziesiętnym

%ld - typ long int: liczba całkowita ze znakiem w systemie dziesiętnym

%f - typ float: liczba zmiennoprzecinkowa w systemie dziesiętnym

%e - typ float: liczba zmiennoprzecinkowa w zapisie wykładniczym

%lf - typ double: liczba zmiennoprzecinkowa w systemie dziesiętnym

%le - typ double: liczba zmiennoprzecinkowa w zapisie wykładniczym

%c - typ char: pojedynczy znak

1.4.3. Wczytywanie i wyświetlanie pojedynczych znaków - getchar()putchar()

Przykład:

c=getchar(); /* wartość c to następny znak z wejścia */

Przykład:

c='*';

putchar(c); /* wyświetla gwiazdkę na ekranie */

#include <stdio.h>

/* Zlicz znaki w tekście zakończonym kropką */

int main() {

char c;

int licznik;

licznik=0;

c=getchar();

while(c!='.') {

licznik=licznik+1;

c=getchar();

}

printf("%d\n",licznik);

return 0;

}

1.5. Dyrektywy preprocesora

1.5.1. Dyrektywa #include

#include <nazwa_pliku>

#include "nazwa_pliku"

1.5.2. Dyrektywa #define

#define nazwa ciąg_znaków

#define PI 3.14159

main() {

....

obwod=2*PI*r;

}

1.6. Przykłady programów

/* Program oblicza powierzchnie koła - wersja 1 */

#include <stdio.h>

#define PI 3.14

int main()

{

float r,pow;

r=1;

pow=PI*r*r;

printf("Pole kola o promieniu %f=%f \n",r,pow);

return 0;

}

/* Program oblicza powierzchnie koła - wersja 2 */

#include <stdio.h>

#define PI 3.14

int main()

{

double r,pow;

printf("Wpisz promien kola: ");

scanf("%lf",&r);

pow=PI*r*r;

printf("Pole kola o promieniu %lf=%lf \n",r,pow);

return 0;

}

/* Program oblicza pierwiastek kwadratowy liczby */

#include <stdio.h>

#include <math.h>

int main()

{

double liczba;

printf("Wpisz liczbe dodatnia: ");

scanf("%lf",&liczba);

if (liczba > 0)

printf("Pierwiastek z liczby %lf wynosi %lf\n",

liczba, sqrt(liczba));

else

printf("Wpisana liczba %lf nie jest dodatnia\n",liczba);

return 0;

}

/* Liczba spacji w zdaniu */

#include <stdio.h>

int main() {

int c, spacje=0;

printf("Wpisz zdanie:\n");

c=getchar();

while (c != '\n') {

if (c == ' ')

spacje=spacje+1;

c=getchar();

}

printf("Spacje: %d.\n", spacje);

return 0;

17

D. Rybarczyk, Studia zaoczne - wykłady

w1pwsz, 2005-02-17

program źródłowy

w języku C

(source file)

pliki nagłówkowe

(header files)

funkcje

biblioteka funkcji

(library)

Program w języku C

Pliki nagłówkowe

Biblioteki funkcji

funkcje

#include

main()

{

printf();

}

Program źródłowy

(Preprocesor)

Kompilator

Program wynikowy

Program wynikowy

Konsolidator

Program wykonywalny

program.c

Biblioteki

program.exe

i = 5;

stała

zmienna o nazwie i

int licznik;

licznik = 0;

zmienna typu int

stała typu int (liczba całkowita)

Przykład 1.

double suma;

suma = 0.;

zmienna typu

double stała typu double (liczba z kropką dziesiętną)

Przykład 2.

char c;

c='*';

zmienna

typu char stała typu char (znak w apostrofach)

Przykład 3.

punkty > 15

wyświetl "zaliczone"

prawda

fałsz

wyrażenie

instrukcja_1

prawda

fałsz

if (punkty >= 15)

printf("Zaliczone\n");

else

printf("Nie zaliczone");

wyrażenie

instrukcja_1

fałsz

instrukcja_2

prawda

fałsz

(wartość równa zeru)

oblicz wartość wyrażenia

wykonaj instrukcje

prawda

(wartość różna od zera)

fałsz

x<y

zwiększ x o 1

prawda

Każdej zmiennej odpowiada specyfikator formatu;

zmiennej typu int odpowiada specyfikator %d



Wyszukiwarka

Podobne podstrony:
Jezyk C Szkola programowania jcshpr
Jezyk C Szkola programowania Wydanie V
zadania if proste, Szkoła, Programowanie, C++, Zadania z IF
JĘZYKI PROGR praca kontrolna, szkola, programowanie
zadania wsk, Szkoła, Programowanie
tp-zadania cz3, Szkoła, Programowanie, C++, Zadania z programowania cz.3
Jezyk C Szkola programowania
Jezyk C Szkola programowania Wydanie V jcszpr
zadania z programowania, szkola, programowanie
Język C Szkoła programowania Wydanie V
Jezyk C Szkola programowania Wydanie V
Jezyk C Szkola programowania Wydanie V
Jezyk C Szkola programowania jcshpr
C Szkoła programowania
Jezyk C Szkola programowania Wydanie V jcszpr
Jezyk C Szkola programowania Wydanie V
Jezyk C Szkola programowania
Jezyk C Szkola programowania Wydanie V jcszpr

więcej podobnych podstron