Stranica 1 od 1

[Pascal] If... then petlje

PostPoslato: Subota, 25. Oktobar 2014, 22:31
od Miladin Jovic
Kaki bi se radilo kad imamo više uslova tj. ako bi ovako glasio zadatak:
Izračunati [inlmath]z=\ln x^2+\ln y^{-2}[/inlmath] ako za realne brojeve [inlmath]x[/inlmath] i [inlmath]y[/inlmath], ako je "oblast definisanosti" [inlmath]|x|\ge 2[/inlmath] i [inlmath]|y|\ge 2[/inlmath].

Treba rešiti bez upotrebe [inlmath]\mathrm{abs}[/inlmath] funkcije.
Imamo više uslova, rj. uslove po [inlmath]x[/inlmath] i [inlmath]y[/inlmath]. Ima li neko ideju?

Re: [Pascal] If... then petlje

PostPoslato: Subota, 25. Oktobar 2014, 22:56
od Gamma
Ne razumijem baš kako ovo misliš raditi preko uslova.Napiši taj cod što si radio. A kada imaš više uslova uvjek primjenjuj CASE.

Re: [Pascal] If... then petlje

PostPoslato: Nedelja, 26. Oktobar 2014, 08:17
od Miladin Jovic
Kôd: Obeleži sve
program funkcija;
Var x,y,z:real;
Begin
readln(x,y)

E sad za uslove ne znam kako može sa if kad imamo više. A kako bi išlo sa case pošto do toga još nismo stigli?

Re: [Pascal] If... then petlje

PostPoslato: Nedelja, 26. Oktobar 2014, 10:02
od Milovan
Evo sa if, else, then, a bez abs...

Kôd: Obeleži sve
Program Funkcija;
var x,y,z:real;
begin
    writeln('Unesite vrednosti x i y');
    readln(x,y);
    if (x<2) and (x>-2) then writeln('nije definisano')
    else
    begin
        if (y<2) and (y>-2) then writeln('nije definisano')
        else
        begin
            z:= ...;
            writeln(z);
        end;
    end;
    readln;
end.

Re:[Pascal] If... then petlje

PostPoslato: Nedelja, 26. Oktobar 2014, 11:26
od Miladin Jovic
Zapravo ovako glasi zadatak:
[dispmath]z=\begin{cases}
\ln x^2+\ln y^{-2} & |x|\ge 2,\;|y|\ge 2\\
|y-x|\cdot y & -2<x<y<2\\
\max (x,y) & \mathrm{inače}
\end{cases}[/dispmath]
Mislio sam da mogu nekako da uklopim ovu prvu stavku u zadatak, ali ne ide... Zato sam samo pitao za nju.

Re: [Pascal] If... then petlje

PostPoslato: Nedelja, 26. Oktobar 2014, 12:12
od Gamma
Mislio sam da u ovome tvome programu se može preko case. Ali kada sam vidio šta traži u ovome slučaju ne može. Inače case nekada zna dobro da skrati muke.Predpostavljam ovo ostalo ti je jasno. Ali meni nije šta ti znači ovo ˝ina će˝. Kažeš ne možeš da prvu stavku uklopiš u zadatak. Ne znam šta ti tu nije jasno ne možeš da uklopiš u uslov ili šta već? Ovo sa logaritmom po bazi [inlmath]e[/inlmath] ni bi trebalo da bude problem jer koliko ja znam pascal ima [inlmath]\ln[/inlmath] funkciju.Samo dovršiš ovo što je Milovan uradio i onda tako za svaki uslov pojedinačno.

Re: [Pascal] If... then petlje

PostPoslato: Nedelja, 26. Oktobar 2014, 13:25
od ubavic
U prvom slučaju promenljive [inlmath]x[/inlmath] i [inlmath]y[/inlmath] se nalaze van intervala [inlmath](-2,2)[/inlmath], što možeš zapisati kao [inlmath]\left((x\le -2)\lor (x\ge 2)\right)\land\left((y\le -2)\lor (y\ge 2)\right)[/inlmath]. U drugom slučaju obe promenljive se nalaze unutar intervala [inlmath](-2,2)[/inlmath], s tim što je [inlmath]x<y[/inlmath]. To bi mogao da zapišeš kao [inlmath]\left((x>-2)\lor (x<2)\right)\land\left((y>-2)\lor (y<2)\right)\land (x<y)[/inlmath]. Treći slučaj možeš jednostavno da obuhvatiš else komandom.

Re: [Pascal] If... then petlje

PostPoslato: Nedelja, 26. Oktobar 2014, 13:26
od Miladin Jovic
Gamma je napisao: Ali meni nije šta ti znači ovo ˝ina će˝. Kažeš ne možeš da prvu stavku uklopiš u zadatak. Ne znam šta ti tu nije jasno ne možeš da uklopiš u uslov ili šta već?

"Inače " znači da je poslednja f-ja definisana za sve što nije za prve dve funkcije. Trebalo bi napisati sve uslove da budu povezani sa else kako bi se došlo da je zadnja definisana za sve što nisu prve dve.

Re: [Pascal] If... then petlje

PostPoslato: Nedelja, 26. Oktobar 2014, 14:37
od Daniel
ubavic je napisao:U drugom slučaju obe promenljive se nalaze unutar intervala [inlmath](-2,2)[/inlmath], s tim što je [inlmath]x<y[/inlmath]. To bi mogao da zapišeš kao [inlmath]\left((x>-2){\color{red}\lor}(x<2)\right)\land\left((y>-2){\color{red}\lor}(y<2)\right)\land (x<y)[/inlmath].

Zapravo, svuda gde su znaci [inlmath]\lor[/inlmath], trebalo bi da stoje znaci [inlmath]\land[/inlmath].

A može se zapisati i kraće: [inlmath]x>-2\;\land\;x<y\;\land\;y<2[/inlmath], jer iz tako postavljenog uslova automatski sledi i pripadnost obe promenljive [inlmath]x[/inlmath] i [inlmath]y[/inlmath] intervalu [inlmath]\left(-2,2\right)[/inlmath].

(Osobina tranzitivnosti [inlmath]\;\Rightarrow\;[/inlmath] iz [inlmath]x>-2[/inlmath] i iz [inlmath]x<y[/inlmath] sledi i [inlmath]y>-2[/inlmath], a takođe iz [inlmath]x<y[/inlmath] i iz [inlmath]y<2[/inlmath] sledi i [inlmath]x<2[/inlmath].)