09/04/14 12:28
nessuno
Quale algoritmo di ordinamento vi ha fatto studiare?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
09/04/14 12:36
perillitommaso
Sisi, ordinamento per scambio e il sort a bolle.. solo che abbiamo utilizzato solo numeri interi..
aaa
09/04/14 13:59
perillitommaso
Ma quindi io posso liberamente mettere a confronto l'iniziale delle città? esempio:
immagine un array bidimensionale di 6 righe e 15 colonne, io ho bisogno solo della prima lettera di ogni stringa, ho quindi due indici, i e j, i per le righe e j per le colonne. Io ho questo algoritmo di ordinamento che utilizza uno scambio ma lo abbiamo usato SOLO nel vettore, non in un array bidimensionale... questo è l'algoritmo:
for(i=0;i<dim-1;i++){
for(j=1;j<dim;j+1){
if(V[i]>V[j]){
Scambio(V[i],V[j])
}
}
}
return;
V[ i] e V[j] rappresentano lo stesso vettore ... è solo che ci sono due indici, uno che va in avanti all'altro, non so come spiegarvelo.. mentre per l'array bidimensionale che ha righe e colonne, come faccio? Anche perchè, vorrei sapere se ci fosse un'istruzione che mi dichiari i due indici e cioè, io ho dichiarato sia i che j ma come faccio io a capire quale dei due è della riga e quale della colonna? A livello logico nell'analisi e nel campione io so quale è della riga e quale è della colonna ma quando vado a scrivere in C come faccio? Perchè sto avendo dei problemi anche nella continuazione del programma. In poche parole ho due array bidimensionali paralleli e un vettore parallelo, il primo array conterrà i nomi delle città, il secondo vettore conterrà i gradi della temperatura a un rispettivo orario e il vettore infine conterrà poi la media. Io ho iniziato a lavorarci su, ma quando vado a visualizzare la media mi esce sempre 0:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*Variabili Globali*/
int i=0;//indice delle righe
int j=0;//indice delle colonne
/*Prototipi Procedure*/
//void inseriscicitta(char citta);
//void oraritemp(int *temp);
/*Programma Principale*/
int main()
{ char citta [7][20];
int temp [7][4]; //Matrici parallele hanno in comune le righe
float media[7];
int M=0;
//Inseriamo le città
for(i=1;i<=6;i++){
printf("Inserisci una citta': ");
gets(citta[i]);
}
//inseriscicitta(citta);
//Impostiamo gli orari delle temperature
//oraritemp(temp);
temp[0][0] = 6;
temp[0][1] = 12;
temp[0][2] = 16;
temp[0][3] = 00;
//Inseriamo le temperature
for(i=1;i<=6;i++){
printf("Inserisci la temperatura per %s:\n",citta[i]);
for(j=0;j<4;j++){
scanf("%d",temp[j]);
}
}
//Media temperature
for(i=1;i<=6;i++){
for(j=0;j<4;j++){
M=M+*temp[j];
}
media[i] = M/4;
printf("Media Temperature di %s: %d\n",citta[i],media[i]);
}
printf("\n\n");
system("PAUSE");
return(0);
}
/*Procedure:*/
/*
void inseriscicitta(char citta){
for(i=0;i<=6;i++){
printf("Inserisci una citta': ");
gets(citta[i]);
}
return;
}
/*
void oraritemp(int *temp){
*temp[0][0] = 6;
*temp[0][1] = 12;
*temp[0][2] = 16;
*temp[0][3] = 00;
return;
}
*/
Il codice è un po sporco perchè ci sto lavorando, ho avuto alcuni problemi nelle procedure ma quello è secondario ... adesso il problema principale è ordinare l'array dei nomi delle città, e di conseguenza anche ordinare le temperature perchè se riordino solo l'array delle città, poi mi ritrovo che le città hanno temperature sbagliate. E non ho capito una cosa, perchè quando andavo a compilare mi dava errore a : " M=M+temp[j]; " ? L'ho risolto aggiungendo poi * prima di temp[j] ma non ho capito perchè.. mi diceva che non era possibile convertire int in *int quando non stavo usando nessuna procedura ..
Ultima modifica effettuata da pierotofy 09/04/14 14:06
aaa
09/04/14 14:46
perillitommaso
E' un casino vero? AHAHHA Queste so le tracce che mi danno i miei prof -.-
aaa
09/04/14 15:25
perillitommaso
Io so quello che vedi ... il professore ieri ha spiegato l'array bidimensionale e oggi ci ha dato la traccia... non ci ha detto niente di che, ci ha detto solo cosa devono contenere gli array
aaa