Pereiti prie turinio

Neaiškumai [FPS]


Rekomenduojami pranešimai

Truputi mokausi programuoti paskaliu ir kaip visada iškyla klausimų. Juos visus pateiksiu šioje temoje.

 

Pirmas klausimas:

 

Užduotis:

Parašykite programą, atvirkščią programai TrysBylos, t.y. tokią, kuri iš bylų PIRMA.TXT ir ANTRA.TXT perrašytų tris skaičius į vieną bylą SKAIČIAI.TXT

 

Programa TrysBylos:
program TrysBylos;
 var prad,				{ pradinių duomenų byla } 
  pirma, antra: text;		{ rezultatų bylos }
  x, y: integer;			{ perskaityti skaičiai }
begin
 assign(prad, 'A:\SKAIČIAI.TXT'); reset(prad);
 assign(pirma, 'C:\DUOMENYS\PIRMA.TXT'); rewrite(pirma);
 assign(antra, 'C:\DUOMENYS\ANTRA.TXT'); rewrite(antra);
 read(prad, x); writeln(pirma, x);
 read(prad, x, y); writeln(antra, x, y: 10)
end.

 

Mano programa:

program VienaByla;
var pirma, antra, skaiciai: text;
a, b, c: integer;
begin
 assign(pirma, 'D:\pirma.txt'); reset(pirma);
 assign(antra, 'D:\antra.txt'); reset(antra);
 assign(skaiciai, 'D:\skaiciai.txt'); rewrite(skaiciai);
 read(pirma, a); read(antra, b, c);
 write(skaiciai, a, ' ', b, ' ', c);
end.

 

Ką darau ne taip? Nuskaito gerai, bet įrašyt neįrašo. Kai dar nebuvo failo skaiciai.txt tai programa jį sukūrė, bet duomenų neįrašė.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Trūksta programos pabaigoje, tada viskas veikia:

  close(skaiciai);

Bet to dalyko trūksta ir pateiktoje programoje, nekorektiška. Spėju JPM? Dažnai jie taip. :D

 

 

Ne JPM, aš individualiai mokausi, susiradau literatūros su užduotimis ir skaitau po truputi kai laiko yra. O šiaip tai ir teorijoje nėra nieko apie uždarymą.

 

Kitas klausimas:

 

Užduotis:

Parašykite programą, kuri apskaičiuotų trikampio plotą. Pradiniai duomenys – trijų taškų – trikampio viršūnių koordinatės plokštumoje (šeši skaičiai). Programos išbandymui parinkite tokius pradinius duomenis, kurie aprašo:

a) statų trikampį;

B) buką trikampį;

c) tiesę (t.y. visi trys taškai yra vienoje tiesėje);

d) tašką (t.y. visų trijų taškų koordinatės sutampa).

 

Čia jau iš matematinės pusės paklausiu. Ar yra kokios formulės ar kas kaip tą skaičiavimą atlikti? Programoje manau susitvarkyčiau, bet matematiškai nežinau kaip nebraižant spręst. ^_^

Redagavo Gytis B.
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ne JPM, aš individualiai mokausi, susiradau literatūros su užduotimis ir skaitau po truputi kai laiko yra. O šiaip tai ir teorijoje nėra nieko apie uždarymą.

 

Kitas klausimas:

 

Užduotis:

Čia jau iš matematinės pusės paklausiu. Ar yra kokios formulės ar kas kaip tą skaičiavimą atlikti? Programoje manau susitvarkyčiau, bet matematiškai nežinau kaip nebraižant spręst. :D

Kai zinomi visu triju krastiniu ilgiai (kuriuos cia galima apskaiciuoti) trikampio plota patogiausia skaiciuoti pagal Herono formule:

S=sqrt(p(p-a)(p-b )(p-c))

Cia sqrt - kvadratine saknis, p - pusperimetris = (a+b+c)/2, o a, b ir c - krastiniu ilgiai. :D

 

Saunuolis, kad mokaisi pats. Sekmes Tau, padesim kuo galesim. ^_^

Redagavo T-Mix
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kai zinomi visu triju krastiniu ilgiai (kuriuos cia galima apskaiciuoti) trikampio plota patogiausia skaiciuoti pagal Herono formule:

S=sqrt(p(p-a)(p-b )(p-c))

Cia sqrt - kvadratine saknis, p - pusperimetris = (a+b+c)/2, o a, b ir c - krastiniu ilgiai. :D

 

Saunuolis, kad mokaisi pats. Sekmes Tau, padesim kuo galesim. :D

 

 

Tame ir esmė jog nežinau kaip tas kraštines koordinačių plokštumoje išgauti. Plotą jau kaip nors būčiau apskaičiavęs. ^_^

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tame ir esmė jog nežinau kaip tas kraštines koordinačių plokštumoje išgauti. Plotą jau kaip nors būčiau apskaičiavęs. ^_^

Krastines ilgis, tai yra atstumas tarp dvieju tasku. O ji galima apskaiciuoti pagal pitagoro formule:

c=sqrt(a^2+b^2)

Cia a - tarkim x vieno tasko minus x antro tasko

