Witam, chcę napisać blok function tak aby liczyć y=4x+3z, i te wartości x i z by pobierac z pliku - ale to pascal i mam ciemno przed oczami a na ekranie niebiesko
gdyby to bez tego czytania z pliku tych danych to funkcia wg mnie ma postac:
functio rownanie (var y,x,z:real):real;
Begin
y:=4x+3z;
End;
ale jak to zrobic zeby te x i y z pliku pobierał? Ma ktos wiedze?
Dziekuje
blok function T.P
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
blok function T.P
BEGIN
Warto przed rozpoczęciem programowania zapoznac sie z wyszukiwarka internetową. Wystarczy wpisać np. operacje na plikach pascal i ... fruu pojawia się np. i 14 900 innych. Ale coż tam może nie pomyślałaś. Mniejsza o to. Przejdżmy do meritum twojego programu. Co on ma robić? Jeżeli obliczać z za pomocą x i y pobranego z pliku to linijka
Aby wyliczyć z musisz "niestety" napisać po prostu z:=(y-4*x)/3; czyli przypisać do zmiennej z wartość wyrażenia z x i y.
Jeśli jednak chcesz obliczyć y za pomocą x i z to ta druga linijka jest ok. Aby poprawić pierwszą poczytaj sobie o przesyłaniu parametru do funkcji przez zmienną i przez wartość. Jeśli chcesz uzyskać coś innego to pisz bo ja nie potrafię się tego domyślić. Chętnie jednak pomogę, więc pisz śmiało.
Pozdrawiam
END;
Warto przed rozpoczęciem programowania zapoznac sie z wyszukiwarka internetową. Wystarczy wpisać np. operacje na plikach pascal i ... fruu pojawia się np. i 14 900 innych. Ale coż tam może nie pomyślałaś. Mniejsza o to. Przejdżmy do meritum twojego programu. Co on ma robić? Jeżeli obliczać z za pomocą x i y pobranego z pliku to linijka
jak ifunctio rownanie (var y,x,z:real):real;
jest zupełnie bezsensowna.y:=4x+3z;
Aby wyliczyć z musisz "niestety" napisać po prostu z:=(y-4*x)/3; czyli przypisać do zmiennej z wartość wyrażenia z x i y.
Jeśli jednak chcesz obliczyć y za pomocą x i z to ta druga linijka jest ok. Aby poprawić pierwszą poczytaj sobie o przesyłaniu parametru do funkcji przez zmienną i przez wartość. Jeśli chcesz uzyskać coś innego to pisz bo ja nie potrafię się tego domyślić. Chętnie jednak pomogę, więc pisz śmiało.
Pozdrawiam
END;
- Amon-Ra
- Użytkownik
- Posty: 882
- Rejestracja: 16 lis 2005, o 16:51
- Płeć: Mężczyzna
- Lokalizacja: Tczew
- Pomógł: 175 razy
blok function T.P
Napisał przecież, że chce obliczyć y na podstawie zmiennych odczytanych z pliku.kadiii pisze:Jeśli jednak chcesz obliczyć y za pomocą x i z to ta druga linijka jest ok.
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
blok function T.P
Dwa sprostowania:
1)
2)
A tak na poważnie to nie ma się co czepiać słów. Osoba,która potrzebowała pomocy chyba ją otrzymała, więc w czym problem.
Pozdrawiam
1)
Napisała(spójrz na profil)Napisał
2)
Witam, chcę napisać blok function tak aby liczyć y=4x+3z, i te wartości x i z by pobierac z pliku
Skąd wiesz, które wyrażenie jest prawdziwe, a które nie.ale jak to zrobic zeby te x i y z pliku pobierał? Ma ktos wiedze?
A tak na poważnie to nie ma się co czepiać słów. Osoba,która potrzebowała pomocy chyba ją otrzymała, więc w czym problem.
Pozdrawiam
- Amon-Ra
- Użytkownik
- Posty: 882
- Rejestracja: 16 lis 2005, o 16:51
- Płeć: Mężczyzna
- Lokalizacja: Tczew
- Pomógł: 175 razy
blok function T.P
Hmm, nie zauważyłem, że o y pytał... Wybacz .kadiii pisze:ale jak to zrobic zeby te x i y z pliku pobierał?
Mimo tego wnioskuję, że mógł się pomylić i chodziło mu o z... W końcu tak byłoby badziej sensownie - chce obliczyć wartość funkcji (notabene dlatego nazywa wyrażenie per y) dwóch zmiennych.
Kod: Zaznacz cały
functio rownanie (var y,x,z:real):real;
Begin
y:=4x+3z;
End;
blok function T.P
tak to moja wielka gapa - przepraszam chodzi o to iz zmienne x i z ma pobierac z pliku - przepraszam za zamiesznie
czy ma sens np. takie wyrazenie
function prosta(var x,y,z,n:integer, p1,p2:text, n1,n2:string):integer;
Begin
read(n1);
assign(p1,n1);
reset(p1);
for x:=1 to n do
readln(p1,x);
close(p1);
read(n2);
assign(n2,p2);
reset(p2);
for z:=1 to n do
readln(p2,z);
close(p2);
y:=3x+4z;
END;
Prosze o pomoc
czy ma sens np. takie wyrazenie
function prosta(var x,y,z,n:integer, p1,p2:text, n1,n2:string):integer;
Begin
read(n1);
assign(p1,n1);
reset(p1);
for x:=1 to n do
readln(p1,x);
close(p1);
read(n2);
assign(n2,p2);
reset(p2);
for z:=1 to n do
readln(p2,z);
close(p2);
y:=3x+4z;
END;
Prosze o pomoc
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
blok function T.P
Czy ma sens, czy nie ma bardzo łatwo sprawdzić - kompilujemy, odpalamy i sprawdzamy.
Raczej jest ok. Nadal jednak nie zdajesz sobie chyba sprawy jak się rozróżnia parametry w funkcji. Nie chodzi tu o to czy program będzie działał czy nie, ale jeśli się coś pisze to powinno się mieć pełną świadomość co to powoduje. Chodzi o słówko var przed deklarowanymi parametrami. W taki sposób powodujesz, że każda zmienna zmieniając wartość w funkcji będzie ją miała zmienioną poza nią co w przypadku zmiennych x,z,n,p1,p2,n1 i n2 jest raczej niewskazane.Poza tym nie jestem pewien czy różnych typów nie powinno się oddzielać "; "zamiast "," , lecz głowy nie dam- mogę się tu mylić. Pozdrawiam i mam nadzieję, że program będzie działał jak sobie życzysz.
Raczej jest ok. Nadal jednak nie zdajesz sobie chyba sprawy jak się rozróżnia parametry w funkcji. Nie chodzi tu o to czy program będzie działał czy nie, ale jeśli się coś pisze to powinno się mieć pełną świadomość co to powoduje. Chodzi o słówko var przed deklarowanymi parametrami. W taki sposób powodujesz, że każda zmienna zmieniając wartość w funkcji będzie ją miała zmienioną poza nią co w przypadku zmiennych x,z,n,p1,p2,n1 i n2 jest raczej niewskazane.Poza tym nie jestem pewien czy różnych typów nie powinno się oddzielać "; "zamiast "," , lecz głowy nie dam- mogę się tu mylić. Pozdrawiam i mam nadzieję, że program będzie działał jak sobie życzysz.