blok function T.P

justia
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 12 cze 2006, o 18:52
Płeć: Kobieta
Lokalizacja: Sarzyna

blok function T.P

Post autor: justia »

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
Awatar użytkownika
kadiii
Użytkownik
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

Post autor: kadiii »

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
functio rownanie (var y,x,z:real):real;
jak i
y:=4x+3z;
jest zupełnie bezsensowna.
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;
Awatar użytkownika
Amon-Ra
Użytkownik
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

Post autor: Amon-Ra »

kadiii pisze:Jeśli jednak chcesz obliczyć y za pomocą x i z to ta druga linijka jest ok.
Napisał przecież, że chce obliczyć y na podstawie zmiennych odczytanych z pliku.
Awatar użytkownika
kadiii
Użytkownik
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

Post autor: kadiii »

Dwa sprostowania:
1)
Napisał
Napisała(spójrz na profil)
2)
Witam, chcę napisać blok function tak aby liczyć y=4x+3z, i te wartości x i z by pobierac z pliku
ale jak to zrobic zeby te x i y z pliku pobierał? Ma ktos wiedze?
Skąd wiesz, które wyrażenie jest prawdziwe, a które nie.
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
Awatar użytkownika
Amon-Ra
Użytkownik
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

Post autor: Amon-Ra »

kadiii pisze:ale jak to zrobic zeby te x i y z pliku pobierał?
Hmm, nie zauważyłem, że o y pytał... Wybacz .

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;
To chyba jednoznacznie dowodzi, że szukana jest wartość y, zaś x i z są zmiennymi niezależnymi. Ale to już potwierdzić może wyłącznie sam zainteresowany.
justia
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 12 cze 2006, o 18:52
Płeć: Kobieta
Lokalizacja: Sarzyna

blok function T.P

Post autor: justia »

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
Awatar użytkownika
kadiii
Użytkownik
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

Post autor: kadiii »

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