GRY-Online.pl --> Archiwum Forum

co mozna dodac do tego programu w pascalu?

04.01.2007
17:52
[1]

.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.

04.01.2007
18:23
[2]

.coma. [ Pretorianin ]

prosze o pomoc bardzo mi na tym zalezy

04.01.2007
18:48
[3]

.coma. [ Pretorianin ]

up

04.01.2007
18:51
smile
[4]

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

04.01.2007
18:55
[5]

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.

04.01.2007
19:01
[6]

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("");

04.01.2007
19:08
[7]

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

===========================

04.01.2007
19:15
[8]

.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 :/

04.01.2007
19:51
[9]

.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?

04.01.2007
20:31
[10]

.coma. [ Pretorianin ]

up
Jakby ktoś mógł to niech napisze jak ta pentle zrobic

04.01.2007
20:58
[11]

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

04.01.2007
21:07
[12]

.coma. [ Pretorianin ]

lo0ol->ale gdzie ja to mam zastosować? Bo do tego czy chce zakończyć program sie chyba nie bardzo nadaje

© 2000-2024 GRY-OnLine S.A.