-
.
Realizzare un nuovo tipo di dato che si chiamera’ MATRICE che sara’ un record costituito da 3
campi
VALORI che sara’ un array di interi a 1 dimensione
RIGHE che sara’ un intero
COLONNE che sara’ un intero
Realizzare le operazioni di accesso al tipo di dato:
- LeggereRighe
- LeggereColonne
- LeggereValore
- ScrivereRighe
- ScrivereColonne
- ScrivereValore
Realizzare le operazioni di somma tra 2 matrici, prodotto scalare di una matrice per un valore
intero -
.
Algoritmi su array e stringhe: ricerca del massimo e minimo di istogrammi
mediante array, inversione degli elementi e rimozione valori duplicati.
Algoritmi su matrici: somma e prodotto di 2 matrici, trasposta di una matrice quadrata.
https://www.google.com/search?q=Algoritmi+...le-gws-wiz-serp
Algorithms on arrays and strings: search for the maximum and minimum of histograms using arrays, inversion of elements and removal of duplicate values. Algorithms on matrices: sum and product of 2 matrices, transpose of a square matrix.
https://www.google.com/search?q=Algorithms...mobile&ie=UTF-8 -
.
#include <stdio.h>
#include <stdlib.h>
#define max 10
typedef struct {
int valori[max][max];
int righe;
int colonne;
} tabella;
void RiempireTabella(tabella * t);
void StampareTabella(tabella t);
//Accesso ai dati
int LeggereValore(tabella t, int r, int c);
void ScrivereValore(tabella* t, int r, int c, int valore);
int LeggereRighe(tabella t);
int LeggereColonne(tabella t);
void ScrivereRighe(tabella * t, int r);
void ScrivereColonne(tabella * t, int c);
int main() {
tabella t;
ScrivereRighe(&t, 8);
ScrivereColonne(&t, 8);
RiempireTabella(&t);
StampareTabella(t);
printf("\n");
system("pause");
return 0;
}
void RiempireTabella(tabella * t) {
int i;
int j;
int valori[max][max];
i=0;
while (i<leggererighe(*t)) {
j=0;
while (j<leggerecolonne(*t)) {
scanf("%d", *(valori+i));
j=j+1;
}
i=i+1;
}
return;
}
void StampareTabella(tabella t)
{
int i;
int j;
i=0;
while (i<leggererighe(t)) {
j=0;
while (j<leggerecolonne(t))
{ printf("%d ", LeggereValore(t, i, j));
j=j+1;
}
printf("\n");
i=i+1;
}
return;
}
int LeggereValore(tabella t, int r, int c) {
return t.valori[r][c];
}
void ScrivereValore(tabella * t, int r, int c, int valore) {
t->valori[r][c]=valore;
return;
}
int LeggereRighe(tabella t) {
return t.righe;
}
int LeggereColonne(tabella t) {
return t.colonne;
}
void ScrivereRighe(tabella * t, int r) {
t->righe=r;
return;
}
void ScrivereColonne(tabella * t, int c) {
t->colonne=c;
return;
} -
.
#include <stdio.h>
#include <stdlib.h>
#define max 10
typedef struct {
int valori[max][max];
int righe;
int colonne;
} tabella;
void RiempireTabella(tabella * t);
void StampareTabella(tabella t);
//Accesso ai dati
int LeggereValore(tabella t, int r, int c);
void ScrivereValore(tabella* t, int r, int c, int valore);
int LeggereRighe(tabella t);
int LeggereColonne(tabella t);
void ScrivereRighe(tabella * t, int r);
void ScrivereColonne(tabella * t, int c);
int main() {
tabella t;
ScrivereRighe(&t, 8);
ScrivereColonne(&t, 8);
RiempireTabella(&t);
StampareTabella(t);
printf("\n");
system("pause");
return 0;
}
void RiempireTabella(tabella * t) {
int i;
int j;
int valori[max][max];
i=0;
while (i<leggererighe(*t)) {
j=0;
while (j<leggerecolonne(*t)) {
scanf("%d", *(valori+i));
j=j+1;
}
i=i+1;
}
return;
}
void StampareTabella(tabella t)
{
int i;
int j;
i=0;
while (i<leggererighe(t)) {
j=0;
while (j<leggerecolonne(t))
{ printf("%d ", LeggereValore(t, i, j));
j=j+1;
}
printf("\n");
i=i+1;
}
return;
}
int LeggereValore(tabella t, int r, int c) {
return t.valori[r][c];
}
void ScrivereValore(tabella * t, int r, int c, int valore) {
t->valori[r][c]=valore;
return;
}
int LeggereRighe(tabella t) {
return t.righe;
}
int LeggereColonne(tabella t) {
return t.colonne;
}
void ScrivereRighe(tabella * t, int r) {
t->righe=r;
return;
}
void ScrivereColonne(tabella * t, int c) {
t->colonne=c;
return;
} -
.
#include <stdio.h>
#include <stdlib.h>
#define max 10
typedef struct {
int valori[max][max];
int righe;
int colonne;
} tabella;
void RiempireTabella(tabella * t);
void StampareTabella(tabella t);
//Accesso ai dati
int LeggereValore(tabella t, int r, int c);
void ScrivereValore(tabella* t, int r, int c, int valore);
int LeggereRighe(tabella t);
int LeggereColonne(tabella t);
void ScrivereRighe(tabella * t, int r);
void ScrivereColonne(tabella * t, int c);
int main() {
tabella t;
ScrivereRighe(&t, 8);
ScrivereColonne(&t, 8);
RiempireTabella(&t);
StampareTabella(t);
printf("\n");
system("pause");
return 0;
}
void RiempireTabella(tabella * t) {
int i;
int j;
int valori[max][max];
i=0;
while (i<leggererighe(*t)) {
j=0;
while (j<leggerecolonne(*t)) {
scanf("%d", *(valori+i));
j=j+1;
}
i=i+1;
}
return;
}
void StampareTabella(tabella t)
{
int i;
int j;
i=0;
while (i<leggererighe(t)) {
j=0;
while (j<leggerecolonne(t))
{ printf("%d ", LeggereValore(t, i, j));
j=j+1;
}
printf("\n");
i=i+1;
}
return;
}
int LeggereValore(tabella t, int r, int c) {
return t.valori[r][c];
}
void ScrivereValore(tabella * t, int r, int c, int valore) {
t->valori[r][c]=valore;
return;
}
int LeggereRighe(tabella t) {
return t.righe;
}
int LeggereColonne(tabella t) {
return t.colonne;
}
void ScrivereRighe(tabella * t, int r) {
t->righe=r;
return;
}
void ScrivereColonne(tabella * t, int c) {
t->colonne=c;
return;
}
https://pastebin.com/raw/Dq9qUkSW -
.
https://drive.google.com/drive/u/0/folders...cGKOHQOhZ2eQBwQ
www.mediafire.com/file/93o1gojl21j3fn1/Scacchiera.rar/file -
.
O un Array di Array
int table[3][3]
O un singolo array 9*1
int table[9]
int* table = malloc(9*sizeof(int)); -
.
https://www.mediafire.com/file/w1ae3onpf8z...DAVIDE.rar/file
https://www.mediafire.com/file/kyo9foavdxd...eMarco.zip/file -
.
int main(void) {
scacchiera s; //scacchiera da ulizzare per il gioco
int colonna_re;
int riga_re;
int colonna_regina;
int riga_regina;
pezzo re_bianco;
pezzo regina_nera;
scrivereRigheScacchiera(&s, 8);
scrivereColonneScacchiera(&s, 8);
//INIZIALIZZO LA SCACCHIERA
inizializzaScacchiera(&s, 0);
//RE BIANCO
printf("RE BIANCO");
printf("\nRIGA: ");
scanf("%d", &riga_re);
scrivereRigaPezzo(&re_bianco, riga_re);
printf("\nCOLONNA: ");
scanf("%d", &colonna_re);
scrivereColonnaPezzo(&re_bianco, colonna_re);
scrivereValoreScacchiera(&s, riga_re, colonna_re, 1);//1=re bianco
//REGINA NERA
printf("\nREGINA NERA");
printf("\nRIGA: ");
scanf("%d", &riga_regina);
scrivereRigaPezzo(®ina_nera, riga_regina);
printf("\nCOLONNA: ");
scanf("%d", &colonna_regina);
scrivereColonnaPezzo(®ina_nera, colonna_regina);
scrivereValoreScacchiera(&s, riga_regina, colonna_regina, 2);//2=regina nera
leggereTuttiValoriScacchiera(&s);
printf("\nREGINA MANGIA RE? %d" ,reginaMangiaRe(riga_regina, colonna_regina, riga_re, colonna_re));
system("pause");
return EXIT_SUCCESS;
}
#include <stdio.h>
#define MAX 8
#define MIN 1
int main(void) {
scacchiera s; //scacchiera da ulizzare per il gioco
int colonna_re;
int riga_re;
int colonna_regina;
int riga_regina;
pezzo re_bianco;
pezzo regina_nera;
scrivereRigheScacchiera(&s, 8);
scrivereColonneScacchiera(&s, 8);
//INIZIALIZZO LA SCACCHIERA
inizializzaScacchiera(&s, 0);
//RE BIANCO
printf("RE BIANCO");
printf("\nRIGA: ");
scanf("%d", &riga_re);
scrivereRigaPezzo(&re_bianco, riga_re);
printf("\nCOLONNA: ");
scanf("%d", &colonna_re);
scrivereColonnaPezzo(&re_bianco, colonna_re);
scrivereValoreScacchiera(&s, riga_re, colonna_re, 1);//1=re bianco
//REGINA NERA
printf("\nREGINA NERA");
printf("\nRIGA: ");
scanf("%d", &riga_regina);
scrivereRigaPezzo(®ina_nera, riga_regina);
printf("\nCOLONNA: ");
scanf("%d", &colonna_regina);
scrivereColonnaPezzo(®ina_nera, colonna_regina);
scrivereValoreScacchiera(&s, riga_regina, colonna_regina, 2);//2=regina nera
leggereTuttiValoriScacchiera(&s);
printf("\nREGINA MANGIA RE? %d" ,reginaMangiaRe(riga_regina, colonna_regina, riga_re, colonna_re));
system("pause");
return EXIT_SUCCESS;
}
typedef struct{
int matrice[MAX][MAX];
int maxrighe;
int maxcolonne;
}scacchiera;
int leggereRighe(scacchiera matrice){
int righe;
righe = matrice.maxrighe;
return righe;
}
int leggereColonne(scacchiera matrice){
int colonne;
colonne = matrice.maxcolonne;
return colonne;
}
int leggereValore(scacchiera matrice, int riga, int colonna){
int valore;
valore = matrice.matrice[riga][colonna];
return valore;
}
scacchiera scrivereRighe(scacchiera matrice, int riga){
matrice.maxrighe = riga;
return matrice;
}
scacchiera scrivereColonne(scacchiera matrice, int colonna){
matrice.maxcolonne = colonna;
return matrice;
}
scacchiera scrivereValore(scacchiera matrice, int riga, int colonna, int valore){
matrice.matrice[riga-1][colonna-1] = valore;
return matrice;
} -
.
Tabella ScrivereValore(tabella t, int e, int c, int valore)
{
r.valor[r][c]=valore;
return t;
} -
.
int main(void){
int righe; colonne;
int limite; // grandezza orizzontale e verticale tabella
limite=8;
tabella s1;
ScrivereRighe(
printf("Inserisci
tabella ScrivereValore (tabella tabella, int r, int c, int valore){ tabella.valor[r][c]=valore;
return tab;
}
void leggiMatrice (int r, int s, matrice[VAL][VAL]){
int i, j;
do{
do{
printf("Inserisci elementi in posizione
scand("%",
i=i+i;
#include <stdio.h>
#include <stdlib.h>
typedef {
int main(void) {
int righe, colonne;
int limite;
limite = 8;
tabella s1;
ScrivereRighe(s1, limite);
ScrivereColonne(s1, limite);
printf("Inserisci il numero della righe %d"
int stampamatrice (int r, int c, int matrice[VAL][VAL]){ -
.
Praticamente devi creare 6 sottoprogrammi che lavorano su una matrice nel main.
La matrice la devi creare attraverso la malloc (se non sai come fare dopo ti passo una tecnica)
Creata la matrice, crei i sottoprogrammi. Nel caso dello scanf puoi fare un doppio ciclo for che legge nelle coordinate stabilite l’elemento nella matrice. Come prototipo dei sottoprogrammi mi sa che č un po’ un casino perché devi gestirti la malloc(devi saper usare i puntatori)
Non dimenticarti di deallocare la memoria alla fine -
.
- Criar o pseudocódigo e o código das 6 funçőes de acesso (ler/escrever valor, ler /escrever linha, ler/escrever coluna);
- Criar pseudocódigo e código das funçőes para inserir todos os valores e imprimir todos os valores de uma tabela
Na linguagem C, como faço para resolver este exercício?
Năo sei como continuar o exercício:
#include <stdio.h> #include <stdib.h>
# define MAX 30
typedef struct { valores int [MAX] [MAX];
linhas internas; colunas int; }
tabela; // protótipos int LerLinhas (tabela t);
int lerlinhas (tabela t);
int LerValues (tabela t, int r, int c);
int main (void) { tabela t1; t1.linhas = LerLinhas (tabela t);
t1.colunas = LerColunas (t1);
t1.values = LerValues (t1, t1.linhas t1.colunas);
return EXIT_SUCCESS; int LerLinhas (tabela t) { -
.
#include <stdio.h> #include <stdib.h>
# define MAX 30
typedef struct { valores int [MAX] [MAX];
linhas internas; colunas int; }
tabela; // protótipos int LerLinhas (tabela t);
int lerlinhas (tabela t);
int LerValues (tabela t, int r, int c);
int main (void) { tabela t1; t1.linhas = LerLinhas (tabela t);
t1.colunas = LerColunas (t1);
t1.values = LerValues (t1, t1.linhas t1.colunas);
return EXIT_SUCCESS; int LerLinhas (tabela t) { -
.
t1.righe=LeggereRighe(t1);
t1.colonne=LeggereColonne(t1);
t1.valori=[][]=LeggereValori(t1, t1.righe, t1.colonne);
t1.lines = Read Lines (t1); t1.columns = Read Columns (t1); t1.values = [] [] = ReadValues (t1, t1.lines, t1.columns);
t1.linhas = ler linhas(t1); t1.colunas = Ler colunas (t1); t1.values = [] [] = ReadValues (t1, t1.linhas, t1.colunas);
#include <stdio.h>
#include <stdib.h>
#define MAX 30
typedef struct {
int valori[MAX][MAX];
int righe;
int colonne;
}tabella;
//prototipi
int LeggereRighe(tabella t);
int LeggereColonne(tabella t);
int LeggereValori (tabella t, int r, int c);
int main(void) {
tabella t1;
t1.righe=LeggereRighe(tabella t);
t1.colonne=LeggereColonne(t1);
t1.valori=LeggereValori(t1, t1.righe, t1.colonne);
return EXIT_SUCCESS;
int LeggereRighe(tabella t){
#include <stdio.h>
#include <stdib.h>
#define MAX 30
typedef struct {
int values [MAX] [MAX];
int lines;
int columns;
}table;
// prototypes
int Read Lines (table t);
int ReadColumns (table t);
int ReadValues (table t, int r, int c);
int main (void) {
table t1;
t1.righe = ReadLines (table t);
t1.colonne = ReadColumns (t1);
t1.valori = ReadValues (t1, t1.lines, t1.columns);
return EXIT_SUCCESS;
int Read Lines (table t) {