Programowanie komputerów, Ćwiczenie 2 Informacje wstępne

Transkrypt

Programowanie komputerów, Ćwiczenie 2 Informacje wstępne
Politechnika Rzeszowska, Wojciech Szydełko
Programowanie komputerów, Ćwiczenie 2
Informacje wstępne
Warunek if
Składnia instrukcji warunkowej:
if( werunek ) {
instrukcje_1;
}
else{
instrukcje_2;
}
JeŜeli zmienna warunek przyjmuje wartość prawda to wykonywane są instrukcje_1 w
przeciwnym razie instrukcje_2. Zamiast zmiennej warunek moŜemy stosować konstrukcje
logiczne przez uŜycie operatorów > < <= >= != == .
Pęta for
Składnia pętli for
for (z_sterująca = wartość_pocz; warunek_koń; iteracja){
instrukcje;
}
Zmienna
z_sterująca
wart_początkowa
warunek_koń
iteracja
Opis
Zmienna, której zadaniem jest określenie ile razy wykona się pętla
Wartość jaką na początku wykonywania przyjmie z_sterująca
Dopóki przyjmuje wartość prawda pętla się powtarza, gdy osiągnie
wartość fałsz, pętla się kończy
Określa sposób w jaki moŜna modyfikować zmienną sterującą pętli,
np. jeŜeli zmienną sterującą jest i to zwiększmy ją np. o 1 prze i++
Pętla while
Składnia pętli while
while (warunek){
instrukcje;
}
Pętla jest wykonywana dopóki zmienna warunek jest prawdą. W momencie, gdy uzyskuje
wartość fałsz zostaje przerwana.
Uwaga:
W bloku instrukcji for i while mogą znajdować się słowa kluczowe break oraz continue.
Pierwsze powoduje bezwarunkowe przerwanie pętli. Drugie powoduje natychmiastową
iterację pętli czyli tak jakby wykonanie części inkrementacji pętli i skok do początku bloku
bez wykonywania instrukcji w bloku po wyrazie continue.
WS_ver0.1_2008-04-01
1
Politechnika Rzeszowska, Wojciech Szydełko
Deklaracja tablicy jednowymiarowej.
Deklaracja tablicy jednowymiarowej oznacza rezerwacje pamięci na zbiór elementów jednego
typu, np. int, float, double lub char. Ten ostatni element oznacza definicję tablicy znakowej
nazywanej strugiem. Zawiera on znak końca springi ‘\0’ (zobacz rysunek poniŜej).
t
e
s
t
\0
Inicjacja tablicy znakowej
char tekst [100] = „test”;
Inicjacja tablicy znakowej
int tab [10] = {0, 1, 2 ,3, 4, 5, 6, 7, 8, 9}
Zadania do realizacji na zajęciach
1. Obliczenie pierwiastków równania kwadratowego
Napisać funkcję, która oblicza pierwiastki równania kwadratowego i wywołać ją w programie
dla przykładowego równania.
Parametry funkcji: współczynniki równania , tabela z rozwiązaniami:
tablica[liczba_rozwiązań, rozw1, rozw2]
Wartość zwracana: void
Teoria:
Równania kwadratowe
DEFINICJA: Równaniem drugiego stopnia lub równaniem kwadratowym nazywamy
równanie postaci:
y = ax2 + bx + c
TWIERDZENIE: Istnienie liczba rozwiązań równania kwadratowego y = ax2 + bx + c zaleŜą
od wyróŜnika: ∆ = b 2 − 4ac .
1. Gdy
< 0, równanie nie ma rozwiązań.
2. Gdy
= 0, równanie ma jedno rozwiązanie:
3. Gdy
−b
2a
−b− ∆
−b+ ∆
> 0, równanie ma dwa rozwiązania: x1 =
, x2 =
2a
2a
x0 =
W przypadku, gdy stałe b i c są róŜne od zera równanie y = ax2 + bx + c nazywa się
równaniem kwadratowym zupełnym i rozwiązujemy je na podstawie powyŜszego
twierdzenia.
W przypadku, gdy b = 0 lub c = 0, równanie y = ax2 + bx + c przybiera postać:
ax2 + c = 0 lub ax2 + bx = 0 lub ax2 = 0 i nazywa się równaniem kwadratowym niezupełnym.
Równanie niezupełne rozwiązujemy rozkładając lewą stronę równania na czynniki.
Algorytm moŜna przedstawić w postaci schematu:
WS_ver0.1_2008-04-01
2
Politechnika Rzeszowska, Wojciech Szydełko
jeŜeli a = 0, to
jeŜeli b = 0, to
jeŜeli c = 0, to równanie jest nieoznaczone
w przeciwnym razie nie ma rozwiązania
w przeciwnym razie jest jedno rozwiązanie -c/b
w przeciwnym razie
policz delta = b*b - 4*a*c
jeŜeli delta<0, to nie ma rozwiązania
w przeciwnym razie istnieją dwa (niekoniecznie róŜne)
rozwiązania:
−b− ∆
−b+ ∆
x1 =
oraz x 2 =
.
2a
2a
2. Silnia
Napisać funkcję, która w sposób rekurencyjny obliczy silnie z podanej wartości n. NaleŜy
kolejno liczyć silnie z wartości n-1 .
Treść funkcji moŜe być następująca:
long int silnia (int n){
if (n<=1) return 1;
else return ( n * silnia (n-1));
}
NaleŜy wywołać tą funkcję w programie głównym i przedstawić wynik działania funkcji
dla parametrów wejściowych od 1 do 12 przy pomocy pętli for.
3. Tablice znakowe – tablica jednowymiarowa
Zadanie 3.1
Przygotować program, który zamienia w tekście wejściowym wszystkie znaki „odstępu” na
‘*’. NaleŜy skopiować znaki z tablicy wejściowej i zapisać je w tablicy wyjściowej i na końcu
tablicy zapisać znak końca ciągu znaków ‘\0’. Przechodzenie po elementach tablicy znakowej
odbywa się przy pomocy pętli while(). Przeglądanie tablicy odbywa się do wykrycia znaku
końca springi ‘\0’.
Zadanie 3.2
Napisać program, który kaŜdą komórkę jednowymiarowej tablicy typu int podnosi do drugiej
potęgi. Przeglądanie tablicy ma się odbyć przy pomocy pętli for().
WS_ver0.1_2008-04-01
3

Podobne dokumenty