Hirdetés
- OnePlus Pad 3
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Bluetooth hangszórók
- Gusztusos, 11 literes térfogatú Jonsbo ház jött a kompaktabb vasakat kedvelőknek
- Projektor topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- ThinkPad (NEM IdeaPad)
- VR topik (Oculus Rift, stb.)
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Milyen egeret válasszak?
-
PROHARDVER!
Új hozzászólás Aktív témák
-
janos1988
addikt
Engem kiráz a hideg a C nyelvtől. Annyira fapados, de legalább cserébe, ha nem figyelsz nagy az esélye, hogy elbaszol mindent
De kell foglalkozni vele, ha az ember a Java nyelvre akar koncentrálni (Android).
Ezekiell: Köszi a listát, ráállok majd.
-
janos1988
addikt
Köszi.
De amúgy rácsodálkozok még most is, hogy milyen zseniális megoldást írtál, lekezeltél vele mindent röviden és tömören. Nekem még csak hasonló sem jutott volna eszembe. Igaz 1 hónap után mit vár az ember...
Hiába tervezném meg előtte papíron 5x 5 féleképpen, egyik sem lenne ennyire rövid, tömör, logikus és magától értetődő.
-
janos1988
addikt
válasz
janos1988 #14178 üzenetére
Kisebb sikerélmény, sikerült megoldani a szóközöket.
program szoveg_bontas;
function bontas(s1:string;var pos1:integer):string;
begin
bontas:='';
while (s1[pos1]<>#32) and (pos1<>length(s1)+1) do
begin
bontas:=bontas+s1[pos1];
inc(pos1);
end;
if s1[pos1]=' ' then inc(pos1);
end;
var
s2,s3:string;
pos2,t,i:integer;
tomb:array [1..10] of string;
begin
pos2:=1;
t:=1;
s2:=' Ez megint egy szep hosszu proba mondat.';
repeat
s3:=bontas(s2,pos2);
if s3<>'' then
begin
tomb[t]:=s3;
inc(t);
end;
until pos2>length(s2);
for i:=1 to t do writeln(tomb[i]);
end.
-
janos1988
addikt
Az ilyen megoldásokon csak pislogok. Messze vagyok még az ilyen kivitelezéstől.
A több szóköz opcióra nem is gondoltam...
Amúgy mi ez a +1 -1 fétis?Valami programozásbeli trükk? Mert érdekes, hogy elméletileg balansz van -1 és +1 között, de ha kitörlöm ezeket akkor mégis megbomlik az egyensúly és káosz lesz. Érdekes.
Hogy ha valamivel dolgozni akarsz akkor érdemes mindig egy átmeneti változóba másolni a tartalmát, mintsem hogy az eredetivel dolgozz?
A tömböt ajánlott mindig feltölteni? Ne bízz a rendszerben elv végett
Illetve a "delete(tmp,1,length(szo)+1)" helyett mehet a "delete(tmp,1,pos1)" is? Végül is működik.
Egyelőre ennyiAmúgy meg elméletileg az enyémbe át kellene ugrania a szóközöket tárolás nélkül, de a gyakorlatban nem úgy működik.
-
janos1988
addikt
válasz
janos1988 #14174 üzenetére
A temps-re nincs is szükség és 2 komment.
program szoveg_bontas;
function bontas(s1:string;var pos1:integer):string;
begin
bontas:='';
while (s1[pos1]<>#32) and (pos1<>length(s1)+1) do //a . lemarad ha nincs +1
begin
bontas:=bontas+s1[pos1];
inc(pos1);
end;
inc(pos1); //szokoz (#32) atugrasa
end;
var
s2:string;
pos2,t,i:integer;
tomb:array [1..10] of string;
begin
pos2:=1;
t:=0;
s2:='Ez megint egy szep hosszu proba mondat.';
repeat
inc(t);
tomb[t]:=bontas(s2,pos2);
until pos2>length(s2);
for i:=1 to t do writeln(tomb[i]);
end.
-
janos1988
addikt
Viszont elkészült a szétbontó program. Próbáltam máshogy és/vagy egyszerűbben megoldani, de nem ment, ennyire telik tőlem egyelőre.
program szoveg_bontas;
function bontas(s1:string;var pos1:integer):string;
var
temps:string;
begin
temps:='';
while (s1[pos1]<>#32) and (pos1<>length(s1)+1) do
begin
temps:=temps+s1[pos1];
inc(pos1);
end;
bontas:=temps;
inc(pos1);
end;
var
s2:string;
pos2,t,i:integer;
tomb:array [1..10] of string;
begin
pos2:=1;
t:=0;
s2:='Ez megint egy szep hosszu proba mondat.';
repeat
inc(t);
tomb[t]:=bontas(s2,pos2);
until pos2>=length(s2);
for i:=1 to t do writeln(tomb[i]);
end.
-
janos1988
addikt
válasz
janos1988 #14161 üzenetére
Ez az egész arra kellett, hogy ha egy fájlból beolvasom a sorokat (#10#13) akkor azt szét tudjam bontani és a szeparált adatokat a rekord megfelelő mezőibe bemásolni. De közben rájöttem, hogy ez nem lesz annyira egyszerű.
Addig, oké, hogy szétszedem a sort, de, hogy mondom meg neki, hogy az első szétszedett részt rakja be a rekord első/megfelelő mezőjébe és így tovább... Fejben már vannak tervek, hogy kettészedem a szeparálós algoritmust két függvénybe és a visszatérési értékét fogom megadni a rekord egyes mezőibe, de hogy ez mennyire fog működni a gyakorlatban... De ez már a holnapi feladat lesz. De "léci" egyelőre ne adjatok tippeket, küszködni akarok vele.
-
janos1988
addikt
válasz
kovisoft #14157 üzenetére
Végül is így sikerült közben megoldani (illetve ezek más "elrendezése" és/vagy a while do ciklus használata, de a végeredmény ua):
program felbontas;
var
s1,s2:string;
i:integer;
begin
s1:='Ez egy szep hosszu proba mondat akarna lenni.';
s2:='';
for i:=1 to length(s1) do
begin
if (s1[i]<>#32) then s2:=s2+s1[i]
else
begin
writeln(s2);
s2:='';
end;
if i=length(s1) then writeln(s2);
end;
end.
Közben olvasgattam és beugrott, hogy van a C-ben használatos 0 végű sztring is a Pascalban (PChar), de azzal is hasonló megoldások születnek (születtek). Bár előnye, hogy meghatározható a vége (#0). Köszi neked is és a többieknek is!
-
janos1988
addikt
válasz
janos1988 #14151 üzenetére
A . lemaradása már megvan, mert ha a for ciklus elér a 45. lefutáshoz akkor i<>45 hamis (mivel i=45) lesz így már a feltétel is hamis lesz, azaz else ág. Na de, hogy tudom mégis kiíratni.
Szerk.: Ha a for ciklushoz hozzáadok egyet for i:=1 to length(s1)+1 és a kiértékeléshez is (i<>length(s1)+1) akkor minden okés. De szerintem ezt nem így kell(ene) megoldani, hogy túlfuttatom a cilust.
-
janos1988
addikt
Próbáltam magamtól egy mondatot feldarabolni de nem megy, csak vakarom a fejem.
Ha így csinálom, akkor lemarad a "lenni." rész:
program felbontas;
var
s1,s2:string;
i:integer;
begin
s1:='Ez egy szep hosszu proba mondat akarna lenni.';
s2:='';
for i:=1 to length(s1) do
begin
if s1[i] <> #32 then s2:=s2+s1[i]
else
begin
writeln(s2);
s2:='';
end;
end;
end.
Ha így próbálom, akkor pedig a ".":
program felbontas;
var
s1,s2:string;
i:integer;
begin
s1:='Ez egy szep hosszu proba mondat akarna lenni.';
s2:='';
for i:=1 to length(s1) do
begin
if (s1[i]<>#32) and (i<>length(s1))
then s2:=s2+s1[i]
else
begin
writeln(s2);
s2:='';
end;
end;
end.
-
janos1988
addikt
válasz
Create. #14117 üzenetére
Maga a stílus sem túl megnyerő. Nem beszélve a videóban elkövetett hibákról, amik tényleg banálisak egy "oktatótól".
Viszont felnéztem az általad említett Webler oktatóstúdió weboldalára. Pl. a szoftverfejlesztő okj viszonylag jónak tűnik, tematikája is tetszik*, de nekem az ilyenekkel két bajom van. Csak heti 2 alkalommal van oktatás és ezáltal nagyon elnyújtják a képzési időt (fölöslegesen), másik maga az igazi gyakorlati rész, ahol közösen el kezdenek fejlesztenek egy alkalmazást a kurzus végén (2-3 hét), hogy összeálljon a kép és egy kis gyakorlatot is szerezzenek. Ahhoz hasonlítanám az ilyet, mint amikor a b kategóriás jogosítványt megszerzed úgy, hogy a sikeres elméleti vizsgákat teljesítetted, meg mentetek az oktatóval 2-3 kört a rutinpályán, aztán ég veled. A többit majd a forgalomban megtanulod, hisz az elméleti rész már ott van a fejben.
* Igazából ha végignézd a tematikát, semmi olyan extra nincs benne amit te magad néhány könyvből és a tengernyi sok ingyenesen elérhető oktatóvideóból ne tudnál megtanulni.
-
janos1988
addikt
válasz
Create. #14111 üzenetére
Én is szemezgettem az ilyen gyorstalpalókkal, de kis utánaolvasás (gyik) után lebeszéltem magam róla.
GitHub feltöltéseikbe is bele nézegettem. 10. héten még mindig alap dolgokkal futottam össze, pedig ha az ember önképez otthon videók és pdf-ek által, már kicsit összetettebb programokkal is meg kellene, hogy birkózzon. Nem azt mondom, hogy nem tanulsz semmit sem ha elvégzed, de annyi pénzért amennyibe kerül, az átadott tudás nagyon kevés és akkor még ott vannak a feltételek is, ha nem sk-n végzed el.
-
-
janos1988
addikt
válasz
Reflax #14039 üzenetére
Ezek szerint a játék készítés tetszik. Hajrá! Maradj ennél, és ebbe mélyedj el. Mire befejezed az egyetemet és a lelkesedésed is mindvégig megmarad, valószínűleg fel fogsz tudni mutatni 2-3 komolyabb saját alkotást is, ami azért már elég jól fog mutatni az önéletrajzodban.
-
janos1988
addikt
válasz
Reflax #14030 üzenetére
Én, mint egyszerű ember azt mondom neked, hogy ha mindenhez akarsz érteni, akkor igazából semmihez sem fogsz. Döntsd el melyik irány fog neked feküdni. Azt pedig úgy tudod meg, hogy rászánsz 3-4 hónapot egy témára 100%-al, minden mást mellőzöl addig a terveidből. Kezdésnek a játék fejlesztés valóban tökéletes lehet. Bár igazából már ez is elég komplex feladat lett. Grafika, történet, zene, leprogramozás, ezek mind-mind külön szakok már. Csak keress rá yt-on pl. egy szimpla indie játék fejlesztési naplójára, aki egyedül készíti, hogy lásd mennyi időt beleöl mire egy használhatóbb terméket letesz az asztalra. De szerintem ilyenekbe még ne ugorj bele. Kezdj egyszerűbbekkel, tic tac toe, kigyó, block breaker, esetleg aknakereső, vagy mind a négy is akár
Aztán légy kreatív, adjál hozzá új funkciókat amik bonyolítják a játékmódot stb..és rájössz, hogy nem is olyan egyszerű, és meg még csak az alap.
-
janos1988
addikt
válasz
kovisoft #14034 üzenetére
Ki akartam kerülni a belső _mindiglefutó_ if elso=nil ellenőrzést, úgy, hogy a repeat előtt bekérem az első láncszemet és értekül adom az elsőnek+utolsónak. De így nagyon áttekinthetetlen az egész, jobb az eredeti.
Igen, már látom, ahogy felhívtad rá a figyelmem, a 0 ellenőrzése elmaradt az átírt változatban.
-
janos1988
addikt
Hali. Kellemes húsvéti ünnepeket!
repeat
writeln('Kerek egy szamot (0-bevitel vege):');
readln(a);
if a>0 then begin
new(uj);
uj^.szam:=a;
uj^.kov:=nil;
if elso=nil then elso:=uj
else utolso^.kov:=uj;
utolso:=uj;
end;
until a=0;
Ezt átírtam így:
writeln('Kerek egy szamot (0-bevitel vege):');
readln(a);
new(uj);
uj^.szam:=a;
uj^.kov:=nil;
elso:=uj;
utolso:=uj;
repeat
writeln('Kerek egy szamot (0-bevitel vege):');
readln(a);
new(uj);
uj^.szam:=a;
utolso^.kov:=uj;
utolso:=uj;
until a=0;
utolso^.kov:=nil;
"Minden jó", leszámítva azt, hogy kiírja az átírt változat a 0-át, amit az eredeti nem (a 0 az egy kilépési feltétel).
Ha én is hasonlót fogok majd készíteni, akkor melyik megoldás a jobb/szebb?Köszi!
-
janos1988
addikt
-
janos1988
addikt
válasz
janos1988 #13999 üzenetére
Az én mitudoménhanyadik verzióm, de ez meg végtelen ciklusba megy át.
program ermek_demo;
const
n=2;
type
a = array [1..n] of integer;
const
ermek:a=(1,2);
function f_kombok(ermek:a;osszeg:integer):integer;
var
kombo,temp:integer;
begin
if osszeg=0 then f_kombok:=kombo;
if osszeg<0 then f_kombok:=0;
kombo:=0;
for temp:=1 to n do kombo:=f_kombok(ermek,osszeg-ermek[temp]);
f_kombok:=kombo;
end;
begin
writeln(f_kombok(ermek,4));
readln;
end.
-
janos1988
addikt
https://www.youtube.com/watch?v=d5x8aejKUSQ&
Ezt valaki Pascal nyelven le tudná írni? Nekem sehogy sem akar összejönni.
-
janos1988
addikt
-
janos1988
addikt
Köszi mindenkinek! Elolvastam, megnéztem mindet, de az öreg volt az i-re a pont!
Tipikus tudásbeli hiányosságom volt. De hogy teljes(ebb) legyen a kép, holnap még egy kis Hanoi tornya és egy kis Fibonacci nyulak. -
janos1988
addikt
válasz
Silεncε #13963 üzenetére
Huh. Már majdnem kezdtem megérteni általad, amikor kicsit módosítottam rajta, hogy követhetőbb legyen. Így sikerült elérnem, hogy teljesen belezavarodjak.
Szóval addig fut amíg érteket nem kap az f1 (1-et). Visszatér. Stimt.
"És így ezután szépen egymás után visszatér a 0+1, 0+2, ... n-1, n is. Ezért van az, hogy fordítva íródik ki." - De ezt a részt nem értem.
Ahogy látszik az új képen, f1 mikor felveszi az 1-et már csak az else ág fut le. De ott is valamiért értékfelvétel előtt csak az /ELSE ELŐTT, azután már csak az /ELSE UTÁN, annak ellenére, hogy egy begin end; fogja össze őket. Ráadásul azt sem értem, hogy ha 0 lesz az n értéke (mert látszik, hogy annyi lesz), utána, hogy fogja növelni? Mi által? Hisz növeli.
Vagy valamit én néztem be nagyon csúnyán?
-
janos1988
addikt
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- OnePlus Pad 3
- Kézbe fogható paradoxon lett az iPhone Air
- Nagyon erős ajánlat lett az Apple Watch SE 3
- A magas vérnyomást is felismerheti az Apple Watch Series 11
- BestBuy topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Merész dizájn és új teleobjektív az iPhone 17 Pro mobilokban
- Bluetooth hangszórók
- Kerékpárosok, bringások ide!
- Gusztusos, 11 literes térfogatú Jonsbo ház jött a kompaktabb vasakat kedvelőknek
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
- BESZÁMÍTÁS! Gigabyte H510M i5 10400F 16GB DDR4 512GB SSD 1TB HDD RX 6600 8GB Zalman S2 TG EVGA 600W
- HP ZBook Studio G8 WorkStation i7-11850H 32GB 512GB Nvidia Quadro T1200 15.6 400NIT 100% sRGB Garis!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest