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

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

 

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

C / C++ › Převod soustav 10 do 8
19. 5. 2016   #210799

#8 BDS
Podľa mňa existujú dve skupiny:
1. tí, ktorí kopírujú z internetu a ďalej neriešia lebo majú hotové zadanie
2. tí, ktorí kopírujú z internetu a snažia sa tomu aj pochopiť (napr. modifikáciou kódu atď)
Inšpirovať sa už existujúcim riešením nie je zlé pokiaľ tomu človek rozumie. A niekedy je to aj vhodné..veď načo znovu "vymýšľať koleso" keď to už raz bolo vymyslené.

 

C / C++ › Maturita- poraďte prosím
19. 5. 2016   #210773

#12 KIIV
ono by to mohlo byť while alebo aj nekonečný for cyklus.. je otázne či majú ošetrovať aj to či zadaná hodnota je niečo iné ako číslo..

C / C++ › Maturita- poraďte prosím
18. 5. 2016   #210749

#1 Dalibor
V čom konkrétne je tvoj problém? Máš dokonca nakreslené diagramy. Napísať jednoduchú podmienku a aritmetickú operáciu snáď ako maturant musíš zvládnuť. Alebo sa aspoň pokús.

Assembler › Volanie funkcie z iného súbo…
17. 3. 2016   #209331

#3 KIIV

 exit mi nefungoval myslel som si, že to pôjde inak a až teraz som si uvedomil, že som tam zabudol include stdlib .. ďakujem 

Assembler › Volanie funkcie z iného súbo…
17. 3. 2016   #209328

nakoniec som ten problém vyriešil ale pribudol mi ďalší
keď beriem do úvahy príklad hore a zavolám externú funkciu(upravenú):
 

void set_Assertion(int BID, int ID) {
	if(ID != BID) {
		//chcem aby sa cely program ukoncil
	}
	return;
}

ako dosiahnem ten cieľ aby som z tej funkcie vedel ukončiť celé vykonávanie programu? 

Assembler › Volanie funkcie z iného súbo…
15. 3. 2016   #209304

Ahojte,

mám súbor písaný v jazyku C, ktorý obsahuje funkciu:
 

void set_Assertion(int BID, int ID) {
	printf("ID: %d BID: %d\n",ID,BID);
	return;
}

ďalej mám asemblerovský kód, z ktorého časť je: 

_main:	
LFB9:
	.cfi_startproc
	pushl	%ebp
	.cfi_def_cfa_offset 8
	.cfi_offset 5, -8
	movl	%esp, %ebp
	.cfi_def_cfa_register 5
	andl	$-16, %esp
	movl	$200032, %eax
	call	___chkstk_ms
	subl	%eax, %esp
	call	___main
	movl	$0, 200028(%esp)
	jmp	L9
L10:
	call	_rand
	movl	%eax, %ecx
	movl	$351843721, %edx
	movl	%ecx, %eax
	imull	%edx
	sarl	$12, %edx
	movl	%ecx, %eax
	sarl	$31, %eax
	subl	%eax, %edx
	movl	%edx, %eax
	imull	$50000, %eax, %eax
	subl	%eax, %ecx
	movl	%ecx, %eax
	movl	200028(%esp), %edx
	movl	%eax, 28(%esp,%edx,4)
	addl	$1, 200028(%esp)
L9:
	movl 	$6, ID
	movl 	$4, BID
	pushl 	ID
	pushl 	BID
	call	_set_Assertion
	popl 	BID
	popl 	ID
	cmpl	$49999, 200028(%esp)
	jle	L10
	movl	$50000, 8(%esp)
	movl	$0, 4(%esp)
	leal	28(%esp), %eax
	movl	%eax, (%esp)
	call	_quicksort
	nop
	leave
	.cfi_restore 5
	.cfi_def_cfa 4, 4
	ret
	.cfi_endproc

pričom inštrukcie za návestím L9
 

movl 	$6, ID
	movl 	$4, BID
	pushl 	ID
	pushl 	BID
	call	_set_Assertion
	popl 	BID
	popl 	ID

som pridal do programu manuálne.
ásledne tieto dva súbory zlinkujem a spustím ale pri zavolaní funkcie call _set_Assertion sa spustí nekonečný cyklus a vypisuje stále tie isté hodnoty dookola. Vedeli by ste mi poradiť? Myslím si ,že tam bude problém niekde s registrami, že je možné, že niektoré prepíšem len akosi sa mi nedarí na to prísť
Skúšal som si pomocou pusha uložiť všetky základné registre do stacku a potom ich pomocou popa vytiahnuť ale nepomohlo to. Skúšal som aj prerušenie pomocou int $0x80 ale ani to mi nepomohlo.

Za každú radu budem vďačný. 
 

C / C++ › copy 2D array of structure
28. 2. 2016   #208948

Vďaka za rady. Už mi to funguje.

C / C++ › copy 2D array of structure
27. 2. 2016   #208929

jaaaaaj...to nie je 2D pole ale len 1D .. nadpis som teda trošku domotal

C / C++ › copy 2D array of structure
27. 2. 2016   #208928

#2 KIIV
zabudol som napísať, že je to v C.

v štruktúre sú len číselné a stringové premenné takže to asi nejaký veľký vplyv mať nebude ale keď už tak:
 

typedef struct block
{
  char *label_name;
  char *last;
  int ID;
  int number_of_int;
} block;

a ako som písal skúšal som kopírovanie cez strcpy čo asi nebol najlepší nápad a posledný pokus bol s  realloc
 

blocks = (block**)realloc(blocks, (number_of_blocks + 1) * sizeof(block *));
C / C++ › copy 2D array of structure
27. 2. 2016   #208926

Ahojte, mam strukturu

typedef struct block
{
  //premenne	
} block;

a chcem si vytvoriť pole týchto štruktúr pričom počet prvkov v tomto poli sa bude meniť(zväčšovať sa) takže si zadefinujem pole ako:

block **blocks;

a chcem počas vykonávania programu aby sa do tohto poľa pridal nový prvok keď ho vytvorím a tým pádom sa veľkosť poľa zväčšila o 1.
Skúšal som to kopírovať a skúsil som použiť aj funkcie ako memcpy ale akosi sa mi to nepodarilo.

Vedeli by ste mi poradiť?

Ďakujem. 

C / C++ › Regulárne výrazy
22. 2. 2016   #208827

#8 Kit
nakoniec som našiel ešte knižnicu regex.h, ktorú sa mi podarilo includnuť do projektu a tiež to funguje 
ale vďaka za rady :)

C / C++ › Regulárne výrazy
21. 2. 2016   #208804

#6 Kit
Áno viem, že v Linuxe je to easy..aj v C pre Linux je knižnica regex.h, ktorá to dokáže..vyzerá to tak, že najlepšie riešenie bude prejsť na iný programovací jazyk..resp. kódiť to v C pod Linuxom 

Ale vďaka za cenné rady :) 

C / C++ › Regulárne výrazy
21. 2. 2016   #208802

#4 Kit
pracujem na jednom projekte v C a potrebujem určitým spôsobom hľadať niektoré významné riadky v súbore a regulárne výrazy sa mi zdali ako najlepšia voľba..alebo je nejaký lepší spôsob, ktorý by som mohol v C použiť? 

C / C++ › Regulárne výrazy
21. 2. 2016   #208800

#2 Kit
vďaka za odkazy..takže som to pochopil tak, že najlepšia možnosť ako používať regulárne výrazy v C je napísať si vlastné funkcie, budú reg. výrazy implementovať? 

C / C++ › Regulárne výrazy
20. 2. 2016   #208783

Ahojte, existuje v C knižnica pre Windows, ktorá mi umožní pracovať s regulárnymi výrazmi?

Našiel som niečo ako pcre. Ale chcel by som vedieť či existuje ešte nejaká iná resp. nejaký iný spôsob.

Vďaka.

kendy
Inzerce › programovanie zarobok
20. 2. 2016   #208781

ahojte,

ponukam moznost privyrobit si programovanim. ide o jednorazovu zalezitost. programovaci jazyk c/java. viac info fortunarichezza@mail.com 

C / C++ › grafické rozhranie v C
7. 12. 2015   #207122

vďaka za názory :)

C / C++ › grafické rozhranie v C
7. 12. 2015   #207111

#2 ondrej39
Som si vedomý , že objektovo orientovaný jazyk je lepšia voľba ale mám v pláne robiť projekt práve v C a nie som si istý či je dobré sa v ňom hrať aj s GUI kedže som s GUI v C ešte nerobil. 

C / C++ › grafické rozhranie v C
7. 12. 2015   #207104

Ahojte,

chcem sa opýtať či je rozumné v C robiť GUI alebo sa mám držať konzoly.

Za vaše názory vám ďakujem. 

Java › Zastavenie vykonávania funkc…
16. 11. 2015   #206416

#1 Kent 

public void vykonajFunkciu(param1, param2, param3){
			while(prijimam pakety){
				vypis();
			}
		}

a chybu mi hádže 

Exception in thread "Thread-4" java.lang.Error: Interrupted attempt to acquire write lock
	at javax.swing.text.AbstractDocument.writeLock(Unknown Source)
	at javax.swing.text.AbstractDocument.insertString(Unknown Source)
	at javax.swing.text.PlainDocument.insertString(Unknown Source)
	at javax.swing.JTextArea.append(Unknown Source)
	at view.Panel.writePacket(Panel.java:233)
	at controller.Forwarder.processFrames(Forwarder.java:80)
	at controller.ControllerMain$PacketListenerForReceive$1.run(ControllerMain.java:169)

vedeli by ste mi poradiť ako to vyriešiť?

Java › Zastavenie vykonávania funkc…
16. 11. 2015   #206415

Ahojte,

mám 2 thready, ktoré mi bežia a v každom z nich vytváram inštanciu triedy

thread = new Thread(){
				public void run() {
					Trieda t  = new Trieda(arg1, arg2, arg3);
					t.vykonajFunkciu(param1, param2, param3);
			}

potom keď kliknem na button tak sa mi spustia obidva thready

a keď kliknem na ďalší button chcem aby sa mi prestali vykonávať..skúšal som thread.interrupt() aj thread.stop() ale hádže mi to chybu

trieda t ma funkciu  vykonajFunkciu v ktorej je while cyklus a tam sa volajú ďalšie metódy:

C / C++ › Prekad súboru do assembleru
2. 11. 2015   #206102

#2 PiranhaGreg
Vďaka :) 

Java › štatistika pre viac threadov
24. 10. 2015   #205849

Ahojte,

mám v programe viac threadov. Každý thread spracúva a  odosiela nejaké informácie. Ja si potrebujem pre každý thread samostatne viesť štatistiku spracovaných/odoslaných informácií. Aká je najlepšia možnosť ako to spraviť keď mám viac druhov informácií, ktoré si chcem zapamätať pre spracovanie aj odoslanie každého threadu tak aby som si nemusel robiť pre každú informáciu nejakú premennú.  

Napr. 

thread1 - spracuje 10 jabĺčok, 5 hrušiek a 3 slivky, odošle - 3 jabĺčka, 3 hrušky a 1 slivku

thread2  - spracuje 100 jabĺčok, 300 hrušiek a 0 sliviek odošle - 150 jabĺčok, 80 hrušiek a žiadnu slivku

a na výstupe chcem mať :

thread1 in: 10,5,3 out: 3,3,1
thread2 in: 100,300,0 out: 150,80,0

Pascal › Úkol k maturitě
20. 5. 2015   #202295

matica MxN - to sa pýta vytvoriť si dvojrozmerné pole 

v Pascale máš funkciu na generovanie náhodného čísla z intervalu, ktorý si zadáš(ak si dobre pamätám) - tak naplníš maticu ( 2x for cyklus )

uložiť hodnoty súčtov jednotlivých riadkov do poľa - vytvoríš si jednorozmerné pole a pomocou 2x for cyklus spočítaš súčet riadkov

zobraziť maticu a pole - matica - 2x for cyklus , pole - 1x for cyklus

MySQL › Vytvorenie tabuľky tímov
26. 4. 2015   #201745

#12 peter
Narazil som znovu na problém s týmto selectom. Musím ho nejako implementovať do O/R mapovača Hibernate. Vedel by si mi povedať ako na to? Možno cez createCriteria a nejaké aliasy ale nenapadá ma vôbec žiadny spôsob. 

MySQL › Vytvorenie tabuľky tímov
9. 4. 2015   #201206

#9 peter
prepáč mohol som tu dať príkazy na vytvorenie tabuliek na to som zabudol

každopádne mi to už funguje..ja používam pgAdmin a tam mi tie chyby neukazovalo..

ten poznatok, že tabuľka sa aliasuje bez AS som prehliadol 

Ďakujem za každú radu :) 

MySQL › Vytvorenie tabuľky tímov
9. 4. 2015   #201199

#7 peter
upravil som to tak aby som mal 4 stĺpce rovnako pomenované, každá tabuľka má názov..aj zátvorky sedia, na konci som použil GROUP BY  ale stále píše chybu pri UNION ALL

SELECT team_id,nazov,SUM(body_doma) + SUM(body_vonku) as body
FROM
(
	(
	SELECT  id as team_id,name as nazov, body_doma	, 0 as body_vonku			--prva tabulka na vitazstva doma  
	FROM 
		(
		SELECT c.id,c.name, COUNT(name) * 3 as body_doma
		FROM club c
		JOIN result r ON r.id_home_team = c.id
		WHERE r.goal_home > r.goal_away 
		GROUP BY c.id
		) as vit_doma
	) as a
UNION ALL
	(
	SELECT id as team_id, team_name as nazov, 0 as body_doma, body_vonku 
	FROM
		(
		SELECT c.id,c.name as team_name, COUNT(name) * 3 as body_vonku
		FROM club c
		JOIN result r ON r.id_away_team = c.id
		WHERE goal_home < goal_away
		GROUP BY c.id
		) as vit_vonku
	) as b
)
GROUP BY team_id,nazov
MySQL › Vytvorenie tabuľky tímov
8. 4. 2015   #201182

#5 peter
skúsil som niečo takéto

SELECT  id as team_id,name as nazov, body_doma				
FROM 
	(SELECT c.id,c.name, COUNT(name) * 3 as body_doma
	FROM club c
	JOIN result r ON r.id_home_team = c.id
	WHERE r.goal_home > r.goal_away 
	GROUP BY c.id) as vitazstva_doma
UNION ALL
SELECT id as team_id, team_name as nazov, body_vonku 
FROM
	(SELECT c.id,c.name as team_name, COUNT(name) * 3 as body_vonku
	FROM club c
	JOIN result r ON r.id_away_team = c.id
	WHERE r.goal_home < r.goal_away 
	GROUP BY c.id) as vitazstva_vonku

toto mi vyhodí niečo takéto:

Připojen obrázek.

čo je vlastne dobre lebo mi tam hodilo tie tímy, ktoré vyhrali aj doma aj vonku ale keď chcem tie tabuľky už spojiť a spočítať body a zoradiť tak mi tam hodí chybu pri UNION ALL 

SELECT team_id,nazov,SUM(body_doma) + SUM(body_vonku) as body
FROM(
(SELECT  id as team_id,name as nazov, body_doma				
FROM 
	(SELECT c.id,c.name, COUNT(name) * 3 as body_doma
	FROM club c
	JOIN result r ON r.id_home_team = c.id
	WHERE r.goal_home > r.goal_away 
	GROUP BY c.id) as vit_doma) as a
UNION ALL
(SELECT id as team_id, team_name as nazov, body_vonku 
FROM
	(SELECT c.id,c.name as team_name, COUNT(name) * 3 as body_vonku
	FROM club c
	JOIN result r ON r.id_away_team = c.id
	WHERE goal_home < goal_away
	GROUP BY c.id) as vit_vonku) as b
Anonym
Matematika › Pravdepodobnosť
27. 3. 2015   #200780

Máme štvorcovú sieť. Na začiatku je súradnica 0,0. Idem na súradnice 7,3. Aká je pravdepodobnosť, že pôjdem cez súradnice 4,1?
Nejaký hint ako na toto? Ďakujem 

Java › Problém s dedením
9. 3. 2015   #200062

#9 ingiraxo
Ďakujem pomohlo mi to a prerobím si to :) 

Java › Problém s dedením
8. 3. 2015   #200031

#2 ingiraxo Ide o to, že v triede Paket si nastavím MAC adresy, veľkosť a typ. Ak je typ Ethernet tak zas v triede Ethernet(ktorá dedí od triedy Paket) si nastavím aký protokol v ňom je a IP adresy. Pointa je, že keď sa mi zanalyzuje rámec tak chcem aby mal všetky informácie(MAC adresy, veľkosť, typ, IP adresy a ďalšie)..

Java › Problém s dedením
7. 3. 2015   #199944

Ahojte, 

robím program v ktorom analyzujem rámec, ktorý si odchytím pomocou programu Wireshark. Zachytený rámec môže byť typu Ethernet II, IEEE 802.3 - LLC atď..keď je typu Ethernet II tak môže byť napr IPARP atď.. a keď je napríklad IP môže obsahovať vnorený protokol UDP alebo TCP alebo iné . Mám vytvorenú triedu Paket v ktorej si nastavím cieľovú a zdrojovú MAC adresu a zistím akého typu daný rámec je. A potom mám ďalšie triedy Ethernet II,  IEEE 802.3 - LLC..ktoré majú svoje ďalšie vlastné pridané parametre, ktore postupne dopĺňajú..takisto aj IP ARP a ostatné čo som spomenul. Ale asi niečo robím zle lebo pri dedení mi to padne. Chcel by som sa opýtať čím to bude? 

//tu si načítam paket a vytvorím nový objekt 
while(pcap.nextEx(header, jbuffer) == Pcap.NEXT_EX_OK){ //citam az kym nie som na konci
			 PcapPacket packet = new PcapPacket(header,jbuffer);		
			  Paket paket = new Paket(frame_number,packet);
	...
}
//konštruktor v triede Paket
public Paket(int frame, PcapPacket packet){
		this.frame = frame;
		this.packet = packet;
		setAdress(packet);		//nastaví MAC adresy
		setSize(packet);		//zistí veľkosť
		setTyp(packet);  		//Ethernet II, IEEE 802.3.. 
	if(getTyp().equals("Ethernet II")){
               Ethernet ethernet1 = new Ethernet(frame_number,packet);
               
           }
           else if(getTyp().equals("IEEE 802.3 - LLC")){
               LLC llc1 = new LLC(frame_number,packet);
               
           }
           else if(getTyp().equals("IEEE 802.3 - SNAP")){
               SNAP snap1 = new SNAP(frame_number, packet);
               
           }
           else if(getTyp().equals("IEEE 802.3 - Raw")){
               RAW raw1 = new RAW(frame_number, packet);
              
           }
	}

a keď je to napr EtherType Ethernet II tak idem do triedy Ethernet  kde je konštruktor :

public Ethernet(int frame_number, PcapPacket packet) {
		super(frame_number, packet);  //vyhodi chybu
		setEtherType(packet);
		setIP(packet);
		
	}

Ak by ste mi vedeli pomôcť bol by som vďačný. Vopred ďakujem. 

Číslicová technika › SystemC problém s programom
27. 11. 2014   #196596

Zabudol som dodať, že počítadlo má výstupný prenos Cout. A mám použiť JK preklápacie obvody. 

Rovnice z ktorých vychádzam:

JA = CE*!U*!b*!c*!d + CE*U*b*c*d

KA = CE*!U*!b*!c*!d + CE*U*b*c*d

JB = CE*!U*!c*!d + CE*U*c*d

KB = CE*!U*!c*!d + CE*U*c*d

JC = CE*!U*!d + CE*U*d

KC = CE*!U*!d + CE*U*d

JD = CE

KD = CE

Cout = CE*!U*!a*!b*!c*!d + CE*U*a*b*c*d

a obrázok obvodu v logisime:

Připojen obrázek.

Číslicová technika › SystemC problém s programom
27. 11. 2014   #196595

Ahojte, mám za úlohu vytvoriť opis správania a štruktúry 4 bitového počítadla nahor/nadol. Ak povoľovací vstup C je na 1 sa obsah počítadla inkrementuje/dekrementuje. Ak Up = 1 tak počíta nahor inak nadol. 

Ak by bol niekto taký dobrý a pozrel sa mi na kód a povedal mi kde mám chybu bol by som mu vďačný. 

#include "systemc.h"

SC_MODULE(obvod_NEG) {
        sc_in<sc_logic> in1;
        sc_in<sc_logic> in2;
        
        sc_out<sc_logic> n_in1;
        sc_out<sc_logic> n_in2;
       
        void neg_process(){
            n_in1.write(~(in1.read()));
            n_in2.write(~(in2.read()));
         
 
        }
        SC_CTOR(obvod_NEG){
            SC_METHOD(neg_process);
                sensitive << in1;
                sensitive << in2;
             
        }
};
SC_MODULE_EXPORT(obvod_NEG);

SC_MODULE(obvod_NEG1) {
        sc_in<sc_logic> in1;
        sc_out<sc_logic> n_in1;
       
        void neg_process(){
            n_in1.write(~(in1.read()));
        }
        SC_CTOR(obvod_NEG1){
            SC_METHOD(neg_process);
                sensitive << in1;
  }
};
SC_MODULE_EXPORT(obvod_NEG1);

/*SC_MODULE(prirad)
{
    sc_in<sc_logic> in1;
    sc_out<sc_logic> out1;
    void prirad_process(){
            out1.write( in1.read());
    }
    SC_CTOR(prirad){
            SC_METHOD(prirad_process);
                sensitive << in1;
    }
};
SC_MODULE_EXPORT(prirad);*/

SC_MODULE(obvod_AND6)
{
    sc_in<sc_logic> in1,in2,in3,in4,in5,in6;
    sc_out<sc_logic> out1;
    
    void and6_process(){
         out1.write( ( in1.read() & in2.read() & in3.read() & in4.read() & in5.read() &in6.read() ) );
    }
    SC_CTOR(obvod_AND6)
    {
        SC_METHOD(and6_process);
        sensitive << in1;
        sensitive << in2;
        sensitive << in3;
        sensitive << in4;
        sensitive << in5;
        sensitive << in6;
    }
};
SC_MODULE_EXPORT(obvod_AND6);

SC_MODULE(obvod_AND5) {
        sc_in<sc_logic> in1, in2, in3, in4,in5;
        sc_out<sc_logic> out1;
 
        void and5_process(){
            out1.write( ( in1.read() & in2.read() & in3.read() & in4.read() & in5.read()) );
        }
        SC_CTOR(obvod_AND5){
            SC_METHOD(and5_process);
            sensitive << in1 << in2 << in3 << in4 << in5;
        }
};
SC_MODULE_EXPORT(obvod_AND5);
 
SC_MODULE(obvod_AND4) {
        sc_in<sc_logic> in1, in2, in3, in4;
        sc_out<sc_logic> out1;
 
        void and4_process(){
            out1.write( ( in1.read() & in2.read() & in3.read() & in4.read() ) );
        }
            SC_CTOR(obvod_AND4){
                SC_METHOD(and4_process);
                sensitive << in1 << in2 << in3 << in4;
        }
};
SC_MODULE_EXPORT(obvod_AND4);
 
SC_MODULE(obvod_AND3) {
        sc_in<sc_logic> in1, in2, in3;
        sc_out<sc_logic> out1;
 
        void and3_process(){
                out1.write( ( in1.read() & in2.read() & in3.read() ) );
        }
        SC_CTOR(obvod_AND3){
            SC_METHOD(and3_process);
            sensitive << in1 << in2 << in3;
        }
};
SC_MODULE_EXPORT(obvod_AND3);

SC_MODULE(obvod_OR2){
    sc_in<sc_logic> in1,in2;
    sc_out<sc_logic> out1;
 
    void or2_process(){
        out1.write( (in1.read() | in2.read() ) );
    }
    SC_CTOR(obvod_OR2){
        SC_METHOD(or2_process);
        sensitive << in1 << in2;
    }
};
SC_MODULE_EXPORT(obvod_OR2);

/*SC_MODULE (jkff) 
{
    sc_in<bool> j, k;
    sc_inout<bool> q; 
    //sc_in<bool> clk; 
    sc_in_clk clk;
    void jk_flop ();
    SC_CTOR (jkff) {
    SC_METHOD (jk_flop);
        sensitive_pos << clk;
    }
};
void jkff::jk_flop() 
{
    sc_uint<2> temp; 
    temp[1] = j.read( );
    temp[0] = k.read( );
    switch(temp) {
        case 0x1: q.write(0); 
            break;
        case 0x2: q.write(1); 
            break;
        case 0x3: 
            q.write(!q.read());
            break;
        default: break; 
 }
};*/

/*SC_MODULE (jkff) 
{
    sc_in<bool> j, k;
    sc_inout<bool> q, qn; 
    //sc_in<bool> clk; 
    sc_in_clk clk;
    void jk_flop (){
         sc_uint<2> temp; 
        temp[1] = j.read();
        temp[0] = k.read();
        switch(temp) {
            case 0x1: q.write(0); 
                break;
            case 0x2: q.write(1); 
                break;
            case 0x3: 
                q.write(~q.read());
                break;
            default: break; 
        }
    }
    SC_CTOR (jkff) {
    SC_THREAD (jk_flop);
        sensitive_pos << clk;
    }
};
SC_MODULE_EXPORT(jkff);*/

SC_MODULE (jkff) {
    sc_in<sc_logic> j, k;  
    sc_in_clk clk;
        sc_out<sc_logic> q;
    sc_out<sc_logic> qn;
 
    void do_jk_flop ();
   
    SC_CTOR (jkff) {
            SC_METHOD (do_jk_flop);
                sensitive_pos << clk;
                q.initialize((sc_logic)0);
        qn.initialize((sc_logic)1);
    }
};
void jkff::do_jk_flop() {
 
         if(j.read() == ((sc_logic)1) && k.read() == ((sc_logic)0)) {
            q.write((sc_logic)1);
            qn.write((sc_logic)0);
      }
          else if(j.read() == ((sc_logic)0) && k.read() == ((sc_logic)1))  {
           q.write((sc_logic)0);
           qn.write((sc_logic)1);
      }
          else if(j.read() == ((sc_logic)1) && k.read() == ((sc_logic)1))  {
            q.write(qn);
            qn.write(q);
      }
          else  {
           q.write(q);
           qn.write(qn);
       }
 
 
}

