Pereiti prie turinio

it vbe 2011 1 uzduotis "Pirstine"


Rekomenduojami pranešimai

program Pirstines;

Const   Cduom = 'U1.txt';
       Crez  = 'U1rez.txt';
       Cmax  = 50;

Type    Mas   = Array[1..Cmax] of integer;

Var     B, F  : text;
       motk,
       motd,
       vyrk,
       vyrd  : Mas;
       n     : integer;
{-----------------------------Funkcijos ir proceduros--------------------------}
Procedure Skaiciuoti;
Var i, vyr, mot : integer;
Begin
vyr := 0;
mot := 0;
Assign(F, crez); ReWrite(F);
   For i := 1 to Cmax do
       If (( vyrk[i] > 0 ) and ( vyrd[i] > 0 )) or
          (( motk[i] > 0 ) and ( motd[i] > 0 ))
       Then
       Begin
           If vyrk[i] > vyrd[i] then vyr := vyrd[i]
                                else vyr := vyrk[i];
           If motk[i] > motd[i] then mot := motd[i]
                                else mot := motk[i];
           WriteLn(F, i,' ',mot,' ',vyr);
       End;
Close(F);
End;


Procedure Duomenys;
Var i, lytis, dydis, ranka : integer;
Begin
Assign(B, Cduom); Reset(B);
ReadLn(B, n);
   For i := 1 to n do
   Begin
       ReadLn(B, lytis, ranka, dydis);
           if lytis = 3 then
               if ranka = 1 then vyrk[dydis] := vyrk[dydis] + 1
                            else vyrd[dydis] := vyrd[dydis] + 1
                        else
               if ranka = 1 then motk[dydis] := motk[dydis] + 1
                            else motd[dydis] := motd[dydis] + 1;
   End;
Close(B);
End;
{-------------------------------Pagrindine programa----------------------------}
begin
 Duomenys;
 Skaiciuoti;
end.

 

Štai mano padarytos pirštinės gal kam prireiks

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kad nekurti naujos temos tai norėčiau pasiklausti ar galimas toks sprendimas 10m It vbe užduotis šachmatai?

program Noname19;
type mas = array[1..100] of integer;
var  pestininkai,bokstai,zirgai,rikiai,karalius,valdove:mas;
    sum:mas;
    n,i:integer;
    Rf:text;
procedure skaitome;
var Df:text;
   n,i:integer;
begin
 Assign(Df, 'duom.txt');
 Reset(Df);
 ReadLn(Df, n);
 begin
 for i:=1 to n do
   begin
     ReadLn(Df, pestininkai[i],bokstai[i],zirgai[i],rikiai[i],karalius[i],valdove[i]);
     sum[1]:=sum[1]+pestininkai[i] mod 8;
     sum[2]:=sum[2]+bokstai[i] div 2;
     sum[3]:=sum[3]+zirgai[i] div 2;
     sum[4]:=sum[4]+rikiai[i] div 2;
     sum[5]:=sum[5]+valdove[i] div 1;
     sum[6]:=sum[6]+karalius[i] div 1;
   end;
 Close(Df)
 end;
end;
function poruSk:integer;
var i,min : Integer;
begin
 min:=sum[1];
 for i:=1 to 4 do
   begin
   if sum[i] < min then
   min:=sum[i]; poruSk:=min;
   end;
end;
begin
skaitome;
Assign(Rf, 'rez.txt');
Rewrite(Rf);
WriteLn(Rf, poruSk,'test');
Close(Rf)
end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kad nekurti naujos temos tai norėčiau pasiklausti ar galimas toks sprendimas 10m It vbe užduotis šachmatai?

program Noname19;
type mas = array[1..100] of integer;
var  pestininkai,bokstai,zirgai,rikiai,karalius,valdove:mas;
    sum:mas;
    n,i:integer;
    Rf:text;
procedure skaitome;
var Df:text;
   n,i:integer;
begin
 Assign(Df, 'duom.txt');
 Reset(Df);
 ReadLn(Df, n);
 begin
 for i:=1 to n do
   begin
     ReadLn(Df, pestininkai[i],bokstai[i],zirgai[i],rikiai[i],karalius[i],valdove[i]);
     sum[1]:=sum[1]+pestininkai[i] mod 8;
     sum[2]:=sum[2]+bokstai[i] div 2;
     sum[3]:=sum[3]+zirgai[i] div 2;
     sum[4]:=sum[4]+rikiai[i] div 2;
     sum[5]:=sum[5]+valdove[i] div 1;
     sum[6]:=sum[6]+karalius[i] div 1;
   end;
 Close(Df)
 end;
end;
function poruSk:integer;
var i,min : Integer;
begin
 min:=sum[1];
 for i:=1 to 4 do
   begin
   if sum[i] < min then
   min:=sum[i]; poruSk:=min;
   end;
end;
begin
skaitome;
Assign(Rf, 'rez.txt');
Rewrite(Rf);
WriteLn(Rf, poruSk,'test');
Close(Rf)
end.

 

O sąlygos įmest nenori?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galima sąlyga matau atitinka tik kodą galima tvarkingiau parašyti šiek tiek.

 

program sachmatai;
const m=6;
type	mas=array[1..100] of integer;
procedure Duomenys(var F:mas);
var F1:text;
i,n,p,b,z,r,k,v:integer;
begin
assign(F1,'duom.txt');
reset(F1);
readln(F1,n);
for i:=1 to n do
begin
readln(F1,p,b,z,r,k,v);
F[1]:=F[1]+p;
F[2]:=F[2]+b;
F[3]:=F[3]+z;
F[4]:=F[4]+r;
F[5]:=F[5]+k;
F[6]:=F[6]+v;
end;
close(F1);
end;
function Skaiciavimas(F:mas):integer;
var i,min:integer;
begin
min:=100;
F[1]:=F[1] div 8;
F[2]:=F[2] div 2;
F[3]:=F[3] div 2;
F[4]:=F[4] div 2;
F[5]:=F[5] div 1;
F[6]:=F[6] div 1;
for i:=1 to m do
if F[i] < min then min:=F[i];
Skaiciavimas:=min;
end;
procedure Rezultatas(F:mas);
var F2:text;
begin
assign(F2,'rez.txt');
rewrite(F2);
writeln(F2,Skaiciavimas(F));
close(F2);
end;
var F:mas;
begin
Duomenys(F);
Rezultatas(F);
end.

 

Patarimas: Sliekas Nenaudok tiek globalų kintamųjų už jų bereikalingą naudojimą atimami taškai.

Redagavo wigas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

 

Patarimas: Sliekas Nenaudok tiek globalų kintamųjų už jų bereikalingą naudojimą atimami taškai.

 

ataisiau kodo kultūra pagal save http://pastebin.com/4ZMq6ZQB

 

Mano manumu turėtų būti bent:

  • prieš ir po procedūrų/funkcijų enter padėti
  • Po kintamųjų spustelėti enter ir jį aprašyti kitoj eilutėj, kad aiškiai matytųsi, kur jie yra.
  • Normali tobuliacija, jei kodas eina po begin, visas kodas rašosi kiekvienoj eilutėj iš naujo tab'o

 

bet šiaip manau apie tai galima šnekėti ir šnekėti, nukrypom į offtopiką

Redagavo L33T
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pataisiau kodo kultūra pagal save http://pastebin.com/SAkxrxAK

 

Mano manumu turėtų būti bent:

  • prieš ir po procedūrų/funkcijų enter padėti
  • Po kintamųjų spustelėti enter ir jį aprašyti kitoj eilutėj, kad aiškiai matytųsi, kur jie yra.
  • Normali tobuliacija, jei kodas eina po begin, visas kodas rašosi kiekvienoj eilutėj iš naujo tab'o

 

bet šiaip manau apie tai galima šnekėti ir šnekėti, nukrypom į offtopiką

Čia šiek tiek code tag'as iškraipo tab'o pozicija, o su enter taip reikėjo padėti, bet kodas dabar buvo gana greitai rašytas ir be komentarų.
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Čia šiek tiek code tag'as iškraipo tab'o pozicija, o su enter taip reikėjo padėti, bet kodas dabar buvo gana greitai rašytas ir be komentarų.

Aš nepeikiu, bet visada, kai rašai, rašyk gerai, jei net ir ne tu savo kodą skaitysi, pagalvok apie kitus. Man net paprastai programinti neitų rašyti nekultūringai, nes nepatogu/sunku skaityti kodą. Na gal su tokia trumpa programa viskas aišku, pasimesti tarp funkcijų sunkoka, bet kai visko nematai vienam lange ir reikia scrollinti

Redagavo L33T
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Negalima globalių naudot VBE informatikos? :o

Galima naudoti, tik kur juos reikia, o ne kurti juos viršuje ir naudoti visur procedūrose,funkcijose ir programoje. Reikėti lokalius naudoti procedūroje ir funkcijoje. Nes yra vertinime tokia sąlyga
• nenaudojami pagalbiniai globalieji kintamieji
tai kaip ir suprantu jų reikėtu naudoti ne per daug ir atitinkamai jei nori idealiai viską padaryt :) už tai vienas taškas skiriamas.Čia tik mano toks pastebėjimas.
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Negalima globalių naudot VBE informatikos? :o

 

 

'11 laikiau, tai reikalavo, kad funkcijoms perduotum kintamuosius, procedūrom duotum reference'us (kad „grąžint“ į argumentą), bet jie gali būti globalūs (t.y., pasiekiami visos programos scope'e). Pascalis gana kvaila kalba, todėl be globalių išsiversti neįmanoma. :-)

 

Siūlyčiau nedaryti tokių dalykų:

program aaa;
var
  a, b, c, d : integer;
  e, f, g, h : someOtherType;
begin
  f(a, b, c, d);
end.

 

t.y., kintamuosius vadinkite prasmingai.

 

 

Beje, '11 ir šiais metais galima rašyti C arba C++ (C++ kompaileris valgo C kodą, tik prisideda „class“ ir kiti „rezervuoti“ žodžiai, bet problemų nesukelia), tai čia globalūs kintamieji yra EVIL. :-)

 

 

 

Sėkmės.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš galvoju su C++ laikyt ar pascaliu, nes pascaliu tas rašymas kiek laiko užtrunka tų begin end, kai ant c++ { } naudoji. Tik va dėl įrašo (2 užduoties) įdomu, aš moku su C++ nuskaityti tiktai į string, o ne kaip pascalį string nuskaitymo pirmas 20 ar 10 simboliu (nesvarbu yra tarpas ar ne), o c++ skaito iki tarpo.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš galvoju su C++ laikyt ar pascaliu, nes pascaliu tas rašymas kiek laiko užtrunka tų begin end, kai ant c++ { } naudoji. Tik va dėl įrašo (2 užduoties) įdomu, aš moku su C++ nuskaityti tiktai į string, o ne kaip pascalį string nuskaitymo pirmas 20 ar 10 simboliu (nesvarbu yra tarpas ar ne), o c++ skaito iki tarpo.

 

 

Tai naudok tu tą string klasę su kokiu getline(). Arba gali char[] kintamąjį naudoti, tik nepamiršk, kad jo dydis turi būti vienu didesnis, kad tilptų „\0“ simbolis. :-)

 

cpp reference pasižiūrėk cin ir istream metodus. :-)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Getline netinka, nes visą eilutę paims, o char paima vieno teksto, nes jei vardas pavardė, išvis nežinia ką paimą. Pvz.

Vardas pavardė 25

Kažkaip nesamonė gausis jei su char[] imsi

 

Tokiuose uždaviniuose paprastai su komanda struct reikia susikurt savo sugalvotą duomenų tipą (egzamine vadinasi įrašo tipas). Tuomet į jį jau gali nuskaityti duomenis.Tai veikia maždaug taip:

#include <iostream>
#include <fstream>
using namespace std;

struct dalyvis{
   char vardas[20];
   char pavarde[20];
   int skaicius;
   };

int main(){
   ifstream duom ("U.txt");
   dalyvis kas;
   duom >> kas.vardas >> kas.pavarde >> kas.skaicius;
   duom.close();
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gal kas žino, kaip pernai metų pirštinių užduoty su c++ sukurt porų skaičiavimo funkciją?

Mano variantas toks:

 

struct parametrai{
   int lytis;
   int ranka;
   int dydis;
   };
int kiek_poru(parametrai sar1[], parametrai sar2[],int ilgis1, int ilgis2){
   int kiek_vienodu=0;
   for (int i=0; i<ilgis1; i++){
       for (int j=0; j<ilgis2; j++){
           if (sar1[i].dydis==sar2[j].dydis)
               kiek_vienodu+=1;
           }
   }
   return kiek_vienodu;
}

 

Čia sar1 ir sar2 yra tarkim vyriškos kairės rankos pirštinės ir vyriškos dešinės rankos pirštinės. Bet tai neteisingas algoritmas, nes kai kur pvz. iš trijų vienodų dešinių ir vienos kairės pirštinės programa gali sudaryt tris poras, kai realiai yra tik viena. Tai kaip normaliai pakeist šitą dalį? Trinti elementų su struktūromis neleidžia ir tai viską sugadina.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki. Kol kas nemačiau dar pilnų pernykščių egzaminų kodų c++ kalba, tai įkelsiu savo. Manau kai kuriems pravers ;) Nors jie truputį savamoksliškai parašyti. Nemanau, kad vektorių tipas įeina į mokyklos programą, bet juos išmokti verta.

2011egz_praktika.rar

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 4 savaičių...

Sveiki. Kol kas nemačiau dar pilnų pernykščių egzaminų kodų c++ kalba, tai įkelsiu savo. Manau kai kuriems pravers ;) Nors jie truputį savamoksliškai parašyti. Nemanau, kad vektorių tipas įeina į mokyklos programą, bet juos išmokti verta.

Atsiprasau uz senienos prikelima, bet tokia pastabele del sprendimu, pirmoje dalyje yra aiskus nurodymai naudoti paprastus masyvus, o pas tave kiek permeciau programa nei vieno nera, apart strukturos (ja naudojant sita programa parasyt yra n kartu lengviau, negu naudojant paprastus masyvus (bet ir su paprastais nesunku :D))

EDIT: vectorius kaip masyvus galima uzskaiciuot, bet abejoju ar dedes profesoriai tikrindami tai uzskaitytu.

Redagavo hafnis1324
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ą...