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

> Komentarze :: Poradna morsova abeceda problem

morsova abeceda problem 4.12.2006 19:26
Jakub Dubovsky

Dobry den,nemohli byste mi poradit mame zadani
Zadání
Napište funkci v jazyce C, která překóduje vstupní řetězec z Morseovy abecedy do běžné abecedy. Morseova abeceda je zadávána znaky '.' a '-'. Libovolný jiný znak ve vstupním řetězci, nebo konec řetězce, ukončuje znak Morseovy abecedy. Funkce musí rozpoznávat všechny znaky anglické abecedy (a-z), číslice (0-9) a vracet hodnotu -1, jestliže zadaný kód neodpovídá žádnému znaku ani číslici.

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
char Morse_to_latin(char *);

Argumentem funkce je vstupní řetězec v Morseově abecedě
Funkce vrací první nalezený znak (malá písmena, nebo číslice) běžné abecedy
Příklad
Morse_to_latin("--.-"); vrací znak 'q'

Morse_to_latin("--.-/.-"); vrací znak 'q'

napsal sem tenhle program:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char Morse_to_latin(char *retez )
{
char znak = -1;
char pole[64];
int skip = 0;
int index = 1, i = 0;
do
{
for(i = 0; i != 64; i++)
pole[i] = 0;
pole[0]=-1;pole[1]=-1;


pole[2]='t';pole[3]='e';

pole[4]='m';pole[5]='n';pole[6]='a';pole[7]='i';

pole[8]='o';pole[9]='g';pole[10]='k';pole[11]='d';pole[12]='w';pole[13]='r';
pole[14]='u';pole[15]='s';

pole[18]='q';pole[19]='z';pole[20]='y';pole[21]='c';pole[22]='x';pole[23]='b';
pole[24]='j';pole[25]='p';pole[27]='l';pole[29]='f';pole[30]='v';pole[31]='h';

pole[32]='0';pole[33]='9';pole[35]='8';pole[39]='7';pole[47]='6';
pole[48]='1';pole[56]='2';pole[60]='3';pole[62]='4';pole[63]='5';

if(!retez)
break;


for(i = 0; i!=5; i++)
{

switch(retez[i])
{
case '-':
if(pole[index])
znak = pole[index];
index = 2 * index;
break;

case '.':
if(pole[index])
znak = pole[index];
index = 2 * index + 1;
break;

default:
skip = 1;
break;
}
if(skip)
break;
}

if(pole[index])
znak = pole[index];

} while(2==3);
return znak;
}
int main(int argc, char* argv[])
{
char znak = ' ';
char *retezec = "-.--";
znak = Morse_to_latin(retezec);
system ("PAUSE");
return 0;
}

vsechno se prelozi ale u vypisu z vystupu mi to hazi nejaky chybi v protokolu,nevyhodnoti mi to nejaky ty prvky spravne a nevim proc,uz sem se radil i s kamaradem a ten taky envim proc

Re: morsova abeceda problem 4.12.2006 19:44
Ondřej Čečák

Na jaky predmet s jakym vyucujicim a na jake skole to je?

Tak si rikam, ze bych podobny ukol resil tak, ze bych projel retezec od zacatku do konce a jednotlive skupiny znaku porovnaval s tabulkou (pokud se ted neprojevuje ma absence na skautskych taborech a jednotlive znaky nejsou zakodovany v nejakem matematicky odvoditelnem poradi).

Re: morsova abeceda problem 4.12.2006 19:58
Ondřej Čečák

(pokud se ted neprojevuje ma absence na skautskych taborech a jednotlive znaky nejsou zakodovany v nejakem matematicky odvoditelnem poradi)

Ha, bohuzel projevuje. :)

Re: morsova abeceda problem 4.12.2006 20:01
Jakub Dubovsky

no je to programovani,na MU

Ja sem pouzil tohle tohle reseni z http://cs.wikipedia.org/wiki/Morseova_abeceda z te tabulky, jak se da prekladat morseovka. Tu tabulku sem prepsal do pole,za pomoci binarniho stromu.

Re: morsova abeceda problem 4.12.2006 20:04
Jakub Dubovsky

teda UP:-)

Re: morsova abeceda problem 4.12.2006 20:09
Aleš Hakl

Ja si myslim, ze by jste lepe udelal, kdyby jste tam mel primo ten binarni strom jako strom nejakych structu, ale to je detail. Pak me neni jasny smysl onoho do {} while(2==3) a zpusobu jak incializujete to pole, ale to je take vice ci mene detail.

Ovsem opravdovy problem bych videl napriklad v tom, ze to nedetekuje vsechny neplatne znaky v morseove abecede (napriklad takove, ktere jsou vice nez 6 symbolu dlouhe a zacinaji nejakym platnym, coz jsou, pokud me neklamou me znalosti morzeovky snad vsechny mozne znaky delsi nez 6 symbolu :)).

Re: morsova abeceda problem 4.12.2006 20:26
Jakub Dubovsky

Takze myslite ze je chyba v tom


KOMENTARZE
morsova abeceda problem 4.12.2006 19:26 Jakub Dubovsky
  L Re: morsova abeceda problem 4.12.2006 19:44 Ondřej Čečák
    |- Re: morsova abeceda problem 4.12.2006 19:58 Ondřej Čečák
    L Re: morsova abeceda problem 4.12.2006 20:01 Jakub Dubovsky
      |- Re: morsova abeceda problem 4.12.2006 20:04 Jakub Dubovsky
      L Re: morsova abeceda problem 4.12.2006 20:09 Aleš Hakl
        L Re: morsova abeceda problem 4.12.2006 20:26 Jakub Dubovsky
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4875x
2. FreeBSD
Download: 9063x
3. PCLinuxOS-2010
Download: 8561x
4. alcolix
Download: 10943x
5. Onebase Linux
Download: 9659x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6240x

1. xinetd
Download: 2411x
2. RDGS
Download: 937x
3. spkg
Download: 4755x
4. LinPacker
Download: 9961x
5. VFU File Manager
Download: 3196x
6. LeftHand Mała Księgowość
Download: 7201x
7. MISU pyFotoResize
Download: 2806x
8. Lefthand CRM
Download: 3561x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 3117x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz