.coma. [ Pretorianin ]
co mozna dodac do tego programu w pascalu?
Co mozna do tego programu dodać, albo jak go przerobić, żeby było wiecej polecen, instrukcji pascala wykorzystanych? Wiem że w programowaniu nie o to chodzi, ale nasz nauczyciel uwaza, że to zeby program działał jest nie tak ważne jak to żeby miał "bajery".
program trygonometria;
uses crt;
var s, c, t, h, a, x, y, w, r: real;
var j:string;
procedure sin;
begin a:=x*x+y*y; r:=sqrt(a); s:=y/r; writeln(s); end;
procedure cos;
begin a:=x*x+y*y; r:=sqrt(a); c:=x/r; writeln(c); end;
procedure tg;
begin t:=y/x; writeln(t); end;
procedure ctg;
begin h:=x/y; writeln(h); end;
procedure prog;
begin
writeln (' ^ [y]');
writeln (' | /| M=(x,y)');
writeln (' | / |');
writeln (' | r / |');
writeln (' | / |y');
writeln (' | /\ |');
writeln ('_|/_L|__|___> ');
writeln ('0| x [x]');
writeln (' ');
writeln('podaj wartosc zmiennej x (zmienna x musi byc wieksza od 0)');
readln(x);
writeln ('podaj warosc zmiennej y (zmienna y musi byc wieksza od 0)');
readln(y);
writeln ('wartosc jakiej funkcji trygonometryczne chcesz policzyc?');
writeln ('jesli chcesz policzyc wartosc sinusa kata L wcisnij 1');
writeln ('jesli chcesz policzyc wartosc cosinusa kata L wcisnij 2');
writeln ('jesli chcesz policzyc wartosc tangensa kata L wcisnij 3');
writeln ('jesli chcesz policzyc wartosc cotangensa kata L wcisnij 4');
readln(w);
if w=1 then sin
else
if w=2 then cos
else
if w=3 then tg
else
if w=4 then ctg;
writeln ('czy chcesz dalej liczyc?');
writeln ('wybierz "t" lub "n"');
j:=readkey;
if (j='t') or (j='T') then begin; clrscr; prog; end;
if (j='n') or (j='N') then begin; ClrScr; writeln('DOWIDZENIA'); delay(3000); halt; end;
end;
begin
ClrScr;
prog;
end.
.coma. [ Pretorianin ]
prosze o pomoc bardzo mi na tym zalezy
.coma. [ Pretorianin ]
up
N00ne [ Pretorianin ]
hmmm może dźwięki wydawane z płyty głównej np. przy powrocie do liczenia albo na starcie lub na końcu. Na moje oko programik wygląda ciekawie ;) jednak ja programowałem tylko w Turbo Pascalu
nagytow [ Firestarter ]
Przede wszystkim dodaj warunki - nie policzysz tg i ctg dla kazdego kata. Mozesz dodac repeat (...) until (...) i zamknac program w petli bo teraz to balagan w kodzie. Zamiast procedur mozesz uzyc funkcji - bardziej intuicyjne. Dla przykladu procedura moze byc wczytywanie zmiennych, czyszczenie ekranu itp, samo obliczanie funkcji trygonometrycznych raczej powinno byc funkcjami.
Scatterhead [ łapaj dzień ]
twoj nauczyciel chyba minal sie z powołaniem :)
pierwsza rzecz jaka bym tutaj zrobił, to przekazywanie parametrow do procedur i zapisanie ich bardziej sformatowanie np:
procedure ctg(x,y: real);
begin
h:=x/y;
writeln(h);
end;
(albo jeszcze lepiej, zamienic je na funkcje)
druga sprawa to dodanie komentarzy do zmiennych:
var s, c, t, h, a, x, y, w, r: real; // s: zmienna do tego, c: zmienna do tamtego (mozesz to podzielic na linnie najlepiej)`
var j:string; //zmienna do trzymania czegostam
do tego warto zamienic te IF'y na case (tak jak juz Ci kiedys pisalem), albo chociaz wywalenie tych ELSE, bo nie maja sensu.
jeżeli chcesz wpisac pusta linie, używaj po prostu writeln bez parametrow, zamiast writeln("");
Scatterhead [ łapaj dzień ]
Jeżeli chcesz jakieś bajery do tego, to mozesz wstawic okno powitalne takie jak:
===========================
Witaj w programie Trygonometria
===========================
Autor: .coma. wersja 1.0
===========================
.coma. [ Pretorianin ]
dzieki za pomoc już próbuje popoprawiac
nagytow-> gdzie wstawić ta pentle? I potrzebne są jakieś warunki poza tym, ze x i y musza być wieksze od 0?
Scatterhead--> na funkcje wolałabym raczej nie zamieniac, bo przewaznie jak zmienie na funkcje to mi sie wszytsko zwala. Jak to powinno wygladac z tym case, bo wtedy mi nie wychodziło i skapitulowałam.
A powołanie mojego nauczyciela wzieło sie stąd, ze jego żona jest dyrektorka u mnie w szkole :/
.coma. [ Pretorianin ]
Co umiałam poprawiłam, teraz to wyglada tak:
program trygonometria;
uses crt;
var s, c, t, h, a, x, y, w, r: real;
s-wartosc sinusa, c- wartosc cotangensa, t-wartosc tangensa, h-wartosc cotangensa
a,r- wartosci slozace do wyliczenia wartosci sinusa i cosinusa, x,y-dlugosci bokow
w-wybor jaka funkcje chcemy liczyc
var j:string; j-czy chcemy zakonczys program
procedure sin(x, y:real);
begin a:=x*x+y*y; r:=sqrt(a); s:=y/r; writeln(s); end;
procedure cos(x, y:real);
begin a:=x*x+y*y; r:=sqrt(a); c:=x/r; writeln(c); end;
procedure tg(x, y:real);
begin t:=y/x; writeln(t); end;
procedure ctg(x, y:real);
begin h:=x/y; writeln(h); end;
procedure prog;
begin
textcolor(green);
writeln (' ^ [y]');
writeln (' | /| M=(x,y)');
writeln (' | / |');
writeln (' | r / |');
writeln (' | / |y');
writeln (' | /\ |');
writeln ('_|/_L|__|___> ');
writeln ('0| x [x]');
writeln;
textcolor(blue);
writeln('podaj wartosc zmiennej x (zmienna x musi byc wieksza od 0)');
readln(x);
writeln ('podaj warosc zmiennej y (zmienna y musi byc wieksza od 0)');
readln(y);
textcolor(cyan);
writeln ('wartosc jakiej funkcji trygonometryczne chcesz policzyc?');
writeln ('jesli chcesz policzyc wartosc sinusa kata L wcisnij 1');
writeln ('jesli chcesz policzyc wartosc cosinusa kata L wcisnij 2');
writeln ('jesli chcesz policzyc wartosc tangensa kata L wcisnij 3');
writeln ('jesli chcesz policzyc wartosc cotangensa kata L wcisnij 4');
readln(w);
textcolor(red);
if w=1 then sin(x, y)
else
if w=2 then cos(x, y);
if w=3 then tg(x, y);
if w=4 then ctg(x, y);
textcolor(black);
writeln ('czy chcesz dalej liczyc?');
writeln ('wybierz "t" lub "n"');
j:=readkey;
if (j='t') or (j='T') then begin; clrscr; sound(900); delay(300); nosound; prog; end;
if (j='n') or (j='N') then begin; ClrScr; textcolor(magenta);
sound(1500); delay(300); nosound; writeln('DOWIDZENIA'); delay(3000); halt; end;
end;
begin
textbackground(lightgray);
ClrScr;
prog;
end.
Jakieś jeszcze sugestie?
.coma. [ Pretorianin ]
up
Jakby ktoś mógł to niech napisze jak ta pentle zrobic
lo0ol [ Jónior ]
petla for:
FOR x:=1 TO 100 DO BEGIN
writeln('Napisze to 100 razy');
END;
__________________________
petla repeat (powtarza do czasu az zostanie spelniony warunek wpisany po UNTIL)
REPEAT
write('Podaj liczbe: ');
readln(xsaxs)
UNTIL xsaxs=3
.coma. [ Pretorianin ]
lo0ol->ale gdzie ja to mam zastosować? Bo do tego czy chce zakończyć program sie chyba nie bardzo nadaje