Datuve :: Forums :: Arhīvs :: Iesācēja programmēšanā

Datuve

Mana Datuve

Reģistrācija | Noteikumi | Paroles atjaunošana



Forums

Ieskaties


Raksti

Lietotāji online

Lietotāji online: 87

Reģistrētie lietotāji online: 0

Viesi online: 87

Datuve.lv video
Top.LV

Iesācēja programmēšanā

Ievietoja: ikgl @ 2010.09.28 21:19  

Sveiki!
Man ir jāizveido programma,kas veic,jums noteikti liksies,ka elementāru matemātisko uzdevumu.
Ta kā gan jau neviens no jums to nevēlēsies izdarīt,es nemaz nerakstīšu sīkāk tā tekstu,bet man radās jautājums,kura dēļ netieku vairs ne soli uz priekšu.Tātad.Kas īsti ir "Boolean" un "LongInt"? "got Boolean expected LongInt"

Komentāri:

#1 Killercompany @ 2010.09.28 21:31

tas errors nozīmē ka boolean vietā lietoji longint vai otrādi.
longint ir skaitlis (drīkst būt arī lielāks par 65535, atšķirībā no int (integer)), bet boolean (bool) ir binārs mainīgais. tobiš vai nu true vai false. lietojams ja zini ka nekad nevajadzēs glabāt ko citu kā tikai 2 vērtības.
tā piemēram ja uzraksti ka "var x: boolean;" un pēc tam "x:=999999;" tad droši vien dabūsi to erroru ko minēji, jo x nevar saturēt tādu vērtību.

#2 ikgl @ 2010.09.28 21:33

Un kā es varu novērst to Boolean?

#3 Killercompany @ 2010.09.28 21:34

nu tur kur definē mainīgo tipus (zem "var") boolean vietā uzraksti longint.

#4 ikgl @ 2010.09.28 21:36

Es tur neesmu rakstījusi nevienu no tiem.

var
a,b,c,d,e:integer;
begin
utt.

#5 Killercompany @ 2010.09.28 21:48

nu tad mošk iedod pilnu kodu tomēr?

#6 ikgl @ 2010.09.28 21:56

Lai arī cik banāla šī frāze neskanētu,esmu spiesta teikt,ka par to man nav mācīts.
Nekas un labo pusi nemainās vai rakstu longint vai nē :/.

#7 Killercompany @ 2010.09.28 22:02

nu moš kādam intedžeram būlu iedevi? anyway, šis ir pēdējais minējums, jo uz aklo māku tikai pakaļu atslaucīt. nedomāju ka arī kāds cits gribēs te uz aklo tev palīdzēt. iedosi kodu - tad arī skatīsimies.

#8 ikgl @ 2010.09.28 22:06

Labi,ka tev piemīt tādas prasmes.
Par kādu kodu tu runā?Nu nopietni,es nevaru iedomāties.

#9 Killercompany @ 2010.09.28 22:11

ā... tā uzreiz vajadzēja teikt ka nezini kas ir "kods". tas ir tas vis garais penteris ko raksti. ar "var" sākot un "end." beidzot :D

#10 ikgl @ 2010.09.28 22:19

program murgs;
uses crt;
var
a,b,c,d,e:integer;
begin
clrscr;
write ('ievadi malu a:');read (a);writeln;
write ('ievadi malu b:');read (b);writeln;
write ('ievadi malu c:');read (c);writeln;
write ('ievadi malu d:');read (d);writeln;
if a=b and b=c and c=d
  then writeln ('kvadrats un rombs');
if a=c and b=d
  then writeln ('paralelograms');
if a=c and b<>d
  then writeln ('trapece');
if a<>b and b<>c and c<>d and d<>a and a<>c and b<>d
  then writeln ('dazadmalu cetrsturis');
readkey
end.

P.S.Par KODA pareizību noteikti neesmu droša. ^^

#11 Killercompany @ 2010.09.28 23:05

nav pie rokas kompilators lai pārbaudītu, bet moš pamēģini šitā:

var
a,b,c,d,e:integer;
begin
write('ievadi malu a:'); readln(a);
write('ievadi malu b:'); readln(b);
write('ievadi malu c:'); readln(c);
write('ievadi malu d:'); readln(d);
if (a=b) and (b=c) and (c=d)
 then writeln('kvadrats un rombs');
if (a=c) and (b=d)
 then writeln('paralelograms');
if (a=c) and (b<>d)
 then writeln('trapece');
if (a<>b) and (b<>c) and (c<>d) and (d<>a) and (a<>c) and (b<>d)
 then writeln('dazadmalu cetrsturis');
readln;
end.

#12 ikgl @ 2010.09.28 23:12

Izmet "fatal:compilation aborted".
Nekas laikam neizdosies.Milzīgs paldies tev katrā gadījumā.Domāju,ka jau sen esi atmetis ar roku.

#13 Killercompany @ 2010.09.29 00:26

ar ko kompilē? nerāda kurā rindā gļuks?
uzmet borland turbo pascall vai kā viņu tur sauca. tas rāda kurā rindā ir problēma.

#14 ikgl @ 2010.09.29 07:07

Hmm...Ar ko compilēju?Ja godīgi nav ne jausmas.
h.pas(7,1) Fatal:Syntax error, ";" expected but "identifier WRITE" found.
Es saprotu,kāpēc tā raksta,bet neizprotu kādēļ vispār to raksta,jo tur tam write būtu jābūt.
Labi,termiņš nokavēts man jau.Katrā gadījumā liels paldies tev.

#15 0CsH @ 2010.09.29 07:17

vaina ir tavā "and"...   ar vārdiem rakstītu and izmanto boolean operācijās... tavā gadījumā jāliek &

#16 karuuzo @ 2010.09.29 10:31

Paskālu jau nebiju redzējis 5 gadus :)
Pirmkārt - teorija ar labiem piemēriem
Ja tu gribi zināt, kāpēc tev tāda kļūda, vainīga izteiksme

if a=c and b=d

tiek interpretēta kā:

if ((a=(c and b)) = d)

t.i., sākumā "b and c" - rezultāts - boolean, un tad int(a) = boolean(b and c) un ir kļūda expected int, got boolean :)
risinājums ir vienkāršs, kā jau Killercompany rakstīja, jāliek iekavās:

if (a=c) and (b=d)

To visu sauc par operatoru prioritāti (nezināju, ka paskālam salīdzināšanas operatoriem zemāka prioritāte kā loģiskajiem :) Tipa, matemātika - a + b * c = a + (b *c), nevis (a + b) * c ;)

m

PS. #14: tu sākumu programmai atstāji?

program murgs;
uses crt;

#17 ikgl @ 2010.09.29 17:24

Paldies visiem :)!
Karuuzo,.Ja pareizi atceros,tad laikam pašās beigās tomēr pamainīju.