LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Komentarze :: Poradna program v c

program v c 18.11.2006 09:51
Tomáš Eichler

Potreboval bych poradit s jednim programem,nevim si snim rady,nemohl by mi nekdo trochu pomoct,predem dekuji,a tady je to zadani:
ma se to delat pomoci pointru


Napište funkci v jazyce C, která překóduje vstupní řetězec za pomocí zadaného klíče XOR-šifrou. V této šifře je každý jednotlivý znak zakódován pomocí logické funkce XOR (nonekvivalence) s odpovídajícím jedním znakem klíče. V případě, že je klíč kratší než samotná zpráva, použijte jej opakovaně od začátku.

Odevzdávejte soubor obsahující výhradně definici jediné funkce pojmenované a deklarované dle zadání. Soubor nesmí obsahovat žádné dodatečné definice typů, direktivy preprocesoru apod.

Deklarace funkce
void XOR_sifra(char *, char *);

Prvním argumentem funkce je vstupní řetězec, druhým klíč.
Funkce přepisuje vstupní řetězec jeho kódovaným ekvivalentem
Příklad
char *r="AHOJ";

XOR_sifra(r,"x");
printf("%s",r);
Výstupem této části programu bude řetězec "9072".

Re: program v c 18.11.2006 09:56
Tomáš Eichler

kdyby aspon ted zacatek,to je vzdy nejhorsi,pak bych to uz mohl zmaknout

Re: program v c 18.11.2006 10:28
Ondřej Čečák

Nejsou semestralky take o tom, aby vas naucily resit problemy samostatne? :)

Re: program v c 18.11.2006 11:05
Tomáš Eichler

to jsou,ale kazdej moudrej z nebe nespadl,coz se o mé skupině dá říct

Re: program v c 18.11.2006 11:47
Ondřej Čečák

Ja myslim, ze zadani je srozumitelne ... proste vezmete znaky a pouzijte na ne XOR, to vsechno C umi. ;)

Re: program v c 20.11.2006 00:03
Jan Němec

Před položením dotazu typu: "Mohl by za mě někdo udělat domácí úkol" bych se tu teda nejdřív porozhlídnul. V jednom dílu seriálu o C/C++ jsem ten váš úkol skoro napsal:
http://www.linuxsoft.cz/article.php?id_article=741 Pokud si to nedokážete upravit, tak teda pozdravpánbu...

Re: program v c 20.11.2006 18:23
Tomáš Eichler

Ja uz sem něco vymyslel,funguje mi to,ale stejně když to chci odeslat na stránky,tak mi to píše že to njede přeložit což nechápu,když mi to funguje:

#include <stdio.h>

void XOR_sifra (char* retezec, char* klic)
{
char* zacatek_klice = klic;
while (*retezec != 0)
{
*retezec ^= *klic;
++retezec;
if (*klic == 0)
klic = zacatek_klice;
else
++klic;
}
}



int main ()
{
char pokus[] = "AHOJ";
XOR_sifra(pokus,"x");
printf("%s",pokus);

}


tadyk je ten protokol to nechápu:

Protokol
auto_check
test.c: In function 'main':
test.c:24: warning: implicit declaration of function 'printf'
test.c:24: warning: incompatible implicit declaration of built-in function 'printf'
test.c:26: warning: control reaches end of non-void function
test.c: At top level:
test.c:47: error: redefinition of 'main'
test.c:21: error: previous definition of 'main' was here
--- gcc-4.0 --- ! Chyba
test.c: In function `main':
test.c:24: warning: implicit declaration of function `printf'
test.c:26: warning: control reaches end of non-void function
In file included from test.c:43:
/usr/include/stdio.h: At top level:
/usr/include/stdio.h:327: warning: type mismatch with previous implicit declaration
test.c:24: warning: previous implicit declaration of `printf'
test.c:47: redefinition of `main'
test.c:21: `main' previously defined here
--- gcc-2.95 --- ! Chyba

Re: program v c 21.11.2006 17:30
Petr Zajíc

Co třeba přeložit si ty chyby do češtiny a přečíst si je? To by nepomohlo?

Re: program v c 21.11.2006 19:22
Jan Němec

No asi nepomohlo, protoze (jetli jsem tomu rozumnel) tak on to zadava nekam na stranky, kde se to s necim slinkuje, co uz obsahuje main. Takze proto ta chyba s dvojim mainem. Ta neznama printf je asi taky dusledkem toho, ze se to nekde nejak divne sestavuje a #include se zrejme ignoruje. A navic to ma blbe napsane, protoze xoruje i s ukoncovaci nulou klice.

Re: program v c 21.11.2006 21:30
Petr Zajíc

njn. Naštěstí tomu nerozumí, a tak mu to asi nebude vadit ;-) Pokud to dal do dvou tří fór tak už z toho něco splácá.

Re: program v c 21.11.2006 21:37
Tomáš Eichler

Jj máte pravdu zadávám to na stránky,tam se to slinkuje.Uz sem se to dozvedel,tam stacilo poslat jen tu funkci i bez teho #include,takže už to funguje a je to i přeloženy.Chyba tam byla to mate pravdu,pak sem na to přišel,nakonec stačilo poslat tohle

void XOR_sifra (char* retezec, char* klic)
{
char* zacatek_klice = klic;
while (*retezec != 0)
{
*retezec ^= *klic;
++retezec;
if (*(klic+1) == 0)
klic = zacatek_klice;
else
++klic;
}
}
ted si lamu hlavu na dalsi ulohou,neco s morseovou abecedou:-)


KOMENTARZE
program v c 18.11.2006 09:51 Tomáš Eichler
  |- Re: program v c 18.11.2006 09:56 Tomáš Eichler
  | L Re: program v c 18.11.2006 10:28 Ondřej Čečák
  |   L Re: program v c 18.11.2006 11:05 Tomáš Eichler
  |     L Re: program v c 18.11.2006 11:47 Ondřej Čečák
  L Re: program v c 20.11.2006 00:03 Jan Němec
    L Re: program v c 20.11.2006 18:23 Tomáš Eichler
      L Re: program v c 21.11.2006 17:30 Petr Zajíc
        L Re: program v c 21.11.2006 19:22 Jan Němec
          |- Re: program v c 21.11.2006 21:30 Petr Zajíc
          L Re: program v c 21.11.2006 21:37 Tomáš Eichler
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4850x
2. FreeBSD
Download: 9044x
3. PCLinuxOS-2010
Download: 8541x
4. alcolix
Download: 10916x
5. Onebase Linux
Download: 9631x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6219x

1. xinetd
Download: 2382x
2. RDGS
Download: 937x
3. spkg
Download: 4692x
4. LinPacker
Download: 9918x
5. VFU File Manager
Download: 3173x
6. LeftHand Mała Księgowość
Download: 7171x
7. MISU pyFotoResize
Download: 2775x
8. Lefthand CRM
Download: 3540x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 3089x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz