Program v C

Sekcia: Programovanie 30.07.2007 | 21:37
Avatar stanley666 Mandriva 2010.2 (Free)  Používateľ
ahojte...viem trosku programovat v C, nie C++....to je trosku rozdielne a nejak nie a nie to chapat..(asi preto som si aj horko tazko poradil s C#)...chcel by som urobit program ktory precita 2x 6 cisel ktore zadam od 1 po 49 vratane a porovna ich so skupinou 10x 6 cisel od 1 po 49, ktore by mohli byt uz nadefinovane v subore...mozno ste vam doslo, ze ide o cisla z lota..ano dost casto podavam loto 10 tipov. cize by som cchel zadat 1. tah a 2. tah a ono by to porovnalo s tipmy nadefinovanymi v subore..vysletok by bol asi
1. tah
v tipe 1 su 2 spravne cisla
v tipe 2 su 0 spravne cisla

2. tah
v tipe 1 su 3 spravne cisla
v tipe 6 su 0 spravne cisla

vie niekto poradit? alebo sa podielat na vyvoji tohto programu???viem jeho vyuzitie je len jednosmerne..no ja osobne som uz urobil par programov, len to bolo este za cias windowsu...v linuxe by to slo tiez...len mam problem nadefinovat to aby mi rozlisoval a porovnaval 1. aj 2. tah so vsetkymi 10 tipmi po jednom a vyhodil vysledky...
DAKUJEM
I love Linux and I hate Windows..:-)) ICQ: 465-752-783
    • Re: Program v C 30.07.2007 | 21:54
      Avatar Miroslav Bendík Gentoo  Administrátor
      No s načítaním nepredpokladám, že by bol problém. Takže stačí len každé číslo porovnať so skupinou čísel a ak sa zhoduje stačí pocet_spravnych++.
      • Re: Program v C 30.07.2007 | 21:59
        Avatar stanley666 Mandriva 2010.2 (Free)  Používateľ
        hmmm...beriem spat...neviem nic v C..:-))))
        I love Linux and I hate Windows..:-)) ICQ: 465-752-783
      • Re: Program v C 30.07.2007 | 22:00
        Avatar stanley666 Mandriva 2010.2 (Free)  Používateľ
        ok..ale ako zabezpecim aby program 6 cisel po jednom porovnaval s kazdym cislom v prvom riadku, druhom riadku....10 riadku textoveho suboru???da sa to vobec?
        I love Linux and I hate Windows..:-)) ICQ: 465-752-783
        • Re: Program v C 30.07.2007 | 22:15
          Avatar Miroslav Bendík Gentoo  Administrátor
          No, akože v súbore by som to nenechával. Stačí načítať do neakej premennej napr.
          int i;
          int cisla[6];
          for ( i = 0; i < 6; i++ )
          {
            // nacitame z fajlu
            fscanf( fp, "%d", cisla+i );
          }
          
          Takto načítame všetko čo potrebujeme (samozrejme toto je skrátená verzia, ešte treba kontrolovať správnosť údajov, prípadne či sme sa nedostali na koniec fajlu). No a to porovnávanie je totálne easy.
          • Re: Program v C 30.07.2007 | 22:28
            Avatar stanley666 Mandriva 2010.2 (Free)  Používateľ
            no uz mi to nejak dochazda...toto bol moj prvy pokus...este vo win...dost chaby...akurat som ho prezrel...zrejme som vtedy chcel, aby sa vsetky cisla nacitali do dvoch suborov a subory sa navzajom porovnavali.....a vlastne tu som skoncil...postup na porovnavanie nejak neovladam....


            #include <stdio.h>
            #include <stdlib.h>



            int main(int argc, char *argv[])

            {

            FILE *fw, *fr;
            int c;

            printf("\t\t\t\t\tLoto\n");
            printf("\t\t\t\t Vyzrebovane cisla\n\n");

            /*zadanie vyzrebovanych cisel*/

            fw = fopen("1.tah.txt", "w");
            printf("Zadajte cisla 1. tahu : ");

            while ((c = getchar()) != '\n')

            putc(c, fw);
            putc(c, fw);
            fclose(fw);

            fw = fopen("2.tah.txt", "w");

            printf("Zadajte cisla 2. tahu : ");

            while ((c = getchar()) != '\n')

            putc(c, fw);
            putc(c, fw);
            fclose(fw);

            fw = fopen("Joker.txt", "w");

            printf("Sestcislie Joker : ");

            while ((c = getchar()) != '\n')

            putc(c, fw);
            putc(c, fw);
            fclose(fw);

            /*zadanie podanych cisel*/


            printf("\t\t\t\t Podane cisla\n\n");

            fw = fopen("Podane.txt", "w");

            printf("1. tip : ");
            while ((c = getchar()) != '\n')
            putc(c, fw);

            printf("2. tip : ");
            while ((c = getchar()) != '\n')
            putc(c, fw);

            printf("3. tip : ");
            while ((c = getchar()) != '\n')
            putc(c, fw);

            printf("4. tip : ");
            while ((c = getchar()) != '\n')
            putc(c, fw);

            printf("5. tip : ");
            while ((c = getchar()) != '\n')
            putc(c, fw);

            printf("6. tip : ");
            while ((c = getchar()) != '\n')
            putc(c, fw);

            printf("7. tip : ");
            while ((c = getchar()) != '\n')
            putc(c, fw);

            printf("8. tip : ");
            while ((c = getchar()) != '\n')
            putc(c, fw);

            printf("Joker : ");

            while ((c = getchar()) != '\n')
            putc(c, fw);
            fclose(fw);



            getchar();
            getchar();

            }

            I love Linux and I hate Windows..:-)) ICQ: 465-752-783
            • Re: Program v C 30.07.2007 | 22:33
              Avatar Miroslav Bendík Gentoo  Administrátor
              No odporúčam použiť cyklus ;). Čo sa týka C nie je to moc vhodný jazyk pre začiatočníkov. Odporúčam začať s pascalom (i keď linuxáci ma asi zabijú :D ). Freepascal má dokonca pod linuxom podobné IDE ako turbo / borland pascal pod dosom (i keď nie moc kvalitné).
              • Re: Program v C 31.07.2007 | 01:49
                Avatar Samuel BWPOW Kupka Almalinux, OpenWRT  Používateľ
                kill -9 `ps aux | grep "Miroslav Bendik" | awk '{print $2}'`
                Inak podla mna sa da zacat aj priamo s C. Sam som prikladom, ked som zacinal rovno s C ked som mal asi 8 rokov. Len na to treba trochu viac dumania a studovania na uvod, kym sa cloveku podari naprogramovat nieco zmysluplne a funkcne. Ale ten vysledok a dobry pocit za to urcite stoji :)
                Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
    • Re: Program v C 31.07.2007 | 15:00
      Avatar Misko Kripel slackware  Používateľ
      Sice to nie je v C ale v bashi ale mozno sa ti to bude pacit:
      #!/bin/bash
      # this software is distributed under GNU GPL licence version 3
      echo "Zadajte 6 vylosovanych cisel (1. tah) oddelte ich medzerou): ":
      read PRVY
      echo "Zadajte 6 vylosovanych cisel (2. tah) oddelte ich medzerou): ":
      read DRUHY
      cat sportka.dat | \
      (while read TIP; do
        #echo "tip=$TIP"
        ZHODA1=0
        ZHODA2=0
        for I in $TIP; do
              for J in $PRVY; do
                [ "$I" = "$J" ] && ZHODA1=`echo $ZHODA1 + 1 | bc`
              done
              for J in $DRUHY; do
                [ "$I" = "$J" ] && ZHODA2=`echo $ZHODA2 + 1 | bc`
              done
        done
        echo "Tip '$TIP' uhadol $ZHODA1 cisel v prvom tahu a $ZHODA2 cisel v druhom tahu"
      done)
      

      Tvoje tikety umiestni do suboru "sportka.dat" v takejto forme (na konci posledneho riadku musi byt koniec riadku, cize posledny riadok musi byt prazdny):
      11 12 23 47 48 49
      4 7 11 22 33 44
      6 18 12 42 43 44
      
      asdf
      • Re: Program v C 03.08.2007 | 22:04
        Avatar stanley666 Mandriva 2010.2 (Free)  Používateľ
        waw...super...nevies...o nejakej literature k programov v bash?
        I love Linux and I hate Windows..:-)) ICQ: 465-752-783
        • Re: Program v C 04.08.2007 | 06:45
          Avatar partizan Arch  Používateľ
          http://docs.linux.cz/programming/interpreted/bashdoc-1.4/
          http://docs.linux.cz/linux/LDP/Bash-Beginners-Guide/
          http://docs.linux.cz/linux/LDP/abs-guide/
          http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
          http://blackhole.sk/node/642
          http://kamco.gjgt.sk/navody/bash/kap01.html
          a v neposlednom rade: man bash
          Arch & Metal
          • Re: Program v C 04.08.2007 | 18:49
            Avatar stanley666 Mandriva 2010.2 (Free)  Používateľ
            dikes
            I love Linux and I hate Windows..:-)) ICQ: 465-752-783