| 
		
						
			
			
	
				 | 
			
		
		
			
		
  
		| 
 
 
	
	
 
 
   
        
        
             
        
        
        | 
	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: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
 
         | 
  
 
   | 
     
    
   
    Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
   
  
   | 
  
 
 | 
	
	 
	Szukanie oprogramowania
					  
		
 
				 | 
			
			
				
					©Pavel Kysilka - 2003-2025 | 
					mail linuxsoft.cz | Design: 
					www.megadesign.cz
					
				 |