218
Lécci, Lécci tanícsatok meg programozni
  • vki
    #138
    Cső!

    Én szeretnék egy egyszerű visszaszámlálót csinálni. Lehetőleg egy flash kellene.

    Köszi.
  • blackgamer
    #137
    var lottosz : file of comb; ezt nem ismerem,
    de én ha típusos file-ba raknám az öt számot rekeszenként, akkor record-ot használnék, mivel emlékem szerint tömböt nem lehet file-ba menteni ilyen módon (lehet tévedek?)
  • Darkboy
    #136
    akkor elkezdek pascal-t tanulni :)
  • Aquli
    #135
    Hello!
    Segítséget szeretnék kérni egy Pascal programmal kapcsolatban. A mostani emelt-szintű érettségi programozási feladatát akarom megcsinálni. A lényeg, hogy van egy lottosz.dat nevű fájl, amiben a 2003-as év 51 hetének lottoszámait tartalmazza, minden sorban 5 szám szóközökkel elválasztva. A lényeg, hogy ebből kell adatokat kiolvasni többféle célra. Van, amikor csak a megadott számú sort ki kell iratni a képernyőre, van amikor az adatokkal számolni kell (statisztikai céllal).

    Én úgy gondoltam, hogy a fájlt típusos fájlként deklarálom, a típus pedig 5 integerből álló tömb.
    Ebben az esetben a fájl minden sora egy-egy elemnek számítana, mert a szóközökkel elválasztott 5 szám egy-egy tömböt alkot. Vagy ez így nem működhet? Mert én így próbáltam egy ilyen tömbbe beolvasni a fájl n. elemét, de a tömbbe nem a megfelelő számok kerültek, hanem 4- és 5-jegyű számok, amik, nem tudom honnan kerültek oda. Hogy értsétek a dolgot, berakom a forrást:

    program lotto;
    uses crt;
    type comb=array [1..5] of integer;
    var lottosz : file of comb;
    szamok,temp : comb;
    cs,i,n : integer;
    sz : string;

    begin
    clrscr;
    (*Az 52. hét nyeroszámainak bekérése*)
    for i:=1 to 5 do begin
    write('Irja be az 52. hét ',i,'. nyeroszámát!');
    readln(szamok[i]);
    end;

    (*A számok sorbarendezése és kiírása*)
    for i:=1 to 4 do begin
    for n:=1 to 4 do begin
    if szamok[n]>szamok[n+1] then begin
    cs:=szamok[n];
    szamok[n]:=szamok[n+1];
    szamok[n+1]:=cs;
    end;
    end;
    end;
    write('Az 52. hét felh. által megadott nyeroszámai: ');
    for i:=1 to 5 do
    write(szamok[i],' ');

    (*1-51 közötti szám bekérése, a számnak megfelelo sorszámú hét
    nyeroszámainak kiírása*)
    writeln;
    write('Irjon be egy számot 1-tol 51-ig'); readln(n);
    assign(lottosz, 'lottosz.dat');
    reset(lottosz);
    seek(lottosz,n);
    read(lottosz,temp);
    write('A(z) ',n,'. hét lottoszámai: ');
    for i:=1 to 5 do
    write(temp[i],' ');
    end.

    Nah. Az első két rész nem számít, az az első részfeladathoz kell, de azok sikerültek is. A harmadik rész lenne a lényeg, létszi nézze meg nekem valaki, hogy miért nem működi. Az általam létrehozott comb típus nem megfelelő a fájlhoz? Vagy ezt szöveges fájlként kellen kezelni?

    Ja és itt van a lottosz.dat egy részlete:

    37 42 44 61 62
    18 42 54 83 89
    5 12 31 53 60
    1 28 47 56 70

    Na így néz ki a fájl, csak 51 soron keresztül.

    Előre is köszi.
  • rushman
    #134
    vedd meg ezt a két könyvet: Angster Erzsébet: Objektumorientált Tervezés és Programozás 1-2
  • Dichter
    #133
    LOL

    maci007 hozzászólása Schönchen (10:04) részére előzmény | privát | 2005.05.25. 19:04 | válasz
    hogy kell amőbát írni turbo pascalban?
    Valaki írja le lécci lépésről lépésre.
    Elég ha egy játékos van a másik meg gép.
    Nagyon köszönöm.

    Arra sem veszi a fáradtságot, hogy megnézze mit írtak a többiek.

    Vagy hülye vagy, vagy egyáltalán nem értesz a programozáshoz. Ami egyébként nem baj, de akkor ne amőbát kezdj el programozni.
  • blackgamer
    #132
    link
  • QuippeR
    #131
    pascal -> c -> c++ -> objektumorientáltság -> java
  • blackgamer
    #130
    vegyél könyvet + olvasd el (nincs jobb gyógyír)
  • Koppernikusz
    #129
    c++ t mennyire vágod? van hozzá egy kis "köze"
  • kisgyerek20
    #128
    Valaki segítsen,hogy hogyan kezdjem el a JAVA programozást tanulni.
    Teljesen kezdő vagyok.
  • maci007
    #127
    de mondjuk aki megcsinálta vagy tudja.
  • Dichter
    #126
    Ne várd el, hogy valaki megoldja a házifeladatod.... Segítséget kérhetsz, valószínűleg kapni is fogsz, de azért ekkora programmal senki nem fog neked szenvedni.
  • maci007
    #125
    turbo pascalban hogy kell amóbát írni?
    lécci írjátok le.
  • ffxi
    #124
    Olvassunk be csillag végjelig neveket egy nevek mátrixba,
    majd minden névhez olvassunk be 5 db lottószámot, melyet
    egy tippek mátrixba fogunk elhelyezni. Minden sor
    egy tippsorozatot jelent!

    Kérjük be a billentyűzetről a lottoszámokat egy hasonló
    nevű tömbbe.

    Mondjuk meg név szerint, kinek hány találata van.
    Adjuk meg a nyeremény összegét is:
    2 találat: 870Ft
    3 találat: 8,500Ft
    4 találat: 1,500,000Ft
    5 találat: 32,000,000Ft

    Idáig jutottam:

    #include <conio.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    void main(void)
    {
    const w=10,v=30,x=5;
    int i,k,j,a;
    char nevek[w][v];
    int tippek[w][x],loto[x];
    clrscr();
    randomize();
    //fet”lt‚s
    i=0;
    do
    {
    printf("\nAdd meg a nevet (max 10 n‚v), azt n enter, ha meguntad ss *-ot!");
    gets(nevek[i]);
    i++;
    }
    while(nevek[i-1][0]!='*'&&i<w);
    for(j=0;j<=(i-2);j++)
    {
    printf("\nA %s n‚vhez tartoz¢ sz mok k”vetkeznek!",nevek[j]);
    for(k=0;k<=(x-1);k++)
    {
    printf("\nAdd meg a k”vetkez‹ lott¢sz mot, azt n enter!");
    scanf("%d",&tippek[i][k]);
    }
    }
    for(j=0;j<5;j++)
    {
    loto[j]=random(90)+1;
    printf("\n%3d",loto[j]);
    }
    for(j=0;j<(i-1);j++)
    {
    printf("\n %s ",nevek[j]);
    for(k=0;k<x;k++)
    {
    printf(" %2d ",tippek[j][k]);
    }
    }
    getch();
    }
  • DirtyPio
    #123
    Egy nxn -es matrixon el egy virusnemzetseg, amely a kovetkezokeppen fejlodik:
    -a maganys virusok meghalnak, ha kevesebb mint 2 szomszedjuk van, es megfulladnak, ha tobb mint 3 szomszedjuk van
    -szabad helyeken megjelenik egy uj virus, ha 2 vagy 3 szomszedja van
    -megfelelo kornyezetben egy virus 3 generaciot el
    megj: a virusnak max 4 szomszeja lehet. Szerintem a progim jo kene legyen, debiztos hogy van valami bibi, azert nem megy, ja es a 'matrix.txt' megvan.
  • DirtyPio
    #122
    hello, volna egy kerdesem, irtam egy progit, alabb leirom a feladat szoveget is, es mindig azt a hibauzenetet kaom, hog ysyntax error, ; expected, but until found. Nem ertem hogy hova kell neki ';'.
    na itt a progi:

    program F30_42;
    uses crt;
    type matrix=array [1..50,1..50] of integer;
    var i,j,n,r,fel,al,bal,job,vir:integer;
    c:char;
    f:text;
    x:matrix;
    begin
    assign(f,'matrix.txt');
    reset(f);
    i:=0;
    j:=0;
    while not eof(f) do
    begin
    inc(i);
    j:=0;
    while not eoln(f) do
    begin
    inc(j);
    read(f,x[i,j]);
    end;
    end;
    n:=i;
    repeat
    for i:=1 to n do
    for j:=1 to n do
    begin
    case x[i,j] of
    0:begin
    vir:=0;
    fel:=0;
    if i=1 then fel:=1;
    if x[i-1+fel,j]<>0 then inc(vir);
    al:=0;
    if i=n then al:=1;
    if x[i+1-al,j]<>0 then inc(vir);
    bal:=0;
    if j=1 then bal:=1;
    if x[i,j-1+bal]<>0 then inc(vir);
    job:=0;
    if j=n then job:=1;
    if x[i,j+1-job]<>0 then inc(vir);
    if (vir>=2) and (vir<=3) then x[i,j]:=1;
    end;
    1:inc(x[i,j]);
    2:inc(x[i,j]);
    3:inc(x[i,j]);
    4:x[i,j]:=0;
    end;
    for i:=1 to n do
    begin
    writeln;
    for j:=1 to n do
    write(x[i,j]:2);
    end;
    c:=readkey;
    until c<>#27;
    close(f);
    end.

    A feladat szovege a kovetkezo:
  • ibrik
    #121
    Pl.: http://peter.verhas.com/perlh/oo.html
  • Ackro
    #120
    a prog.hu-n nézz körül ezügyben, az objektumorientált meg olyan mint az elemes bútor vagy a puzzle.
  • Aquli
    #119
    Hello!
    Elég kezdő vagyok, pascallal foglalkozok. Tudtok valahol az interneten fellelhető programozási gyakorlófeladatokat? Nem túl nehezekre gondoltam, az emelt szintű érettségire akarok felkészülni, mert a tanárom egyáltalán nem tanít programozást.

    A másik kérdésem meg: Valaki össze tudná foglalni, hogy kb. mit jelent az, hogy egy programozási nyelv, vagy a programozás objektum-orientált?
    Előre is köszi!
    Márk
  • Frozen Whispers
    #118
    htx. Most már jó :)
  • Zsoldos
    #117
    Random szamgeneratort keresek C++ -hoz, tud valaki? Tudomanyos celra kene, szoval valami hasznalhatot, nem olyan kezdetleges vackot, mint a beepitett rand, annak tul keves a koze a veletlenhez..
  • PetruZ
    #116
    Nem, a begin-ek száma jó (ami duplázottnak tűnik, az a belső for-hoz tartozik).
    Az első pirosnak az a baja, hogy nincs ilyen változó, de nem is lehet, mivel ez belső függvény neve (min() függvény). Ez a köv. sorban is igaz lesz.
    A másodiknak meg az, hogy az előtte lévő sornak nincs lezáró pontosvesszője.
  • blackgamer
    #115
    szintaktikai hiba?! két begin, és nincs pontosvessző
  • Frozen Whispers
    #114
    Feladat: Töltsünk fel egy n elemű tömböt véletlenszerűen számokkal, és rendezzük sorba őket.

    const n=10;
    type tomb=array[1..n] of integer;
    var t:tomb;

    procedure feltoltes(var t1:tomb);
    var i:integer;

    begin
    for i:=1 to n do
    t1[i ]:=random(100);

    end;

    procedure kiiratas(t2:tomb);
    var i:integer;

    begin
    for i:=1 to n do
    write(t2[i ]:4);
    writeln;
    end;

    procedure rendezes(var t3:tomb);
    var i,j,seged:integer;

    begin
    randomize;
    for i:=1 to n-1 do
    for j:=i+1 to n do

    begin
    min:=1;
    if t3[i ]<t3[j] then min:=1;

    seged:=t3[i ];
    t3[i ]:=t3[j];
    t3[j]:=seged
    end;
    end;

    begin
    feltoltes(t);
    kiiratas(t);
    rendezes(t);
    kiiratas(t)
    readln;

    end.

    amit pirossal írtam, azzal problémázik. :S Mit rontottam el?
  • PetruZ
    #113
    Van egy külön Delphi topik, majd oda várjuk. :)
  • Ackro
    #112
    köszi, gondoltam, hogy van rá 1xűbb megoldás! majd megmutatom azt, amit én csináltam... csak most nincs nálam a forrás. ezt meg megtekintem. köszi mégegyszer.
  • PetruZ
    #111
    Csak kiegészítés: természetesen a függvény "párja", a TextHeight() is létezik, ugyanígy.
  • PetruZ
    #110
    Van erre egy TCanvas függvény, aminek az a neve, hogy TextWidth. Pl. Form1.Canvas.TextWidth('teszt szöveg yól :) '); -> a Canvas.Font-ban megadott font alapján, a Canvas.Pen (meg a többi) formázással a szöveg szélessége pixelben.
  • Zsoldos
    #109
    A karakterek hogyhogy nem fix meretuek? Van koztuk unicode vegyesen?
  • Ackro
    #108
    adott egy stringgrid, két oszloppal. írjunk programot arra, hogy a stringgridbe külső állományból töltött szöveg leghosszabb sorához alkalmazkodjon a stringgrid adott oszlopa. (azaz a cellaszélesség akkora legyen, hogy a leghosszabb sor is teljes hosszában látszódjon).
    ez egy saját kedvemre írt szótárprogram írása során merült fel és emléxem, hogy sokáig agyaltam, mire megfejtettem (lévén, hogy nem fix méretűek a karakterek), de ti biztos tudtok rá egysoros megoldást is, én kapálva oldottam meg brut force módszerrel. (delphiben)
  • ffxi
    #107
    THX!!!!
  • Admiral
    #106
    Ahol be akarsz olvastatni egy entert, oda ezt beilleszted:

    char ch2;
    do
    {
    ch2 = getch();
    if (ch2 == 0)
    getch();
    } while (ch2 != 13);

  • ffxi
    #105
    .....Enter (leütésével) végjelig! Ez áll egyik feladat végén, azt hogy kell? Tudom, hogy a kódja 13. Próbáltam getche(13), de így sem fogadja el. Köszi!! Ja, C++
  • Admiral
    #104
    "Olvassunk be 5 db pozitív egyjegyű számot a billentyűzetről! Ellenőrizzük,
    hogy csak pozitív egyjegyű számot fogadjunk el! Ha hibás számot ad meg, kérjük be újra!"

    Erre a megoldás:


    #include <conio.h>
    #include <stdio.h>

    int main( void)
    {
    int i;
    char ch;

    for (i = 0; i < 5; i++)
    {
    do
    {
    ch = getch();
    if (ch == 0)
    getch();
    }
    while ( ! ( ( (int)ch >= (int)'0') && ( (int)ch <= (int)'9') ));
    printf( "%d \n", (int)ch - (int)'0');
    }

    return 0;
    }


  • blackgamer
    #103
    nem vagyok nagy bűvész C-ben, de létezik olyan, hogy formázott adatbevitel és -kivitel
    szerintem a tanárod erre akart rávezetni, nézz utána könyvben

    pl. a következő sor egy 1 jegyű pozitív egész számot olvas be (persze user könnyen hülyítheti meg pl. karaktet ír, de biztos van rá valami egyszerű trükk)

    int a;
    scanf("%1d",&a);

    és így egy határozott menetszámú (for) ciklusba is teheted
  • ffxi
    #102
    "Olvassunk be 5 db pozitív egyjegyű számot a billentyűzetről! Ellenőrizzük,
    hogy csak pozitív egyjegyű számot fogadjunk el! Ha hibás számot ad meg, kérjük be újra! A program végén, írjuk ki hány számot olvastunk be összesen!"

    Ciklussal bekérem a számokat, de hogyan ellenőrizzem a ciklusan belül milyen az adott szám? if-el? if(szam>9&&szam<=0) és utána a újrakérés jön? Az meg hogy kell? Még egy ciklussal? De akkor minek az if? Mi az a végén a feladatban, hogy írjuk ki hány számot olvastunk be? Hát nem 5db-ot? HELP+THX

    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<math.h>
    void main (void)
    {
    clrscr();
    int db=0,szam
    printf("\n5db egyjegyu pozitiv számot kérek!");
    do
    {
    printf("\nKérem a számot: ");
    scanf("%d",&szam);
    db++;
    if(szam<=0&&szam>9)
    {
    }
    }
    while(db!=5);
    printf("\n%ddb olvastunk",db);
    getch();
    }
  • DirtyPio
    #101
    kosz.
  • blackgamer
    #100
    int valami;
    scanf("%d",&valami);

    vagy

    getch();

    bill. leütésre vár, persze ez Dos-os, lehet máshol másmilyen
  • DirtyPio
    #99
    nem tudom, hogy hogy mukodik a c, de nincs neki valami olyasmije, mint a pascalnak a readln, hogy meg tudjam nezni, hogy mit ir ki? Mert lefut a prog, asszem, de az a helyzet, hogy olyan mintha pascalba nem tennek readln-t.