|
|
|
|
[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: 
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: 
Posty: 288
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 |
|
|
|
 |
BROO
Pupogłowy Wizard x-)

Główny edytor: 
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: 
Drugi edytor: 
Posty: 1412
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. Wszystko da się zrobić, trzeba tylko nabyć wprawy |
_________________
|
|
|
|
 |
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. |
|
|
|
 |
|
|
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
|
|