Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

var vet2= new Array (8,4,7,6,5,4);

writeln (attacca (vet1, vet2));

funzione che metta i pari e i dispari in due array diversi

function attacca (a) {

var i;

var b= new Array ();

var c = new Array ();

for (i=0; i<a.length; i++){

if (a[i]%2==0) b[b.length] =a[i];

else c[c.length]=a[i]

}

writeln (b);

writeln (c);

}

var vet= new Array (8,2,7,3,5,7);

writeln(attacca(vet));

riconoscere il linguaggio ab*a

function ling (a)

{

if (a.length<2) return false; //la stringa deve essere lunga almeno due

if (a[o]!='a') return false; //se la stringa non comincia con a false

if (a[a.length-1]!=‘a’) return false; //se la stringa non finisce con a false

var i;

for (i=1; i<a.length-1;i++){ //per tutti i caratteri dal secondo al penultimo

if (a[i]!='b'){ return false;}} //se non sono b restituisco false

return true;} //se non ho mai detto false allora true

riconosci il linguaggio abc*a

function ling (a)

{

if (a.length<3) return false;

if (a[o]!='a') return false;

if (a[1]!='b') return false;

if (a[a.length-1]!=‘a’) return false;

var i;

for (i=2; i<a.length-1;i++){

if (a[i]!='c'){ return false;}

return true;}

riconoscere la stringa a(bc)*a

function ling (a)

{

if (a.length<2) return false; //se la stringa non è lunga almeno 2 restituisco false

if (a[0]!='a') return false; //se la prima lettera non è a restituisco false

if (a[a.length-1]!='a') return false; // se l’ultima lettera non è a restituisco false

if (a.length%2!=0) return false; //se la lunghezza della stringa non è pari restituisco false

var i;

for (i=1; i<a.length-1;i=i+2){ //dalla seconda lettera fino alla penultima andando

avanti ogni volta della lunghezza della substringa in * restituisco false

if (a[i]!='b'|| a[i+1]!='c'){ return false;}} //se il primo elemento della substringa è diverso da

b oppure il secondo è diverso da c restituisco false

return true;} //sennò restituisco true

riconoscere il linguaggio ab(aab)*

function ling (a)

{

if (a.length<2) return false;

if (a[0]!='a') return false;

if (a[1]!='b') return false;

if (a.length-2%3!=0) return false; //-2 lunghezza parte fissa, 3 parte star

var i;

for (i=2; i<a.length;i=i+3){ //parto dal terzo elemento e vado avanti di tre alla volta

if (a[i]!='a' || a[i+1]!='a' || a[i+2]!='b'){ return false;}}

return true;}

riconosce il linguaggio a(b|c)*a

function ling (a)

{

if (a.length<2) return false;

if (a[0]!='a') return false;

if (a[a.length-1]!='a') return false;

var i;

for (i=1; i<a.length-1;i++){

if (a[i]!='b' && a[i]!='c'){ return false;}} //se l’elemento non è b e non è c allora false

return true;}

var vet=new Array ('a','b','b','c','a',);

writeln(ling(vet));

a(b*|c*)a

function ling (a)

{

if (a.length<2) return false;

if (a[0]!='a') return false;

if (a[a.length-1]!='a') return false;

if (a.length>2) { //se la stringa è più lunga di 2 e quindi tra le due a c’è qualcosa

if(a[1]!='b' && a[1]!='c') return false; //guardo se la prima cosa che c’è nel mezzo è o b o c

altrimenti false

var i;

for (i=2(?); i<a.length-1;i++){ //dal secondo elemento in poi fino al penultimo

if (a[i]!=a[1]){ return false;}}} //se l’elemento non è uguale a a[1] allora false

return true;}

var vet=new Array ('a','b','b','b','a');

writeln(ling(vet));

funzione che riconosce s= ab*a | cd*c

function ling1 (a) // chw descive ab*a

{

....

}

function ling2(a) // che riconosce cd*c

{

...

}

function lin(a)

{

return lin1(a) || lin2(a);

}

dati 2 array: rispondere true se tutti gli elementi del primo array sono più grandi di tutti gli

elementi del secondo: per non confrontarli tutti, confronti il primo elemento del primo array

con l’elemento maggiore del secondo array. Se c’è min e max la var max gliela metto con

il primo valore dell’array.

function trueofalse (a,b) {

var i;

var max=0; //abbiamo supposto che l'array fosse di numeri reali positivi

for (i=0; i<b.length; i++) {

if (b[i]> max) max=b[i]; // se quel valore è maggiore del numero massimo, allora è il

numero massimo

for (i=0; i<a.length; i++ ){

if ( a[i]<max) return false;

}

return true;

}

var vet1= new Array (8,2,5,3);

var vet2= new Array (1,2,3,4);

writeln (trueofalse(vet1,vet2));

dati due array, somma per prodotto (moltiplichi gli elementi nella stessa posizione tra i due

array e poi somma)

function sommaperprodotto (a,b) {

var i;

var somma=0;

for (i=0; i<a.length; i++) {

somma=somma+(a[i]*b[i]); //quando c'è la somma, metti somma+quello che devi

sommare, in questo caso il prodotto

}

return somma;

}

var vet1= new Array(2,3,1,4);

var vet2= new Array(3,2,1,5);

writeln (sommaperprodotto(vet1,vet2)); //si mette il writeln sono perchè c'è il return

due array, per ogni coppia se l’elemento in a è minore di quello di b, li scambia, quindi in a

ci saranno tutti i maggiori

function minore (a,b) {

var i;

var tmp;

for (i=0; i<a.length; i++) {

if (a[i]<b[i]) {

tmp=a[i];

a[i]=b[i];

b[i]=tmp; }

}}

var vet1= new Array(2,3,1,4);

var vet2= new Array(3,2,1,5);

writeln(vet1); // quando non ha il retunr non possiamo mostrare che la funzione

funziona perchè non abbiao un return, allora li scriviamo due volte così la prima volta scive

l'array normali e dopo, applicandoci la funzione, ci scrive il cambiamento

writeln(vet2);

minore(vet1,vet2);

writeln(vet1);

writeln(vet2);

come prima, in più crea un altro array in cui ci sono tutti gli elementi di a che non scambio,

quando a è più grande non metto nulla, se a è più grande lo metto nel nuovo array

function nuovoarray (a,b) {

var i;

var tmp;

var c= new Array(); // all'inizio è vuoto

for (i=0; i<a.length; i++) {

if (a[i]<b[i]) {

tmp=a[i];

a[i]=b[i];

b[i]=tmp; }

else {c[c.length]=a[i] }} // quando devo mettere qualcosa in u array vuoto scrivo così

return c}

var vet1= new Array(2,3,1,4,10,12,4,8);

var vet2= new Array(3,2,1,5,5,6,4);

writeln(vet1);

writeln(vet2);

writeln (nuovoarray(vet1,vet2));

ordina gli elementi dal più piccolo al più grande e scambiali

function ordina (a) {

var i;

var pos; //pos serve a ricordare la posizione del minimo

var tmp;

for(i=0; i<a.length; i++) {

min=a[i]; pos=i;

for(j=i; j<a.length; j++){ //j perchèdevetrovare ilminino diquellida i inpoi,quindiparto da i

if( a[j]<min) { min=a[j]; pos=j }}


ACQUISTATO

4 volte

PAGINE

9

PESO

103.35 KB

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in informatica umanistica (Facoltà di Lettere e Filosofia e di Scienze Matematiche, Fisiche e Naturali)
SSD:
Università: Pisa - Unipi
A.A.: 2016-2017

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher martasantorelli di informazioni apprese con la frequenza delle lezioni di Fondamenti teorici e programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Pisa - Unipi o del prof Occhiuto Maria Eugenia.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Fondamenti teorici e programmazione

Fondamenti Teorici e Programmazione - Modulo A
Appunto
Fondamenti Teorici e Programmazione - Modulo B
Appunto
Esami svolti- Modulo A
Appunto
Fondamenti teorici e programmazione - Appunti
Appunto