←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Pascal
Nie potrafię napisać programu na długość p...

Fail - zdjęcie Fail 17.09.2012

Mam taki program obliczajacy dlugosc przeciwprostokatnej:

program przeciwprostokatna;
uses crt;
var a,b:integer;
c:real;
begin
clrscr;
writeln('Podaj dlugosc przyprostokatnej a');
readln(a);
writeln('Podaj dlugosc przyprostokatnej b');
readln(<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.png' class='bbc_emoticon' alt='B)' />;
c:=sqrt(a*a+b*<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.png' class='bbc_emoticon' alt='B)' />;
writeln('Dlugosc przeciwprostokatnej wynosi ',c:0:2);
readln;
end.

Dziala bez problemu ale chce naprzyklad zrobic ze gdy ktos poda dlugosc przyprostokatnej a i b jako zero lub liczbe minusowa to zeby program wyswietlal komunikat:
writeln('Nie oszukuj!');


Dobrze by bylo gdyby jeszcze pod koniec po wyswietleniu wyniku zadawal pytanie "Czy chcesz obliczyc jeszcze raz?" 1 - tak 0 - exit

Kompletnie nie mam pojecia jak sie do tego zabrac :>
(23.09.2012 17:03):
Nazywaj tematy zgodnie z ich treścią

Użytkownik Fail edytował ten post 17.09.2012 15:09
Odpowiedz

  • +
  • -
Jak się nazwać - zdjęcie Jak się nazwać 17.09.2012

http://turbopascal.s...oteka.pl/5.html
A z tym Czy chcesz obliczyć jeszcze raz to readkey (musisz znać kod klawisza) lub readln+enter + if
Odpowiedz

  • +
  • -
kijkol - zdjęcie kijkol 20.09.2012



program przeciwprostokatna;
uses crt;
var a,b:integer;
c:real;
begin
clrscr;
writeln('Podaj dlugosc przyprostokatnej a');
readln(a);
if a<=0 then
writeln('Nie oszukuj')
else
writeln('Podaj dlugosc przyprostokatnej b');
readln(B);
c:=sqrt(a*a+b*B);
writeln('Dlugosc przeciwprostokatnej wynosi ',c:0:2);
readln;
end.



Przykład dla zmiennej a
Dawno nie bawiłem się tym więc petli nie będę robił, a chyba jeszcze jej "nie umiesz" xD

Co do konca to mozna zrobic procedurami, a potem dac if=1 then licz else koncz xD

Z ciekawosci czy pamietam zrobilem petle:


program przeciwprostokatna;
uses crt;
var a,b:integer;
c:real;
begin
clrscr;
writeln('Podaj dlugosc przyprostokatnej a');
readln(a);
IF a<0 THEN
BEGIN
WHILE a<0 DO
BEGIN
writeln('Nie oszukuj');
writeln('Podaj dlugosc przyprostokatnej a');
readln(a);
END;
writeln;
END;
writeln('Podaj dlugosc przyprostokatnej b');
readln(B);
c:=sqrt(a*a+b*B);
writeln('Dlugosc przeciwprostokatnej wynosi ',c:0:2);
readln;
end.

Użytkownik kijkol edytował ten post 20.09.2012 19:08
Odpowiedz

  • +
  • -
dasiek - zdjęcie dasiek 20.09.2012

Po readln(a) b i c ; daj
if a < 0 then
begin
  writeln("Nie oszukuj!"); 
  readln();
  halt(1)
;end;

coś takiego o ile dobrze pamiętam
Odpowiedz

  • +
  • -
kijkol - zdjęcie kijkol 20.09.2012

Zamiast:
writeln("Nie oszukuj!");

to:
writeln('Nie oszukuj!');


Bo wywali błąd invalid character coś tam xD
Użytkownik kijkol edytował ten post 20.09.2012 19:18
Odpowiedz