to get the file

Transkrypt

to get the file
Laboratorium nr 2
Instrukcja
laboratoryjna
2
1)
1/7
Język C
Temat: Wprowadzenie do języka C
Przygotował: mgr inż. Maciej Lasota
Wprowadzenie do języka C.
Język C jest językiem programowania ogólnego zastosowania (przeznaczenia) i
należy do najpopularniejszych języków programowania na świecie. Był i jest nadal ściśle
związany z systemem operacyjnym Unix, dla którego został opracowany i stworzony
(większość kodu źródłowego Unix'a zostało napisane w języku C). Język C wyposażony jest
w podstawowe typy danych, instrukcje sterujące, instrukcje grupowe, instrukcje pętli i
podprogramy (funkcje). Nie zapewnia natomiast wieloprogramowości, współbieżności czy
też metod synchronizacji, nie ma w nim też instrukcji do manipulowania na ciągach znaków,
zbiorach, listach czy też całych tablicach (dodatkowe biblioteki umożliwiają taką
funkcjonalność np. pthread-lib, IPC itp.). Przykładowy program w języku C:
#include <stdio.h>
#include <stdlib.h>
#define PI 3.14
//zdefiniowana stała
float global=213.234;
//zmienna globalna
int main(void)
{
int a;
int b;
int wynik;
printf("Podaj liczbe a: ");
scanf("%d",&a);
//podajemy liczbe a
printf("Podaj liczbe b: ");
scanf("%d",&b);
//podajemy liczbe b
wynik = (a+b);
//dodawanie dwoch liczb a i b
printf("Wynik dodawania: %d\n",wynik);
printf("Wynik dodawania: %d\n",(a+b));
/* Tu wyswietlam liczbe PI zadeklarowana jako "stala"
oraz zmienna globalna "global"*/
printf("Zmienna globalna: %4.1f\n",global);
printf("Stala: %4.4f\n",PI);
return (0);
}
Laboratorium nr 2
2)
2/7
Typy danych, deklaracja stałych, zmiennych.
Podstawowe typy danych:
Nazwa typu
Rodzaj
Liczba
bitów
Wartość min
Wartość max
int
całkowity
32
-2147483648
2147483647
short int
całkowity krótki
16
-32768
32767
long int
całkowity długi
32
-2147483648
2147483647
unsigned int
całkowity bez znaku
32
0
4294967295
unsigned short int
całkowity krótki bez znaku
16
0
65535
unsigned long int
całkowity długi bez znaku
32
0
4294967295
char
znakowy
8
-
-
unsigned char
znakowy bez znaku
rzeczywisty pojedynczej
precyzji
rzeczywisty podwójnej
precyzji
rzeczywisty długi
8
0
255
32
-3,4E+38
3,4E+38
64
-1,7E+308
-1,7E+308
64
-1,7E+308
-1,7E+308
float
double
long double
void
typ pusty (bez wartości)
Deklaracja stałej:
const [typ danych] [nazwa stałej];
Przykład:
const int liczba = 2; // stała całkowita
Deklaracja zmiennej:
[typ danych] [nazwa zmiennej];
Przykład:
int liczba;
// zmienna
float liczba2 = 2.0; // zmienna
char znak;
// zmienna
char test='A';
// zmienna
całkowita
rzeczywista + inicjalizacja
znakowa
znakowa + inicjalizacja
Wartości do zmiennych możemy przypisywać za pomocą operatora przypisania „=”,
każda zmienna oraz instrukcja w języku C zakończona jest znakiem średnika „;”.
Laboratorium nr 2
3)
3/7
Operatory arytmetyczne, relacji, logiczne oraz bitowe.
Operatory arytmetyczne:
•
•
•
•
•
*
/
+
%
mnożenie,
dzielenie,
dodawanie,
odejmowanie,
modulo (zwraca resztę z dzielenia).
Operatory specjalne:
•
•
•
•
•
+=,
-=,
*=,
/=,
%=,
przykład
przykład
przykład
przykład
przykład
x
x
x
x
x
+=
-=
*=
/=
%=
2;
2;
2;
2;
2;
-->
-->
-->
-->
-->
x
x
x
x
x
=
=
=
=
=
Operatory inkrementacji i dekrementacji:
•
•
•
•
++prefiks,
postfiks++,
--prefiks,
postfiks--.
Operatory relacji:
•
•
•
•
•
•
==
<=
>=
<
>
!=
równy,
mniejszy lub równy,
większy lub równy,
mniejszy niż,
większy niż,
negacja.
Operatory logiczne:
•
•
•
&&
||
!
iloczyn logiczny (AND),
suma logiczna (OR),
negacja logiczna (NOT).
Operatory bitowe:
•
•
•
•
&
|
^
~
koniunkcja bitowy (AND),
alternatywa bitowa (OR),
suma modulo (EXOR),
negacja.
x
x
x
x
x
+
–
*
/
%
2;
2;
2;
2;
2;
Laboratorium nr 2
4)
4/7
Wyświetlanie danych.
Podstawową funkcją do wyświetlania danych w języku C jest funkcja printf(). Funkcja
ta zadeklarowana jest w pliku nagłówkowym <stdio.h>. Ogólna postać tej funkcji wygląda
następująco:
int printf(const char *format, ...);
lub
int printf(”format”, arg1, arg2, ...);
Funkcja printf() posiada co najmniej jeden argument tzw. format, będący stałą
łańcuchową (const char). Może ona przyjmować ciąg argumentów, każdy argument zostaje
wstawiony w odpowiednie miejsce formatu rozpoczynające się od znaku %. Tak stworzony
napis zostaje wyprowadzony na standardowe wyjście (stdout -> ekran monitora). Istotną
rzeczą jest to, aby liczba argumentów odpowiadała specyfikatorom formatu w tekście
formatującym. Pierwszym argumentem funkcji printf() jest tekst formatujący czyli stała
znakowa. Znak procenta oznacza rozpoczęcie tzw. specyfikatora formatu. Specyfikator
formatu pozwala na wprowadzenie w jego miejsce wartości kolejnych argumentów funkcji
printf() (wyjątek stanowi %%, który umożliwia wprowadzenie znaku „%”). Znak „\” w tekście
formatującym umożliwia wprowadzenie tzw. znaków specjalnych. Specyfikator formatu ma
postać:
% [flaga] [szerokość] [.precyzja] [modyfikator] typ
Typ:
Laboratorium nr 2
5/7
Modyfikator:
Precyzja:
Określa dokładność liczby zmiennoprzecinkowej, czyli liczbę miejsc po przecinku.
Szerokość:
Określa minimalną szerokość pola w znakach dla argumentów znakowych, oraz ilość
liczb przed przecinkiem dla argumentów liczbowych.
Flaga:
Laboratorium nr 2
Znaki specjalne:
6/7
Laboratorium nr 2
5)
7/7
Wprowadzanie danych.
Podstawową funkcją do wczytywania danych w języku C jest funkcja scanf(). Funkcja
ta zadeklarowana jest w pliku nagłówkowym <stdio.h>. Ogólna postać tej funkcji wygląda
następująco:
int scanf(const char *format, ...);
lub
int scanf(”format”, &arg1, &arg2, ...);
Funkcja scanf() wczytuje dane ze standardowego wejścia (stdin -> klawiatura) i
przekształca je na odpowiednie wartości w zależności od specyfikatora formatu. Pierwszym
argumentem funkcji scanf() jest stała znakowa tzw. format. Specyfikatory formatu
rozpoczynają się identycznie jak funkcji printf() od znaku %. Argumenty do funkcji scanf()
przekazujemy w postaci wskaźników dlatego też używamy przed nazwami argumentów
znaku „&”. Specyfikatory formatu używane w funkcji scnaf() są identyczne jak w funkcji
printf(). Dodatkowo też można używać modyfikatorów z funkcji printf(). Używanie
modyfikatora dla liczb całkowitych (%ld, %li, %lx, %lo, %lu) powoduje, że wczytana wartość
traktowana jest jak long int lub jak unsigned long int. Używanie modyfikatora dla liczba
zmiennopozycyjnych (%lf, %le, %lE) powoduje, że wartość traktowana jest jak double.
Specyfikatory formatu:

Podobne dokumenty