Anonymní profil Bery – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Bery – Programujte.comAnonymní profil Bery – Programujte.com

 

Příspěvky odeslané z IP adresy 178.216.151.–

Bery
C / C++ › Hledání slov v matici
22. 5. 2015   #202369

#3 PiranhaGreg
Dobrá, jeden směr vypadá například takhle ale ani tak to ty slova nemůže najít

for(j=0;j<Rad;j++){				
for(k=0;k<Slp;k++){
//vodorovný směr ---->
p = 0;			//představuje nalezená písmena
  if(((mat[j][k]==Slova[i].slovo[0]) || ((mat[j][k] - 'A' + 'a') == Slova[i].slovo[0])) && Slp - k >= poc_p){
    p = 1;
for(l=1;l<poc_p - 1 ;l++){ 
if(mat[j][k+l] == Slova[i].slovo[l] || (mat[j][k+l] - 'A' + 'a') ==  Slova[i].slovo[l])
    p = p + 1;}
if( p = poc_p){
for(l=0;l<poc_p;l++)
    mat[j][k+l] = mat[j][k+l] - 'A' + 'a' ;}
if( p = poc_p)
    goto nalezeno;}

Bery
C / C++ › Hledání slov v matici
22. 5. 2015   #202367

tak jinak, vyřešil jsem hledání následovně ale stále mi při výpisu malých písmen vyhodí error, konkrétně 

(unsigned)(c+1) <=256 , netuší někdo čím by to mohlo být ? 

{
	for(i=0;i<Pocet;i++){
		poc_p = strlen(Slova[i].slovo);

		for(j=0;j<Rad;j++){				
			for(k=0;k<Slp;k++){
//vodorovný směr ---->
				p = 0;					 //představuje nalezená písmena
				if(((mat[j][k]==Slova[i].slovo[0]) || ((mat[j][k] - 'A' + 'a') == Slova[i].slovo[0])) && Slp - k >= poc_p){
					p = 1;
					for(l=1;l<poc_p - 1 ;l++){ 
						if(mat[j][k+l] == Slova[i].slovo[l] || (mat[j][k+l] - 'A' + 'a') == Slova[i].slovo[l])
						p = p + 1;
					}
					if( p = poc_p){
						for(l=0;l<poc_p;l++)
							mat[j][k+l] = mat[j][k+l] - 'A' + 'a' ;}
					if( p = poc_p)
						goto nalezeno;}
//vodorovný směr <----
				if(((mat[j][k] == Slova [i].slovo[0]) || ((mat[j][k] + 'A' - 'a') == Slova[i].slovo[0])) && Slp - k >= poc_p){
					p = 1;
					for(l=1;l<poc_p - 1 ;l++){
						if(mat[j][k-l] == Slova[i].slovo[l] || (mat[j][k+l] - 'a' + 'A') == Slova[i].slovo[l])
						p = p + 1;
					}
					if ( p == poc_p)
						for(l=0;l<poc_p;l++)
							mat[j][k-l] = mat[j][k-l] - 'A' + 'a' ;
					if ( p == poc_p)
						goto nalezeno;}

//směr dolů  		
					p = 0;
				if(((mat[j][k]==Slova[i].slovo[0]) || ((mat[j][k] - 'A' + 'a') == Slova[i].slovo[0])) && Rad - k >= poc_p){
					p = 1;
					for(l=1;l<poc_p - 1 ;l++){ 
						if(mat[j+l][k] == Slova[i].slovo[l] || (mat[j+l][k] - 'A' + 'a') == Slova[i].slovo[l])
						p = p + 1;
					}
					if( p = poc_p){
						for(l=0;l<poc_p;l++)
							mat[j+l][k] = mat[j+l][k] - 'A' + 'a' ;}
					if( p = poc_p)
						goto nalezeno;}

//směr nahoru	
					p = 0;
				if(((mat[j][k] == Slova [i].slovo[0]) || ((mat[j][k] + 'A' - 'a') == Slova[i].slovo[0])) && Rad - k >= poc_p){
					p = 1;
					for(l=1;l<poc_p - 1 ;l++){
						if(mat[j-l][k] == Slova[i].slovo[l] || (mat[j-l][k] - 'a' + 'A') == Slova[i].slovo[l])
						p = p + 1;
					}
					if ( p == poc_p)
						for(l=0;l<poc_p;l++)
							mat[j-l][k] = mat[j-l][k] - 'A' + 'a' ;
					if ( p == poc_p)
						goto nalezeno;}

//šímký směr zleva dolů doprava
				p = 0;					 
				if(((mat[j][k]==Slova[i].slovo[0]) || ((mat[j][k] - 'A' + 'a') == Slova[i].slovo[0])) && Rad - k >= poc_p ){
					p = 1;
					for(l=1;l<poc_p - 1 ;l++){ 
						if(mat[j+l][k+l] == Slova[i].slovo[l] || (mat[j+l][k+l] - 'A' + 'a') == Slova[i].slovo[l])
						p = p + 1;
					}
					if( p = poc_p){
						for(l=0;l<poc_p;l++)
							mat[j+l][k+l] = mat[j+l][k+l] - 'A' + 'a' ;}
					if( p = poc_p)
						goto nalezeno;}

//šikmý směr zprava dolů doleva
				p=0;
				if(((mat[j][k] == Slova [i].slovo[0]) || ((mat[j][k] + 'A' - 'a') == Slova[i].slovo[0])) && Slp - k >= poc_p){
					p = 1;
					for(l=1;l<poc_p - 1 ;l++){
						if(mat[j+l][k-l] == Slova[i].slovo[l] || (mat[j+l][k+l] - 'a' + 'A') == Slova[i].slovo[l])
						p = p + 1;
					}
					if ( p == poc_p)
						for(l=0;l<poc_p;l++)
							mat[j+l][k-l] = mat[j+l][k-l] - 'A' + 'a' ;
					if ( p == poc_p)
						goto nalezeno;}

//šikmý směr zleva nahoru doprava				
				p=0;
				if(((mat[j][k] == Slova [i].slovo[0]) || ((mat[j][k] + 'A' - 'a') == Slova[i].slovo[0])) && Rad - k >= poc_p){
					p = 1;
					for(l=1;l<poc_p - 1 ;l++){
						if(mat[j-l][k+l] == Slova[i].slovo[l] || (mat[j-l][k+l] - 'a' + 'A') == Slova[i].slovo[l])
						p = p + 1;
					}
					if ( p == poc_p)
						for(l=0;l<poc_p;l++)
							mat[j-l][k+l] = mat[j-l][k+1] - 'A' + 'a' ;
					if ( p == poc_p)
						goto nalezeno;}

//šikmý směr zprava nahoru doleva					
				p=0;
				if(((mat[j][k] == Slova [i].slovo[0]) || ((mat[j][k] + 'A' - 'a') == Slova[i].slovo[0])) && Rad - k >= poc_p){
					p = 1;
					for(l=1;l<poc_p - 1 ;l++){
						if(mat[j-l][k] == Slova[i].slovo[l] || (mat[j-l][k] - 'a' + 'A') == Slova[i].slovo[l])
						p = p + 1;
					}
					if ( p == poc_p)
						for(l=0;l<poc_p;l++)
							mat[j-l][k] = mat[j-l][k] - 'A' + 'a' ;
					if ( p == poc_p)
						goto nalezeno;}
				else {Slova[i].slovo == Nenalezeno[n].slovo;
						n++;}
}}

nalezeno:;
	}}
Bery
C / C++ › Hledání slov v matici
22. 5. 2015   #202364

Ahoj, dělám program na řešení osmisměrky a funkce mi není schopná najít hledané slovo a už vůbec není schopná převést velké písmeno na malé. Ať zkouším tolower nebo -'A' + 'a' stále vyhazuje nesmyslné znaky, nebyl by mi někdo schopen poradit nebo najít chybu ? Předem moc děkuji 

for(i=0;i<Pocet;i++){
poc_p = strlen(Slova[i].slovo);

for(j=0;j<Rad;j++){  //vodorovný směr ---->
for(k=0;k<Slp;k++){
p = 0;
if(((mat[j][k]==Slova[i].slovo[0]) || ((mat[j][k] - 'a' + 'A') 
==Slova[i].slovo[0])) && Slp - k >= poc_p){
	p = 1;
	for(l=1;l<poc_p - 1 ;l++){ 
		if(mat[j][k+l] == Slova[i].slovo[l] || (mat[j][k+l] - 'a' + 'A') == Slova[i].slovo[l])
		p = p + 1;
			}
	if( p == poc_p)
	for(l=0;l<poc_p;l++)
	mat[j][k+l] = mat[j][k+l] - 'A' + 'a' ;
Bery
C / C++ › Načítání slov ze souboru
22. 5. 2015   #202355

#6 KIIV
Nojooo, to jsem uplně přehlídl...nahrazením za i a j se to vyřešilo a už to funguje

Bery
C / C++ › Načítání slov ze souboru
22. 5. 2015   #202352

#3 PiranhaGregJsem začátečník, máme to C jen teď na škole a řeším závěrečný projekt. S těmi funkcemi co uvádíš ve zdrojovým kódu jsem se ještě nesetkal :(

Bery
C / C++ › Načítání slov ze souboru
22. 5. 2015   #202351

#3 PiranhaGreg
no mám tu ještě jeden problém, dělám program do školy k vyřešení osmisměrky a když načtu písmena osmisměrky tímto stylem po volání funkce pro zobrazení mi vypisuje pouze ĚĚĚĚĚĚĚ. Obsahuje diakritické znaky a nevím jestli to mám všechno odháčkovat a odčárkovat nebo na to použít nějakou funkci

bool Nacist(char *nazevDat, Matice mat, int Sloupce, int Radky)
{
    bool nacteni = false;
    char c;
    FILE *Soubor = fopen(nazevDat,"r");
        if(Soubor!=NULL){#3 PiranhaGreg

            nacteni = true;
            for(int i=0;i<Radky;i++){
            for(int j=0;j<Sloupce;j++){
                c = getc(Soubor);
                mat[Radky][Sloupce] = c;
            }}}
        else printf("Chyba nacteni souboru");
    fclose(Soubor);
    return nacteni;
}


Bery
C / C++ › Načítání slov ze souboru
22. 5. 2015   #202340

Ahoj, mám takový problém, potřebuji načíst z textového souboru seznam slov, se kterými poté dál budu pracovat (např. zjišťovat jejich délku atp.). Potřeboval bych radu, do jakého datového typu bych je měl nejlépe uložit abych měl později přístup k jednotlivým písmenům. A ještě dotaz jak je načíst ze soubory, když jsou vypsána pod sebou a mají každé jinou délku. Za každou radu předem moc a moc děkuji!

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý