Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Užduotys / Klausimas / Atsakymai

Parašė IGEN· 2011 Lap. 11 16:11:00
#1


FREE PASCAL

Užduotys / Klausimai / Atsakymai

Kam skirta ši tema?
Ko gero kas trečias programuotojas gali pasakyti, kad geriausia pradėti programuoti yra nuo FPS. Todėl šią temą susikūriau būtent sau. Bet jūs ją laisvai galite naudoti tobulinant savo programavimo žinias. Noriu, kad jūs man kurtumete užduotis, dėtumete savo išspręstus ar niekaip neįveikiamus kodus. Aš bandysiu taip pat jas išspręsti, o jeigu nutiks taip, kad mano protas nepajėgs išlaužti kodą, prašysiu būtent jūsų pagalbos, būtent šioje temoje. Ačiū.

Laukiu užduočių...

Redagavo IGEN· 2011 Lap. 11 16:11:33

Parašė Faitas.· 2011 Lap. 11 16:11:53
#2

Parašykite programą sekos: s; ss; sss; ssss; pirmųjų n narių sumai rasti.

Čia s - bet kuris skaitmuo, išskyrus 0. Pvz., jei s=7, n=5, tai turi būti skaičiuojama tokia suma 7+77+777+7777+77777.


Jei spręsite kiti, tai nedėkite čia sprendimo, jei kas nesupras, tiesiog siųskit , nes nebus tolko tada spręsti. :)

Jei jau nesigaus, duosiu atsakymą (AŽ)

Redagavo Faitas.· 2011 Lap. 11 16:11:06

Parašė KiraLT· 2011 Lap. 11 17:11:11
#3

Idekit sudetingesniu, ką šita per lengva.

Parašė Faitas.· 2011 Lap. 11 21:11:22
#4

Išsisprendei? Jei jau, tai įdėsiu sunkesnių. :)

Parašė IGEN· 2011 Lap. 12 08:11:52
#5

Faitas. parašė:
Išsisprendei? Jei jau, tai įdėsiu sunkesnių. :)


Neskubėk, kai išsipagiriosiu butinai išspręsiu.

Parašė zygisn· 2011 Lap. 12 10:11:29
#6

Pradinis dėmuo – penkiaženklis skaičius a. Rezultatas – keturženklis skaičius b, gautas iš
pradinio dėmens pašalinus vidurinįjį skaitmenį.
Parašykite programą (su komentarais), kuri spręstų šį uždavinį.

Skanaus :)

Redagavo zygisn· 2011 Lap. 12 10:11:22

Parašė IGEN· 2011 Lap. 12 19:11:45
#7

1) Uždavinys [BAIGTA]


program Noname1;
var c1, c2, sk, sek, ats, skait : real;
begin
read(sk);
read(sek);
ats:= 0;
skait:= 0;
for c1:= 1 to sek do // kelintas skaicius
begin
for c2:= 1 to c1 do // kelintas skaitmuo
begin
skait:= skait * 10 + sk;
end;
 ats:= ats + skait;
 skait:= 0;
 
end;
  WriteLn(ats);
end.

Redagavo IGEN· 2011 Lap. 12 21:11:26

Parašė IGEN· 2011 Lap. 14 17:11:44
#8

2) Uždavinys [BAIGTA]


program Noname0;
var sk, i: longint;    // kintamieji
mas : array [1..5] of longint;      // sukuriamas masyvas
begin
  Read(sk);      // irasomas penkiazenklis skaicius
  for i:= 1 to 5 do      // ciklas kuris padeda skaidyti skaiciu
  begin                  // ciklo pradzia
  mas[i]:= sk mod 10;     // skaidymas
  sk:= sk div 10;         // skaidymas
  end;                   // ciklo pabaiga
  Write(mas[5],mas[4],mas[2],mas[1]); // rasomas skaicius be vidurinio
  Readln;
end.


Labai patiko ačiū ZygisN
Laukiu dar.

Redagavo IGEN· 2011 Lap. 14 18:11:43

Parašė zygisn· 2011 Lap. 14 20:11:31
#9

Pirkdami bilietus į koncertą iš anksto klausytojai moka po 5 litus, o paskutinę dieną – po 8
litus. Žinoma, kad iš viso parduota bilietų už n litų, iš kurių p surinkta paskutinę dieną.
Parašykite programą, kuri suskaičiuotų, kiek klausytojų buvo koncerte.

-----------
Orientuokis pagal šitus skaičius:

Jeigu išviso parduota už 1000lt (paskutine diena buvo parduota už 400), tai išviso buvo 170 klausytojų.

Redagavo zygisn· 2011 Lap. 15 13:11:40

Parašė IGEN· 2011 Lap. 22 21:11:19
#10

Please help, užmuškit manę, bet per savaite mano smegeninė neišlaužė kaip reikia dabaigti šį uždavinį.

Uždavinys daleiskim įrašomas penkiaženklis skaičius ir iš tų 5 skaičių turi spauzdinti skaičių, kuris kartojasi 3 kartus.
Pavyzdžiui: Skaičius: 41344; Atsakymas: 4 , nes jis kartojasi tris kartus.
Skaičius: 84838; Atsakymas: 8, nes jis kartojasi tris kartus.


program Noname0;
var sk, i, i2: longint;
mas : array [1..5] of longint;
begin
  Read(sk);
  for i:= 1 to 5 do
  begin
  mas[i]:= sk mod 10;
  sk:= sk div 10;
  end;
  Write(mas[5],mas[4],mas[3],mas[2],mas[1]);
 for i:= 0 to 9 do
begin
for i2:= 1 to 5 do
 
//
// Čia niekaip nesugalvoju...
//
 
end;
end;
  Readln;
end.


Kas padės butinai +11


PASIDARIAU, KAM REIKES ATSAKYMO PM!

Redagavo IGEN· 2011 Lap. 26 17:11:58

Parašė IGEN· 2011 Lap. 28 16:11:39
#11

Užduotis:
Duodami trys skaičiai a, b, c ir reikia spauzdinti jų vidurinį skaičių.
Pavyzdžiui: 162, 123, 984; Atsakymas = 162, nes jis vidurinis.


Esu garantuotas, kad programa sumažinti 20x kartų.

program Noname4;
var sk1, sk2, sk3, did, maz, i: integer;
begin
  Read(sk1,sk2,sk3);
  for i:= 1 to 1 do
  begin
  if (sk1 - sk2) or (sk1 - sk3) > 0 then
  did:= sk1
  else
  if (sk2 - sk1) or (sk2 - sk3) > 0 then
  did:= sk2
  else
  if (sk3 - sk1) or (sk3 - sk2) > 0 then
  did:= sk3;
  Writeln('//////////');
  Writeln(did);
  if (sk1 - sk2) and (sk1 - sk3) < 0 then
  maz:= sk1
  else
  if (sk2 - sk1) and (sk2 - sk3) < 0 then
  maz:= sk2
  else
  if (sk3 - sk1) and (sk3 - sk2) < 0 then
  maz:= sk3;
  Writeln(maz);
  Writeln('//////////');
  end;
  if (sk1 > maz) and (sk1 < did)
  then write(sk1)
  else
  if (sk2 > maz) and (sk2 < did)
  then write(sk2)
  else
  if (sk3 > maz) and (sk3 < did)
  then write(sk3);
  Read;
end.

Parašė bruzgis· 2011 Lap. 28 18:11:44
#12


 
program Noname4;
 
var sk1, sk2, sk3: integer;
 
begin
 
  Read(sk1,sk2,sk3);
 
  if(sk1>sk2) then	
	begin
		if(sk1>sk3) then
			writeln('Didziausias', sk1)
		else writeln('Didziausias', sk3);
	end
	else
		begin
			if(sk2>sk3) then
				writeln('Didziausias', sk2);
			else
				writeln('Didziausias', sk3);
		end;
    Readln;
end.


klaidas tik issitaisyk sintakses

Parašė bruzgis· 2011 Lap. 28 18:11:03
#13


program Noname4;
var sk1, sk2, sk3: integer;
begin
  Read(sk1,sk2,sk3);
		if((sk1>sk2 AND sk1<sk3) OR (sk1<sk2 AND sk1>sk3)) then writeln('Vidutinis', sk1)
		else if((sk2>sk1 AND sk2<sk3) OR (sk2<sk1 AND sk2>sk3)) then writeln('Vidutinis', sk2)
		else if((sk3>sk1 AND sk3<sk2) OR (sk3<sk1 AND sk3>sk2)) then writeln('Vidutinis', sk3)
		else writeln('Yra vienodu skaiciu');
    Readln;
end.


klaidas sintakses issitaisyk

Parašė KiraLT· 2011 Lap. 28 19:11:51
#14

Man atrodo kad sudêtiniuose ifuose loginiu veiksmu atlikti negalima, jei neklystu...

Parašė KiraLT· 2011 Lap. 28 20:11:44
#15

Visiems užduotėlė. Kol kas tik viena. Patiks- duosiu dar vieną. Nėra labai sudėtinga, pats padariau per pusę valandos.
Parsisiuntimo nuoroda:
http://www.failai.lt/3zcku8ncyga...na.pdf.htm

Sėkmės

p. S. Jei norite programėlės pavyzdžio PM man.

Redagavo KiraLT· 2011 Lap. 28 20:11:26

Parašė IGEN· 2011 Lap. 30 17:11:11
#16

Hs Labai patiko. Mokyojas atsiunte 8-9kl. ; 10-12kl olimpiadinius uždavinius.
Kolkas išsprendžiau tik jį :)
Like!


program Noname4;
var x, y, kiek, n, i: integer;
imk, ats : text;
skirst : string;
begin
    x:= 1;
    y:= 1;
  Assign(imk,'info.txt');
  reset(imk);
  readln(imk,n);
    if (n < 1) or (n > 50) then
  write('Iseita is ribojimo');
  readln(imk, kiek);
  if (kiek < 1) or (kiek > 1000) then
  write('Iseita is ribojimo');
  for i:= 1 to kiek do
  begin
  readln(imk,skirst);
  if skirst = 'V' then
  x:= x - 1
  else if skirst = 'R' then
  x:= x + 1
  else if skirst = 'P' then
  y:= y + 1
  else if skirst = 'S' then
  y:= y - 1;
  if x = 0 then
  x:= 1;
  if y = 0 then
  y:= 1;
  if x = n + 1 then
  x:= n;
  if y = n + 1 then
  y:= n;
  end;
  assign(ats,'rez.txt');
  rewrite(ats);
  write(ats,x,' ',y);
  close(ats);
  close(imk);
  Readln;
end.

Redagavo IGEN· 2011 Lap. 30 19:11:22

Parašė IGEN· 2011 Lap. 30 19:11:23
#17

ZygisN parašė:
Pirkdami bilietus į koncertą iš anksto klausytojai moka po 5 litus, o paskutinę dieną – po 8
litus. Žinoma, kad iš viso parduota bilietų už n litų, iš kurių p surinkta paskutinę dieną.
Parašykite programą, kuri suskaičiuotų, kiek klausytojų buvo koncerte.

-----------
Orientuokis pagal šitus skaičius:

Jeigu išviso parduota už 1000lt (paskutine diena buvo parduota už 400), tai išviso buvo 170 klausytojų.


Labai vaikiškas... Bet ačiū.

program Noname5;
var n, p, s, ats, last, viso: integer;
begin
  Write('Gauta litu: ');
  Read(n);
  Write('Paskutine diena suringta litu: ');
  Read(p);
  last:= p div 8;
  s:= n - p;
  ats:= s div 5;
  viso:= ats + last;
  Write(viso);
  Readln;
end.

Parašė KiraLT· 2011 Lap. 30 19:11:02
#18

3www tavo programėlė visai patiko, bet jei neprieštarausi noriu duoti šiek tiek kritikos:
1. Truputi tvarkos, labai netvarkingai. Reikia viską pagal taisyklės sulygiuoti.
2. Naudok truputi ir komentarų, kad būtų galima lengvai net ir pašaliniam suprasti (naudok bent aprašydamas kintamuosius(.
3. kažkaip keisti tie apribojimai. Kiek supratau jie tiesiog išmeta „Iseita is ribojimo“ ir programa vykdoma toliau. Juos reikia dėti į ciklą, kad jei pvz per didelis skaičius išmestų „Skaičius per didelis. Galima skaičiaus maksimali reikšmė yra n. Bandykite vėl“ ir vėl turi įvesti iš naujo. Arba jei čia failas labiau tiktų visą dalį po to if'o įdėti į „begin“ ir „end“ kad ignoruotu jei reikšmė pvz per didelė ir į failą išspausdintų „Skaičius per didelis. Galima skaičiaus maksimali reikšmė yra n. Bandykite vėl“.
4,. Gudriai pastebėjai koordinačių skaičiavime, kad negali išeiti iš duotos ribos. Bet manau kad būtum sugebėjęs įdėti viską į vieną sudėtinį if'ą. Prisimink kad sudėtinį if'ą programa supranta kaip vieną veiksmą ir ji mažiau apkraunama.

Tai tiek, gal nori dar vieną uždavinuką?

Be to sėkmės. O jei atsibos PasCal kalba, pradėk mokintis C++. Man ji žymiai labiau patinka.

Parašė IGEN· 2011 Lap. 30 20:11:09
#19

Hs parašė:
3www tavo programėlė visai patiko, bet jei neprieštarausi noriu duoti šiek tiek kritikos:
1. Truputi tvarkos, labai netvarkingai. Reikia viską pagal taisyklės sulygiuoti.
2. Naudok truputi ir komentarų, kad būtų galima lengvai net ir pašaliniam suprasti (naudok bent aprašydamas kintamuosius(.
3. kažkaip keisti tie apribojimai. Kiek supratau jie tiesiog išmeta „Iseita is ribojimo“ ir programa vykdoma toliau. Juos reikia dėti į ciklą, kad jei pvz per didelis skaičius išmestų „Skaičius per didelis. Galima skaičiaus maksimali reikšmė yra n. Bandykite vėl“ ir vėl turi įvesti iš naujo. Arba jei čia failas labiau tiktų visą dalį po to if'o įdėti į „begin“ ir „end“ kad ignoruotu jei reikšmė pvz per didelė ir į failą išspausdintų „Skaičius per didelis. Galima skaičiaus maksimali reikšmė yra n. Bandykite vėl“.
4,. Gudriai pastebėjai koordinačių skaičiavime, kad negali išeiti iš duotos ribos. Bet manau kad būtum sugebėjęs įdėti viską į vieną sudėtinį if'ą. Prisimink kad sudėtinį if'ą programa supranta kaip vieną veiksmą ir ji mažiau apkraunama.

Tai tiek, gal nori dar vieną uždavinuką?

Be to sėkmės. O jei atsibos PasCal kalba, pradėk mokintis C++. Man ji žymiai labiau patinka.


Turiu dabar 5 uždavinukus olimpiadinius.
O negaliu mokintis jokių kalbų tik PasCal, nes laukia egzaminas, o aš nelabai moku jį.

Parašė KiraLT· 2011 Lap. 30 20:11:55
#20

Aš dalyvausiu kitą mėnesį PasCal miesto olimpiadoje (esu tik devintokas -_-). Bet manau kitais metais sudalyvauti C++ olimpiadoje, nes jau busiu daug lamai išmokęs.

Parašė IGEN· 2011 Gru. 1 19:12:14
#21

Hs parašė:
Aš dalyvausiu kitą mėnesį PasCal miesto olimpiadoje (esu tik devintokas -_-). Bet manau kitais metais sudalyvauti C++ olimpiadoje, nes jau busiu daug lamai išmokęs.


Na matau tau puikiai sekasi ;) Sekmės tau ir padėk ruoštis valstybiniam informatikos egzaminui :]

Parašė kacjukasz· 2011 Gru. 1 22:12:00
#22

WebSite: http://drakan-mu.lt
Register: http://drakan-mu.lt/index.php?op...
Downloads: http://drakan-mu.lt/index.php?op...

SERVER STARTED! 2011-11-29 at 2:00 AM (GMT +02:00 Time Zone) !
GET START BONUS!
Register Account, active WebShop (connect to the webshop once) then go to the game, login, create new character, log out, wait for 1 minute. Re- Connect again! And that's it, youre new character will have 1000 LvL Up Points, 100mln zen and 250 credits!


About server: Drakan-Mu Epic is High rate, PvP server. Fully working Season 4, Socked system, NEW ULTRA, MEGA & EPIC Ancient sets, 73 new sets, New Weapons and Shield are avalable for every class. 80-95% success rates, huge spots, huge stadium, fast monster respawm, No BlessBug but huge zen drop from monsters. In shops you can find all magic and orbs.
PvP balanced! Danger Dark Knight is limited for max stat, Streght, Vitality and Energy can be added to 23676, Agility to 20676. All other chars max stat is 32676.

Basic Information:
Version: Full Season 4+ Addons
Exp/ Drop: Max/ Max
BlessBug: Off
Stadium: On
Spots: Yes
Reset lvl: 400
Reset type: Keep Stat, items, magics
Reset coast: 0 zen
Reset limit: No limit
Success rates: 90%
Kundun drop: All game items
Chaos machine: 95% max success rate
New items: Yes
New weapons: Yes

Features and Events :
All Character can wear all new item mode
All Character can wear all new weapons mode
All weapons one handed mode
WebShop function exchange Lvl Up Points to Credits
Blood Castle
Castle Siege
Chaos Castle
CryWolf
Devil Squere
Kalima
GM regular events
Golden Dragon Invazion
White Wizard Invazion
Red Dragon Invazion
Stadium Arena
Kanturu
Illiusion Temple

Parašė KiraLT· 2011 Gru. 1 23:12:38
#23

Tu teorija mokinkis, kiek žn ten 80% teorijos.

Parašė IGEN· 2011 Gru. 2 00:12:58
#24

Hs parašė:
Tu teorija mokinkis, kiek žn ten 80% teorijos.


Na reiks pasimokinti ir dalį to, tiek dalį to...
Esu girdėjas, kad kiti abiturientai net nesprendžia uždavinių.
Padaro teoriją ir išeina lauk.

Parašė IGEN· 2011 Gru. 2 10:12:05
#25

Kaip reikia convertuoti?
Iš char noriu pereiti į integer.


program Noname5;
    var date: char;
          i, yy, mm, dd : integer;
begin
    for i:= 1 to 2  do
begin
     read(date);
     yy:= date; <--- ERROR, nes iš char neina padaryti integer
end;
  Readln;
end.

Parašė IGEN· 2011 Gru. 4 14:12:01
#26

Kas padėtu ir išspręstu
http://www.3www.lt/gimtadienis-v...
Atsilyginsiu.

Parašė bruzgis· 2011 Gru. 4 14:12:55
#27

paprasta.

issiskaidyk i tris skaicius,

TUomet sudarinek galimas datas, tinkancias datas susirasyk i masyva,

gale patikrink ar masyve yra elementu, jei nera - klaidinga data :)
Simbolių eilutės

Tai simbolinio tipo praplėtimas. Šio tipo reikšmės - simbolių eilutės, kurias sudaro kompiuterio abėcėlės simbolių kombinacijos. Maksimalus simbolių skaičius eilutėje yra 256.

Simbolių eilutė žymima standartiniu vardu string. Tačiau galimas ir toks aprašymas:

string[<maksimalus leistinas simbolių skaičius>]

Pavyzdžiui:

var zodis: string;
zodzio_dalis: string[5];

Kintamasis zodis galės turėti ne daugiau negu 256 simbolius, o kintamasis zodzio_dalis - ne daugiau kaip 5. Pavyzdžiui, atlikus priskyrimus:

zodis:='Jonas';
zodzio_dalis:='';

kintamasis zodis įgis reikšmę 'Jonas', o kintamasis zodzio_dalis taps tuščia simbolių eilute, t.y. eilute, kurioje nėra nė vieno simbolio.

Tarp eilučių galima sąjungos operacija. Pavyzdžiui, jeigu vardas ir pavardė yra string tipo kintamieji, vardas reikšmė yra 'Jonas', pavardė reikšmė yra 'Petraitis', tai reiškinio:
vardas + ' ' + pavardė reikšmė bus 'Jonas Petraitis'.

Dirbant su eilutėmis, galima naudoti indeksus, t.y. dirbti kaip su simbolių masyvais. Pavyzdžiui, vardas[1] bus lygu 'J', o vardas[2] bus lygu 'o'.

Eilutes galima lyginti (operacijos =, <>, <, >, <=, >=). Lyginama nuo pirmo simbolio, pagal jų kodus.

Pavyzdžiui:

'abc' > 'ab',
'ASILAS' < 'alga'.

Pastaba. Atkreipkite dėmesį į du dažnai panaudojamus programų fragmentus, kai s ir p yra string tipo.

1.
p:= '';
for i := 1 to length(s) do
p:= p + s[i];

2.
p:=’’;
for i := 1 to length(s) do
p:= s[i] + p;

Jei s yra žodis ar sakinys, tai pirmame programos fragmente ir p bus tas pats žodis ar sakinys, o kitu atveju p yra tas žodis ar sakinys užrašytas iš kito galo.

Dirbant su eilutės tipo kintamaisiais gali būti naudojamos veiksmų su eilutėmis funkcijos ir procedūros.

Veiksmų su eilutėmis funkcijos ir procedūros

Darbui su eilutėmis dažniausiai naudojamos šios standartinės funkcijos:

pos(s1, s) - nurodo simbolių eilutės s1 pradžią eilutėje s.
Jei s1 įeina į s, tai funkcija pateikia pirmojo eilutės s1 simbolio eilutėje s numerį. Priešingu atveju pateikiamas 0. Pavyzdžiui, pos('cd', 'abcdef') reikšmė bus lygi 3.

concat(s1, s2, ... , sn) - sujungia eilutes s1, s2, ... , sn į vieną.
Tai sąjungos operacijos '+' analogas.

copy(s, m, n) - pateikia eilutės s n simbolių pradedant pozicija m.
Pavyzdžiui, jeigu string tipo kintamojo tekstas reikšmė yra 'abcdefghij', tai funkcijos copy(tekstas, 3, 2) reikšmė bus 'cd'.

length(s) - randa eilutės s ilgį.
Pavyzdžiui, jei s reikšmė lygi 'Jonas', tai length(s) reikšmė bus lygi 5.

upcase(s) - eilutės s mažąsias raides pakeičia didžiosiomis.
Veikia tik lotyniškos abėcėlės raides, kitų simbolių nekeičia. Pavyzdžiui, jeigu s reikšmė lygi 'Labas rytas!', tai upcase(s) reikšmė bus 'LABAS RYTAS!'.

lowercase(s) - eilutės s didžiąsias raides pakeičia mažosiomis.
Veikia tik lotyniškos abėcėlės raides, kitų simbolių nekeičia. Pavyzdžiui, jeigu s reikšmė lygi 'Labas rytas!', tai lowercase(s) reikšmė bus 'labas rytas!'.

Darbui su eilutėmis dažniausiai naudojamos šios standartinės procedūros:

delete(s, m, n) - šalina dalį eilutės,
čia s - string tipo kintamasis (simbolių eilutė), m - nuo kur šalinti simbolius, n - kiek simbolių šalinti.
Pavyzdžiui, jei vardas kintamojo reikšmė lygi 'Jonas', atlikus procedūrą delete(vardas, 3, 2) - kintamojo vardas reikšmė bus 'Jos'.

insert(s1, s, n) - įterpia į eilutę s kitą eilutę s1 pradedant n-tąja pozicija.
Pavyzdžiui, jei kintamojo pavarde reikšmė lygi 'Petraitis' atlikus procedūrą insert('uk', pavarde, 5), pavarde atrodys taip - 'Petrukaitis'.

str(r, s) - transformuoja sveikąjį arba realųjį skaičių r į tekstą (simbolių eilutę) s.
Kaip ir procedūroje writeln, galima nurodyti, kiek pozicijų skiriama transformuojamam duomeniui, ir jei r - realusis, kiek turi būti ženklų po kablelio. Pavyzdžiui, jeigu i - sveikojo tipo kintamasis, kurio reikšmė lygi 10, o tekstas - string tipo, tai, atlikus procedūrą str(i+11, tekstas), kintamojo tekstas reikšmė bus lygi '21', o atlikus procedūrą str(i+11.5:5:2, tekstas), kintamojo tekstas reikšmė bus lygi '21.50'.

val(s, r, kodas) - transformuoja tekstą (simbolių eilutę) s į sveikojo arba realiojo tipo kintamąjį r. kodas - integer tipo kintamasis, nurodantis pirmojo neteisingo simbolio numerį; jei jo reikšmė, atlikus procedūrą val, yra lygi 0, tai transformuota sėkmingai.
Pavyzdžiui, jeigu string tipo kintamojo tekstas reikšmė yra '123', o i - sveikojo tipo, tai, atlikus procedūrą
val(tekstas, i, kodas), kintamojo i reikšmė bus 123, o kintamojo kodas reikšmė bus 0.
p:= '';
for i := 1 to length(s) do
p:= p + s[i];

situo principu prasuki cikla

pirmi du ciklo elementai pirmas skaicius
ketvirtas, penktas - antras skaicius

7,8 elementai - trecias skaicius


O tuomet jau deliok, tikrink ir isirasinek i masyva

Redagavo bruzgis· 2011 Gru. 4 15:12:00

Parašė IGEN· 2011 Gru. 4 15:12:55
#28

O kaip išskaidyti skaičius pačioje pradžioje?

Iš char pereiti į integer?

Draugas rašė taip, kad reikia daryti funkciją, bet ar tai tiesa?

{Funkcija pakeičianti simbolius į skaičius}
function keitimas(a:char):integer;
    begin
    if a='0' then keitimas:=0;
        if a='1' then keitimas:=1;
            if a='2' then keitimas:=2;
                if a='3' then keitimas:=3;
                    if a='4' then keitimas:=4;
                        if a='5' then keitimas:=5;
                            if a='6' then keitimas:=6;
                                if a='7' then keitimas:=7;
                                    if a='8' then keitimas:=8;
                                        if a='9' then keitimas:=9;
    end;


Sunkiai su tom funcijom/procedurom sekasi, gal kas apie ją smulkiai gali paaiškinti?
Su keliais lengvais pavizdžiais?

Parašė IGEN· 2011 Gru. 10 13:12:19
#29

Atsiprasau, kad be lietuvisku raidziu, kitas kompiuteris.

Uzduotis: http://egzaminai.lt/failai/149_u...VBE_IT.pdf

Scriptas:

program Noname11;
var
duom, rez : text;
kiek, i, j, kiekvid : integer;
L, ats, R : real;
 
 
begin
        L:= 0;
        ats:= 0;
            Assign(duom,'Duom1.txt');
            Assign(rez,'Rez1.txt');
        Reset(duom);
        Reset(rez);
    Readln(duom, kiek);
for i:= 1 to kiek do
    Read(duom, kiekvid);
            begin
for j:= 1 to kiekvid do
            begin
    Read(duom, R);
            L:= L + 1/R;
            end;
            ats:= ats + 1/L;
 
 
            end;
            Write(ats:2:2);
 
 
 
                        Close(duom);
                        Close(rez);
  Readln;
end.


Ir meta klaida!
Nr.: 106 - Bad numeric format.

Kas pades atsilyginsiu.

Parašė IGEN· 2011 Gru. 14 00:12:13
#30

MENKI ČIA PASCAL PROGRAMUOTOJAI B)

Parašė bruzgis· 2011 Gru. 14 15:12:01
#31

tai, kad uz tave niekasneprogramina, tai menki programuotojai? :D

Parašė Žmogus· 2011 Gru. 14 15:12:16
#32

chipass parašė:
tai, kad uz tave niekasneprogramina, tai menki programuotojai? :D


Nu menki, ką padarysi, nesulauksi pagalbos reiškias :////

O šiaip Reset(rez); rašyk rewrite

Redagavo Žmogus· 2011 Gru. 14 15:12:57

Parašė sniuff· 2011 Gru. 14 16:12:57
#33


program pirma_uzd;
    const n = 100;
    var duom, rez : text;
        grandinesDaliu, i : integer;
        bendraVarza : real;
        varzos : array[1..n] of real;
 
procedure Skaitom;
    var j, laidininku, laidinkoVarza : integer;
        varza : real;
begin
    assign(duom, 'Duom1.txt');
    reset(duom);
 
    ReadLn(duom, grandinesDaliu);
    Writeln(grandinesDaliu);
 
    for i := 1 to grandinesDaliu do
        begin
            varza := 0;
            Read(duom, laidininku);
            for j := 1 to laidininku do
                begin
                    Read(duom, laidinkoVarza);
                    varza := varza + (1/laidinkoVarza);
                end;
            Varzos[i] := varza;
            Readln(duom);
        end;
    close(duom);
end;
 
begin
    Skaitom;
    for i := 1 to grandinesDaliu do
            bendraVarza := bendraVarza + (1 / Varzos[i]);
 
    assign(rez, 'Rez1.txt');
    rewrite(rez);
    Write(rez, bendraVarza:0:2);
    close(rez);
end.
 

Parašė efkixas· 2012 Bal. 21 15:04:13
#34

Sveiki man iškilo bėdu su viena programa gal galėtumete padėti?
tekstiniam faile txt. irasyti duomenys
4
Jonas 6 2,30
Petras 7 4,70
Antanas 2 5,20
Zigmas 5 6,70

rezultatu faile rez.txt turi gautis:
Zigmas 33,5
Petras 32,9
Jonas 13,8
Antanas 10,4
Didziausias klientas - Zigmas
Maziausias klientas - Antanas

Reikia parasyti procedura skaitymui, rasymui,rikiavimui
ir funkcijas didziausia ir maziausia skaiciui rasti.

Būčiau dėkingas

Parašė sniuff· 2012 Bal. 21 19:04:21
#35

Mes cia ne tam kad tau programa parasytume, o tam kad padetume.
Kas tau neaaisku?

Parašė IGEN· 2012 Bal. 22 22:04:31
#36


program Noname5;
    type
 
        irasas = record
        vardas : string;
        kiekis : integer;
        suma : real;
        all : real;
        end;
 
        mas = array[1..100] of irasas;
 
        var
        duom, rez : text;
        i, j, kiek : integer;
        M : mas;
        c : real;
 
