- Fotók, videók mobillal
- iPhone topik
- Android alkalmazások - szoftver kibeszélő topik
- Okosóra és okoskiegészítő topik
- Samsung Galaxy S25 - végre van kicsi!
- Azonnali navigációs kérdések órája
- Google Pixel 10 Pro XL – tíz kicsi Pixel
- A lengyeleknél már polcon volt a Motorola Edge 70
- Honor 200 Pro - mobilportré
- Mobil flották
Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
Új hozzászólás Aktív témák
-
nickwearby
tag
Ok, akkor nem csak linkben.
Ez az:
------------------------------------------------
program record_tipusok;type szemely = record
nev: string;
szul_ev:integer;
end;var a:array [1..5] of szemely;
i,jelen:integer;function beolvas:szemely;
var x:szemely;
begin
write('Nev: ');
readln(x.nev);
write('Szuletesi ev: ');
readln(x.szul_ev);
beolvas:=x;
end;begin
for i:=1 to 5 do
begin
writeln('Kerem az ',i,'. szemely adatait...');
a[i]:=beolvas;
end;
write('Milyen evet irunk most? (pl.2004) :');
readln(jelen);
for i:=1 to 5 do
writeln(a[i].nev,' ',jelen-a[i].szul_ev,' eves.');
end.-----------------------------------
-
Lortech
addikt
Még mindig 1-től indexeljük pascalban a tömböket.
length [ i ] ? Input [ i ] gondolom.
Végigmész a for cikluson, és minden egyezésnél csinálsz valamit, de elvileg csak az volt a cél, hogy egyet találjon.
program keres;
var
szoveg:string;
i:byte;
beginszoveg:='akarmi ';
readln(szoveg[length(szoveg)]);
while not (szoveg[ i ]=szoveg[(length(szoveg))]) do
inc(i);if i=length(szoveg) then writeln('nem volt benne')
else writeln(benne volt');end.
Bár ezt tan nem kellett volna.
-
Castin
csendes tag
Tsé!
Bocs, hogy csak most írok... szal kipróbáltam amit írtál és ez egy azaz 1 db betüre müxik is... de nekem egy változóra kéne, egy for ciklusban, valahogy így:
readln(s);
writeln('A szövegben ',length(s),' karakter van.');
for i := 1 to length(s) do
begin
z := copy(s,i,1);
{Ide kellene valamilyen parancs, hogy át és vissza tudjam alakítani a betüket}
end;
A 'z' lenne az a bizonyos változó ami minden körben más... és így kellene minden körben kidobnia az ASCII kódokat betünként. -
lordjancso
senior tag
Bocsánatért esedezem... Igazából leginkább csak az y és a z billentyűk felcserélése miatt probléma ez (namegy a pontosvessző és a többi karakter ami kell a Pascalhoz), mert én gyors és gépíró végzettséggel rendelkezem és nagyon degradáló lenne a ''tudományomhoz'' ha most át kellene fejlődnöm angol billentyűzethez...
''Ééérteeem?''
(Elnézést a gúnyos hangnemért) -
Retekegér
MODERÁTOR
De valamit elrontottam:
program karakterszamolo;
uses crt;
var i,count:integer;
betu: char;
f:text;
utvonal,s:string;
begin
clrscr;
Write('Kerem a text allomany nevet (utvonalat): ');
Readln(utvonal);
Assign(f,utvonal);
{$I-}
Reset(f);
If IOResult<>0 then begin
Write('A file nem elerheto!');
Halt(1);
end;
{$I+}
betu:='l';
count:=0;
Readln(f,s);
repeat
for i:=0 to (length(s)-1) do
if s[i ]=betu then count:=count+1;
Readln(f,s);
until eof(f);
Writeln('Az allomanyban talalhato l betuk szama: ',s);
Readln;
end.
Mod: Benmartin köszi, C-vel majd később foglalkozok ;)
[Szerkesztve] -
Gyuri16
senior tag
-
Gyuri16
senior tag
elsodlegesen azt mondta hogy a kepernyo egy reszet akarja torolni, ezert mondtam a windowot. Szerintem ez a legjobb.
amit meg te mondtal nem biztos hogy jo, vagy csak en nem ertem.. nezd meg ezt:
begin
clrscr;
gotoxy(1,1);
writeln('asdgdfgdfg');
gotoxy(1,1);
writeln;
end.
itt a te elmeleted alapjan semminek se szabadna latszania, es a szoveg ott van..
windowok kellenek..
en is koszontem.. -
Lortech
addikt
Kis kieg, mert talán pont a fáljkezelés része kell neki:
type emberek = record
nev,nemzetiseg: string;
rajtszam: integer;
end;
var
adatfile : file of emberek;
rek : emberek;
assign (adatfile,'adatok.dat');
REWRITE(adatfile);
ciklus
//rek beolvas feltölt
Write(adatfile,rek);
cvége;
//másik beolvas feltölt
//visszaolvasás, file mutatót az fájl elejére állítani
seek(adatfile, 0);
While (not Eof(adatfile))
Read(adatfile,rek);
...
close(adatfile);
Szerintem nem kell ide tömb, mert az problémássá (maxelem számot bele kell égetni a kódba) és kevésbé optimálissá teszi. Nem szükséges letárolni az adatokat tömbben, azért van a fájl, hogy kiírjuk, egyszerre csak egyet kell memóriában tartani. Egyből kitesszük fájlba és mindig egy csak egy rekord példány van. Beolvasásnál ugyanígy elég végigszaladni és kiválasztani a maxot.
[Szerkesztve] -
Gyomman
aktív tag
csak, mert kipróbáltam úgy, hogy kitettem asztalra, és csak bevillant....
amúgy ha átrakom binből bgibe meg vissza, akkor a betű is megváltozik, tehát 1-2 fájlt használnia kell aza dott mappából. úgyhogy, ha nincsenek meg azok a fájlok abbna a mappábna , ahol a progi, akkor nem müxik. vagy tévedek??? -
Gyomman
aktív tag
ÁÁÁÁÁÁ! berektam Bin-be is, BGI-be is (bgibe müxik jól), File-ba a Change Dir-be átváltoztattam a mappát, a másikba is, futtatás, SEMMI!
Tp7 -esem van nekem is...
JA: nincs include mappám, most jut eszemba, azt vmi mással kéne megoldani, nem? ÉNNEKM ott a work mappa volt, és azt úgy hagytam
[Szerkesztve] -
Gyomman
aktív tag
az összes ott lévő exe fájlt megnéztem, sőt! a többi mappában is. még mindig nem nyertél...
mégegy dolog: a mostani fájl egy teljesen más helyen van ( nme a TP mappájába). Ez nme tom, hogy mennyire befolyaásolja a következményeket( csináltam úgy, hogy a exe&tpu-t oda irányítottam, de úgy se)... -
Gyomman
aktív tag
Na, miután átírtam úgy a progit, hogy a döntetlent is jelezze, így az else-t nem lehet használni. Azért beírom ide, hogy mi volt, azóta rájöttem: nme biztos, hogy jó ez így:
[...........]
akarmi:char;
akarmi:=readkey;
case akarmi of
#49:
begin
if (kartya1>kartya2) and (kartya1>kartya3) then outtextxy(10,300,'szöveg1);
else outtextxy(10,300,'Sajnos rossz szamra tippeltel');
end;
#50:
begin
if (kartya2>kartya1) and (kartya2>kartya3) then outtextxy(10,300,'szöveg2');
else outtextxy(10,300,'Sajnos rossz szamra tippeltel');
end;
#51:
begin
if (kartya3>kartya2) and (kartya3>kartya1) then outtextxy(10,300,'szöveg3');
else outtextxy(10,300,'Sajnos rossz szamra tippeltel');
end;
[...........] a helyesírási elírásokal, ha vannak ne törődj, most írtam, nem az volt a gubanc
asszem ilyesmi volt.
Köszi a readln-el kapcsolatosat, sokat szórakozok ezzel a grafikus képernyővel...
[Szerkesztve] -
Gyomman
aktív tag
pl.: a procedure kartya2-ben ott van az a 3 két-IF-es rész. Ott, ha az uccsónál else-et használok, és nem if-et, akkor kiírja, hogy Error in statement(ne essen kétésg, az else után nem írok feltételeket). Ha nincs kedved letölteni meg átirogatni, akkor bemásolom ide azt a részt else-el.
A kérdés újrafogalmazva: Az első játékban (procedure bomber) a readln utasításokat ugye addig veszi be, amíg ki nem találod a számot, vagy ki nme fogysz a lehetőségekből. Na ugye ilyenkor vagy kilépsz a főmenübe vagy törli a képernyőt és újraindul a játék. Nos, ha újraindítom, akkor nem a képernyő bal felső sarkából kezdi megint a beolvasást, hanem attól a helytől, ahol az előző játék véget ért...
[Szerkesztve] -
Gyomman
aktív tag
Köszi a tippeket meg az észrevételeket!
A kassza:=kassza-ról asztem, már kitöröltem, akkor azt is módosítom. Illetve én is észrevettem 1-2 hibát
1. A graph inicializálása előtt beírtam a cleardevice parancsaot, amiért az istennek se indult el a program.
2. A második játéknál döntetlennél semmit nem csinál, azt is megpróbálom kijavítani
Egy gondom volt még: az else-t nem tudom vmiért használni, pedig megnéztem a súgót is(hátha vmire rosszul emlékszem), és ugyanúgy használtam mindent, de errort írt ki, azér van pl. a 2. programnál annyi if.
Néhány változónév nme mutat sokat, de pl. a menü szerkezete annyira primitív, hogy nem nagyon akartam hosszú nevet adni a ciklusainak. ( az S-eseket meg már nem volt kedvem kijavítani)...
Mégegy kérdés: hogy tudnám azt megcsinálni, hogy a számkitalálósnál az újraindításkjor a képernyő tetején és ott kezdje újra, ahol az előző bef... -
-
Gyomman
aktív tag
Értem én, de ha string lesz a deklaráláskor, akkor meg ha hozzá rendelek vmilyen értéket (pl.:szam:=random(100)+1); akkor erre aszondja, hogy Type mismatch (asszem 26-os a száma) és innentől kifoygott a tudomány. Ah enm string akkor jó, csak akkor meg nem tudom kiiratni. A string az szövegváltozó, nem? ezért lenne a hiba, ha ilyesmit csinálok vele?
[Szerkesztve] -
Gyomman
aktív tag
Tudom, én is így csinálom, de lenne benne 1-2 plusz dolog, csak hogy okos legyek
, és ehhez kéne, hogy outtextxy-al ki tudjam iratni a végén a számot, meg a próbálkozások számát, stb. Writeln-el ment, grafikusba nem tudom, hogy miért nem megy az outtext-el, pedig csak szám lenne a változó, nem is egy szöveg (ezér sztem nem kell string, vagy igen?).
Bocs, ha hülye vagyok, de nem nagyon grafikáztam még, aztán ez így bukta eddig
[Szerkesztve] -
Gyomman
aktív tag
Csak nem akarok idegesítő lenni (értek hozzá
);
Érthető voltál, külön értem, viszont ezt a kettőt nem tudom összekapcsolni (illetve össze tudom valahogy, de azt írja ki: constant and CASE type do not match). Az ''eredmény''t (ami ugye az ASCII kód) a case of-nál asciiben kell írni (CHR(000))? Vagy mi?
Már meginbt hülye vagyok... -
CocooN-z
őstag
Szervusz
Csütörtökre, szül évet is random generálna tömbbe (itt meg lehetne adni neki hogy pl 1950- től mondjuk 75 ig, de ez tökmind1), azért, kellene gotoxy mert akkor látszódna hogy van közöm hozzá. Igen alulra nem ártana egy menüsor, ez nem rossz 5let. Sima egyszerű keresés tételt lehetne alkalmazni, évszámokra, nevekre, fizukra, csak azt nem tudom hogy lehetne megadni neki hogy 3 tömbön belül keressen.
-
KPepe
senior tag
üdv!
Bocs, ha tévedek, de szerintem nem jó a cserélő rész a kódodban.
a[ j ]:=a[ i ]; helyett a[ j ]:=s; -nek kellene szerepelnie, mert különben az s-ben tárolt érték elveszik.
Pl. 5, 2, 3 esetén (ugye első lépésben az 5 - 2 párost hasonlítja)
s:=a[ i ]; 5
a[ i ]:=a[ j ]; 2
a[ j ]:=a[ i ]; 2
tehát a rendezés végén a tömbben 2, 2, 3 szerepel, az 5 elveszik. -
Retekegér
MODERÁTOR
-
shev7
veterán
-
Lortech
addikt
Ezért kéne egy megfelelő adatszerkezet, pl láncolt lista. Ha jól értelmezem, egy egyszerű kiválogatásról, szűrésről, szűkítésről van szó. Láncolt listát feltölteni a lehetséges ''elemekkel'', aztán a megfelelő tulajdonságokra kiválogatást lefuttatni és kidobálni a nem megfelelő elemeket a listából. A listának nyilván lenne tartva az elemszáma, így lehetne a maradék elemekből randomolni. Bár nincs kizárva hogy félreértelmezem a kérdést, valahogy nem teljesen áll össze a hsz első fele a végén leírt feladattal.
[Szerkesztve] -
sghc_toma
senior tag
while(isLooping && condititon1)
{
while(isLooping && condititon2)
{
while(isLooping && condititon3)
{
if ( sthingHappens() ) isLooping = false;
}
// kód I.
}
// kód II.
}
ílyesmire gondoltál? csak mert ezzel nekem két bajom van:
- így ha isLooping false lesz, lefut kód I. és kód II., mielőtt elhagyjuk a ciklusokat...
- ez már szubjektív: inkább használok egy goto-t, minthogy mind3 ciklusfeltételhez hozzáéseljem az ''isLooping''-ot
még hozzáteszem, hogy ezzel nem azt akarom mondani, hogy a goto tök jó, csak azt, hogy néha jól tud jönni.. mint már írtam, ezért is maradt benne a ''legmodernebb'' nyelvekben is..
ja, és bocs, hogy nem Pascal-ul írtam, de ebből a szempontból ez lényegtelen sztem.. -
ViragL
tag
Nem mondtam, hogy optimális megoldás. De valóban, mivel a prímszám meghatározás egy elég lassu folyamat (pláne, ha a mezitlábas módszert alkalmazza a programozó és nem a Fermat vagy a Miller-Robin tesztet) így az algoritmus mindenképpen lassu lesz, de valóban a felesleges műveletek a főátló beli elemekkel tovább lassítják.
Tény, hogy felesleges műveletek vannak benne, ezért xar, de legegyszerübb módszer, nem hibás csak lassu. -
kekfog
csendes tag
Köszönöm válaszodat!
Próbálkozni fogok.
Más.
Hagy kérdezzek meg már egy olyan gurut, mint te, hogy egy komolyabb program tervezését mivel oldod meg? Szerkezeti ábra, folyamatábra vagy Jackson jelölés.
Egy ilyen kis programot, mint amivel én most küzködök, az viszont fejben meg van? -
cucka
addikt
igen, a gondolatmenet jó, az okos programozó pedig mod-ot használ
Jester01 - a számolásnál választott nulla időpont valójában tetszőleges, a program viszont csak a gergely naptár bevezetése utáni dátumokra fog helyesen eredményt adni. igazából kevés olyan alkalmazást tudok elképzelni, ahol 1500 előtti dátumokra kell megmondani, milyen napra estek. ezt a problémát külön bonyolítja, hogy rengeteg országban jóval később vezették be a gergely naptárt (lásd oroszország, októberi forradalom, ami november 7-én volt)
-
Lortech
addikt
Én ugyan már belegondoltam jónéhány éve, talán jobban is mint te
, de akkor számoljuk a te algoritmusod szerint:
szökév: 2005/4=501 *366= 183366
nem szökőév: 2005-501=1504 *365= 548960
+ az évben 215 nap eddig
Az annyi mint : 732541
Elosztjuk héttel: 104648,71428571428571428571428571, a maradékot megszorozva héttel ötöt kapunk, azaz milyen nap is van ma?
Egyébként minden 100-zal osztható nap nem szökőév, hiába osztható 4-gyel, kivéve ha 400-zal is osztható. Meg ahogy írták a Gergely-naptár bevezetésekor átugrottunk néhány napot. Nem a megfelelő szót használtam, mert triviális ez, csak tudni kell a hátterét pontosan. Talán belátod, nem olyan egyszerű, hogy egy mondattal elintézzük. -
cucka
addikt
nyilván nem hallottál még a maradékos osztásról
. nekünk harmadik osztályban tanították. pascalban ezt úgy hívják, hogy mod. 17 és 7 osztási maradéka nem 0,428571, mint ahogy a példádban írtad, hanem 3.
az adott dátum óta eltelt napok számának kiszámolása pedig tényleg nem nehéz, cserébe hosszú, hibalehetőségeket rejt, és jelenleg az a cél, hogy ezt minél elegánsabban oldjuk meg (vagy nem?). -
cucka
addikt
nincs olyan, hogy nulladik év
nem véletlen, hogy a 21. század is 2001-ben kezdődött.
mod: egyébként meg nagyon bonyolultan írtad le az egész algoritmust. ha tudjuk, hogy a legelső év jan. 1.-e milyen napra esett, és tudjuk, hogy azóta eltelt x nap, akkor x mod 7-ből adódik, milyen napra esik a keresett dátum. (és ezért nem is igazán tudtam értelmezni azt a fél oldalas magyarázatot)
[Szerkesztve] -
N!tRo
tag
nagyon egyszerűen lehet egy öröknaptár programot csinálni!
a lényeg hogy pontosam számold ki hány nap telt krisztus születése óta (0.0.0)
vedd azt a számod, oszd el 7-el, vedd a maradékrészét, azt meg szorozd meg 7-el, és a kapott számtól függ hogy melyik nap.
pl.:
tegyük fel, a 0. évben vagyunk, január 6.-án!
eddig összesen 6 nap telt el, elosztom 7-el, ezt kapom: 0,8571..., ennek a maradékrésze a tizedesvesszőtől jobbra található, tehát 0,8571 megintcsak.
Ha ezt megszorzod 7-el, akkor 6-ot kapsz.
A 6-os meg a szombatot jelöli.
még egy példa!
tegyük fel, a 0. évben vagyunk még mindig, január 28.-án! ha belegondolsz, akkor ennek vasárnapnak kell lennie!
nézzük!
28 osztva 7-el, 4-et kapsz eredményül. Ennek a maradéka 0! tehát a 0 a vasárnapot fogja jelölni!
na ezek után, ha a szombat 6-os, a vasárnap 0-ás, akkor a többi így fog alakulni:
hétfő 1, kedd 2, szerda 3, csüt 4, péntek 5, szomb 7, vasárn 0.
ezek tudtában, nézzük egy harmadik példát!
0. év, január 17.
na most, ennek szerdának kell lennie! gondolj csak bele, ha hétfő volt elseje, akkor 7.-e vasárnap, 14.-e megint vasárnap, 17.-e meg szerda lesz!
nézzük:
17 / 7 = 2,428571.... vegyük a maradékrészét = 0,428571, megszorzom 7-el mennyit kapok? 3-at! az meg szerda!
na ennyi a lényege....
érthető voltam?
Új hozzászólás Aktív témák
- MAKULÁTLAN! Dell Precision 7760 Tervező Vágó Laptop -70% 17,3" i7-11850H 32/1TB NVIDIA A3000 6GB FHD
- Kiwiears Astral
- SZÉP! Dell Precision 7760 Tervező Vágó Laptop -70% 17,3" i7-11850H 32/512GB NVIDIA A3000 6GB FHD
- Xiaomi Electric Scooter 5 Max tökéletes hibátlan eladó
- 4K Gamer PC Ryzen 9 5900X/RX 6900 XT 16Gb/32Gb DDR4/1Tb NVME M2 SSD/850W Bronz 6hó Gar
- Apple iPhone 13 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! PowerColor RED DEVIL 6900XT Ultimate 16GB videokártya garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RX 9060 XT 8GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 15 Pro Max 256GB Black Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3067
- HIBÁTLAN iPhone 12 Pro Max 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3376, 100% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest