Co jest w tym programie nie tak

Kubir
Użytkownik
Użytkownik
Posty: 36
Rejestracja: 1 lis 2006, o 19:08
Płeć: Mężczyzna
Lokalizacja: Z tąd
Podziękował: 3 razy

Co jest w tym programie nie tak

Post autor: Kubir »

Co jest w tym programie nie tak?
Bo oczywiście, ale on nie działa :(
Licze na jakieś wskazówki, gdzie ten błąd może być.

program Funkcja;
var x,bez,P,U:real; tytul: string; z,i:integer;

procedure CzytajDane (var x:real);
begin
write ('Podaj x: ');
readln(x)
end;

function Bezwzgledna(x:real): real;
begin
if x=1) and (x0 then
begin
Ulamek(x);
end;
end;


end.
Awatar użytkownika
yorgin
Użytkownik
Użytkownik
Posty: 12762
Rejestracja: 14 paź 2006, o 12:09
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 17 razy
Pomógł: 3440 razy

Co jest w tym programie nie tak

Post autor: yorgin »

W Twoim programie w niektorych funkcjach pojawia sie taka implementacja:
function Pierwiastek(x:real): real;
begin
Pierwiastek:=sqr(x+1);
writeln('wynik: ',Pierwiastek:2:2);
readln();
end;

function Ulamek(x:real): real;
begin
Ulamek:=(x*x+x-1)/3*x;
writeln('Wynik: ',Ulamek:2:2);
end;
To tylko przyklady, a blad w nich a takze w innych tkwi w tym, ze w poleceniu "writeln" umieszczasz odwolanie do wypisania wartosci liczby Pierwiastek badz Ulamek. To jest przyczyna niedzialania programu. Funckja sluzy przeliczaniu wartosci, a nie wyprowadzaniu ich, dlatego jak chcesz mniec jedno i drugie, przerob to na procedury albo popraw procedure Wkolko.
I jeszcze jedno: wartaloby by byl blok wykonawczy programu, bo na samych deklaracjach sie on nie konczy...
Kubir
Użytkownik
Użytkownik
Posty: 36
Rejestracja: 1 lis 2006, o 19:08
Płeć: Mężczyzna
Lokalizacja: Z tąd
Podziękował: 3 razy

Co jest w tym programie nie tak

Post autor: Kubir »

Coś tam popoprawiałem, ale nadal jest żle, wersja poprawiona wyglada teraz tak:


program Oblicz funkcje;
var x,m,P,U:real; tytul: string; z,i:integer;


procedure start(tytul: string);
begin
Writeln('Autor: XYZ');
Writeln (tytul); Writeln;
end;

procedure czytajdane (var x:real);
begin
write ('Podaj argument x: ');
readln(x)
end;




procedure Ulamek(x:real): real;
begin
ulamek:=(2*x*x*x/(x-1))+5;
writeln('Wynik: ',ulamek:2:2);
end;



procedure modul(x:real): real;
begin
if x0 then
begin
ulamek(x);
end;

if x=1) and (x<=0) then
begin
pierwiastek(x);
end;
end;

begin
start(tytul);
czytajdane(x);
end;

end.
Spect
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 19 lis 2006, o 03:12
Płeć: Mężczyzna
Lokalizacja: Kraków

Co jest w tym programie nie tak

Post autor: Spect »

całą masę błędów narobiłeś...
widać, że nie znasz podstawowych zasad (spacja w nazwie programu; 2 procedury o tej samej nazwie, a drugą chciałeś chyba blok główny programu osiągnąć?; operacje na zmiennych zanim zostaną wczytane etc.).

zacznij to od początku.. choć nie wiem jak chcesz sobie z tym poradzić.

co ten program ma robić?
pascal
Użytkownik
Użytkownik
Posty: 195
Rejestracja: 30 paź 2006, o 22:50
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 30 razy
Pomógł: 4 razy

Co jest w tym programie nie tak

Post autor: pascal »

Kubir pisze:procedure modul(x:real): real;
Procedura nie zwraca wyników. Najlepiej byłoby gdybyś przeczytał jakąś książkę opisującą sposoby zapisywania funkcji i procedur.
Awatar użytkownika
yorgin
Użytkownik
Użytkownik
Posty: 12762
Rejestracja: 14 paź 2006, o 12:09
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 17 razy
Pomógł: 3440 razy

Co jest w tym programie nie tak

Post autor: yorgin »

Ja dodam jeszcze ze poprawiona wersja ma wiecej bledow niz poprzednia...
Np to ze myli Ci sie deklaracja procedury z deklaracją funkcji, nie wspomne o tworzeniu zmiennych z procedur, niewykorzystanie zadeklarowanych procedur... Ten progam bylby prostszy gdybys wybral zapis liniowy nie rozbijal kodu na procedury/funckje.
pascal
Użytkownik
Użytkownik
Posty: 195
Rejestracja: 30 paź 2006, o 22:50
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 30 razy
Pomógł: 4 razy

Co jest w tym programie nie tak

Post autor: pascal »

Odwołam się do pytania Spect'a :wink: ...
Spect pisze:co ten program ma robić?
Jeśli na nie odpowiesz, wtedy będziemy mogli Ci pomóc. A zatem?

PS. Podaj treść zadania.
ODPOWIEDZ