Estratto del documento

Algoritmo per la simulazione dinamica di "cellule"

Questo è un programma che simula il comportamento di alcune cellule, che si dividono in cellule bianche e cellule nere con particolari condizioni. Si consideri un array 2D 40x40. Ogni elemento dell’array è detto ‘cellula’. Una cellula può essere bianca o nera. Una cellula bianca viene visualizzata con uno spazio (blank ‘ ‘), una cellula nera con ‘X’. All’inizio vi è solo una cellula nera, al 60-simo posto della prima riga; tutte le altre cellule sono bianche.

Algoritmo iterativo

Sviluppare un algoritmo iterativo che, a partire dalla prima riga, a ogni passo aggiorna una sola riga dell’array, ovvero al secondo passo aggiorna la seconda riga, al terzo passo aggiorna la terza riga e così via, fino all’ultima riga. Al passo i-simo, la riga i-sima viene aggiornata considerando solo la riga (i-1)-sima, secondo le seguenti regole:

  • La cellula j della riga i-sima diventa nera se:
  • Nella riga (i-1)-sima la cellula j e la cellula j-1 sono nere e la cellula j+1 è bianca;
  • Nella riga (i-1)-sima le cellule j-1 e j+1 sono nere e la cellula j è bianca;
  • Nella riga (i-1)-sima la cellula j e la cellula j+1 sono nere e la cellula j-1 è bianca;
  • Nella riga (i-1)-sima la cellula j è nera e le cellule j+1 e j-1 sono bianche;
  • Nella riga (i-1)-sima la cellula j+1 è nera e le cellule j e j-1 sono bianche;

Codice del programma


// Main.c
#include <stdio.h>
#include <stdlib.h>
#include "header.h"

// All'interno del main sono andato ad inserire la condizione iniziale
// della matrice per poi stamparla

int main() {
    int i=0, j;
    int righe = 40, colonne = 40; // Variabili che indicano
                                  // il numero di righe e colonne della matrice
    char v1[40][40]; // Dichiarazione della matrice

    for (i=0; i<righe; i++) { // Ciclo for annidato che
                                // permette lo scorrimento di tutta la matrice
        for (j=0; j<colonne; j++) {
            v1[i][j] = ' '; // Stampo in tutte le posizioni della matrice un '-' che indica che
                           // la cellula in quella posizione è BIANCA
        }
    }
    v1[0][19] = 'X'; // TRANNE IN QUESTA
                     // POSIZIONE, v1[0][19], CHE RAPPRESENTA LA CONDIZIONE INIZIALE DELLA
                     // MATRICE, QUI VIENE STAMPATA UNA 'X',
                     // CHE INDICA CHE LI LA CELLULA È NERA

    stampa_matrice(v1); // Richiamo della
                        // function stampa matrice, che stamperà la matrice iniziale
    simulazione_cellule(v1); // Richiamo della
                             // function simulazione cellule che permetterà invece di stampare, sempre
                             // dopo comando dell'utente,
                             // la stessa matrice ma aggiornata di una riga.
}

// Function.c
#include "header.h"

/* Function che permette di stam

Anteprima
Vedrai una selezione di 1 pagina su 4
Algoritmo per la simulazione dinamica di cellule Pag. 1
1 su 4
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher rggctt di informazioni apprese con la frequenza delle lezioni di Programmazione I e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Napoli - Parthenope o del prof Giunta Giulio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community