SC_MODULE(obvod_struktura){
    sc_in_clk clk;
    sc_in<sc_logic> c, up;
    sc_out<sc_logic> vystup1, vystup2, vystup3, vystup4, cout;
    //sc_out<sc_logic> vystup1n, vystup2n,vystup3n,vystup4n;
    //sc_out<sc_logic> out9;
    
   // prirad prirad1;
    
    obvod_NEG oneg;
    obvod_NEG1 oneg1;
    
    obvod_AND3 oand31;
    obvod_AND3 oand32;
    
    obvod_AND4 oand41;
    obvod_AND4 oand42;  
    
    obvod_AND5 oand51;
    obvod_AND5 oand52;
    
    obvod_AND6 oand61;
    obvod_AND6 oand62;
    
    obvod_OR2 oor21;
    obvod_OR2 oor22;
    obvod_OR2 oor23;
    obvod_OR2 oor24;
    
    jkff jkff1;
    jkff jkff2;
    jkff jkff3;
    jkff jkff4;
    jkff jkff5;
    
    sc_signal<sc_logic> d[5], dneg[5];
    sc_signal<sc_logic> j[5], k[5];
    sc_signal<sc_logic>  cneg, upn;
    sc_signal<sc_logic>  pom1, pom2, pom3, pom4, pom5, pom6, pom7, pom8, pom9;
    sc_signal<sc_logic>  pom11,pom12,pom13, pom14, pom15, pom16;
    void obvod_process_struktura(){
        vystup1 = d[0];
        vystup2 = d[1];
        vystup3 = d[2];
        vystup4 = d[3];
        cout = d[4];
    }
     SC_CTOR(obvod_struktura) :   oneg ("oneg"), oneg1 ("oneg1"), oand31 ("oand31"), oand32 ("oand32"), oand41 ("oand41"), oand42 ("oand42"), oand51 ("oand51"), oand52 ("oand52"), oand61 ("oand61"), oand62 ("oand62"), oor21 ("oor21"), oor22 ("oor22"), oor23 ("oor23"), oor24 ("oor24"), jkff1 ("jkff1"), jkff2 ("jkff2"), jkff3 ("jkff3"), jkff4 ("jkff4"), jkff5 ("jkff5")                                     
     {
         //negacie
         oneg.in1(up);
         oneg.in2(c);
         oneg.n_in1(upn);
         oneg.n_in2(cneg);
         
         //stage1
         oand31.in1(c);
         oand31.in2(upn);
         oand31.in3(dneg[3]);
         oand31.out1(pom5);
         
         oand32.in1(c);
         oand32.in2(up);
         oand32.in3(d[3]);
         oand32.out1(pom6);
                  
         oand41.in1(c);
         oand41.in2(upn);
         oand41.in3(dneg[2]);
         oand41.in4(dneg[3]);
         oand41.out1(pom3);
         
         oand42.in1(c);
         oand42.in2(up);
         oand42.in3(d[2]);
         oand42.in4(d[3]);
         oand42.out1(pom4);
         
         oand51.in1(c);
         oand51.in2(upn);
         oand51.in3(dneg[1]);
         oand51.in4(dneg[2]);
         oand51.in5(dneg[3]);
         oand51.out1(pom1);
         
         oand52.in1(c);
         oand52.in2(up);
         oand52.in3(d[1]);
         oand52.in4(d[2]);
         oand52.in5(d[3]);
         oand52.out1(pom2);
         
         oand61.in1(c);
         oand61.in2(upn);
         oand61.in3(dneg[0]);
         oand61.in4(dneg[1]);
         oand61.in5(dneg[2]);
         oand61.in6(dneg[3]);
         oand61.out1(pom7);
         
         oand62.in1(c);
         oand62.in2(up);
         oand62.in3(d[0]);
         oand62.in4(d[1]);
         oand62.in5(d[2]);
         oand62.in6(d[3]);
         oand62.out1(pom8);
         
         // prirad1.in1(c);
         // prirad1.out1(pom9);
         pom9 = (sc_logic)c;
         //dorobit posledny signal!!!! -> hotovo?
         
         //stage2
         oor21.in1(pom1);
         oor21.in2(pom2);
         oor21.out1(pom11);
         
         oor22.in1(pom3);
         oor22.in2(pom4);
         oor22.out1(pom12);
         
         oor23.in1(pom5);
         oor23.in2(pom6);
         oor23.out1(pom13);
         
         oor24.in1(pom7);
         oor24.in2(pom8);
         oor24.out1(pom14);
         
         pom15 = (sc_logic)pom9;
        
         jkff1.j(pom11);
         jkff1.k(pom11);
         jkff1.clk(clk);
         jkff1.q(d[0]);
         jkff1.qn(dneg[0]);
        
         jkff2.j(pom12);
         jkff2.k(pom12);
         jkff2.clk(clk);
         jkff2.q(d[1]);
         jkff2.qn(dneg[1]);
         
         
         jkff3.j(pom13);
         jkff3.k(pom13);
         jkff3.clk(clk);
         jkff3.q(d[2]);
         jkff3.qn(dneg[2]);
         
         
         jkff4.j(pom15);
         jkff4.k(pom15);
         jkff4.clk(clk);
         jkff4.q(d[3]);
         jkff4.qn(dneg[3]);
         
         oneg1.in1(pom14);
         oneg1.n_in1(pom16);
         jkff5.j(pom14);
         jkff5.k(pom16);
         jkff5.clk(clk);
         jkff5.q(d[4]);
         jkff5.qn(dneg[4]);
         
         
         SC_METHOD(obvod_process_struktura);
         sensitive << d[0];
         sensitive << d[1];
         sensitive << d[2];
         sensitive << d[3];
         sensitive << d[4];
         sensitive << dneg[0];
         sensitive << dneg[1];
         sensitive << dneg[2];
         sensitive << dneg[3];
         sensitive << dneg[4];
     }
 
};
SC_MODULE_EXPORT(obvod_struktura);

SC_MODULE(obvod_spravanie){
    sc_in_clk CLK;
    sc_in<sc_logic> c,up;
    sc_out<sc_logic> cout;
    sc_out <sc_bv<4> > output;
    sc_out <sc_logic> vystup1, vystup2, vystup3, vystup4;
    
    void do_counter(){
        while(true){
            if(c == (sc_logic)1 && up == (sc_logic)1){
                wait(5,SC_NS);
                switch( (output.read()).to_uint()){
                     case 0: output="0001"; break;
                     case 1: output="0010"; break;
                     case 2: output="0011"; break;
                     case 3: output="0100"; break;
                     case 4: output="0101"; break;
                     case 5: output="0110"; break;
                     case 6: output="0111"; break;
                     case 7: output="1000"; break;
                     case 8: output="1001"; break;
                     case 9: output="1010"; break;
                     case 10: output="1011"; break;
                     case 11: output="1100"; break;
                     case 12: output="1101"; break;
                     case 13: output="1110"; break;
                     case 14: output="1111"; cout = (sc_logic)1; break;
                     case 15: output="0000"; cout = (sc_logic)0; break;
                }
            }
            if(c == (sc_logic)1 && up == (sc_logic)0){
                 switch((output.read()).to_uint()){    
                     case 0: output="1111"; cout = (sc_logic)1; break;
                     case 1: output="0000"; cout = (sc_logic)0;break;
                     case 2: output="0001"; break;
                     case 3: output="0010"; break;
                     case 4: output="0011"; break;
                     case 5: output="0100"; break;
                     case 6: output="0101"; break;
                     case 7: output="0110"; break;
                     case 8: output="0111"; break;
                     case 9: output="1000"; break;
                     case 10: output="1001"; break;
                     case 11: output="1010"; break;
                     case 12: output="1011"; break;
                     case 13: output="1100"; break;
                     case 14: output="1101"; break;
                     case 15: output="1110"; break;
                    
                }
            }
           
        }
        wait();
    }
       SC_CTOR(obvod_spravanie){
           output.initialize("0000");
           cout.initialize((sc_logic)0);
           SC_THREAD(do_counter);
           sensitive_neg << CLK;
           
       }
};
SC_MODULE_EXPORT(obvod_spravanie);

 
SC_MODULE(en_clock){
        sc_in_clk CLK;
        sc_out <sc_logic> clock;
 
        void do_clock(){
                if(CLK == true){
                        clock = (sc_logic)1;    
                } else {
                        clock = (sc_logic)0;  
                }
        }
       
        SC_CTOR(en_clock) {
                SC_METHOD(do_clock);
                sensitive << CLK;
        }
};