begin
  // ----------------------------------nuskaitymas------ //
  Assign(duom, 'duom.txt');
  Reset(duom);
  Read(duom, kiek);
  for i:= 1 to kiek do
  begin
  ReadLn(duom, M[i].vardas, M[i].kiekis, M[i].suma);
  end;
  Close(duom);
  // --------------------------------------------------- //
 
  for i:= 1 to kiek do
  begin
  M[i].all:= M[i].kiekis * M[i].suma;
  end;
 
  // -------------------------------------------------- //
 
    for i := 1 to kiek do
          for j := 1 to kiek-i do
             if M[j] > M[j+1] then
                begin
                   c := M[j+1].all;
                   M[j+1].all := M[j].all;
                    M[j].all := c;
                    end;
  // ------------------------------------------------- //
  Assign(rez, 'rez.txt');
  Reset(rez);
  for i:= 1 to kiek do
  begin
  WriteLn(rez,M[i].vardas, ' ',M[i].all);
  end;
  WriteLn(rez,'Didziausias klientas: ', M[1].vardas);
  Write(rez,'Maziausias klientas: ', M[kiek].vardas);
  Close(rez);
 
 
  Readln;
 
end.


Netikrinau labai kruopščiai, bet turėtu veikti ?|

Parašė Juste22· 2012 Geg. 1 08:05:47
#37

Sveiki, nelabai suprantu pascalio vienos užduoties... Gal galite padėti? O ji skamba taip: Parašykite programą,kuri nustatytų ar du apskritimai kertasi, jeigu yra žinomi jų spinduliai r1 ir r2 bei centrų koordinatės (xc1;yc1) ir (xc2; yc2)
pvz r1=5 r2=7 xc1=0, yc1=0, xc2=4 yc=1 Apskritimai kertasi.
r1=1 r2=1 xc1=0, yc1=0, xc2=10 yc=10 Apskritimai nesikerta

Labai aciu~!

Parašė IGEN· 2012 Geg. 3 13:05:42
#38

Įdomus, kai turėsiu laiko išspręsiu :)
Tai bus iki pirmadienio tikrai :)

Parašė Juste22· 2012 Geg. 3 17:05:44
#39

Labai ačiū, bet gal iki rytojaus??? Na, gerai bus ir iki pirmadienio :S

Parašė audrius159· 2012 Geg. 4 21:05:20
#40

Jei dar kam reikia.

program apskritimai;
Var r1, r2, xc1, yc1, xc2, yc2, ats : real;
begin
Write ('Įveskite pirmo apskritimo centro koordinates (xc1 ir yc1) '); ReadLn (xc1, yc1);
Write ('Įveskite pirmo apskritimo spindulį: '); ReadLn(r1);
Write ('Įveskite antro apskritimo centro koordinates (xc2 ir yc2) '); ReadLn (xc2, yc2);
Write ('Įveskite antro apskritimo spindulį: '); ReadLn(r2);
ats := sqrt (Sqr (xc1 - xc2) + Sqr (yc1 - yc2)); {apskaičiuojamas nuo vieno apskritimo centro iki antro apskritimo centro atstumas}
if ats - r1 <= 0
then WriteLn ('kertasi')
else if ats - r2 <= 0
then WriteLn ('kertasi')
else WriteLn ('Nesikerta');
Readln;
end.

Parašė Juste22· 2012 Geg. 5 06:05:16
#41

Oho! Labai labai ačiū :) kaip tu taip moki? Kad ir aš taip mokėčiau... Paskolink arba atiduok savo smegenis :D

Parašė martynasjet· 2012 Geg. 16 19:05:09
#42

Sveiki Gal cia biski neitema. Bet noreciau, kad ivertintumet mano programa. Kuria sukuriau per pora dienu naudojantis graph bibliotekos priemonemis. Ir jei pakeisite laika 22-4 tada rodis zvaigzdes. Pabandykit. Atsisiusti galite is cia. http://fliiby.com/file/1215484/j...aozf6.html
Ai sitoj programoje yra vienas bugas, kurio dar nelabai moku istaisyti. Kadangi norejau padaryti kad nerodytu kompiliatoriaus taigi noredami isjunkti programa spauskite ESC.
P.S greitai sukursiu testa su pascaliu naudojant grafikos priemones ir pasidalinsiu programa su jumis.
O cia pasidalinu kodu. Programa nustato ar trikampis yra status ir ar susidaro trikampis.

program Trikampis;
uses crt;
var a,b,c:real;
/////////////////Procedure trikampio plotas ir perimetras///////////////////////
procedure Perim_plot;
 var
  p,s:real;
 begin
  p:=(a+b+c)/2;
  s:=p*(p-a)*(p-b)*(p-c);
  ClrScr;
  TextColor(green);
  WriteLn('Perimetras:',p:2:2);
  WriteLn('Plotas:',s:2:2);
 end;
/////////////////////////////////////Funkcija status////////////////////////////
function status:real;
 begin
  TextColor(lightred);
  if sqr(a)+sqr(b)=sqr(c) then
  Write('Status')
  else
  Write('Nestatus');
 end;(*status*)
/////////////////////////////////////Funkcija trikampis////////////////////////////
function Trikampis_funkcija:real;
 begin
    TextColor(yellow);
  if a+b>c then
    else
    ClrScr;
    if a+b>c then
    WriteLn('Trikampis')
    else
    ClrScr;
      if a+b>c then
    else
    ClrScr;
    if a+b>c then
    else
    WriteLn('Nera trikampis');
 end;(*Trikampis_funkcija*)
//////////////////////////////Programos isjungimo procedura/////////////////////
 procedure isjungimas;
 begin
  TextColor(red);
  WriteLn('');
  WriteLn('Paspauskite enter ir programa issijungs!');
  TextColor(white);
  Readln;
  Clrscr;
  TextColor(brown);
  window(12,11,40,50);
  WriteLn('Viso gero ;)');
  delay(400);
 end;
