Sistemi di Calcolo

Corso di Laurea in Ingegneria Informatica e Automatica - A.A. 2017-2018

HomePage | Avvisi | Diario lezioni | Programma | Materiale didattico | Esami | Forum | Login

Revision [2212]

Last edited on 2016-11-06 22:08:52 by DanieleDelia
Additions:
%%(c;es1-main.c)


Revision [2077]

Edited on 2016-11-03 23:58:07 by CamilDemetrescu
Additions:
Main di prova per la funzione ##swap##:
Main di prova per la funzione ##makepass##:
Main di prova per la funzione ##bubblesort##:
Deletions:
Main di prova per funzione ##swap##:
Main di prova per funzione ##makepass##:
Main di prova per funzione ##bubblesort##:


Revision [2076]

Edited on 2016-11-03 23:57:41 by CamilDemetrescu
Additions:
Tradurre in IA32 la seguente funzione C che realizza l'algoritmo di [[https://it.wikipedia.org/wiki/Ricerca_dicotomica ricerca binaria]] su array ordinati. Scrivere la soluzione nel file ##es1.s##.
Scrivere una funzione ##void cancspazi(char* s)## che elimina tutti gli spazi da una stringa ##s## e tradurla poi in IA32. Scrivere la soluzione nel file ##es2.s##.
Tradurre in IA32 le seguenti tre funzioni C che, combinate, realizzano un semplice algoritmo di ordinamento ([[https://it.wikipedia.org/wiki/Bubble_sort bubblesort]]). Scrivere la soluzione nel file ##es3.s##.
Deletions:
Tradurre in IA32 la seguente funzione C che realizza l'algoritmo di [[https://it.wikipedia.org/wiki/Ricerca_dicotomica ricerca binaria]] su array ordinati:
Scrivere una funzione ##void cancspazi(char* s)## che elimina tutti gli spazi da una stringa ##s## e tradurla poi in IA32.
Tradurre in IA32 le seguenti tre funzioni C che, combinate, realizzano un semplice algoritmo di ordinamento ([[https://it.wikipedia.org/wiki/Bubble_sort bubblesort]]):


Revision [2075]

Edited on 2016-11-03 23:55:02 by CamilDemetrescu
Additions:
Tradurre in IA32 la seguente funzione C che realizza l'algoritmo di [[https://it.wikipedia.org/wiki/Ricerca_dicotomica ricerca binaria]] su array ordinati:
Deletions:
Tradurre in IA32 la seguente funzione C che realizza l'algoritmo di ricerca binaria su array ordinati:


Revision [2074]

Edited on 2016-11-03 23:52:32 by CamilDemetrescu
Additions:
int res, v[] = { 1, 3, 4, 9, 12 }, n = sizeof(v)/sizeof(int);
res = binsearch(v, n, 0);
printf("%d (corretto: 0)\n", res);
res = binsearch(v, n, 3);
printf("%d (corretto: 1)\n", res);
res = binsearch(v, n, 5);
printf("%d (corretto: 0)\n", res);
res = binsearch(v, n, 12);
printf("%d (corretto: 1)\n", res);
res = binsearch(v, n, 13);
printf("%d (corretto: 0)\n", res);
res = binsearch(v, 1, 1);
printf("%d (corretto: 1)\n", res);
res = binsearch(v, 0, 1);
printf("%d (corretto: 0)\n", res);


Revision [2073]

Edited on 2016-11-03 23:46:21 by CamilDemetrescu
Additions:
print(v, n); // deve stampare 1 2 3 5 9


Revision [2072]

Edited on 2016-11-03 23:45:40 by CamilDemetrescu
Additions:
print(v, n); // deve stampare 1 2 3 4 5


Revision [2071]

Edited on 2016-11-03 23:43:54 by CamilDemetrescu
Deletions:
#include
#include


Revision [2070]

Edited on 2016-11-03 23:43:35 by CamilDemetrescu
Additions:
Scrivere una funzione ##void cancspazi(char* s)## che elimina tutti gli spazi da una stringa ##s## e tradurla poi in IA32.
Deletions:
Scrivere una funzione ##void cancspazi(char* s)## che elimina tutti gli spazi da una stringa ##s## e tradurla poi in IA32. Usare il seguente programma di prova:


Revision [2069]

Edited on 2016-11-03 23:42:55 by CamilDemetrescu
Additions:
Tradurre in IA32 le seguenti tre funzioni C che, combinate, realizzano un semplice algoritmo di ordinamento ([[https://it.wikipedia.org/wiki/Bubble_sort bubblesort]]):
Deletions:
Tradurre in IA32 le seguenti tre funzioni C che, combinate, realizzano un semplice algoritmo di ordinamento:


Revision [2068]

Edited on 2016-11-03 23:41:09 by CamilDemetrescu
Additions:
Usare il seguente programma di prova:
int binsearch(int* v, int n, int x);


Revision [2067]

Edited on 2016-11-03 23:39:47 by CamilDemetrescu
Additions:
int m = 0; // restituisce 1 <=> x è nell'array ordinato v di dimensione n
while (m
Deletions:
int m = 0; // restituisce 1 <=> x è nell'array
while (m


Revision [2066]

Edited on 2016-11-03 23:39:26 by CamilDemetrescu
Additions:
int binsearch(int* v, int n, int x) {
int m = 0; // restituisce 1 <=> x è nell'array
while (m int k = (m+n) >> 1; // indice dell'elemento a meta' fra m ed n
if (x == v[k]) return 1; // x e' in posizione k => trovato
if (x > v[k]) m = k+1; // x puo' essere a destra fra k+1 ed n
else n = k; // x puo' essere a sinistra fra m e k
Deletions:
int binsearch(int* v, int n, int x) { // restituisce 1 <=> x è nell'array ordinato v di dimensione n
int m = 0;
while (m int k = (m+n) >> 1; // indice dell'elemento a meta' fra m ed n
if (x == v[k]) return 1;
if (x > v[k]) m = k; // x e' nella meta' destra
else n = k; // x e' nella meta' sinistra


Revision [2065]

Edited on 2016-11-03 23:33:36 by CamilDemetrescu
Additions:
Tradurre in IA32 la seguente funzione C che realizza l'algoritmo di ricerca binaria su array ordinati:
%%(c;es1.c)
int binsearch(int* v, int n, int x) { // restituisce 1 <=> x è nell'array ordinato v di dimensione n
int m = 0;
while (m int k = (m+n) >> 1; // indice dell'elemento a meta' fra m ed n
if (x == v[k]) return 1;
if (x > v[k]) m = k; // x e' nella meta' destra
else n = k; // x e' nella meta' sinistra
}
Tradurre in IA32 le seguenti tre funzioni C che, combinate, realizzano un semplice algoritmo di ordinamento:
Deletions:
Tradurre in IA32 la seguenti tre funzioni C che realizzano un semplice algoritmo di ordinamento:


Revision [2064]

Edited on 2016-11-03 23:25:29 by CamilDemetrescu
Additions:
Tradurre in IA32 la seguenti tre funzioni C che realizzano un semplice algoritmo di ordinamento:
.globl swap
.globl makepass
Sviluppare il programma incrementalmente, testando le funzioni una alla volta con i seguenti tre main.
Main di prova per funzione ##swap##:
%%(c;es3-main1.c)
void swap(int* x, int* y);
int a = 10, b = 20;
swap(&a, &b);
printf("a=%d, b=%d\n", a, b); // deve stampare: a=20, b=10
Main di prova per funzione ##makepass##:
%%(c;es3-main2.c)
int makepass(int* v, int n);
int v[] = { 2, 3, 4, 5, 1 };
makepass(v, n);
Main di prova per funzione ##bubblesort##:
%%(c;es3-main3.c)
Deletions:
Tradurre in IA32 la seguenti tre funzioni C:
Usare il seguente programma di prova:
%%(c;es3-main.c)


Revision [2062]

Edited on 2016-11-03 23:20:04 by CamilDemetrescu
Deletions:
Tradurre in IA32 la seguente funzione C che calcola il numero di spazi di una stringa:
%%(c;es1.c)
unsigned cntspazi(const char* s) {
unsigned cnt = 0;
while (*s!='\0') if (*s++==' ') cnt++;
return cnt;
%%(c;es1-main.c)
unsigned cntspazi(const char* s);
unsigned c = cntspazi("uno due");
printf("%u (corretto: 1)\n", c);
c = cntspazi("unodue");
printf("%u (corretto: 0)\n", c);
c = cntspazi(" u n o d u e ");
printf("%u (corretto: 7)\n", c);
c = cntspazi("");
printf("%u (corretto: 0)\n", c);
Compilare come al solito con ##gcc -m32 -g es1.s es1-main.c -o es1##, in caso di problemi debuggare con gdb (N.B.: queste informazioni non verranno fornite durante gli esami, dovete sapere come compilare!).
~& **Suggerimento:** si ricordi il codice ASCII dello spazio.


Revision [2054]

Edited on 2016-11-03 20:29:08 by CamilDemetrescu
Additions:
Scrivere tutte le funzioni assembly nello stesso file ##es3.s##:
%%(c;es3.s)
.globl bubblesort
swap: ...
ret
makepass: ...
ret
bubblesort: ...
ret


Revision [2053]

Edited on 2016-11-03 20:21:33 by CamilDemetrescu
Additions:
if (v[n-1]>v[n]) {
swap(v+n-1, v+n);
Deletions:
if (v[n]>v[n-1]) {
swap(v+n, v+n-1);


Revision [2052]

Edited on 2016-11-03 20:18:47 by CamilDemetrescu
Additions:
Compilare come al solito con ##gcc -m32 -g es2.s es2-main.c -o es2##. In caso di problemi debuggare con gdb.
%%(c;es3-main.c)
void bubblesort(int* v, int n);
void print(int* v, int n) {
int i;
for (i=0; i printf("\n");
int v[] = { 9, 1, 3, 2, 5 };
int n = sizeof(v)/sizeof(int);
print(v, n);
bubblesort(v, n);
print(v, n);
Deletions:
Compilare come al solito con ##gcc -m32 -g es2.s es2-main.c -o es2##, in caso di problemi debuggare con gdb.


Revision [2051]

The oldest known version of this page was created on 2016-11-03 20:14:41 by CamilDemetrescu
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.0515 seconds