Newsgroup: it.discussioni.ingegneria
Titolo: INFORMATICA 1 E' IMPOSSIBILE. HO LE PROVE!

Oggi sono andato a fare l'esame di fond. di info 1 e consisteva in 3
esercizi (funzioni) da scrivere in c++. L'ho preparato in circa 3
settimane studiando poco + di 3 ore al giorno (č poco o puň bastare?)
ma non mi sentivo molto pronto soprattutto sulle classi e sugli
alberi.
Il tema d'esame era basato su un es. sulle matrici, uno con
liste+alberi e l'ultimo sulle classi; ho deciso di fare almeno quello
sulle matrici dato che gli altri argomenti non sono riuscito a
digerirli. L'es sulle matrici consisteva nel creare una funzione che
riceveva in input la matrice, gli indici di riga e colonna di un
elemento a scelta della stessa  e un valore che indica il numero di
cornici. Ora spiego. La funzione deve stampare gli elementi che stanno
attorno all'elemento scelto, in senso orario, creando una prima
cornice di 4 elementi, e cosě via (quando si esce dai limiti della mat
si scriveva 0 a video) a forma di rombo; spero di essermi spiegato.
Ho riportato il testo per sentire da voi come lo avete trovato.
All'esame molti l'hanno fatto e l'hanno trovato facile (perchč l'hanno
saputo fare) mentre io ho passato 2 ore a chiedermi un sacco di
domande tipo che ciclo uso, come scompongo il problema, da che parte
lo prendo, come faccio a percorrere la matrice in diagonali
diverse....ma soprattutto ce la farň a passarlo!!
Dalle mi domende vi chiedo di dirmi dove ho sbaligato, se ho studiato
poco, se mi sono esercitato poco (avrň fatto meno di 10 programmi
prima dell'esame), o cosa dovrei fare.
GRAZIE IN ANTICIPO
Saluti
Mario

scusa ma mi sembra un sw banalissimo da realizzare!!!!!!!!!!
io sono perito informatico e ing. elettronico, anche adesso dopo molti anni
che non programmo lo trovo semplice quel testo.
esercitati e scrivi sw usando compilatori veri!

/* programma:                         */
/* si e' affrontato il caso generale  */
/* in cui si hanno 8 caselle attorno  */
/* all'elemento                       */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define n 4     /* n righe            */
#define m 5     /* m colonne          */
#define N 4 + 2 /* aggiungo 2 righe   */
#define M 5 + 2 /* aggiungo 2 colonne */
int a[n][m], b[N][M];
int main (void);
void inizializza (void);
void acquisisci (int *, int *);
void visualizza (void);
void copia (void);
void stampa_risultato (int *, int *);
int i, j; /* contatori globali */
int main (void)
{
 int riga, colonna;
 inizializza ();
 acquisisci (&riga, &colonna);
 visualizza ();
 copia ();
 stampa_risultato (&riga, &colonna);
 printf("\n\n\tPremere un tasto per uscire!\n");
 getch();
 return 0;
}
void inizializza (void)
{
 for (i=0; i<N; ++i)
  for (j=0; j<M; ++j)
   b[i][j] = NULL;
}
void acquisisci (int *riga, int *colonna)
{
 system ("cls");
 for (i=0; i<n; ++i)
  for (j=0; j<m; ++j)
  {
   printf ("Inserire l'elemento a(%d, %d): ", i+1, j+1);
   scanf ("%d", &a[i][j]);
  }
 printf ("\n\tInserire l'indice di riga (con la convenz. di numeraz. del C)
: ");
  scanf ("%d", &i);
 printf ("\n\tInserire l'indice di colonna (con la convenz. di numeraz. del
C) : ");
 scanf ("%d", &j);
 *riga = i;
 *colonna = j;
}
void visualizza (void)
{
 system ("cls");
 for (i=0; i<n; ++i)
 {
  printf("\n");
  for (j=0; j<m; ++j)
   printf ("%3d", a[i][j]);
 }
}
void copia (void)
{
 for (i=0; i<n; ++i)
  for (j=0; j<m; ++j)
   b[i+1][j+1] = a[i][j];
}
void stampa_risultato (int *riga, int *colonna)
{ 
 int k, z;
 k= *riga;
 z= *colonna;
 printf ("\n\n");
 for (i=0; i<3; ++i)
  for (j=0; j<3; ++j)
  {
   if (b[k+1-1+i][k+1-1+j] == a[k][z])
    continue; /* salto l'elemento puntato */
   else
    printf ("[%d]  ", b[k+1-1+i][z+1-1+j]);
  } 
}
/* fine */

esercitati e scrivi sw usando compilatori veri!
In che senso compilatori veri? Io non ho problema di compilatori ma di
logia o come si chiama quella cosa che ti fa schizzare fuori dalla
mente la soluzione.
Cmq grazie per l'attenzione.
saluti


ICQ # 770759

si scriveva 0 a video) a forma di rombo
Scusa se te lo chiedo. Ma hai mai pensato di non essere tagliato per
il corso di laurea che stai facendo?
L'esercizio e' assai banale. Hai studiato davvero o hai chiaccherato
con gli amici?
                                 Garba
#################################
Remove SPAMAWAY from address
to reply by e-mail

 poco, se mi sono esercitato poco (avrò fatto meno di 10 programmi


chi ha sostenuto l'esame di crittografia in informatica?