Program v pascale

Sekcia o programovaní, programovacích jazykoch...
shaaira
Nový používateľ
Nový používateľ
Príspevky: 3
Dátum registrácie: Ne 07. Nov, 2010, 17:35

Program v pascale

Príspevok od používateľa shaaira »

Zdravim,
Potreboval by som naprogramovat, ale nejako sa neviem pohnut v pascale.
Mam takyto priklad:
y=(x2+1)/(x2-1)
(x2 znaci, ze x je na druhu) a ( / znaci delenie)
Za kazdu pomoc dakujem.
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Re: Program v pascale

Príspevok od používateľa materik »

skus toto, ale nezarucujem spravnost.... Pascal som videl pred 10 minutami prvykrat v zivote. :rolleyes:
Spoiler: ukázať

Kód: Vybrať všetko

Program Delenie;
Begin
	x, y: Real;
	Writeln('Zadaj cislo X: ');
	Readln(x);
	y=((x*x)+1)/((x*x)-1);
	Writeln('y = ',y);
End.
do buducna UTFG!
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
Používateľov profilový obrázok
donner
Používateľ
Používateľ
Príspevky: 603
Dátum registrácie: Po 16. Nov, 2009, 17:01
Bydlisko: Kosice, Praha

Re: Program v pascale

Príspevok od používateľa donner »

boli tam mensie chyby, ale na to, ze si pascal videl prvykrat si dobry :)
Spoiler: ukázať

Kód: Vybrať všetko

program Delenie;
uses crt;
var x,y : real;
begin
   clrscr;
   write('Zadaj cislo X: ');
   readln(x);
   y=(x*x+1)/(x*x-1);
   writeln('y = ',y);
   readln;
end.
Spoiler: ukázať
CASE: LanCool PC-K58 + Gelid Silent 12 + Nanoxia DX 14
PSU: Seasonic X-750 single sleeved
MB: ASUS M2N
CPU: AMD Athlon 64 X2 4800+ 2500MHz | CPU COOLER: AC Freezer 7 Pro Rev.2
VGA: GIGABYTE GeForce GTX 560 Super Overclock
RAM: 2x2GB Kingston 800 CL5
LCD: acer X192W
HDD: Seagate 1TB 7200.12 ST31000528AS
DVD-RW: LG GSA-H55L
MOUSE: Razer Abyssus + SteelSeries QcK
KEYBOARD: Genius SlimStar 311
OS: Windows 7 Ultimate
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Re: Program v pascale

Príspevok od používateľa materik »

par otazok zo zvedavosti:
1. definovanie premennych nad begin-om z nich robi globalne premenne?

2. uses crt; je nutnost ak chcem pouzit konzolu? (nevsimol som si to v tutoriale)

3. clrscr; po begin-e je tam naco? (teda, ak je to clear screen ako si myslim...)

dikes
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
Používateľov profilový obrázok
donner
Používateľ
Používateľ
Príspevky: 603
Dátum registrácie: Po 16. Nov, 2009, 17:01
Bydlisko: Kosice, Praha

Re: Program v pascale

Príspevok od používateľa donner »

Pokial ja viem, tak premenne sa v pascale definuju vzdy nad beginom cez var, takto som to este nevidel, ale nevravim, ze sa to tak nemoze
Crt je na prikaz clrscr
Ano, je to clear screen, davam ho stale po begine, aj inde som si to tak vsimol, je to vlastne jedno. Ked spustis program prvykrat, tak aby ti zmazalo plochu pri druhom spusteni. Neviem ako to presne funguje, ked to spustas z exe, ale ked ten program upravujes tak aby pri dalsom spusteni sa vycistil screen.
Spoiler: ukázať
CASE: LanCool PC-K58 + Gelid Silent 12 + Nanoxia DX 14
PSU: Seasonic X-750 single sleeved
MB: ASUS M2N
CPU: AMD Athlon 64 X2 4800+ 2500MHz | CPU COOLER: AC Freezer 7 Pro Rev.2
VGA: GIGABYTE GeForce GTX 560 Super Overclock
RAM: 2x2GB Kingston 800 CL5
LCD: acer X192W
HDD: Seagate 1TB 7200.12 ST31000528AS
DVD-RW: LG GSA-H55L
MOUSE: Razer Abyssus + SteelSeries QcK
KEYBOARD: Genius SlimStar 311
OS: Windows 7 Ultimate
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Re: Program v pascale

Príspevok od používateľa materik »

dikes za objasnenie, mozno ak mi niekedy zvysi cas, tak sa na ten jazyk kuknem aj vaznejsie ;)

a snad sme helpli aj shaaira :-)
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
shaaira
Nový používateľ
Nový používateľ
Príspevky: 3
Dátum registrácie: Ne 07. Nov, 2010, 17:35

Re: Program v pascale

Príspevok od používateľa shaaira »

Vdaka chlapy za vas cas a pomoc :-)
Používateľov profilový obrázok
galen
Používateľ
Používateľ
Príspevky: 2237
Dátum registrácie: Št 01. Jún, 2006, 02:00
Bydlisko: Zilina

Re: Program v pascale

Príspevok od používateľa galen »

a ked to budes testovat, nezabudni zadat X = 1
hodi ti to error - division by zero

takze tam treba nejak dat IF

Kód: Vybrať všetko

   if ( x = 1) then
      begin
         writeln('Nemozes delit nulou');
      end
   else
      begin
         y=(x*x+1)/(x*x-1);
         writeln('y = ',y);
      end;
lava, prava, lava, prava ...
shaaira
Nový používateľ
Nový používateľ
Príspevky: 3
Dátum registrácie: Ne 07. Nov, 2010, 17:35

Re: Program v pascale

Príspevok od používateľa shaaira »

Takze final verzia programu vyzera asi takto:

Kód: Vybrať všetko

program delenie;
uses crt;
var x,y: real;
begin
x:=0;
y:=0;
writeln('Zadaj x: ');
readln(x);
if (x=1) then 
begin
writeln('Nemozes delit nulou');
end 
else
begin
y:=(x*x+1)/(x*x-1);
writeln('y= ',y);
end;
end.
Teraz to uz funguje akoby malo. Este spracovat nejako vyvojovy diagram a mam to v cajku :-)
Používateľov profilový obrázok
materik
Používateľ
Používateľ
Príspevky: 2324
Dátum registrácie: Št 10. Apr, 2008, 14:00
Bydlisko: Prešov

Re: Program v pascale

Príspevok od používateľa materik »

je nutna inicializacia premmennych na nulove hodnoty?
nedava mi to velky zmysel...
PC -> Topping DX7 Pro+ -> Meze 109 PRO / Microlab B77
Používateľov profilový obrázok
donner
Používateľ
Používateľ
Príspevky: 603
Dátum registrácie: Po 16. Nov, 2009, 17:01
Bydlisko: Kosice, Praha

Re: Program v pascale

Príspevok od používateľa donner »

Premenne teraz netreba nulovat.

Kód: Vybrať všetko

program delenie;
uses crt;
var x,y: real;
begin
clrscr;
x:=0;
y:=0;
write('Zadaj x: ');
readln(x);
if (x=1) then
begin
writeln('Nemozes delit nulou');
end
else
begin
y:=(x*x+1)/(x*x-1);
writeln('y= ',y);
end;
readln;
end.
Ja by som to dal takto.
Doplnil som clrscr na zaciatok a na koniec readln. A writeln som zmenil na write, podla mna tam ma byt write, lebo ked je writeln, program pokracuje dalej, a nepockaj na zadanie vstupu, ak tam je iba write, program caka na stlacenie enteru a tak pokracuje.
Spoiler: ukázať
CASE: LanCool PC-K58 + Gelid Silent 12 + Nanoxia DX 14
PSU: Seasonic X-750 single sleeved
MB: ASUS M2N
CPU: AMD Athlon 64 X2 4800+ 2500MHz | CPU COOLER: AC Freezer 7 Pro Rev.2
VGA: GIGABYTE GeForce GTX 560 Super Overclock
RAM: 2x2GB Kingston 800 CL5
LCD: acer X192W
HDD: Seagate 1TB 7200.12 ST31000528AS
DVD-RW: LG GSA-H55L
MOUSE: Razer Abyssus + SteelSeries QcK
KEYBOARD: Genius SlimStar 311
OS: Windows 7 Ultimate
Používateľov profilový obrázok
pEpinko
Používateľ
Používateľ
Príspevky: 850
Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR

Re: Program v pascale

Príspevok od používateľa pEpinko »

donner napísal:... A writeln som zmenil na write, podla mna tam ma byt write, lebo ked je writeln, program pokracuje dalej, a nepockaj na zadanie vstupu, ak tam je iba write, program caka na stlacenie enteru a tak pokracuje.
Naozaj je to takto? Uz som davno neprogramoval v Pascal/Delphi ale nejak sa mi nezda ze by to malo takuto funkcionalitu. Podla mna je medzi write a writeln rozdiel len v tom, ze writeln zalamuje riadok.
Používateľov profilový obrázok
donner
Používateľ
Používateľ
Príspevky: 603
Dátum registrácie: Po 16. Nov, 2009, 17:01
Bydlisko: Kosice, Praha

Re: Program v pascale

Príspevok od používateľa donner »

Teraz uz vazne neviem aky tam je rozdiel, kedze som si vsimol ze niektore programy aju aj wirteln, ta kde by som dal ja write. Takze asi to len zalamuje riadok.
Spoiler: ukázať
CASE: LanCool PC-K58 + Gelid Silent 12 + Nanoxia DX 14
PSU: Seasonic X-750 single sleeved
MB: ASUS M2N
CPU: AMD Athlon 64 X2 4800+ 2500MHz | CPU COOLER: AC Freezer 7 Pro Rev.2
VGA: GIGABYTE GeForce GTX 560 Super Overclock
RAM: 2x2GB Kingston 800 CL5
LCD: acer X192W
HDD: Seagate 1TB 7200.12 ST31000528AS
DVD-RW: LG GSA-H55L
MOUSE: Razer Abyssus + SteelSeries QcK
KEYBOARD: Genius SlimStar 311
OS: Windows 7 Ultimate
Používateľov profilový obrázok
galen
Používateľ
Používateľ
Príspevky: 2237
Dátum registrácie: Št 01. Jún, 2006, 02:00
Bydlisko: Zilina

Re: Program v pascale

Príspevok od používateľa galen »

tak tak ...
write - nezalomi raidok
writeln - zalomi riadok

read - nacita hodnotu
readln - nacita hodnotu a CRLF

takze ak by si chcel pauznut program na konci cez readln() ~ zadaj enter, a pouzival by si bezne read(), tak ti to nezastavi, lebo to v buffri ma CRLF z predchadzajucich read/inputov
lava, prava, lava, prava ...
fmb
Nový používateľ
Nový používateľ
Príspevky: 44
Dátum registrácie: Po 08. Sep, 2008, 23:38
Bydlisko: Liptovský Mikuláš

Re: Program v pascale

Príspevok od používateľa fmb »

Neviem ci som spravne pochopil ako ste mysleli rozdiel medzi write a writeln: ide o to dke po vypisani skonci kurzor, napriklad ked po write mate prikaz readln alebo dalsi write tak za nim skonci kurzor hned v tom riadku, ale pri writeln ide na novu line preto writeLN. cize ked das writeln("ahoj "); write("ahoj "); tak to vyzera po zbehnuti

ahoj
ahoj _

a urcite by som tam dal aspon jeden skok ked je x=1 aby sa opatovne nacitala hodnota...
Spoiler: ukázať
CPU: Phenom II X6 Cooler: Enermax TB noctua fan. MB:ASUS m4a78 GPU: gigabyte 7870 OC with arctic accelero s1r2 2xnoctua 12 fan
casis: Fractal Define R4 Silver HDD1: "Speed demon" :D intel 330 120GB HDD2: WD 1000GB silent PSU: Sapphire FirePSU 625+ modular (t.j. Enermax MODU 625) LCD: Asus 24"

Návrat na "Programovanie"