-
Mobilarena
Ú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
Hirdetés
● olvasd el a téma összefoglalót!
- A Samsung bemutatta az Exynos 2500-at
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- CURVE - "All your cards in one." Minden bankkártyád egyben.
- Azonnali processzoros kérdések órája
- Nem fogy a Galaxy S25 Edge?
- Nvidia GPU-k jövője - amit tudni vélünk
- Luck Dragon: Asszociációs játék. :)
- Energiaital topic
- iPhone topik
- További aktív témák...
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- Targus Universal USB 3.0 DV1K-2K Compact docking station (DisplayLink)
- AKCIÓ! ASUS PRO WS W790E-SAGE SE alaplap garanciával hibátlan működéssel
- Telefon felvásárlás!! Samsung Galaxy S24/Samsung Galaxy S24+/Samsung Galaxy S24 Ultra
- BESZÁMÍTÁS! Gigabyte B760M i5 13400F 16GB DDR4 512GB SSD RTX 3070 8GB Pure Base 500DX fehér 650W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest