Pereiti prie turinio

Mano "Pascal"


Rekomenduojami pranešimai

Taigi šitoje temoje rašysiu tai ko nesuprantu apie pascalį ir pan. Pradėjau mokytis nesenai tai daug klausimų. Taigi pradėsiu rašiau programą apskaičiuoti tiesinių lygčių sistemai tai būtų malonu, kad kas nors galėtu patikrinti:

 

program Noname1;
var a1, a2, b1, b2, c1, c2, Dx, Dy, x, D, y :real;
begin
read (a1, b1, a2, b2, c1, c2);
d:=a1*b2 - a2*b1;
dx:=c1*b2-c2*b1;
dy:=a1*c2-a2*c1;
if (d = 0) and (dx <> 0) or (dy <> 0) then write ('sprend. nera')
else begin writeln ('x yra lygu ', dx/d:10:2);
	   writeln ('y yra lygu ', dy/d:10:2);
 end;
readln;
readln;
end.

 

Ir ar nereikia dar konstantos nes žiūrėjau į kvadratinės lygties sprendimą ir ten kaip žinote jeigu d<0 tada sprend. nėra čia irgi panašiai yra. :) Žodžiu laukiu atsakymų :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveikas,

 

Siūlyčiau įprasti išvesti informaciją vartotojui, nes įsijungęs žmogus nežinos, ką programa daro, ką įvest.

Pačio algoritmo teisingumo netikrinau, neteko pagal tai sistemų spręst. Pasitestuok ir sužinosi ar teisingai veikia.

 

 

Taigi šitoje temoje rašysiu tai ko nesuprantu apie pascalį ir pan. Pradėjau mokytis nesenai tai daug klausimų. Taigi pradėsiu rašiau programą apskaičiuoti tiesinių lygčių sistemai tai būtų malonu, kad kas nors galėtu patikrinti:

 

program Noname1;
var a1, a2, b1, b2, c1, c2, Dx, Dy, x, D, y :real;
begin
read (a1, b1, a2, b2, c1, c2);
d:=a1*b2 - a2*b1;
dx:=c1*b2-c2*b1;
dy:=a1*c2-a2*c1;
if (d = 0) and (dx <> 0) or (dy <> 0) then write ('sprend. nera')
else begin writeln ('x yra lygu ', dx/d:10:2);
	   writeln ('y yra lygu ', dy/d:10:2);
 end;
readln;
readln;
end.

 

Ir ar nereikia dar konstantos nes žiūrėjau į kvadratinės lygties sprendimą ir ten kaip žinote jeigu d<0 tada sprend. nėra čia irgi panašiai yra. :) Žodžiu laukiu atsakymų :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Programa klasės mokinių pažymių vidurkiui rasti:

program pvidurkis;
 var msk,	{ mokinių skaičius }
  p,	{ vieno mokinio pažymys }
  psuma: integer;	{ visų mokinių pažymių suma }
  pbyla: text;	{ pažymių byla }
begin
 assign(pbyla, 'PAŽYMIAI.TXT'); reset(pbyla);
 msk := 0;
 psuma := 0;
 read(pbyla, p);
 while p > 0 do
begin
  psuma := psuma + p;
  msk := msk + 1;
  read(pbyla, p)
end;
 writeln(psuma/msk: 8: 2)
end.

 

ir man ją reikia pakeisti, kad jinai būtu dinamiška tai mano variantas toks:

 

program pvidurkis;
 var msk,
  p,
  psuma: integer;
  pbyla: text;
begin
 assign(pbyla, 'PAZYMIAI.TXT'); reset(pbyla);
 msk := 0;
 psuma := 0;
 read(pbyla, p);
 repeat
begin
  psuma := psuma + p;
  msk := msk + 1;
  read(pbyla, p)
end;
 until p > 0;
 writeln(psuma/msk: 8: 2)
end.

 

Teisingai ar ne?

 

Schizol

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Programa klasės mokinių pažymių vidurkiui rasti:

program pvidurkis;
 var msk,	{ mokinių skaičius }
  p,	{ vieno mokinio pažymys }
  psuma: integer;	{ visų mokinių pažymių suma }
  pbyla: text;	{ pažymių byla }
begin
 assign(pbyla, 'PAŽYMIAI.TXT'); reset(pbyla);
 msk := 0;
 psuma := 0;
 read(pbyla, p);
 while p > 0 do
begin
  psuma := psuma + p;
  msk := msk + 1;
  read(pbyla, p)
end;
 writeln(psuma/msk: 8: 2)
end.

 

ir man ją reikia pakeisti, kad jinai būtu dinamiška tai mano variantas toks:

 

program pvidurkis;
 var msk,
  p,
  psuma: integer;
  pbyla: text;