///////////////Programa(jeigu paspaudi nuli.Programa issijunks)/////////////////
procedure Jeigu_Nulis;
 begin
   Readln(a);
   If (a<>0) then
   repeat
   Readln(b,c);
   Perim_Plot;
   status;
   Trikampis_funkcija;
   until a<>0
   else
   //halt(0); (*isjungia programa*)
   ClrScr;
   isjungimas;
  end;(*Jeigu nulis*)
////////////////////////////Pagrindine programa/////////////////////////////////
begin
  TextColor(Green);
  WriteLn('Iveskite tris krastines!');
  TextColor(Red);
  WriteLn('Jeigu ivesite nuli(0) programa isijunks paspaudus enter!');
  TextColor(white);
  Jeigu_Nulis;
end.

Cia jau seniai turiu ja taigi ji dar nera "grafiskai" normaliai padaryta, bet manau ne tas svarbiausia yra.
P.S jeigu reikia pagalbos parasykite man , jeigu mokesiu ir bus laiko padesiu.

Parašė Faitas.· 2012 Geg. 16 20:05:00
#43

@martynasjet

Labai jau paprasta programa, tik panaudojai crt biblioteką :) Patiko, kad kodas buvo tvarkingas, parašytas atsakingai... Gerai, kad naudoji lokalius kintamuosius procedūruose, o ne globalius kuri prie a, b, c kintamamųjų. Šaunu, ką toliau galvoji daryti?

Parašė martynasjet· 2012 Geg. 16 21:05:59
#44

Sita programa sukures pries metus tai jinai nera tokia jau ipatinga. Noriu sukurti programa testa. Naudojant graph biblioteka. Ten testas miegas. klausimai rasomi ir zmones turi atsakyti, o paskui paraso kaip zmogus isimiega .Dabar darau zodziu ivedimo procedura. Dar turiu sukures programa "zodzio paieska" zmogus iveda teksta i tektini faila ir ijungia programa paraso zodi koki nori surasti ir paraso kiek tokiu zodziu yra tekstiniame faile. o paziurejai ta programa kur ikeliau kad atsisiusti, ten sukuriau naudojant graph biblioteka.

Parašė martynasjet· 2012 Geg. 17 13:05:27
#45

Is neturejimo ka veikti ikeliu koda . Noredami naudoti grafikos priemones iveskite sita koda
Ir pagrindineje programoje parasykite.

Program Vardas;
uses graph,
begin
ekranas;
end.


unit Grafika;
 
interface
uses Grafika,Graph;
procedure ekranas;
 
implementation
Procedure Ekranas;
var gd,gm : integer;
begin
 (*gd := D8Bit; (8Bitu kodas*)
 gd := Detect;//Full window(pilnas langas)=detect; m640x480=Lango dydis jei  m640x480 tada reikia gd pakeisti i gm
 Initgraph(gd,gm,' ');
 {Isitikinkite, kad visada paziurite Graphresult!}
if GraphResult<>grOK then begin
 //WriteLn('Programa negalima naudotis atsiprasome(Can't use this program sorry');
halt(1);
 end;
 {Mes dabar esame pilname lange(We now in full screen}
end;
begin
end.

Redagavo martynasjet· 2012 Geg. 17 13:05:01

Parašė aphora· 2013 Sau. 14 21:01:04
#46

Studentų grupės egzaminų sesijos vidurkiai yra surašyti masyve A(n). Apskaičiuoti, kiek studentų ir kurie jų mokosi geriau, negu grupės vidurkis.

Reikia išspręst su tekstiniais failais bei funkcijomis ar procedūromis.

Būčiau beprotiškai dėkinga jei padėtumėt.. :(

Parašė SniperVI-six· 2013 Kov. 11 00:03:31
#47

aphora parašė:
Studentų grupės egzaminų sesijos vidurkiai yra surašyti masyve A(n). Apskaičiuoti, kiek studentų ir kurie jų mokosi geriau, negu grupės vidurkis.

Reikia išspręst su tekstiniais failais bei funkcijomis ar procedūromis.

Būčiau beprotiškai dėkinga jei padėtumėt.. :(







program studentai;
const max = 100;
var
n, y, c, sum : integer;
d : real;
txt : text;
A:array[1..max] of integer;
vardas:array[1..max] of string[10];

procedure ivestis;
begin
assign(txt, 'duomenys.txt');
reset(txt);
readln(txt, n);
for y := 1 to n do
begin
read(txt, vardas[y]);
readln(txt, A[y]);
end;
close(txt);
end;
procedure skaiciavimas;
begin
c := A[1];
for y := 2 to n do
begin
c := c + A[y];
d := c / n;
end;
end;
procedure isvestis;
begin
assign(txt, 'rezultatai.txt');
rewrite(txt);
for y := 1 to n do
begin
if d < A[y] then
begin
write(txt, vardas[y]);
writeln(txt, A[y]:2);
sum := sum + 1;
end;
end;
writeln(txt);
writeln(txt, sum , ' mokyniai mokosi geriau negu grupes vidurkis');
writeln(txt);
writeln(txt, 'grupes vidurkis ', d:0:2);
readln;
close(txt);
end;
begin
ivestis;
skaiciavimas;
isvestis;

end.

Parašė Arvydas.· 2013 Geg. 22 17:05:24
#48

Kas gerai mokat dirbti su PASCAL parašykit PM reikėtų truputėlio pagalbos.