SC_MODULE(testbench_obvod){
 
        sc_clock CLK;
        sc_signal<sc_logic> c, up, vystup1, vystup2, vystup3, vystup4, cout, clock, cout_bhv;
        sc_signal<sc_bv<4> > output;
 
        //obvod_spravanie DUT1;
        obvod_struktura DUT2;
        en_clock CLOCK;
 
 
        void do_test(){
                while (true){    
    c=(sc_logic)1;
    wait(50,SC_NS);
    up=(sc_logic)1;
    wait(210,SC_NS);
    up=(sc_logic)0;
    wait(500,SC_NS);
    }
        }
 
        SC_CTOR(testbench_obvod):
  DUT1 ("DUT1"),
  DUT2 ("DUT2"),
  CLOCK("CLOCK"),
  CLK("CLK", 20, SC_NS, 0.5, 0.0, SC_NS, true)
  {
   
    CLOCK.CLK(CLK.signal());
    CLOCK.clock(clock);
 
        DUT1.c(c);
        DUT1.up(up);
        DUT1.CLK(CLK.signal());
        DUT1.cout(cout_bhv);
        DUT1.output(output);
       
    DUT2.c(c);
    DUT2.up(up);
    DUT2.clk(CLK.signal());
    DUT2.vystup1(vystup1);
    DUT2.vystup2(vystup2);
    DUT2.vystup3(vystup3);
    DUT2.vystup4(vystup4);
    DUT2.cout(cout);
    SC_THREAD(do_test);
  }
 
};
SC_MODULE_EXPORT(testbench_obvod);
C / C++ › Program
23. 11. 2014   #196350

#8 hlucheucho
takto pochopené je to ešte o niečo jednoduchšie lebo netreba riešiť výber operácie :D 

C / C++ › Program
21. 11. 2014   #196297

#1 ukulele
1. načítaš 2 čísla zo vstupu 

2. vyberieš si, ktorú operáciu s nimi chceš spraviť(+,-,*,/,porovnanie)

3. danú operáciu vykonáš 

môžeš použiť napríklad switch 

OS - GNU / Linux › Naplnenie pola hodnotou
25. 10. 2014   #195224

#7 Kit
Ja sa tiež ľutujem ale je to zaujímavé aj keď sa to učím menej ako mesiac :) 
 

awk '$1 > '"$velkost"

funguje perfektne..ďakujem :) 

OS - GNU / Linux › Naplnenie pola hodnotou
25. 10. 2014   #195221

#5 Kit
Mám zadané aby som to písal v shell-i.
Skúsil som to spraviť cez príkaz awk ale keď si na začiatok do nejakej premennej napr velkost uložím počet napr 3 a potom dám príkaz  aby vypísalo len dané riadky kde je číslo väčšie ako číslo v premennej velkost tak mi ich vypíše všetky

príkaz je  

#hodnota ktoru porovnavam je v prvom stlpci
awk '$1 > $velkost'
OS - GNU / Linux › Naplnenie pola hodnotou
25. 10. 2014   #195219

#3 jistr
Píšem to v csh a  

set pole = `prikaz`

spraví to čo má :) odtestoval som si to.

Spravil som to tak ako si napísal a ak platí podmienka tak som dal 

vysledne_pole="$pole3[1]"

Ale keď to spustím tak mi to pole aj vypíše a pritom tam nemám echo. 

OS - GNU / Linux › Naplnenie pola hodnotou
25. 10. 2014   #195217

OPRAVA

v príklade ako vyzerajú polia

namiesto pole[2]  má byť pole2[1]

OS - GNU / Linux › Naplnenie pola hodnotou
25. 10. 2014   #195216

Ahojte
mám problém pri naplnení poľa hodnotou 
mám definované 3 polia 
 

set pole = `prikaz`
set pole2 = `prikaz`
set pole3 = `prikaz`
set vysledne_pole = () 

pričom v poliach pole a pole2 mám číselné hodnoty

v cykle while prechádzam polia a testujem dve hodnoty polí v podmienke if..keď vyhovujú podmienke tak chcem aby sa do vysledne_pole uložil prvok z pole3

ale príkazom

vysledne_pole = "$pole3[1]"

mi hádže chybu "vysledne_pole: Command not found" ..a neviem ako to spraviť inak..prečo mi to vysledne_pole berie ako príkaz..

Príklad ako vyzerajú dané polia:

pole3[1] = meno IP den mesiac cas_zaciatku cas_konca

pole[1] = cas_zaciatku

pole[2] = cas_konca

a keď je ten čas v danom intervale tak chcem aby sa do vysledne_pole uložil celý riadok z pole3[1]

XXX
C / C++ › Projekt v jazyku C za odmenu
6. 10. 2014   #194623

Zdravím,

ak by mal niekto záujem nakódiť jednoduchú úlohu v jazyku C za odmenu tak sa môžete ozvať na mail akonym@centrum.sk 

C / C++ › Prepis výrazu z infixu do po…
28. 9. 2014   #194336

#2 vitamin
vstup má byť niekoľko riadkov infixových výrazov..
ale už som to vyriešil :) zmenil som spôsob načítania a pridal ďalší while cyklus..

 

while ((scanf("%s",vstup)) >0)
	{
		i = 0;
		while (i < strlen(vstup)){
		vstup[i]... a tak ďalej
C / C++ › Prepis výrazu z infixu do po…
27. 9. 2014   #194321

Ahojte, mám problém s kódom na prepis výrazu z infixového tvaru do postfixového. Spraví mi to pre jeden riadok ale keď mám viacriadkový vstup tak už vypíše hlúposti. Za každú radu ďakujem.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


typedef struct zasobnik
{
	int data[10000];				//pole pre pismenka a operatori ktore budem davat do zasobnika
	int vrch;					//vrch zasobnika
}zasobnik;

char vrch(zasobnik *s);
int priorita(char);
int je_prazdny(zasobnik *s);
char vyber(zasobnik *s);
void vloz(zasobnik *s, char x);
int je_plny(zasobnik *s);
void inicializacia(zasobnik *s);

int main()
{
	zasobnik s;
	char x;
	int c;
  	inicializacia(&s);				//inicializacia vrchu zasobnika
	while ((c = getchar()) > 0)
	{
     
      	if (c >= 'A' && c <= 'Z')		//ak je to pismeno tak ho vypise
			printf("%c", c);
		else
			if (c == '(')				//ak je to lava zatvorka tak vlozi do zasobnika
				vloz(&s, '(');
			else
			{
				if (c == ')')			//ak je to prava zatvorka tak..
					while ((x = vyber(&s)) != '(')	//..sa vybera zo zasobnika kym nenarazi na pravu zatvortku
						printf("%c", x);
				else					//ak je to operator
				{
					while (priorita(c) <= priorita(vrch(&s)) && je_prazdny(&s) != 1)	//porovna sa priorita operatoru
					{
						x = vyber(&s);
						printf("%c", x);
					}
					vloz(&s, c);		//vlozenie operatoru
				}
			}
        
      }
    
  	
    while(je_prazdny(&s) != 1)		//vyprazdnenie zasobnika
	{
		x = vyber(&s);
		printf("%c", x);
     }
  
	getchar();
	getchar();
	return 0;
}
int priorita(char x)
{
  int von;
	if (x == '(')
		von = 0;
	if (x == '+' || x == '-')			//mensia priorita vrati 1
		von = 1;
	if (x == '*' || x == '/' )		//vacsia priorita vrati 2
		von = 2;
	return von;
}
void inicializacia(zasobnik *s)
{
	s->vrch = -1;
}

int je_prazdny(zasobnik *s)
{
	if (s->vrch == -1)				//na zaciatku bol inicializovany na -1 
		return(1);
	else
		return(0);
}

void vloz(zasobnik *s, char x)
{
	s->vrch = s->vrch + 1;				//posuniem vrch a
	s->data[s->vrch] = x;				//zapisem znak
}

char vyber(zasobnik *s)
{
	int x;
	x = s->data[s->vrch];				//do x aktualny znak z vrchu zasobnika
	s->vrch = s->vrch - 1;				//posuniem vrch o
	return(x);
}

char vrch(zasobnik * s)
{
	return(s->data[s->vrch]);			//vrati znak ktory je na vrchu zasobnika
}
Java › Naprogramovanie projektu
8. 4. 2014   #189067

ahoj,

hľadám niekoho kto by nakódil jeden projekt. Odmena istá. Ak má niekto záujem tak nech napíše

kkentt@centrum.sk a ja mu pošlem podrobné info. Jedná sa o projekt v Jave. 

Inzerce › Naprogramovanie projektu
8. 4. 2014   #189059

ahoj,

hľadám niekoho kto by nakódil jeden projekt. Odmena istá. Ak má niekto záujem tak nech napíše

kkentt@centrum.sk a ja mu pošlem podrobné info. Jedná sa o projekt v Jave. 

Assembler › Počet veľkých písmen v reťazci
24. 3. 2014   #188570

Ahojte,
mám problém so zistením počtu veľkých písmen v reťazci. Neviem kde mám chybu v mojom kóde. Tak by som bol vďačný za každú radu :)

name echo

DATA SEGMENT
vstup      db 80       ;bude sa citat 80 znakov
pocet      db  0       ;tu sa ulozi ich skutocny pocet
        ;   db 80 dup(?)  ; miesto pre citany retazec


DATA ENDS

INCLUDE macro.inc

CODE SEGMENT
	ASSUME CS:CODE, DS:DATA

start:	MOV AX,SEG DATA
	MOV DS,AX
	
	MOV AH,0Ah
	MOV DX,OFFSET VSTUP
	INT 21H	
	
	XOR AX,AX
	XOR CX,CX
	MOV CL,POCET
	ADD DX,2
	MOV SI,DX
	MOV BX,OFFSET VYSTUP
	
ZNOVA:
	MOV AL,[SI]
	CMP AL,41h		;41h = 'A'
	JB DALEJ
	CMP AL,5bh		;5Ah = 'Z'		
	JNB DALEJ
	ADD POCET,1
	
	CMP AL,'$'
	JE KONIEC_RETAZCA
DALEJ:
	INC SI				;dalsi znak 
	LOOP ZNOVA
KONIEC_RETAZCA:
	RIADOK
	MOV DL,POCET
	ADD DL,'0'			;prevedenie na znak 
	MOV AH,02h
	INT 21h	
	mov ah,4ch
	int 21h
	code ends
	end start
Assembler › Registre príznakov, príznak TF
23. 2. 2014   #187606

#2 KIIV
spravím to tým spôsobom, že tam ja priradím hodnotu 1?  

Assembler › Registre príznakov, príznak TF
22. 2. 2014   #187591

Ahojte, 

začal som sa učiť assemblery a momentálne sa snažím pochopiť registre..

keď sa príznak TF rovná 1 tak procesor pracuje krok po kroku..ale  ako to vlastne funguje?..keď napíšem nejaký kód..napr:
 

mov ax,2; ulož 2 do registra ax
sub ax,2; odčítaj 2 od obsahu registra ax

a chcem to odkrokovať tak to napíšem ako:  

mov ax,2; ulož 2 do registra ax
mov TF,1
sub ax,2; odčítaj 2 od obsahu registra ax

? alebo nejako inak?

Vopred Ďakujem za vysvetlenie 

 

 

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