Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C++]individuare consonanti in una matrice e passare le coordinate al programma

    ragazzi, devo fare questo esercizio..
    In pratica ho una matrice di lettere e in questa matrice devo trovare tutte le consonanti che nel alfabeto occupano una posizione pari ( B, D, F,H,M,P,R,T).
    Devo fare questo con un sottoprogramma, e una volta trovati gli elementi uguali alla consonanti dette, devo passare le coordinate al programma principale, senza stamparle nel sottoprogramma.
    Successivamente le devo stampare con un'altro sottoprogramma.


    non so proprio come fare.. Trovare le consonanti se ci sono nella matrice so anche farlo, ma passare le coordinate al programma no..

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Il modo più banale è con una matrice di 1 e 0: 1 dove c'è una lettera che ti interessa 0 altrimenti. Per risalire alle posizioni basta che scorri la matrice. In alternativa una lista o un array di struct, tipo
    codice:
    struct position {int x, y;};
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    No, non so farlo. Non so usare le struct

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Puoi comunque usare il metodo con la matrice.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    La matrice deve essere di lettere. Non ho proprio idea come farne un altra di zeri e uno.
    fare il controllo di se ci sono quelle lettere, lo so fare, ma vedere le coordinate e darle al programma principale no.

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    codice:
    #define N 24
    #define M 80
    
    void stampa(int n, int m, char c[N][M], bool b[N][M]);
    void filtra(int n, int m, char c[N][M], bool b[N][M]);
    
    int main(void) {
      char c[N][M];
      int n, m;
      //inserisci i caratteri nella matrice e setti n e m ai numeri effettivi di righe e colonne
      bool b[N][M];
      filtra(n, m, c, b);
      stampa(n, m, c, b);
      return 0;
    }
    
    void filtra(int n, int m, char c[N][M], bool b[N][M]) {
      for(int i = 0; i < n; ++i) {
        for(int j = 0; j < m; ++j) {
          if(/* c[i][j] va bene */) {
            b[i][j] = true;
          } else {
            b[i][j] = false;
          }
        }
      }
    }
    
    void stampa(int n, int m, char c[N][M], bool b[N][M]) {
      for(int i = 0; i < n; ++i) {
        for(int j = 0; j < m; ++j) {
          if(b[i][j]) {
            // stampa a video c[i][j]
          }
        }
      }
    }
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.