b - y koordinate vieno tasko minus y koordinate antro tasko

sqrt velgi kvadratine saknis, o c jau gaunam tos krastines ilgi. :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

program plokstuma;
var ax, ay, bx, by, cx, cy, ab, bc, ac, pp, s: real;
begin
 WriteLn('Tasko A kordinates:');
 Write('x:');
 ReadLn(ax);
 Write('y:');
 ReadLn(ay);
 WriteLn('Tasko B kordinates:');
 Write('x:');
 ReadLn(bx);
 Write('y:');
 ReadLn(by);
 WriteLn('Tasko C kordinates:');
 Write('x:');
 ReadLn(cx);
 Write('y:');
 ReadLn(cy);
 ab:= sqrt( sqr(bx-ax) + sqr(by-ay) );
 ac:= sqrt( sqr(cx-ax) + sqr(cy-ay) );
 bc:= sqrt( sqr(cx-bx) + sqr(cy-by) );
 pp:= (ab+ac+bc)/2;
 s:= sqrt( pp*(pp-ab)*(pp-ac )*(pp-bc) );
 WriteLn('Plotas:', s:10:2);
 Readln;
end.

 

 

Na, kodas bent panašus?

Redagavo Gytis B.
Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 3 savaičių...

Dar toks vienas matematinis klausimas, tarkim tu A ir B taško koordinates, bei tašką C, kuris dalija tiesę AB pusiau. Kaip surasti taško C koordinates? ;)

 

x = (x1 + x2)/2

y = (y1 + y2)/2

 

Pvz.

A(2;3);

B(3;2);

 

x = (2+3)/2 =2,5;

 

y = (3+2)/2 =3;

 

C(2,5;3)

Redagavo Tom
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Truputi mokausi programuoti paskaliu ir kaip visada iškyla klausimų. Juos visus pateiksiu šioje temoje.

 

Pirmas klausimas:

 

Užduotis:

Programa TrysBylos:
program TrysBylos;
 var prad,				{ pradinių duomenų byla } 
  pirma, antra: text;		{ rezultatų bylos }
  x, y: integer;			{ perskaityti skaičiai }
begin
 assign(prad, 'A:\SKAIČIAI.TXT'); reset(prad);
 assign(pirma, 'C:\DUOMENYS\PIRMA.TXT'); rewrite(pirma);
 assign(antra, 'C:\DUOMENYS\ANTRA.TXT'); rewrite(antra);
 read(prad, x); writeln(pirma, x);
 read(prad, x, y); writeln(antra, x, y: 10)
end.

 

Mano programa:

program VienaByla;
var pirma, antra, skaiciai: text;
a, b, c: integer;
begin
 assign(pirma, 'D:\pirma.txt'); reset(pirma);
 assign(antra, 'D:\antra.txt'); reset(antra);
 assign(skaiciai, 'D:\skaiciai.txt'); rewrite(skaiciai);
 read(pirma, a); read(antra, b, c);
 write(skaiciai, a, ' ', b, ' ', c);
end.

 

Ką darau ne taip? Nuskaito gerai, bet įrašyt neįrašo. Kai dar nebuvo failo skaiciai.txt tai programa jį sukūrė, bet duomenų neįrašė.

 

 

Aš kiek supratau mokausi iš ten pat kur ir Gytis B. ir netgi sustojau toj panašioj vietoj. Nepagaunu kampo su tom tekstinėm bylom. Gal galima sužinot nuosekliai kas po kokios komandos vyksta, kur kada duomenys keliauja...? Kada visą šitą reikalą naudot praktiškai ir tt. Jeigu kas nors supratot ko klausiu, tikiuosi sulauksiu pagalbos :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš kiek supratau mokausi iš ten pat kur ir Gytis B. ir netgi sustojau toj panašioj vietoj. Nepagaunu kampo su tom tekstinėm bylom. Gal galima sužinot nuosekliai kas po kokios komandos vyksta, kur kada duomenys keliauja...? Kada visą šitą reikalą naudot praktiškai ir tt. Jeigu kas nors supratot ko klausiu, tikiuosi sulauksiu pagalbos :D

Ten zemiau as atsakiau kaip sutvarkyti: buvo pamirstas close. :D

O assign(kazkas, 'failas.txt'); priskiria kintamajam kazkas (kuris turi buti text tipo) rysi su nurodytu failu. Po sios komandos turi sekti arba reset(kazkas); (jei failas bus skaitomas), arba rewrite(kazkas); (jei i faila bus rasoma).

Toliau tik reikia skaitymo ir rasymo sakiniuose kaip pirmaji kintamaji perduoti ta tavo kintamaji, susieta su failu. O toliau - kaip kad ir darytum skaitydamas is klavieturos / rasydamas i ekrana. :)

Pavyzdziui writeln(kazkas, a, ' ', b ); iraso i faila, susieta su kintamuoju "kazkas" kintamuosius a ir b, atskirtus tarpu. :)

Tas pats ir su skaitymu: read(kazkas, a, b ); perskaito is failo, susieto su "kazkas" du kintamuosius ir juos iraso i a ir i b. :)

Redagavo T-Mix
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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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