begin
 assign(pbyla, 'PAZYMIAI.TXT'); reset(pbyla);
 msk := 0;
 psuma := 0;
 read(pbyla, p);
 repeat
begin
  psuma := psuma + p;
  msk := msk + 1;
  read(pbyla, p)
end;
 until p > 0;
 writeln(psuma/msk: 8: 2)
end.

 

Teisingai ar ne?

 

Schizol

 

Teisingai tai teisingai, bet kas tas dinamiškumas? while pakeitei į repeat. Kam to reikia? Sakyčiau su while dar geriau dirba, nes repeat'as vieną kart vistiek ciklą įvykdo, o tau gali to ir nereikt, jei nėra pažymių.

While atveju su msk matau gali būt problemų, reiktų tikrint ar jis nebus 0, kai nebus pažymių.

Redagavo skorpion15
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Taigi šitoje temoje rašysiu tai ko nesuprantu apie pascalį ir pan. Pradėjau mokytis nesenai tai daug klausimų. Taigi pradėsiu rašiau programą apskaičiuoti tiesinių lygčių sistemai tai būtų malonu, kad kas nors galėtu patikrinti:

 

program Noname1;
var a1, a2, b1, b2, c1, c2, Dx, Dy, x, D, y :real;
begin
read (a1, b1, a2, b2, c1, c2);
d:=a1*b2 - a2*b1;
dx:=c1*b2-c2*b1;
dy:=a1*c2-a2*c1;
if (d = 0) and (dx <> 0) or (dy <> 0) then write ('sprend. nera')
else begin writeln ('x yra lygu ', dx/d:10:2);
	   writeln ('y yra lygu ', dy/d:10:2);
 end;
readln;
readln;
end.

 

Ir ar nereikia dar konstantos nes žiūrėjau į kvadratinės lygties sprendimą ir ten kaip žinote jeigu d<0 tada sprend. nėra čia irgi panašiai yra. ;) Žodžiu laukiu atsakymų :)

 

Keli pastebejimai:

 

* Sprendiniu nebuvimo salyga turetu buti

 

if (d = 0) and ((dx <> 0) or (dy <> 0))

 

"and" yra aukstesnio lygio loginis junginys nei "or". Jei matematika valdai, tai (bent man) lengviausia buvo atsimint pagal tai, kad "or" atitinka "+" (suma), o "and" atitinka "*" (daugyba). Tada labai aisku kaip salygos apjungiamos.

 

* Nors paskalis ir nera case-sensitive kalba, bet kintamuju vardus verciau naudok taip, kaip apsirasai, t.y. jeigu apsirasai "D", tai ir naudok "D". Jei apsirasai "d", tai ir naudok "d". Be to, nors sprendziant matematines uzduotis vienos ar dvieju raidziu kintamieji ir turi siokia tokia prasme, pratinkis kintamuosius vadinti bet kam suprantamais vardais, pvz.: "vardas", "diskriminantas", "rezultatas", "daugiklis", ir t.t.

 

Sekmes!

Nuoroda į pranešimą
Dalintis kituose puslapiuose
labas, gal kas galetu parasyt programa paskaliu? lb lb reikia. salyga: rasti ir atspausdinti visus zodzius kuriuose yra dzidziosios raides . is anksto lb aciu ;)

Na Devox rašė, kad paskalis nėra case sensitive programavimo terpė. Tad nelabai ir įsivaizduoju ;)

 

Schizol

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 savaičių...
Programa klasės mokinių pažymių vidurkiui rasti:

program pvidurkis;
 var msk,	{ mokinių skaičius }
  p,	{ vieno mokinio pažymys }
  psuma: integer;	{ visų mokinių pažymių suma }
  pbyla: text;	{ pažymių byla }
begin
 assign(pbyla, 'PAŽYMIAI.TXT'); reset(pbyla);
 msk := 0;
 psuma := 0;
 read(pbyla, p);
 while p > 0 do
begin
  psuma := psuma + p;
  msk := msk + 1;
  read(pbyla, p)
end;
 writeln(psuma/msk: 8: 2)
end.

 

ir man ją reikia pakeisti, kad jinai būtu dinamiška tai mano variantas toks:

 

program pvidurkis;
 var msk,
  p,
  psuma: integer;
  pbyla: text;
begin
 assign(pbyla, 'PAZYMIAI.TXT'); reset(pbyla);
 msk := 0;
 psuma := 0;
 read(pbyla, p);
 repeat
begin
  psuma := psuma + p;
  msk := msk + 1;
  read(pbyla, p)
end;
 until p > 0;
 writeln(psuma/msk: 8: 2)
end.

 

Teisingai ar ne?

 

Schizol

 

abiejuose variantuose pamiršta uždaryt skaitymo failą: close(pbyla)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...