• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

Principy programovacich jazykov

Started by stamperlik, 19.02.2010, 06:25:43

« predchdzajce - alie »

stamperlik

Riesil niekto ulohy z prveho cvicenia?
:ropebanana:

Aniy



radix


LNC

kde najdem stiahnute vypracovane ulohy? :D
http://www.digitalnysvet.sk/ lubim moj HP Probook

radix


bludar

Kde najdem materiály čo ukazoval kolár na prednáške ? Znenie zadania, jazyk typu basic a pod. ???

Aniy

Quote from: bludar on  21.02.2010, 17:56:08
Kde najdem materiály čo ukazoval kolár na prednáške ? Znenie zadania, jazyk typu basic a pod. ???
http://people.tuke.sk/jan.kollar/FJaP/


Sxx

myslim ze viac ludi by zaujimalo kde su vypracovane tie ulohy :)


domino3d

treba ist zajtra na prednasku? ako to je  s prezenckami?
celkom hlucno tam je tak zbytocne sa tam trepat ...
kolki pridete zajtra?
vivat academicus

bubo

#9
Podla mna kollar sa nebude ponizovat na uroven ostatnych a davat prezencky :D to je prilis velka babracka pre takeho sefa.. on tam asi chce mat len ticho. A ked dakto vyrusoval tak povedal ze nech su ticho ze tam nemusia byt. Ale kto vie v ktorom zmysle to myslel...

Edit:  zaujimave.. tu-ke ukazuje ze pisem z linuxu a safari :D
:puf:

scream

oplati sa ist na tu prednasku? akoze ci z toho aj clovek nieco ma okrem toho ze zabije piatkove popoludnie...

piton

no daju sa niektore veci pochopit...
"Iba život, ktorý žijeme pre ostatných, stojí za to." - Albert Einstein

Hezechiel

2.cvicenie prefixny tvar
// postfix.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>

enum ExpElement {NEG, ADD, SUB, MUL, DIV, VALUE};
// Element vyrazu v prefixnej forme
struct Element {
    ExpElement op;
    int value; // Ma vyznam len pre operaciu VALUE
};

//prefixny tvar vyrazu  -3*(2+4)
Element expr[] = {{MUL,0}, {NEG,0}, {VALUE,3}, {ADD,0}, {VALUE,2}, {VALUE,4}};

int pexp = 0; // Aktualna pozicia vo vyraze

int eval() {
int h1,h2;
switch(expr[pexp].op){
case VALUE:h1=expr[pexp].value;pexp++;return(h1);
break;
case MUL:
pexp++;
h1=eval();
h2=eval();
return (h1*h2);
break;
case NEG:
pexp++;
h1=eval();
return (-h1);
break;
case ADD:
pexp++;
h1=eval();
h2=eval();
return (h1+h2);
break;

/* DOPLNIT vetvy pre ADD,SUB,MUL,DIV,NEG
*/
}
//tu sa nema nikdy dostat
return(0);
}

int main() {
    printf("%d\n", eval());
getchar();
}


tak ak by niekto mohol hodit sem veci s prveho a este strom z druheho cvika nech si to pozriem, vdaka
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

Hezechiel

2. cvicenie strom
// strom.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>

//operacie
enum { ADD,SUB,MUL,DIV,NEG,VALUE};
//strom
struct ExpTree {
int op;
union {
struct { ExpTree* expL;ExpTree* expR;} opnds;
struct { ExpTree* exp;} opnd;
int val;
};
};
//vytvorenie stromu pre vyraz -3*(2+4)
ExpTree *MakeSample(){
ExpTree *v3,*v2,*v4,*n1,*n2,*n3;
v3=new ExpTree;v3->op=VALUE;v3->val=3;
v2=new ExpTree;v2->op=VALUE;v2->val=2;
v4=new ExpTree;v4->op=VALUE;v4->val=4;
n1=new ExpTree;n1->op=NEG;n1->opnd.exp=v3;
n2=new ExpTree;n2->op=ADD;n2->opnds.expL=v2;n2->opnds.expR=v4;
n3=new ExpTree;
n3->op=MUL;
n3->opnds.expL=n1;
n3->opnds.expR=n2;
return n3;
}

//vyhodnocovacia funkcia
int eval(ExpTree* exp){
int h1,h2;
switch(exp->op){
case VALUE: return(exp->val);
break;

case NEG:
h1=eval(exp->opnd.exp);
return(-h1);
break;

case MUL:
h1=eval(exp->opnds.expL);
h2=eval(exp->opnds.expR);
return(h1*h2);
break;

case ADD:
h1=eval(exp->opnds.expL);
h2=eval(exp->opnds.expR);
return(h1+h2);
break;



}
//tu sa nema nikdy dostat
return(0);
}

int main()
{
ExpTree* expr;
expr=MakeSample();
printf("%d\n",eval(expr));
getchar();
return 0;
}


tak niekto prve cviko  :hammer:
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

cory

