A więc zaczynamy.
Borland C download:
http://konto.bydgoszcz.wsinf.edu.pl/~grad/inne/bc.zip
Polecam ściągnąć plik i przepisywać programy, duŻo lepiej się tak uczyć (w praktyce).
Przypomnienie "hello world"
#include<stdio.h>
int main(void)
{
printf("Hello World !!!");
return 0;
}
Następny program. Jest to prosty programik, który wczytuje zmienną a i b, następnie je sumuje i wyświetla wynik na ekranie.
#include<stdio.h>
int a, b;
int main(void)
{
printf("Podaj a: ");
scanf("%d", &a);
printf("Podaj b: ");
scanf("%d", &b);
printf("Suma a i b wynosi %d", a+b);
return 0;
}
Opis:
W programiku "hello world" poznaliśmy polecenie printf (wyświetlanie) i zmienną main (podstawę programu).
W tym programiku doszły:
deklaracja zmiennych a i b - "int a, b;". Integer (int), czyli liczba całkowita. W dalszej części poznamy inne typy deklaracji zmiennych. Zmienne muszą mieć swój "prototyp", Żeby kompilator mógł je rozpoznać i zaszeregować do odpowiedniej grupy w dalszej części programu.
polecenie "scanf" - to polecenie zczytuje, w tym przypadku cyfrę z klawiatury, tzn. po wyświetleniu tekstu "Podaj a:" program zatrzymuje się i czeka na reakcję uŻytkownika. W tym przypadku czeka na podanie liczby całkowitej (integer, w skrócie int) i zapamiętuje ją w zmiennej "a", a następnie robi to samo ze zmienną "b". %d w poleceniu scanf, znaczy, Że ma być to liczba całkowita.
No i na końcu polecenie "printf", które w tym przypadku jest troszeczkę bardziej rozbudowane niŻ w "hello world". A mianowicie równieŻ zawiera zwrot %d. W tym przypadku zwrot ten umiejscowiony jest w miejscu, gdzie ma się wyświetlić wynik, który równieŻ jest liczbą całkowitą (świadczy o tym litera "d").
W cudzysłowiu znajduje się zawsze tekst, który ma się wyświetlić na ekranie. Po zamknięciu cudzysłowia, po przecinku, znajduje się działanie (a+b), do którego odnosi się zwrot "%d".
Na koniec dodam, Żebyście pamiętali o składni programu, czyli kaŻdy wers kończy się średnikiem, z kilkoma wyjątkami oczywiście (jak narazie jest to deklaracja zmiennej "main" i deklaracja biblioteki <stdio.h>). Brak średnika lub błąd w pisowni jakiegoś polecenia powoduje wykrzaczenie się programu, dlatego uwaŻajcie.
Dalsza część kursu będzie kontynuowana juŻ w tym temacie. Wszelkie pytania i wątpliwości proszę kierować tutaj. Niedługo następny programik, oczywiście juŻ bardziej rozwinięty.
[ Dodano: 2007-10-18, 17:41 ]No dobra, widzę, Że pytań nie ma (albo zainteresowania

), więc moŻemy iść dalej. Dodam jeszcze, Że Żeby uruchomić Borland C, wchodzimy w borlandc\bin\bcw.exe. Na początku programik, a potem omówienie.
#include<stdio.h>
int wybor;
float a, b;
int main(void)
{
printf("Podaj a: ");
scanf("%f", &a);
printf("Podaj b: ");
scanf("%f", &b);
printf("Wybierz dzialanie:\n1-Dodawanie\n2-Odejmowanie\n3-Mnozenie\n4-Dzielenie\n");
scanf("%d", &wybor);
if(wybor==1) printf("Suma a(%f) i b(%f) wynosi %f", a, b, a+b);
if(wybor==2) printf("Roznica a(%f) i b(%f) wynosi %f", a, b, a-b);
if(wybor==3) printf("Iloczyn a(%f) i b(%f) wynosi %f", a, b, a*b);
if(wybor==4) printf("Iloraz a(%f) i b(%f) wynosi %f",a, b, a/b);
return 0;
}
Co doszło: instrukcja "if", deklaracja "float", "\n", no i reszta działań na zmiennych.
1. Deklaracja "float" - definiuje zmienne jako zmiennoprzecinkowe, czyli moŻemy juŻ wpisywać cyfry po przecinku. W języku C jak i w większości języków, przecinek jest zapisywany jako kropka (.). Domyślnie po przecinku wyświetlane jest 6 zer, później nauczymy się ograniczać liczbę zer wyświetlanych po przecinku.
2. \n - jest to przejście do następnego wiersza. Kilka przykładów:
JeŻeli napiszemy
printf("Hello");
printf("World");
wyświetlone zostanie
Hello World
JeŻeli napiszemy
printf("Hello\n");
printf("World");
wyświetlone zostanie
Hello
World
JeŻeli napiszemy
Printf("Hello\nWorld");
wyświetlone zostanie
Hello
World
Chyba zrozumiałe.
3. Działania
a+b - suma
a-b - róŻnica
a*b - iloczyn
a/b - iloraz
To teŻ chyba jasne
4. Instrukcja if
Budowa:
if(a==1) - jeŻeli zmiennej "a" przypisana jest 1, wtedy wykonaj instrukcję
if(a==2) - jeŻeli zmiennej "a" przypisana jest 2, wtedy wykonaj instrukcję
if(a==3) - i tak dalej
JeŻeli instrukcja if zawiera dwa lub więcej wierszy, wtedy naleŻy zastosować klamrę ({ }).
if(warunek)
{
polecenie1
polecenie2
}
JeŻeli instrukcja if zawiera tylko jeden wiersz (czyli jedno polecenie), nie trzeba stosować klamry. ZauwaŻcie teŻ, Że po "if(warunek)" nie wpisujemy średnika.
[ Dodano: 2007-10-18, 17:44 ]MoŻe ktoś napisze jakiś komentarz, refleksję, pytanie, spostrzeŻenie. Następny programik napiszę w oddzielnym poście, bo juŻ za duŻo tego w jednym i się robi mało czytelnie. Poza tym nie mogę edytować posta.
Z góry dzięki.
[ Dodano: 2007-10-19, 17:24 ](*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
---------------------------------------------------------------------------------------------------------------------------------------------------------
No dobra, znalazłem sposób na oddzielenie lekcji he he. No to polecimy następnym programikiem, juŻ bardziej funkcjonalnym. Jest to oczywiście przeróbka poprzedniego.
#include<stdio.h>
#include<conio.h>
int wybor;
float a, b, suma, roznica, iloczyn, iloraz;
int main(void)
{
do
{
clrscr();
printf("Wybierz dzialanie:\n1-Dodawanie\n2-Odejmowanie\n3-Mnozenie\n4-Dzielenie\n5-Koniec\n");
scanf("%d", &wybor);
if(wybor!=5)
{
clrscr();
printf("Podaj a: ");
scanf("%f", &a);
printf("Podaj b: ");
scanf("%f", &b);
suma=a+b;
roznica=a-b;
iloczyn=a*b;
iloraz=a/b;
clrscr();
if(wybor==1) printf("Suma a(%.2f) i b(%.2f) wynosi %.2f", a, b, suma);
if(wybor==2) printf("Roznica a(%.2f) i b(%.2f) wynosi %.2f", a, b, roznica);
if(wybor==3) printf("Iloczyn a(%.2f) i b(%.2f) wynosi %.2f", a, b, iloczyn);
if(wybor==4) printf("Iloraz a(%.2f) i b(%.2f) wynosi %.2f",a, b, iloraz);
getchar();
getchar();
}
}while(wybor!=5);
clrscr();
printf("Koniec!!!");
return 0;
}
Czyli tak, co nowego: biblioteka <conio.h>, pętla do while, nadawanie wartości zmiennym, clrscr(), getchar().
1. <conio.h> - jest to biblioteka, która zawiera prototypy takich funkcji jak clrscr(), czy getchar().
2. Nadawanie wartości zmiennym - czyli zamiast wpisywania działań na bieŻąco, moŻna zdefiniować np zmienną "suma", której wynikiem jest suma a i b. Potem w miejsce gdzie naleŻy wpisać a+b, moŻna wpisać: suma.
3. clrscr() - ta funkcja "czyści" ekran przed zastosowaniem instrukcji, która znajduje się bezpośrednio pod funkcją.
4. getchar() - funkcja "Żąda" wciśnięcia dowolnego klawisza, zanim program ruszy dalej.
5. pętla do...while - no i się zaczynają schody.
do
{
dzialanie
}while(warunek);
czyli, na przykładzie naszego programu wygląda to tak. Program powtarza działanie z pętli dopuki z naszego małego interface'u wybieramy 1, 2, 3, 4. Wtedy pętla się nie skończy, bo spełnia warunek na końcu pętli ( while(wybor!=5), czyli wybor jest róŻny od 5). JeŻeli natomiast wybierzemy z interface'u numer 5, czyli nie spełnimy warunku, pętla się zakończy i program przejdzie do dalszej części. W naszym przypadku program, po zakończeniu pętli, wyświetla na ekranie napis: koniec!!!.
Trzeba zawsze pamiętać, Żeby zapewnić pętli wyjście, bo program się wykrzaczy, albo nigdy się nie zakończy.
Proszę równieŻ zwrócić uwagę na to, Że po interface'ie znajduje się warunek if(wybor!=5). Gdyby nie było tego warunku, to po wybraniu z menu 5, czyli końca, program najpierw spyta o liczbę a i b, a dopiero potem się zakończy. MoŻecie spróbować usunąć ten warunek i zobaczyć co się stanie. Program się nie wykrzaczy.
Narazie wszystko. Jak zwykle proszę o pytania, spostrzeŻenia. Jak lecę z tym za szybko, to teŻ napiszcie. MoŻecie równieŻ wkleić tu swoje programiki i opisać jak działają.
(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
---------------------------------------------------------------------------------------------------------------------------------------------------------