Pereiti prie turinio

Informatikos VBE 2013


Rekomenduojami pranešimai

nueik i lenteles properties , table skilti pirmas pasirinkimas.

 

Dėkui :)

 

O gal žinai kur nustatyti šitą reikalą - Teksto įtraukos nuo langelių kraštų: viršuje ir apačioje po 0,2 cm, kairėje ir dešinėje po 0,3 cm. Čia kažkur lentelės nustatymuose reikia žiūrėti ar papratai prie paragraph nustatymų?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dėkui :)

 

O gal žinai kur nustatyti šitą reikalą - Teksto įtraukos nuo langelių kraštų: viršuje ir apačioje po 0,2 cm, kairėje ir dešinėje po 0,3 cm. Čia kažkur lentelės nustatymuose reikia žiūrėti ar papratai prie paragraph nustatymų?

tuose pačiuose nustatymuose paspausk properties.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Debuggeris tiktais klaidu taisymui, jeigu vien pasizejes i errora nezinai kokia ji, eini sau po viena eilute ir matai viska, kur kokia reiksme neateina, kur luzta.

Ne, kadangi galima pažiūrėti kokias reikšmes tuo metu saugo kintamieji, tai debuggeris tinka ir loginių klaidų ieškojimui.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

program varzybos;
const CDuo='U2.txt';
     CRez='U2rez.txt';
     CMax=100;
type  vardai=array[1..CMax] of string[20];
     masyvas=array[1..CMax]of integer;
    begikas = record
    vardas : vardai;
    laikasmin,laikass,visaslaik :masyvas;
    grupe : integer;
     end;
     begikai=array[1..CMax] of begikas;
var N :integer; b:begikai;

procedure skaityk;
var i,j :integer; F:text;
begin
 assign(F,CDuo);
 reset(F);
 readln(F,N);
 for i := 1 to N do
  begin
  readln(F,b[i].grupe);
   for j:=1 to b[i].grupe do
    begin
     readln(F,b[i].vardas[j],b[i].laikasmin[j],b[i].laikass[j]);
     b[i].visaslaik[j]:=b[i].laikasmin[j]*60+b[i].laikass[j];
    end;
  end;
 close(F);
end;


begin
 skaityk;
 Readln;

end.

 

gal zinot ko cia man neleidzia nuskaityt tokio failo ?

3
4
Katinas Batuotas   4 25
Katinas Ratuotas   3 59
Katinas Rainas     4 15
Katinas Jaunas     6 20
2
Katinas Rudas      6 45
Katinas Juodas     3 55
5
Katinas Baltas     3 58
Katinas Gauruotas  4 2
Katinas Plikas     4 5
Katinas Ilgas      4 4
Katinas Trumpas    4 6

Nuoroda į pranešimą
Dalintis kituose puslapiuose

program varzybos;
const CDuo='U2.txt';
     CRez='U2rez.txt';
     CMax=100;
type  vardai=array[1..CMax] of string[20];
     masyvas=array[1..CMax]of integer;
    begikas = record
    vardas : vardai;
    laikasmin,laikass,visaslaik :masyvas;
    grupe : integer;
     end;
     begikai=array[1..CMax] of begikas;
var N :integer; b:begikai;

procedure skaityk;
var i,j :integer; F:text;
begin
 assign(F,CDuo);
 reset(F);
 readln(F,N);
 for i := 1 to N do
  begin
  readln(F,b[i].grupe);
   for j:=1 to b[i].grupe do
    begin
     readln(F,b[i].vardas[j],b[i].laikasmin[j],b[i].laikass[j]);
     b[i].visaslaik[j]:=b[i].laikasmin[j]*60+b[i].laikass[j];
    end;
  end;
 close(F);
end;


begin
 skaityk;
 Readln;

end.

 

gal zinot ko cia man neleidzia nuskaityt tokio failo ?

3
4
Katinas Batuotas   4 25
Katinas Ratuotas   3 59
Katinas Rainas     4 15
Katinas Jaunas     6 20
2
Katinas Rudas      6 45
Katinas Juodas     3 55
5
Katinas Baltas     3 58
Katinas Gauruotas  4 2
Katinas Plikas     4 5
Katinas Ilgas      4 4
Katinas Trumpas    4 6

 

Duomenu faile vardams skyrei tik 19 poziciju, nors tavo vardo tipas string[20].

Redagavo Sqx
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki,

Duota (1 ≤ n ≤ 100). Gerai sakykim sukuriu 100 vietų masyvą. Bet ar per tuos testus gali mėginti kišti n > 100 Ar reikia atsižvelgti į tai?. Tada programa pastriktų. Ar aš čia per giliai mastau :|.

 

PS Jei kam reikia bandomojo egzamino užduotis turiu padaręs su c++

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Rašiau programėlę, kurios dažnai prireikia per VBE, tačiau kažkur klaida, o pačiam galvos skausmas jos ieškot.

Bandau suskaičiuot kiek kuris skaičius masyve kartojasi.

program Bevardė13;
var n, i, j,a, max : integer;
   k, m : array[1..100] of integer;
begin
 readln(n);
 for i:=1 to n do
   read(m[i]);
 max:=m[1];
  for i:=2 to n do
    if m[i] > max then max:=m[i];
 for i:=1 to max do                                          // nusistačiau max, kad žinočiau kuris skaicius masyve paskutinis lygus ne 0
  k[i]:=0;
 for i:=1 to n do
   for j:=1 to n do
     if (m[i] = m[j]) and (i <> j) then begin
                                          a:=m[i];
                                          k[a]:=k[a]+1;    //skaičius a pasikartoja
                                          m[j]:=0;
                                        end;
 for i:=1 to n do
   Write(m[i],' ');
  for i:=1 to max do
   Writeln('skaicius ', i,' pasikartoja ',k[i],' kartu');
  Readln;
  Readln;

end.

 

Išmeta klaidą 'peržengti rėžiai'

Redagavo thetenken
Nuoroda į pranešimą
Dalintis kituose puslapiuose

for i:=1 to max do

Čia turbūt peržengi rėžius, kodėl iki max, gal ten skaičius 9999?

Jei nori iki max daryt tada :

if m[i] > max then max:=i;

max:= i, o ne masyvo "i" elementui

 

EDIT:

  for i:=1 to n do
   read(m[i]);

Kiek suprantu čia visi skaičiai kartosis 1 kartą :D

Negaliu pažiūrėt, kur lendi už rėžių, nekompiliuoja man laptope paskalio :huh:

Redagavo Peupeu
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pati programa veikia, tik spausdina blogus rezultatus: įvedus 1 2 2 spausdina:

1 2 0 skaicius 1 pasikartoja 0 kartu                                            
skaicius 2 pasikartoja 1 kartu 

 

EDIT: Tau klaidą "Peržengti rėžiai" gali mesti tada kai max įgyja reikšmę pvz 102, o tavo masyvas yra tik 100 vietų.

 

Aš tai daryčiau tokią programą:

program Bevardë1;
const MAX = 100;
var i, j,n :integer;
   B :array [1..MAX] of integer;
begin
 ReadLn(n);
 for i:= 1 to n do
  begin
   ReadLn(j);
   B[j]+= 1;
  end;
 for i := 1 to MAX do
  if B[i] <> 0 then WriteLn('skaicius ',i,' pasikartoja ',B[i],' kartu.');
end.

 

Tik MAX konstantą reikia apsibrėžti kokia bus didžiausia reikšmė, ten gali rašyti didžiausią integer tipo reikšmę apie 30k kiek pamenu ji yra :)

Redagavo Cibulinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

// Šokiai c++
#include<iostream>
#include<iomanip>
#include<fstream>
using namespace std;
//-----------------------------------------
const char CDfv[]="Duomenys.txt";
const char CRfv[]="Rezultatai.txt";
const int CMax=100;
const int CPav=20;
//-----------------------------------------
struct Sokejai
{string pav;
 int taskai;
};
//-----------------------------------------
void skaityti(Sokejai B[],int & n);
int suma(int T[],int k);
void rikiuoti(Sokejai B[],int n);
void spausdinti(Sokejai B[],int n);
//-----------------------------------------
int main()
 {Sokejai A[CMax];
  int n;
  skaityti(A,n);
  rikiuoti(A,n);
  spausdinti(A,n);
  return 0;
 }
//-----------------------------------------
void skaityti(Sokejai B[],int & n)
{ifstream fd(CDfv);
char eil[CPav+1];
int k;
int T[CMax];
int A[CMax];
int a,t;
fd>>n>>k;
fd.ignore(80,'\n');
for(int i=0;i<n;i++)
 {fd.get(eil,CPav);
  B[i].pav=eil;
  fd.ignore(80,'\n');
  for(int j=0;j<k;j++)
   {fd>>T[j];}
  fd.ignore(80,'\n');
  for(int j=0;j<k;j++)
   {fd>>A[j];}
   a=suma(A,k);
   t=suma(T,k);
   B[i].taskai=a+t;
   fd.ignore(80,'\n');
 }
fd.close();
}
//-----------------------------------------
int suma(int T[],int k)
{int s=0;int keit;
for(int i=0;i<k-1;i++)
 {for(int j=i+1;j<k;j++)
   {if(T[j]<T[i]){keit=T[i];T[i]=T[j];T[j]=keit;}}
 }
for(int i=1;i<k-1;i++)
 {s+=T[i];

 }
 return s;
}
//-----------------------------------------
void rikiuoti(Sokejai B[],int n)
{Sokejai keit;
for(int i=0;i<n-1;i++)
 {for(int j=i+1;j<n;j++)
   {if(B[j].taskai>B[i].taskai){keit=B[i];B[i]=B[j];B[j]=keit;}}}
}
//-----------------------------------------
void spausdinti(Sokejai B[],int n)
{ofstream fr(CRfv);
for(int i=0;i<n;i++)
 {fr<<left<<setw(CPav)<<B[i].pav<<" "<<B[i].taskai<<endl;}
fr.close();
}

//Pirstines
#include<iostream>
#include<iomanip>
#include<fstream>
using namespace std;
//-----------------------------------------
const char CDfv[]="Duomenys.txt";
const char CRfv[]="Rezultatai.txt";
const int CMax=100;
const int Ckaire=1;
const int Cdesine=2;
const int CMot=4;
const int CVyr=3;
//-----------------------------------------
//VD-vyriðkos deðinë VK- kairë, MD-moteriðkos deðinë MK-kairë
void skaityti(int VD[],int VK[],int MD[],int MK[],int & n,int & vk,int & vd,int & mk,int & md);
void paieska(int VD[],int VK[],int  &pv,int  vk,int  vd);
int likutis(int vk,int vd,int pv);
void spausdinti(int pv,int pm,int  lv,int  lm);
//-----------------------------------------
int main()
 {int VD[CMax],VK[CMax],MK[CMax],MD[CMax],n,vk,vd,mk,md,pv,pm,lv,lm;
  skaityti(VD,VK,MD,MK,n,vk,vd,mk,md);
  // pv- vyriðkos poros, pm-moteriðkos poros
  //lv-likutis vyriðkø lm - likutis moteriðkø
  paieska(VD,VK,pv,vk,vd);
  paieska(MD,MK,pm,mk,md);
  lv=likutis(vk,vd,pv);
  lm=likutis(mk,md,pm);
  spausdinti(pv,pm,lv,lm);
  return 0;
 }
//-----------------------------------------
void skaityti(int VD[],int VK[],int MD[],int MK[],int & n,int & vk,int & vd,int & mk,int & md)
{ifstream fd(CDfv);
int l,r,d;
vk=0,vd=0,mk=0,md=0;
fd>>n;
for(int i=0;i<n;i++)
 {fd>>l>>r>>d;
  if((l==CMot)&&(r==Cdesine)){MD[md]=d;md++;}
  if((l==CMot)&&(r==Ckaire)){MK[mk]=d;mk++;}
  if((l==CVyr)&&(r==Cdesine)){VD[vd]=d;vd++;}
  if((l==CVyr)&&(r==Ckaire)){VK[vk]=d;vk++;}
 }
 fd.close();
}
//-----------------------------------------
void paieska(int VD[],int VK[],int& pv,int  vk,int  vd)
{pv=0;
 for(int i=0;i<vk;i++)
  {for(int j=0;j<vd;j++)
   {if(VK[i]==VD[j]){pv++;
     for(int m=j;m<vd;m++)
      {VD[m]=VD[m+1];
       vd--;}
       }
   }
  }
}
//-----------------------------------------
int likutis(int vk,int vd,int pv)
{int l=0;
l=(vk-pv)+(vd-pv);
return l;
}
//-----------------------------------------
void spausdinti(int pv,int pm,int  lv,int  lm)
{ofstream fr(CRfv);
fr<<pm<<endl;
fr<<pv<<endl;
fr<<lm<<endl;
fr<<lv<<endl;
fr.close();
}

Redagavo makard
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ne, kadangi galima pažiūrėti kokias reikšmes tuo metu saugo kintamieji, tai debuggeris tinka ir loginių klaidų ieškojimui.

Zodis "tiktais" pas mane reiskia, kad geriausia priemone klaidoms taisyti ir rekomenduoju visiems :) Dviprasmiskai taip parasiau siek tiek.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

gal kas esat pasidarę 2009 metų egzamino programavimo užduotį varžybos? įmeskit savo kodą, nes mano kažkaip jau labai komplikuotas gavosi ir kažin ar tokį parašyčiau per 40min~

beje prisegu saviškį:

program varzybos;
const CDuo='U2.txt';
     CRez='U2rez.txt';
     CMax=100;
type  vardai=array[1..100] of string[20];
     masyvas=array[1..100]of integer;
     begikas = record
     vardas : vardai;
     laikasmin,laikass,visaslaik :masyvas;
     grupe : integer;
     end;
     begikai=array[1..CMax] of begikas;

var N,k :integer;
   b:begikai;
   g:begikai;
   laikas :masyvas;
   vardas:vardai;

procedure skaityk;
var i,j :integer; F:text;
begin
 assign(F,CDuo);
 reset(F);
 readln(F,N);
 for i := 1 to N do
  begin
  readln(F,b[i].grupe);
   for j:=1 to b[i].grupe do
    begin
     readln(F,b[i].vardas[j],b[i].laikasmin[j],b[i].laikass[j]);
     b[i].visaslaik[j]:=b[i].laikasmin[j]*60+b[i].laikass[j];
    end;
  end;
 close(F);
end;





function AtrinkIrDuoks(kiek:integer;mas:masyvas) :integer;
var i,index,min:integer;
begin
min:=10000;
  for i:=1 to kiek do
   begin
     if mas[i]<min then
       begin
        min:= mas[i];
        index:=i;
       end;
   end;
  AtrinkIrDuoks:=index;
end;



procedure NaujasMasyvas;
var i,j,a :integer;
begin
k:=0;
 for i := 1 to N do
  begin
   for j:=1 to b[i].grupe div 2 do
    begin
     a:=AtrinkIrDuoks(b[i].grupe,b[i].visaslaik);
     g[i].vardas[j]:=b[i].vardas[a];
     g[i].visaslaik[j]:=b[i].visaslaik[a];
     b[i].visaslaik[a]:=10000;
    end;
  end;

 for i := 1 to N do
  begin
   for j:=1 to b[i].grupe do
    begin
       if g[i].visaslaik[j]>0 then
        begin
         k:=k+1;
          laikas[k]:= g[i].visaslaik[j];
          vardas[k]:= g[i].vardas[j];
        end;
    end;
  end;

end;

procedure MasyvoRikiavimas;
var i,j :integer; elem1:integer; elem2:string[20];
begin
  for i:=1 to k do
   begin
     for j:=1 to k do
      begin
        if laikas[i]<laikas[j] then
         begin
           elem1:= laikas[j]; elem2:=vardas[j];
           laikas[j]:=laikas[i]; vardas[j]:=vardas[i];
           laikas[i]:=elem1;     vardas[i]:=elem2;
         end;
      end;
   end;
end;

procedure rasyk;
var i,j:integer; F:text;
begin
  assign(F,CRez);
  rewrite(F);
  for i := 1 to k do
  writeln(F,vardas[i],laikas[i] div 60,' ',laikas[i] mod 60);
  close(F);
end;

begin
 skaityk;
 NaujasMasyvas;
 MasyvoRikiavimas;
 rasyk;
 Readln;

end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

gal kas esat pasidarę 2009 metų egzamino programavimo užduotį varžybos? įmeskit savo kodą, nes mano kažkaip jau labai komplikuotas gavosi ir kažin ar tokį parašyčiau per 40min~

beje prisegu saviškį:

 

Kažkada buvau prisėdęs prie šito, bet tingėjau daryt, tikrai daug laiko sugaiščiau :lol:

O šeip, kas kur stosit, tiek kur laiko informatiką? B-)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

gal kas esat pasidarę 2009 metų egzamino programavimo užduotį varžybos? įmeskit savo kodą, nes mano kažkaip jau labai komplikuotas gavosi ir kažin ar tokį parašyčiau per 40min~

 

program varzybos;
type tbegikas=record
               Vardas:string[20];
               minutes:integer;
               sekundes:integer;
               end;
   mas=array[1..50] of tbegikas;

var begikas,A:mas;
   nr:integer;

procedure rikiavimas(var m:mas;n:integer);
var i,j:integer;
   laik:tbegikas;
begin
for i:=1 to n do
  for j:=1 to n-i do
    if m[j].minutes*60+m[j].sekundes>m[j+1].minutes*60+m[j+1].sekundes then
	begin
           laik:=m[j];
           m[j]:=m[j+1];
           m[j+1]:=laik;
	end;
end;

procedure skaitymas;
var i,j,z,sk,k:integer;
   d:text;
begin
   nr:=0;
   assign(d,'U2.txt');reset(d);
   readln(d,k);
   for i:=1 to k do
   begin
       readln(d,sk);
       for j:=1 to sk do
       readln(d,begikas[j].vardas,begikas[j].minutes,begikas[j].sekundes);

       rikiavimas(begikas,sk);

       for z:=1 to sk div 2 do
       begin
       nr:=nr+1;
       A[nr]:=begikas[z];
       end;
   end;
   close(d);
end;

procedure rasymas;
var r:text;
   i:integer;
begin
   assign(r,'U2rez.txt');rewrite(r);
   rikiavimas(A,nr);
   for i:=1 to nr do with A[i] do
   writeln(r,vardas,' ',minutes,' ',sekundes);
   close(r);
end;

begin
   skaitymas;
   rasymas;
end.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

kaip veikia tas do with ?

 

 

Do with kreipiasi į įrašo tipo kintamąjį taip, kad vėliau užtenka pavartoti tik jo vienos skilties pavadinimą (šiuo atveju po do with A užtenka rašyti Vardas, minutes ar sekundes, užuot rašius A.Vardas, A.minutes, A.sekundes).

 

Do with pagreitina rašymą, kai keliskart kreipiamasi į įrašo tipo kintamąjį, bet egzamine galima drąsiai apsieiti ir be jo.

Redagavo JohnSmith
Nuoroda į pranešimą
Dalintis kituose puslapiuose
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ą...