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

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

 

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

Martin
C / C++ › easy program
8. 10. 2012   #164320

ahojte :) jsem v programovani uplna fish a tak se vas chci zeptat jak postupovat kdyz chci vyhledat v poli minimalni hodnutu a pak vypsat ze minimalni hodnota je v poli a6  :) 

Karel
C / C++ › Pomoc s převodem hash tab. z…
6. 5. 2011   #141633

Ahoj, mám vytvořenou hash tabulku která pracuje s řetězci char. Chci ji využít na výpočet entropie, tak že do ní budu vkládat slova ze souboru. Jelikože nejsem schopný do funkce Insert() dostat z toho dokumentu slovo jako char tak chci aspoň pomocí soubor.get() vkládat do insert znaky a vše co není znak by značilo konec slova. Takže bych dostal něco typu 979797 v ascii. Ale nevím si rady jak tu hash tabulku upravit aby přijímala int. Přepsat char na int nestačí :D :D napíše to: 'InsertHash' : cannot convert parameter 1 from 'const char [10]' to 'int *'

#include <stdio.h>

#include <string.h>
#include "list"
#include <stdlib.h>

class List
{
private:
struct ListItems
{
char* data;
ListItems* next;
ListItems* prev;
};
ListItems* head;

public:
List();
bool Search(char* x);
void Insert(char* x);
};

List::List()
{
head = NULL;
}

bool List::Search(char *x)
{
ListItems* p;
for (p = head; p != NULL; p = p->next)
if (p->data == x)
return true;

return false;
}

void List::Insert(char *x)
{
ListItems* p;
p = new ListItems;
p->data = x;
p->next = head;
if (head != NULL)
head->prev = p;
head = p;
p->prev = NULL;
}

/*
Ukazka, jak implementovat hashovani se separatnim retezenim
Program k clanku pro Linuxsoft
Autor: Petr Sklenicka
*/

int Hash(char* data);
void InsertHash(char* data);
bool SearchHash(char* data);

const int n = 50; // velikost tabulky
List HashTable[n]; // hashovaci tabulka

int main()
{
// ukazka ulozeni a nasledneho vyhledani zaznamu


InsertHash("some test");
bool p = SearchHash("some test");
p == true ? printf("Nalezeno\n") : printf("Nenalezeno\n");

return 0;
}

int Hash(char* data)
{
int i, hashKey;

for (int i = hashKey = 0; i < 10; i++)
hashKey = (3 * hashKey + data[i]) % n;

return hashKey;
}

void InsertHash(char* data)
{
int hashKey = Hash(data);
HashTable[hashKey].Insert(data);
}

bool SearchHash(char* data)

{
int hashKey = Hash(data);
return HashTable[hashKey].Search(data);
}


bon0010
C / C++ › C++ eratosthenovo síto kontr…
21. 11. 2010   #136129

No teď jsem se dočetl, že si mám dopředu nadeklarovat pole int čísel delky 32 768 a při vlastním vypočtu si jen pamatovat do jaké hodnoty prvočísla počítáme, třeba do 100, jak by se to provedlo?

bon0010
C / C++ › C++ eratosthenovo síto kontr…
21. 11. 2010   #136126

To KIIV : Jsem si vědom toho že jsem tam nasekal spoustu chyb právě proto se ptám jak to opravit. Hlavně mi šlo o to jestli jsem vůbec splnil podmínku že se mi ty výsledky ukládají jako jednotlivé bity.

bon0010
C / C++ › C++ eratosthenovo síto kontr…
21. 11. 2010   #136123

Ahoj, chtěl bych se zeptat jestli by mi tady nějaký schopný programátor zkontroloval můj kod. Měli jsme za ukol vytvorit eratosthenovo síto s podmínkou zachytit čísla ze spracovávané posloupnosti jako jednotlivé bity v čísle např. typu int. Mám předpokládat že typ int má 32 hodnot takže čísla 0 až 31 budou reprezentována jako bity 0 až 31 prvniho prvku pole cisel typu int, čísla 32 až 63 budou uložena jako bity 0 až 31 druhého prvku pole čísel typu int a tak dále. Dojde tedy k osminásobnému snížení pamětových nároků

Zdrojový kod jsem vytvoril takhle, zatím je to pevne nastaveno na pocítaní do 2000. Chtěl bych se tedy zeptat jestli to pracuje tak jak by melo a jak by se to popřípade melo vylepšít?

#include <iostream>
using namespace std;

int pole[2];

void NastavPrvocislo(int prvocislo)
{
int indexVpoli = prvocislo/32; //celociselne deleni
int indexVintu = prvocislo%32; //modulo - tj zbytek po celociselnem deleni
pole[indexVpoli] = pole[indexVpoli] | (1 << indexVintu); // pomoci bitoveho posunu si jednicku posunu na spravnou pozici a pomoci bitoveho OR ho nastavim
}

bool JePrvocislo(int test)
{ //true pokud je toto prvocislo nastavene
int indexVpoli = test/32;
int indexVintu = test%32;
return (pole[indexVpoli] & (1 << indexVintu)); //pomoci bitoveho posunu si jednicku posunu na spravnou pozici a pomoci bitoveho AND otestuji zda je bit nastaven
}

int main()
{
int pole[64];
int maxCislo = 2000;

NastavPrvocislo(0);
NastavPrvocislo(1); // 0 a 1 nejsou prvocisla.

for (int i = 2; i <= maxCislo; i++)
{
if (!JePrvocislo(i)) //vezmeme bit a pokud je nenastaveny, tak se jedna o prvocislo
{
cout << i << endl; // tak ho vypiseme
for (int j = 2; i * j <= maxCislo; j++) // a vsechny jeho nasobky
{
NastavPrvocislo(i * j); // nastavime, ze nejsou prvocislo.
}
}
}
return 0;
}

cl_dlls
Delphi › Algoritmus s použitím pole(D…
27. 4. 2009   #100056

Zdravím, hledám nějakou dobrou duši která by mi pomohla s tímto programem ... stačí mi třeba vyvojový diagram kod už nejak dokážu sesmolit dohromady... nebo i naopak ;)

Zádání zní:

Sestave program ktery vytiskne zadanou čtvercovou matici řádu n a dále matici, která se od původní matice liší tím, že má navzajem zaměněný i-ty sloupec za i-ty sloupec

cl_dlls
Delphi › Vývojový diagram pro algorit…
23. 3. 2009   #97792

Zdravím potřeboval bych vyovový diagram pro tento příklad



popřípadě stačí zaslat kod nějak už to snad z toho dostanu...

 

 

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