fizmati.lv forums
Pascal MD - Izdrukas versija

+- fizmati.lv forums (http://fizmati.lv/forums)
+-- Forums: Informācijas tehnoloģiju lietas (/forum-118.html)
+--- Forums: Programmēšana (/forum-125.html)
+--- Pavediens: Pascal MD (/thread-4554.html)



Pascal MD - Dalokoshka - 05.10.2010 20:16

Sveiki, vai kads varetu man ludzu palidzet - paskaidrot ko nozime VAL funkcija ( ko vispar tas nozime es aptuveni saaprotu, bet tiesi programma kada tai ir nozime) un 'kd' tur kur mainigie un s: string (kada nozime)Sad diezgan gruti man ar to programmesanu iet Crying or Very sad un nervi vairs neizturEmbarassed

PROGRAM TRIJSTURIS;
VAR X,Y,Z,D,KD:INTEGER;
AB,AC,BC,P,E:REAL;
S:STRING[5];
LABEL PAZ1,PAZ2,PAZ3,PAZ4;
BEGIN
PAZ1: WRITE ('IEVADI X VERTIBU ===> ');
READLN (S);
VAL (S,X,KD);
IF (X<1) OR (KD<>0) THEN BEGIN
WRITELN ('TAS NAV NATURALS SKAITLIS');
GOTO PAZ1
END;
PAZ2: WRITE ('IEVADI Y VERTIBU ===> ');
READLN (S);
VAL (S,Y,KD);
IF (Y<1) OR (KD<>0) THEN BEGIN
WRITELN ('TAS NAV NATURALS SKAITLIS');
GOTO PAZ2
END;


RE: Pascal MD - dambō bet rōzā - 05.10.2010 20:23

omfg. pls. no.

ieskrāpē šo galvā: nelieto GOTO Sad

val (teksts, skaitlis, kļūdas_pozīcija);
val pārvērš no teksta uz skaitli. kļūda (kd mainīgais tev) būs >0, ja kāds no simboliem nebija derīgs kā cipars.
reku angliski izlasi pie Description
http://www.gnu-pascal.de/gpc/Val.html

s : string[5];

nozīmē, ka s mainīgajā būs iespējams saglabāt teksta virkni ar garumu līdz 5 simboli.


EDIT:
Ja tu gribi, kaut ko atkārtot, līdz noteiktam rezultātam, tad lieto While...do vai Repeat...Until.
Kods:
While (a>10) do Begin
dari kaut ko
End;
Kamēr a būs lielāks par 10 viņš ies pa apli un darīs "kaut ko"
Kods:
Repeat
dari kaut ko
Until (a>10);
Kamēr a būs mazāks par 10, viņš ies pa apli. Kad a kļūs lielāks par 10, tad apstāsies.

atšķirība starp tiem abiem ir tāda, ka while ja būs nepatiess no paša sākuma viņš ne reizi neieies ciklā.
repeat izpildīs viszmas 1 reizi un tad tikai pārbaudīs patiesumu vai turpināt.

tavā programmā tas būtu šādi
Kods:
Repeat
  Write ('Ievadi x vertibu ===>');
  Readln (S);
  Val (S, X, KD);
Until (X>0) AND (KD=0);
ies pa apli līdz X>0 un KD būs 0


RE: Pascal MD - Dalokoshka - 05.10.2010 20:40

[quote='dambō bet rōzā' pid='36965' dateline='1286302999']
omfg. pls. no.

ieskrāpē šo galvā: nelieto GOTO Sad

val (teksts, skaitlis, kļūdas_pozīcija);
val pārvērš no teksta uz skaitli. kļūda (kd mainīgais tev) būs >0, ja kāds no simboliem nebija derīgs kā cipars.
reku angliski izlasi pie Description
http://www.gnu-pascal.de/gpc/Val.html

s : string[5];

nozīmē, ka s mainīgajā būs iespējams saglabāt teksta virkni ar garumu līdz 5 simboli.


Aptuveni ir skadrs, liels paldies!!! to GOTO ir no MD noteikumiem, mes to funkciju tagad macamies, t.k. bez tas nevar md nodot. Bet tavu ppadomi es noteikti atceresos , paldies!
vai pareizi saprotu, ka ja es ievadu burtu nevis ciparu , tad val to parvers skaitli? Confused??:
un ko nozime kd<0 ?


RE: Pascal MD - dambō bet rōzā - 05.10.2010 20:43

nē.

val (s,x,kd);

s = "10"; [strings]
x = 10; [skaitlis]
kd = 0;

dators (Pascal) pats uzreiz nesaprot, ka daži burti (simboli) ir cipari. cilvēki to uztver pašsaprotami.

s = "233a22";
x = "233";
kd = 4; -> kļūda pie ceturtā simbola.


RE: Pascal MD - Dalokoshka - 05.10.2010 20:45

(05.10.2010 20:43 )dambō bet rōzā rakstīja:  nē.

val (s,x,kd);

s = "10"; [strings]
x = 10; [skaitlis]
kd = 0;

dators (Pascal) pats uzreiz nesaprot, ka daži burti (simboli) ir cipari. cilvēki to uztver pašsaprotami.

s = "233a22";
x = "233";
kd = 4; -> kļūda pie ceturtā simbola.


Nu tagad viss skaidrs!!! Milzigs paldies!!!


tomer ne viss =(((
kapec x =233 nevis 23322 ? vai pec kludas vertibas nepienem?
saprotu, ka jautajumi varbut stulbi, bet nu tiesam ar programesanu iet gruti =(


RE: Pascal MD - dambō bet rōzā - 05.10.2010 20:51

Nu lab. Tur laikam sanāca samelot Laughing
Ja s būtu nodefinēts kā integer, tad neko nevajadzētu pārvērst. (tas par to, ka dators uzreiz nesaprot, ka ir skaitlis)

var s : integer;
Begin
readln(s);
End.

un s uzreiz būtu skaitlis un nebūtu nekas jāpārvērš.


RE: Pascal MD - Dalokoshka - 05.10.2010 21:07

(05.10.2010 20:51 )dambō bet rōzā rakstīja:  Nu lab. Tur laikam sanāca samelot Laughing
Ja s būtu nodefinēts kā integer, tad neko nevajadzētu pārvērst. (tas par to, ka dators uzreiz nesaprot, ka ir skaitlis)

var s : integer;
Begin
readln(s);
End.

un s uzreiz būtu skaitlis un nebūtu nekas jāpārvērš.

Paldies, aptuveni ir skaidrs kas un ko.


RE: Pascal MD - vnkpsc - 06.10.2010 07:43

Tas viss vajadzīgs lai programma neuzkārtos, ja kāds naturāla skaitļa vietā mēģina ievadīt kaut ko citu..


RE: Pascal MD - dambō bet rōzā - 06.10.2010 11:29

rite.
tad nedod līkrocim programmu xd

tas padara val lietošanu saprotamu, bet GoTo lietošanu tik un tā nesaprotu. xD