no co sa tyka tej prednasky, tak je o 25 minut dlhsia jak by mala byt. Zacina 12:20 a konci 15:00, co je 2:40 cisteho casu. A pokial viem trojhodinovka ma mat 2:15. Je to preto lebo v tom case je obednajsia 25 minutova prestavka, ale tu my nemame.....

markus

ty vole :D takto som nad tym ani nerozmyslal :D to ma normalne nasralo :D:D:D:D

Aniy

Quote from: Hezechiel on  26.02.2010, 16:25:17
tak niekto prve cviko  :hammer:
malo by to byť dobre :)
// cviko1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

enum NodeType {
    NEG, ADD, SUB, MUL, DIV, VALUE
};
struct Node {
    NodeType type;
    union {
        struct {
            Node *l, *r;
        } operands;
        int value;
    };
};
Node *make_tree()
{
Node *v2, *v3, *v4, *v9, *s, *m, *d, *n;
v2 = new Node; v2->type = VALUE; v2->value = 2;
v3 = new Node; v3->type = VALUE; v3->value = 3;
v4 = new Node; v4->type = VALUE; v4->value = 4;
v9 = new Node; v9->type = VALUE; v9->value = 9;
s = new Node; s->type = SUB;
s->operands.l = v4; s->operands.r = v9;
m = new Node; m->type = MUL;
m->operands.l = v2; m->operands.r = s;
d = new Node; d->type = DIV;
d->operands.l = m; d->operands.r = v3;
n = new Node; n->type = NEG;
n->operands.l = d;
return n;
}
int eval(Node *n) {
switch (n->type){
case 0:
return -1*eval(n->operands.l);
case 1:
return eval(n->operands.l)+eval(n->operands.r);
case 2:
return eval(n->operands.l)-eval(n->operands.r);
case 3:
return eval(n->operands.l)*eval(n->operands.r);
case 4:
return eval(n->operands.l)/eval(n->operands.r);
case 5:
return n->value;

}
}

int _tmain(int argc, _TCHAR* argv[])
{
printf("%d\n", eval (make_tree()));

return 0;
}



VagiClean

cvicenie 3: MOCNINA,funguje aj dalsia operacia zamocninou v jednom vyraze (napr 2^3+3)

/**********************************************************/
/* Interpretacia vyrazov                                  */
/*--------------------------------------------------------*/
/* E -> T  {  ( "+" | "-" )  T  }                         */
/* T -> F  {  ( "*" | "/" )  F  }                         */
/* F -> cislo |  "("  E  ")"                            */
/**********************************************************/

#include <stdio.h>
#include <stdafx.h>
#include <math.h>

/*--------------------------------------------------------*/
/* syntakticke procedury                                  */
/*--------------------------------------------------------*/

int sym; /* vstupny symbol */
int E(void),T(void),F(void),G(void);  /* prototypy */

int E(void){
int op;
int h1,h2;
h1=T();
while(sym=='+' || sym=='-'){
op=sym;
sym=getchar();
h2=T();
       if(op=='+')h1=h1+h2;
       else h1=h1-h2;
}
return (h1);
}

int T(void){
int op;
int h1,h2;
h1=F();
while(sym=='*' || sym=='/'){
op=sym;
sym=getchar();
h2=F();
       if(op=='*')h1=h1*h2;
       else h1=h1/h2;
}
return (h1);
}

int G(void){
int h1;
switch(sym){
case '0':case '1':case '2':case '3':case '4':
       case '5':case '6':case '7':case '8':case '9':
h1=sym-'0';
while((sym=getchar())>='0' && sym<='9')
h1=h1*10+sym-'0';
    break;
       case '(':
        sym=getchar();
               h1=E();
               if(sym==')')sym=getchar();
else printf("\nChybajuca prava zatvorka\n");
               break;
       default: printf("\nNedovoleny symbol %c\n",sym);
h1=0;
        break;
       }
return (h1);
}

int F(void){
int op;
double h1,h2;
h1=G();
if(sym=='^'){
   
sym=getchar();
h2=G();
       return (int)pow(h1,h2);
}
return (h1);
}

/*--------------------------------------------------------*/
/* hlavny program                                         */
/*--------------------------------------------------------*/
int main(void){
sym=getchar();
printf("\nVysledok: %d\n",E());
sym=getchar();
return(0);
}

majster

Co to mame my vlastne za zadanie z tohot predmetu >DDD

wolfy

na kt stranke je zoznam zadani ? thx  :)

piton

"Iba život, ktorý žijeme pre ostatných, stojí za to." - Albert Einstein

domino3d

vivat academicus

deCode666

nebudem chodit kol horucej kase ... kto nam spravi zadanie z PPJ? ... staci prva cast z oboch, nech je zapocet ... mail/ss

periem

to zadanie staci odovzdat v zapoctovom tyzdni ci skor??

domino3d

co potrebujeme na zadanie?
vedel som ta ze z kazdeho zadania staci prvu cast. a teraz sa dozvedam o nejakom referate... tak ako to je vlastne?
vivat academicus