LEKCJA6.TXT

(8 KB) Pobierz
LEKCJA 6 - NAST�PNY PROGRAM - KOMPUTEROWA ARYTMETYKA.  
________________________________________________________________ 
W trakcie tej lekcji napiszesz i uruchomisz nast�pny program  
wykonuj�cy proste operacje matematyczne.  
________________________________________________________________ 
 
Aby przyst�pi� po wyja�nieniach do pracy nad drugim programem,  
powiniene� wykona� nast�puj�ce czynno�ci:  
 
1. Zr�b porz�dek na ekranie. Zamknij rozkazem Close z menu  
Window zb�dne okna (mo�esz pos�u�y� si� kombinacj� [Alt]-[F3]).  
2. Rozwi� menu File.  
3. Wybierz z menu rozkaz Open...  
4. Wpisz do okienka tekstowego:  
A:\DRUGI.CPP  
5. Naci�nij [Enter].  
6. Wpisz do okienka edytora tekst programu: 
 
[P003.CPP ] 
/* Program przykladowy: _DRUGI.CPP */  
  
 
# include <conio.h>             /* zwr�� uwag�, �e tu NIE MA [;] ! */  
# include <stdio.h>             /* drugi plik nag��wkowy */ 
 
int main()                      /* tu tez nie ma �rednika [;] ! */  
{  
float x, y; 
float wynik; 
  
  clrscr();  
  printf("Zamieniam ulamki zwykle na dziesietne\n");  
  printf("\nPodaj licznik ulamka: ");  
  scanf("%f", &x);             /* pobiera liczb� z klawiatury */ 
  printf("\nPodaj mianownik ulamka: ");  
  scanf( "%f", &y); 
  
  wynik = x / y;               /* tu wykonuje sie dzielenie */  
  
  printf("\n %f : %f  = %f", x, y, wynik);  
  printf("\n nacisnij dowolny klawisz...\n");  
  
  getch();                 /* program czeka na nacisniecie klawisza. */  
  
  return 0;         //<-- zwrot zera do systemu 
}  
  

UWAGA:  
_________________________________________________________________ 
* Komentarze uj�te w [/*.....*/] mo�esz pomin��. Komentarz jest  
przeznaczony dla cz�owieka. Kompilator ignoruje ca�kowicie  
komentarze i traktuje komentarz jak puste miejsce, a dok�adniej  
- tak samo jak pojedyncz� spacj�. Komentarz w C++ mo�e mie� dwie 
formy:  
 
/* Tekst komentarza */  
// Tekst komentarza  
 
w drugim przypadku ogranicznikiem pola komentarza jest koniec  
wiersza. 
 
* Spacjami i TABami mo�esz operowa� dowolnie. Kompilator  
ignoruje tak�e puste miejsca w tek�cie. Nie nale�y natomiast  
stosowa� spacji w obr�bie s��w kluczowych i identyfikator�w. 
________________________________________________________________ 


7. Skompiluj program [Alt]-[C], [M] lub [Enter].  
 
8. Popraw ewentualne b��dy.  
 
9. Uruchom program rozkazem Run, naciskaj�c [Alt]-[R], [R].  
 
10. Zapisz wersj� �r�d�ow� programu DRUGI.CPP na dyskietk� A:\  
stosuj�c tym razem SHORTCUT KEY - klawisz [F2].  
 
[S!] scanf() - SCANing Function - Funkcja SKANuj�ca.  
________________________________________________________________ 
Funkcja pobiera ze standardowego urz�dzenia wej�cia- zwykle z  
klawiatury podan� przez u�ytkownika liczb� lub inny ci�g znak�w. 
 
Dzia�a podobnie do funkcji INPUT w Basicu, czy readln w Pascalu. 
 
* float - do Floating Point - "P�ywaj�cy" - zmienny przecinek.  
S�owo kluczowe s�u��ce do tzw. DEKLARACJI TYPU ZMIENNEJ lub  
funkcji. Oznacza liczb� rzeczywist� np.: float x = 3.14;  
 
* int - od Integer - ca�kowity.  
S�owo kluczowe s�u��ce do deklaracji typu zmiennej lub funkcji.  
Oznacza liczb� ca�kowit� np.: 768. 
 
* #include - W��cz.  
Dyrektywa w��czaj�ca ca�y zewn�trzny plik tekstowy. W tym  
przypadku w��czone zosta�y dwa tzw. pliki nag��wkowe:  
CONIO.H i STDIO.H.  
 
* CONIO.H - CONsole Input/Output.  
Plik nag��wkowy zawieraj�cy prototypy funkcji potrzebnych do  
obs�ugi standardowego Wej�cia/Wyj�cia na/z konsoli (CONsole).  
Plik zawiera mi�dzy innymi prototyp funkcji clrscr(), potrzebnej 
nam do czyszczenia ekranu.  
 
*STDIO.H - STanDard Input/Output 
Plik nag��wkowy zawieraj�cy prototypy funkcji potrzebnych do  
obs�ugi standardowego Wej�cia/Wyj�cia na/z konsoli (Input -  
Wej�cie, Output - Wyj�cie). Plik zawiera mi�dzy innymi prototyp  
funkcji printf(), potrzebnej nam do drukowania wynik�w na  
ekranie.  
 
 return - s�owo kluczowe:  Powr�t, zwrot.  

Po wykonaniu programu liczba 0 (tak kazali�my programowi  
rozkazem return 0;) jest zwracana do systemu operacyjnego, w  
naszym przypadku do DOSa. Zwr�� uwag�, �e nie pojawi�o si� tym  
razem ostrze�enie WARNING podczas kompilacji.  
________________________________________________________________ 
 

OPERATORY ARYTMETYCZNE C++. 
 
C++ potrafi oczywi�cie nie tylko dzieli� i mno�y�. Oto tabela  
operator�w arytmetycznych c i C++. 
 
OPERATORY ARYTMETYCZNE j�zyka C++.  
________________________________________________________________ 
 
Operator  Nazwa           	T�umaczenie             Dzia�anie  
________________________________________________________________ 
 
  +       ADDition        	Dodawanie         	Suma liczb  
  -       SUBstraction    	Odejmowanie       	R�nica liczb  
  *       MULtiplication  	Mno�enie          	Iloczyn liczb  
  /       DIVision        	Dzielenie         	Iloraz liczb  
  %       MODulus         	Dziel Modulo      	Reszta z dzielenia  
________________________________________________________________ 
 
 
Przyk�adowe wyniki niekt�rych operacji arytmetycznych.  
________________________________________________________________ 
 
Dzia�anie (zapis w C++)      Wynik dzia�ania  
________________________________________________________________ 
 
  5 + 7                         12  
  12 - 7                         5  
  3 * 8                         24  
  10 / 3                         3.333333  
  10 % 3                         1  
________________________________________________________________ 
 
 
 
[???] Czym r�ni si� dzielenie   /    od    %    ?  
________________________________________________________________ 
Operator dzielenia modulo % zamiast wyniku dzielenia - daje  
rzeszt� z dzielenia. Dla przyk�adu, dzielenie liczby 14 przez  
liczb� 4 daje wynik 3, reszta z dzielenia 2. Wynik operacji 

14%4 
 
b�dzie wi�c wynosi� 2. Operator ten jest niezwykle przydatny np. 
przy sprawdzaniu podzielno�ci, skalowaniu, okre�laniu zakres�w  
liczb przypadkowych, itp.. 

Przyk�ady generacji liczb pseudolosowych wybiegaj� nieco w przysz�o��, 
ale postanowi�em w Samouczku umie�ci� je razem. Po przestudiowaniu 
tworzenia p�tli programowych mo�esz wr�ci� do tej lekcji i rozwa�y�
przyk�ady po raz wt�ry.

Przyk�ad 1:

randomize();
int X=ramdom();
X = X % 10;

Przyk�ad 2:
---------------------
#include <stdlib.h>      /* Zwr�c uwag� na do��czony plik */
#include <stdio.h>

main()
{
    int i;

    printf("Dziesi�� liczb pseudo-losowych od 0 do 99\n\n");
    for(i=0; i<10; i++)
       printf("%d\n", rand() % 100);
    return 0;
}
 
Przykad3
--------------------
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void main()
 {
    randomize();
    printf("Liczby pseudolosowe z zakresu: 0-99 --> %d\n", random (100));
}

Przyk�ad 4
-----------------
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main(void)
{
    int i;

    randomize();
    printf("Liczby pseudolosowe:  0 to 99\n\n");
    for(i=0; i<10; i++)
        printf("%d\n", rand() % 100);
    return 0;
}

Zwr�� uwag�, �e to randomize() uruchamia generator liczb pseudolosowych,
czyli jakgdyby "w��cza b�ben maszyny losuj�cej".
________________________________________________________________ 
 
 
Wykonaj z programem DRUGI.CPP kilka eksperyment�w.  
 
[Z]  
________________________________________________________________ 
1. Zamie� operator dzielenia na operator mno�enia [*]: 
 
wynik = x * y;     /* tu wykonuje sie mno�enie */ 
 
i napis w pierwszej funkcji printf() na np. taki:  
 
printf( "Wykonuje mnozenie liczb" ); 
 
Uruchom program. Sprawd� poprawno�� dzia�ania programu w  
szerokim zakresie liczb. Przy jakiej wielko�ci liczb pojawiaj�  
si� b��dy?  
 
2. Zmie� nazwy zmiennych x, y, wynik na inne, np.:  
to_jest_liczba_pierwsza,  
to_jest_liczba_druga,  
itp.  
Czy C++ poprawnie rozpoznaje i rozr�nia takie d�ugie nazwy?  
Kiedy zaczynaj� si� k�opoty? Sprawd�, czy mo�na w nazwie  
zmiennej u�y� spacji? Jaki komunikat wy�wietli kompilator? 
________________________________________________________________ 
 
[???]	PRZEPAD� PROGRAM ???  
________________________________________________________________ 
Nie przejmuj si�. Wersja pocz�tkowa programu DRUGI.CPP jest na  
dyskietce do��czonej do niniejszej ksi��ki (tam nazywa si�  
DRUGI.CPP). 
Zwr�� uwag�, �e kompilator C++ tworzy automatycznie kopie  
zapasowe plik�w �r�d�owych z programami i nadaje im standardowe  
rozszerzenie *.BAK. Zanim zatem zaczniesz si� denerwowa�,  
sprawd�, czy kopia np. DRUGI.BAK nie jest w�a�nie t� wersj�  
programu, kt�ra Ci "przepad�a". 
________________________________________________________________ 
 
__________________________________________________________________
EOF
Zgłoś jeśli naruszono regulamin