c wykład 1, Informatyka


0x08 graphic
Pierwszy program

0x08 graphic

#include <stdio.h>

0x08 graphic
void main(void)

{

printf(“Pierwszy program”);

}

0x08 graphic

0x08 graphic

Najważniejsze predefiniowane typy

Typ

Ilość

bajtów

Zakres ważności

char, signed char,

unsigned char

1 byte

od -128 do 127

od 0 do 255

short,

unsigned short

2 bytes

od -32768 do 32767

od 0 do 65535

int,

unsigned int

4 bytes

od -2147483648 do 2147483647

od 0 do 4294967295

long,

unsigned long

4 bytes

od -2147483648 do 2147483647

od 0 do 4294967295

float

4 bytes

od 1.175494351 E - 38

do 3.402823466 E + 38

double

8 bytes

od 2.2250738585072014 E - 308

do 1.7976931348623158 E + 308

long double

8 bytes

od 2.2250738585072014 E - 308

do 1.7976931348623158 E + 308

Podstawowe biblioteczne funkcje arytmetyczne (plik math.h)

Wartość bezwzględna

abs(int); // liczby całkowitej

labs(long); //liczby całkowitej typu long

fabs(double); //liczby rzeczywistej

Funkcje trygonometryczne (argument tylko w radianach)

(jeżeli αo jest w stopniach to αrd= 0x01 graphic
o)

cos(double); sin(double); tan(double);

Odwrotne funkcje trygonometryczne

(wynik w radianach αo = 0x01 graphic
rd )

acos(double); asin(double); atan(double);

atan2(double, double); ⇒ atan2(y,x) = atan(y/x)

Hiperboliczne funkcje trygonometryczne

cosh(double); sinh(double); tanh(double);

Funkcja wykładnicza, potęgowa, pierwiastek i logarytmy

exp(double); ⇒ exp(x) = ex pow(double, double); ⇒ pow(x,y) = xy

sqrt(double); ⇒ sqrt(x) =0x01 graphic
log(double); ⇒ logarytm naturalny

log10(double); ⇒ logarytm o podstawie 10

Funkcja mod

fmod(double, double); ⇒ fmod(x,y) to reszta z dzielenia x przez y

Wczytywanie danych z klawiatury, wydruk wyników na ekran-formatowanie wydruków

#include <conio.h> //zawiera funkcję getchar()

#include <stdio.h> //zawiera funkcję printf() i scanf()

void main()

{

double a;

printf("Podaj wartosc liczby a\n");

scanf("%lf",&a);

printf("%e\n %f\n %10.1f\n", a, a, a);

getchar();

}

0x08 graphic

0x08 graphic
0x08 graphic

liczba wprowadzana:

12345.6789 -0.000234

wydruk

1.234568e+04 -2.340000e-05

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
12345.678900 -0.000023

12345.7 10 miejsc -0,0

0x08 graphic
0x08 graphic

Funkcja scanf() pozwala na wczytanie wprowadzanych danych z klawiatury

Wymaga precyzyjnego podania formatu wczytywanej danej. I tak jeżeli dana jest typu:

char przy wczytywaniu pojedynczych znaków piszemy ”%c”, a przy

wczytywaniu łańcucha znaków ”%s”

float piszemy: ”%f” lub ”%e” (notacja naukowa z wykładnikiem)

double piszemy: ”%lf” literka `l' jakby long float identycznie przy typie

long double

int piszemy: ”%d” lub dla ”długich” ”%ld”

Takich znaków w jednym cudzysłowie piszemy tyle ile chcemy wprowadzić danych.

Przykład wprowadzenie z klawiatury danych: 10 (całk.), 1.234, 'a', „ABC” wymaga w części formatowej funkcji scanf() zapisu: ”%d %f %c %s”.

W drugiej części funkcji należy podać adresy wczytywanych danych, a więc nie np. a ale &a

int a;

float b;

char c, d;

scanf(”%d %f %c %s”,&a, &b, &c, &d);

Funkcja prinf() również wymaga wprowadzenia części formatującej, w którą jednak można wprowadzać dodatkowe znaki (np. tzw. sekwencje specjalne) jak również teksty do wydruku. Przykładowo wyniki rozwiązania równania kwadratowego można przedstawić następująco:

printf(”x1=%f x2=%f\n”,x1 ,x2};

Formatowanie wydruków

Sekwencje specjalne

\n // znak nowego wiersza

\r // znak powrotu karetki

\t // tabulator

\f // znak nowej strony

\b // cofnięcie kursora o jeden znak

\v // pionowy tabulator

\a // sygnał dźwiękowy

\\ // lewy ukośnik

\? // znak zapytania

\' // apostrof

\" // cudzysłów

Podstawowe sekwencje formatujące

%d dziesiętna liczba całkowita

%f liczba zmiennopozycyjna

%g liczba zmiennopozycyjna podwójnej dokładności

%s łańcuch znaków

%c znak

%x liczba całkowita hexagonalna (konwencja "abcdef")

%X liczba całkowita hexagonalna (konwencja "ABCDEF")

Rzut ukośny - napisać program obliczający dla dowolnej chwili położenie pocisku wystrzelonego pod kątem alfa z prędkością początkową v0.

0x08 graphic
#include <stdio.h>

#include <math.h>

void main()

{

double alfa,v0,t,ws;

double g=9.81;

ws=3.1416/180;

printf("Podaj kat i predkosc poczatkowa oraz czas lotu ");

scanf("%lf %lf %lf",&alfa,&v0,&t);

alfa=alfa*ws;

printf("t=%6.1f sek\n",t);

printf("x=%10.3f m\t",v0*cos(alfa)*t);

printf("y=%10.3f m\n",v0*sin(alfa)*t-0.5*g*t*t);

}

0x01 graphic

Program rozwiązuje układ dwu równań liniowych metodą Cramera.

#include <stdio.h>

void main()

{

double a1,a2,c1,b1,b2,c2,wx,wy,w;

printf("Podaj wsp. równań a1,a2,c1,b1...");

scanf("%lf %lf %lf %lf %lf %lf",&a1,&a2,&c1,&b1,&b2,&c2);

0x08 graphic
w=a1*b2-a2*b1;

if (w!=0)

{

wx=c1*b2-c2*a2;

wy=a1*c2-b1*c1;

printf("x=%6.1f \n",wx/w);

printf("y=%6.1f \n",wy/w);

return;

}

printf("Uklad nie posiada rozwiazan\n");

}

INFORMATYKA WYKŁAD 1 Temat: Język C 7

#include - instrukcja dla kompilatora: należy dołączyć do

programu plik biblioteczny (nagłówkowy- stąd h od header)

Plik nagłówkowy zawierający między innymi

instrukcje obsługujące wydruk jego nazwa

umieszczona pomiędzy <...>

Funkcja „main” jedyna, która występuje w każdym

programie języka C. „Ciało” funkcji umieszcza się

w nawiasach klamrowych { }

Funkcja

wydruku na

ekran

Tekst musi być w cudzysłowie i umieszczony w

nawiasach. Każda instrukcja kończona jest

średnikiem - ;

Wydruk całej liczby zajmuje 10 miejsc, w tym jedno miejsce po przecinku

Pomimo dwu instrukcji prinf wydruk

byłby w jednej linii gdyby nie ten

znak (\n)

a1*x+a2*y=c1

b1*x+b2*y=c2



Wyszukiwarka