NukeBoards - Kreatywność przede wszystkim
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  DownloadDownload
RejestracjaRejestracja  ZalogujZaloguj

Odpowiedz do tematu
Poprzedni temat :: Następny temat
[Pascal] Matematyka
Autor Wiadomość
Darth Vader 
Starszy kapral


Posty: 57

Prestiż
Wysłany: 14-02-2007, 23:13   [Pascal] Matematyka

Nazwa: Matematyka
Autor: Darth Vader
Język: Turbo Pascal
Opis:
Jest to program, który jeszcze nie jest gotowy. Głównym zadaniem programu jest pomagać nam w matematyce poprzez obliczanie danych z różnych wzorów.
Wersja 0.0.5 potrafi:
- obliczać pole powierzchni kwadratu i prostokąta
- obliczać obwód kawadratu i prostokąta
- obliczać przeciwprostokątną z twierdzenia Pitagorasa.
Obsluga programu:
Progam obsługujemy klawiaturą. By np. uruchomić opcje dla prostokąta wpisujemy 1 i naciskamy enter.
UWAGA!!! Po zakończeniu obliczeń program poprosi nas o naciśnięcie ENTER, działa tylko główny klawisz, ten na klaiwiaturze numerycznej nie reaguje.
Screen:

Download:
SaveFile
Ultrashare
 
     
BROO 
Pupogłowy
Wizard x-)


Główny edytor: TGF
Pojedynki: nie
Posty: 502

Prestiż
Wysłany: 14-02-2007, 23:37   

W takich programach najważniejsze jest obsłużenie niepożądanych danych. Wyobraź sobie, że ten program potrafi policzyć obwód prostokąta o bokach 7 i -7 i dać wynik 0... coś tu nie gra. Wszystkie opcje nie radzą sobie z wartościami ujemnymi i zerowymi - trzeba to zmienić.
 
     
Darth Vader 
Starszy kapral


Posty: 57

Prestiż
Wysłany: 14-02-2007, 23:56   

Narazie ciągle ucze się programowania, ale po co jakiś prostokąt miałby mieć długość np. -7?
Tutaj dodam parę informacji o nowej wersji:
- poprawa czytelności (odstępy)
- zrobione w 50% obliczanie przyprostokątnej.

Screen z nowej wersji:


Tak w ogóle to program robiony jest "z potrzeby", gdyż nie chce mi się ciągle obliczać tych długości w zadaniach domowych xD.
 
     
Ploo 
Chorąży


Główny edytor: MMF2
Posty: 287

Prestiż
Wysłany: 15-02-2007, 00:14   

Darth Vader napisał/a:
Narazie ciągle ucze się programowania, ale po co jakiś prostokąt miałby mieć długość np. -7?

Dokladnie. Dlatego powinien byc jakis komunikat o bledzie/odmowienie wykonanie polecenia gdyz -7 jest bezsensu...

Plooscva :D
 
 
     
BROO 
Pupogłowy
Wizard x-)


Główny edytor: TGF
Pojedynki: nie
Posty: 502

Prestiż
Wysłany: 15-02-2007, 00:26   

Programowanie to nie tylko wklepywanie kodu. Programy mają być idiotoodporne: naucz się tego Koniecznie.
 
     
msg 
Pupogłowy
~~~~~~~~~~~


Główny edytor: KNP
Drugi edytor: KNP
Posty: 1400

Prestiż
Wysłany: 15-02-2007, 00:55   

Idiotoodporne: algorytmy, które tu wykonujesz muszą przewidywać KAŻDĄ możliwość, według której użytkownik postąpi. Np. zamiast cyfry wpisać litery, wspomniane wcześniej liczby ujemne czy zero. Ponadto pamiętaj, żeby program (nie ściągałem) obsługiwał przecinki i żeby nie wysypał się, gdy zamiast 5.5 wpisze ktoś 5,5 czy na odwrót. Zdeklaruj też dodatkową zmienną decydującą o liczbie miejsc po przecinku w zależności od wyniku ;) bo wynik 5.00000 wygląda troszkę dziwnie, a zaś niefajnie by było gdyby zamiast 3.14 user zobaczył 3. :P Wszystko da się zrobić, trzeba tylko nabyć wprawy :P
_________________
:razzugly:
 
     
Darth Vader 
Starszy kapral


Posty: 57

Prestiż
Wysłany: 16-03-2007, 22:00   

Niestety zawieszam projekt, wolę php od psacala, jednakże poniżej umieszczam kod programu, jakby ktoś chciał go do kończyć.

Kod:
program matematyka;
uses CRT;
var
A:array[1..2] of integer;
C:array[1..3] of integer;
P1:array[1..2] of real;
T:array[1..3] of integer;
P2:real;
O1:array[1..2] of real;
Ptg:array[1..2] of real;
O2:real;
Pw:array[1..2] of real;
Przp:array[1..2] of real;
PP:array[1..2] of real;
begin
ClrScr;
WriteLn('Matematyka 0.0.6');
WriteLn('...Nacisnij ENTER by kontynowac...');
repeat until ReadKey=#13;
repeat
ClrScr;
TextColor(WHITE);
Writeln('//by wylaczyc program wpisz 0');
Writeln('');
WriteLn('Wybierz figure:');
Writeln('1 - prostokat');
WriteLn('2 - kwadrat');
WriteLn('3 - trojkaty');
Writeln('');
Write('> ');
ReadLn(A[1]);
if A[1]=1
then
begin
ClrScr;
WriteLn('Wybierz co chcesz obliczyc:');
WriteLn('1 - pole powierzchni');
WriteLn('2 - obwod');
Writeln('');
Write('> ');
ReadLn(C[1]);
if C[1]=1
then
begin
ClrScr;
WriteLn('Podaj dlugosc bokow');
Write('a = ');
ReadLn(P1[1]);
Write('b = ');
ReadLn(P1[2]);
TextColor(LIGHTBLUE);
TextBackground(WHITE);
Writeln('OBLICZANIE');
TextBackground(BLACK);
TextColor(WHITE);
Writeln('');
Writeln('Dane:');
Writeln('a=',P1[1]:0:5);
Writeln('b=',P1[2]:0:5);
Writeln('');
Writeln('Rozwiazanie:');
Writeln('P=a*b');
Writeln('P=',P1[1]*P1[2]:0:5);
Writeln('');
Writeln('Odpowiedz: Pole powierzchni tego prostokata wynosi ',P1[1]*P1[2]:0:5);
Writeln('');
Writeln('//by kontynuowac nacisnij ENTER');
repeat until ReadKey=#13;
end;
if C[1]=2
then
begin
ClrScr;
Writeln('Podaj dlugosc bokow');
Write('a = ');
Readln(O1[1]);
Write('b = ');
Readln(O1[2]);
TextColor(LIGHTBLUE);
TextBackground(WHITE);
Writeln('OBLICZANIE');
TextBackground(BLACK);
TextColor(WHITE);
Writeln('');
Writeln('Dane:');
Writeln('a=',O1[1]:0:5);
Writeln('b=',O1[2]:0:5);
Writeln('');
Writeln('Rozwiazanie:');
Writeln('Ob=2*a+2*b');
Writeln('Ob=',2*O1[1]+2*O1[2]:0:5);
Writeln('');
Writeln('Odpowiedz: Obwod tego prostokata wynosi ',2*O1[1]+2*O1[2]:0:5);
Writeln('');
Writeln('//by kontynuowac nacisnij ENTER');
repeat until ReadKey=#13;
ReadLn;
end;
end;
if A[1]=2
then
begin
ClrScr;
Writeln('Wybierz co chcesz obliczyc:');
Writeln('1 - pole powierzchni');
Writeln('2 - obwod');
Writeln('');
Write('> ');
Readln(C[2]);
if C[2]=1
then
begin
ClrScr;
Writeln('Podaj dlugosc boku');
Write('a = ');
ReadLn(P2);
TextColor(LIGHTBLUE);
TextBackground(WHITE);
Writeln('OBLICZANIE');
TextBackground(BLACK);
TextColor(WHITE);
Writeln('');
Writeln('Dane:');
Writeln('a=',P2:0:5);
Writeln('');
Writeln('Rozwiazanie:');
Writeln('P=a*a');
Writeln('P=',P2*P2:0:5);
Writeln('');
Writeln('Odpowiedz: Pole powierzchni tego kwadratu wynosi ',P2*P2:0:5);
Writeln('');
Writeln('//by kontynuowac nacisnij ENTER');
repeat until ReadKey=#13;
end;
if C[2]=2
then
begin
ClrScr;
Writeln('Podaj dlugosc boku');
Write('a = ');
ReadLn(O2);
TextColor(LIGHTBLUE);
TextBackground(WHITE);
Writeln('OBLICZANIE');
TextBackground(BLACK);
TextColor(WHITE);
Writeln('');
Writeln('Dane:');
Writeln('a=',O2:0:5);
Writeln('');
Writeln('Rozwiazanie:');
Writeln('Ob=4*a');
Writeln('Ob=',4*O2:0:5);
Writeln('');
Writeln('Odpowiedz: Obwod tego kwadratu wynosi ',4*O2:0:5);
Writeln('');
Writeln('//by kontynuowac nacisnij ENTER');
repeat until ReadKey=#13;
end;
end;
if A[1]=3
then
begin
ClrScr;
Writeln('Wybierz trojkat:');
Writeln('1 - prostokatny');
Writeln('');
Write('> ');
ReadLn(C[3]);
if C[3]=1
then
begin
ClrScr;
Writeln('Wybierz co chcesz obliczyc:');
Writeln('1 - przeciwprostokatna');
Writeln('2 - przypostokatna');
Writeln('');
Write('> ');
ReadLn(T[1]);
if T[1]=1
then
begin
ClrScr;
Writeln('Podaj dlugosci bokow');
Write('a = ');
ReadLn(Ptg[1]);
Write('b = ');
ReadLn(Ptg[2]);
TextColor(LIGHTBLUE);
TextBackground(WHITE);
Writeln('OBLICZANIE');
TextBackground(BLACK);
TextColor(WHITE);
Writeln('');
Writeln('Dane:');
Writeln('a=',Ptg[1]:0:5);
Writeln('b=',Ptg[2]:0:5);
Writeln('');
Writeln('Rozwiazanie:');
Writeln('a^2+b^2=c^2');
Write(Ptg[1]:0:5);
Write('^2+');
Write(Ptg[2]:0:5);
Write('^2=');
Writeln('c^2');
Write('c^2=');
Writeln(Ptg[1]*Ptg[1]+Ptg[2]*Ptg[2]:0:5);
Write('c^2=');
Write(Ptg[1]*Ptg[1]+Ptg[2]*Ptg[2]:0:5);
Writeln(' /: pierwiastek');
{obliczanie pierwiastka}
Pw[1]:=(sqrt(Ptg[1]*Ptg[1]+Ptg[2]*Ptg[2]));
{/obliczanie pierwiastka}
Writeln('c=',Pw[1]:0:5);
Writeln('');
Writeln('Odpowiedz: Przeciwprostokatna ma dlugosc ',Pw[1]:0:5);
Writeln('');
Writeln('//by kontynowac nacisnij ENTER');
repeat until ReadKey=#13;
end;
if T[1]=2
then
begin
ClrScr;
Writeln('Podaj dlugosci bokow');
Write('a = ');
ReadLn(Przp[1]);
Write('c = ');
ReadLn(Przp[2]);
TextColor(LIGHTBLUE);
TextBackground(WHITE);
Writeln('OBLICZANIE');
TextBackground(BLACK);
TextColor(WHITE);
Writeln('');
Writeln('Dane:');
Writeln('a=',Przp[1]:0:5);
Writeln('c=',Przp[2]:0:5);
Writeln('');
Writeln('Szukane:');
Writeln('b=?');
Writeln('');
Writeln('Rozwiazanie:');
Writeln('a^2+b^2=c^2');
Writeln('b^2=c^2-a^2');
Write('b^2=');
Write(Przp[2]:0:5);
Write('^2-');
Write(Przp[1]:0:5);
Writeln('^2');
Write('b^2=');
{dlugosci}
PP[1]:=(Przp[1]*Przp[1]);
PP[2]:=(Przp[2]*Przp[2]);
{/dlugosci}
Writeln(PP[1]-PP[2]:0:5);
Write('b^2=');
Write((Przp[1]*Przp[1])-(Przp[2]*Przp[2]):0:5);
Writeln(' /: pierwiastek');
{obliczanie pierwiastka}
Pw[2]:=(sqrt(Przp[1]*Przp[1]-Przp[2]*Przp[2]));
{/obliczanie pierwiastka}
Writeln('b=',Pw[2]:0:5);
Writeln('');
Writeln('Odpowiedz: Przyprostokatna ma dlugosc ',Pw[2]:0:5);
Writeln('');
Writeln('//by kontynuowac nacisnij ENTER');
repeat until ReadKey=#13;
end;
end;
end;
if A[1]=666
then
begin
ClrScr;
Writeln('////|\\\\');
Writeln('\\\666///');
Writeln('');
Writeln('//by kontynuowac nacisnij ENTER');
repeat until ReadKey=#13;
end;
until A[1]=0;
end.


Jak dobrze pamiętam, to przyprostokątna miała błąd.
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

PSK Cytaty Klikibaza - kopia wszystkich klików Klikipedia - encyklopedia o tworzeniu gier Discord KlikCzat Zaproszenie
Daj piniondza Wielkie Muzeum Klikowe

Powered by phpBB modified by Przemo © 2003 phpBB Group