Traduzione da PLIKE in C
Salve, volevo confrontare alcuni esercizi in PLIKE, il mio problema è che non so come tradurli in C... per cortesia, qualcuno lo sa fare? Inoltre, sono corretti scritti in questa maniera? Lascio le tracce... Grazie!
1) Siano dati due array 2D, Tablet_negozio, di dimensioni Kx2 , e Tablet_deposito , di dimensioni Yx2, entrambi di tipo intero. In questi array sono memorizzati, per ciascuna riga, nella colonna 1 il codice di un Tablet, e nella colonna 2 quanti Tablet di quel tipo sono presenti, rispettivamente, in negozio ed in deposito. Le righe di entrambi gli array sono ordinate per codice del Tablet. Progettare in P_like un algoritmo, sotto forma di procedure (procedure Quantita_Tablet), che fornisca come risultato un array 2D Totale_Tablet che, sempre rispettando l'ordine secondo il codice-Tablet, nella colonna 2 indichi quanti Tablet, per ciascun tipo, sono disponibili in totale (tra negozio e deposito).

2) Si consideri la successione:
a1=0 a2=1 a3=2 an=an-1+2an-2+an-3 per n>3
Progettare un algoritmo in P-like, sotto forma di procedure (procedure somma_elementi_uguale_numero (in:k,NUMERO,out:somma,valore,posizione) ) che controlli se, sommando a mano a mano gli elementi di posto pari della successione si trovi che tale somma sia uguale a NUMERO (si supponga NUMERO>2=, restituendo in tale caso attraverso la variabile logica somma, il valore TRUE, attraverso la variabile valore,NUMERO, e attraverso la variabile posizione la posizione che l'ultimo elemento sommato occupa nella successione; altrimenti, restituisca FALSE, ed indichi inoltre, in valore e posizione, valore e posizione dell'ultimo elemento sommato che più fa avvicinare la somma a NUMERO.

3) Dato un array 2D A di tipo intero,di dimensione ALPHAxBETA, con ALPHA pari, BETA>5, progettare in P-like un algoritmo, sotto forma di function logica, (quattro_elementi_uguali_somma_altri (A, ALPHA, BETA) ) che restituisca TRUE se la somma del primo, terzo, quarto, e penultimo elemento di tutte le righe pari è uguale alla somma dei restanti elementi della medesima riga, FALSE altrimenti.

4) Sia dato un array 2D A di tipo integer, di dimensioni HxK. Progettare in P-like un algoritmo sotto forma di function di tipo logical (function sommaRIGA_uguale_elemento) che restituisca TRUE se la somma degli opposti degli elementi di una riga è uguale ad uno degli elementi della riga successiva, FALSE altrimenti.
1) Siano dati due array 2D, Tablet_negozio, di dimensioni Kx2 , e Tablet_deposito , di dimensioni Yx2, entrambi di tipo intero. In questi array sono memorizzati, per ciascuna riga, nella colonna 1 il codice di un Tablet, e nella colonna 2 quanti Tablet di quel tipo sono presenti, rispettivamente, in negozio ed in deposito. Le righe di entrambi gli array sono ordinate per codice del Tablet. Progettare in P_like un algoritmo, sotto forma di procedure (procedure Quantita_Tablet), che fornisca come risultato un array 2D Totale_Tablet che, sempre rispettando l'ordine secondo il codice-Tablet, nella colonna 2 indichi quanti Tablet, per ciascun tipo, sono disponibili in totale (tra negozio e deposito).

2) Si consideri la successione:
a1=0 a2=1 a3=2 an=an-1+2an-2+an-3 per n>3
Progettare un algoritmo in P-like, sotto forma di procedure (procedure somma_elementi_uguale_numero (in:k,NUMERO,out:somma,valore,posizione) ) che controlli se, sommando a mano a mano gli elementi di posto pari della successione si trovi che tale somma sia uguale a NUMERO (si supponga NUMERO>2=, restituendo in tale caso attraverso la variabile logica somma, il valore TRUE, attraverso la variabile valore,NUMERO, e attraverso la variabile posizione la posizione che l'ultimo elemento sommato occupa nella successione; altrimenti, restituisca FALSE, ed indichi inoltre, in valore e posizione, valore e posizione dell'ultimo elemento sommato che più fa avvicinare la somma a NUMERO.

3) Dato un array 2D A di tipo intero,di dimensione ALPHAxBETA, con ALPHA pari, BETA>5, progettare in P-like un algoritmo, sotto forma di function logica, (quattro_elementi_uguali_somma_altri (A, ALPHA, BETA) ) che restituisca TRUE se la somma del primo, terzo, quarto, e penultimo elemento di tutte le righe pari è uguale alla somma dei restanti elementi della medesima riga, FALSE altrimenti.

4) Sia dato un array 2D A di tipo integer, di dimensioni HxK. Progettare in P-like un algoritmo sotto forma di function di tipo logical (function sommaRIGA_uguale_elemento) che restituisca TRUE se la somma degli opposti degli elementi di una riga è uguale ad uno degli elementi della riga successiva, FALSE altrimenti.

Risposte
E' la prima volta che sento parlare di un linguaggio di programmazione chiamato PLIKE (e non compare neanche su wikipedia inglese..). Hai scritto il nome correttamente? Sarebbe una specie di pseudo-linguaggio presente in qualche libro? Sarebbe utile fornire qualche ulteriore riferimento. Non sembra un linguaggio difficile da leggere e probabilmente sarei in grado di tradurre queste funzioni in C, non mi è tuttavia chiaro il motivo per cui tu voglia fare la conversione.
EDIT: E' possibile inserire codice formattato nel forum invece di immagini..
EDIT: E' possibile inserire codice formattato nel forum invece di immagini..
E' un linguaggio simile al Pascal. Il motivo per cui mi serve la conversione è che devo consegnare questi esercizi per lunedi/martedi... per farlo ho iniziato a studiare il C, ma non penso di riuscirci in tempo... ecco perchè ho chiesto qui.
Ma gli esercizi andavano quindi scritti in C? Perché li hai scritti in questo linguaggio?
inizia a scrivere al posto di:= semplicemente =
metti ; a fine di ogni riga e cercati la sintassi dei comandi if, while e for.
ad esempio
oppure
in pratica si usa la { al posto dei then e la } al posto degli endif o endfor...
p.s. ricordati i ; alla fine di ogni riga con codice scritto
metti ; a fine di ogni riga e cercati la sintassi dei comandi if, while e for.
ad esempio
if (condizione){ //righe eseguite in caso affermativo }
oppure
if (condizione){ //righe eseguite in caso affermativo }else{ //righe nel caso "else" }
in pratica si usa la { al posto dei then e la } al posto degli endif o endfor...
p.s. ricordati i ; alla fine di ogni riga con codice scritto
int a=0; if(a=0){ printf("a ha valore nullo"); }
"apatriarca":
Ma gli esercizi andavano quindi scritti in C? Perché li hai scritti in questo linguaggio?
Dovevano essere scritti sia in C che in questo linguaggio. Però che dovevano andare scritti in C mi e stato detto tipo 2 giorni fa... ed io con C sto più o meno a zero :/
Enzo inizia a fare quelle sostituzioni e a guardare la sintassi in C di quelle funzioni che hai fatto, poi posta e ti correggiamo gli errori.
Sono sotto esame e non posso fartelo da zero
Sono sotto esame e non posso fartelo da zero
