Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-07-2010, 02:29   #1
moriarty
Senior Member
 
L'Avatar di moriarty
 
Iscritto dal: Feb 2009
Messaggi: 331
[C] problema algoritmo programma

salve a tutti ho un problema con un programma in c
non riesco a definire un algoritmo che compia una semplice azione

questo e quello che dovrei fare

Una ditta di trasporti dispone di un certo numero di autocarri (massimo 100).
I codici degli autocarri sono elencati in ordine alfabetico in un file che in ogni riga contiene:
· il codice dell’autocarro (su tre caratteri)
· la sua portata in tonnellate
Esempio:

FRT 35
GHD 24
SWZ 12
TES 17
VCD 26

inserendo uno specifico carico devo verificare quanti camion devo utilizzare per il trasporto

esempio output

Introduci carico: 36
Autocarri utilizzati: SWZ GHD (nessun autocarro singolo è sufficiente)
Introduci carico: 20
Autocarri utilizzati: VCD (GHD non è più disponibile)
Introduci carico: 33
Autocarri utilizzati: FRT
Introduci carico: 30
La spedizione non può essere effettuata (resta solo TES)
fine programma


e questo sarebbe quello che sono riuscito a fare
l algoritmo in fondo e incompleto

Codice PHP:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 30


typedef struct{
               
char sigla[3];
               
int portata;
               }
listamezzi;
               
int main(int argcchar *argv[])
{
    
listamezzi autocarro[MAX];
    
listamezzi selezionato;
    
listamezzi temp;
    
int carico;
    
int i,cont=0scambio=1;
    
    
    
FILE*f1;
    
    if(
argc!=2){
                
printf("errore nel numero argomenti inseriri\n");
                
system("pause");
                return -
1;
                }
                
    
f1=fopen(argv[1], "r");
    
    if(
f1==NULL){
                 
printf("errore nell apertura del file\n");
                 
system("pause");
                 return -
1;
                 }
                 
    while(
fscanf(f1,"%s%d",autocarro[i].sigla,autocarro[i].portata)!=EOF){
                 
i++;
                 
cont++;
                 }
    
fclose(f1);
    
    
//definisco veicoli in ordine crescente in base alla portata in base alla portata tramite algoritmo bubble sort
    
    
while(scambio) {
                   
scambio=0;
                   for(
i=0;i<cont;i++) {
                           if(
autocarro[i].portata>autocarro[i+1].portata){
                               
temp=autocarro[i];
                               
autocarro[i]=autocarro[i+1];
                               
autocarro[i+1]=temp;
                               
scambio=1;
                               }
                               }
                               }
    
    
printf("inserisci il quantitativo di carico in tonnellate da trasportare: ");
    
scanf("%d", &carico);
    
    for(
i=0;i<cont;i++) {
                       
//provo ad effettuare la spedizione con un solo autocarro
                       
if(carico<=autocarro[i].portata) {
                       
selezionato=autocarro[i];
                       
printf("l autocarro disponibile e il %s con una portata di %d\n"selezionato.siglaselezionato.portata);
                       
                       
/*da qui in poi non saprei come continuare
                          nel caso in cui il carico fosse maggiore della portata di un singolo autocarro
                          devo sceglierene 2 o piu..solo che la scelta dovrebbe essere opportuna(nel senso che se il carico
                          è 36 non posso sceglierne uno con 35 e un altro solo con una tonnellata*/
                   
                                        
                  
   
    
system("pause");

moriarty è offline   Rispondi citando il messaggio o parte di esso
Old 13-07-2010, 10:07   #2
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Mi puzza tanto di programmazione dinamica.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 13-07-2010, 13:34   #3
moriarty
Senior Member
 
L'Avatar di moriarty
 
Iscritto dal: Feb 2009
Messaggi: 331
qualcuno mi da una mano?
moriarty è offline   Rispondi citando il messaggio o parte di esso
Old 13-07-2010, 16:16   #4
oNaSsIs
Member
 
L'Avatar di oNaSsIs
 
Iscritto dal: Apr 2007
Messaggi: 182
A me in realtà così a prima occhiata ricorda un problema di Ricerca Operativa risolvibile attraverso il metodo Branch and Bound, che mi è capitato di usare in problemi come quello noto del Knapsack. Nel tuo caso però dovresti minimizzare la funzione relativa al numero di camion e avere un vincolo di maggiore o uguale della capienza dei camion rispetto al peso della merce da trasportare.
oNaSsIs è offline   Rispondi citando il messaggio o parte di esso
Old 13-07-2010, 19:08   #5
moriarty
Senior Member
 
L'Avatar di moriarty
 
Iscritto dal: Feb 2009
Messaggi: 331
credo che dovrei solo cercare di rendere piu semplice questo algoritmo perche altrimenti sarebbe troppo complesso e infinito
Codice PHP:
for(i=0;i<cont;i++){
                        if(
carico<=autocarro[i].portata){
                           
selezionato=autocarro[i];
                           
printf("la spedizione puo essere effettuata con autocarro %s di portata %d"selezionato.sigla,selezionato.portata);
                           }
                      else{
                           
selezionato=autocarro[i];
                           
residuo carico autocarro[i].portata;
                           for(
j=0;j<cont<j++){
                                               if(
residuo<=autocarro[i].portata){
                                               
selezionato1=autocarro[i];
                                               
printf("la spedizione puo essere effettuata con autocarro %s e %s di portata %d e %d"selezionato.sigla,selezionato.portata,selezionato1.sigla,selezionato1.portata);
                                               }
                                               ............................................................ 
moriarty è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Dopo 23 anni di silenzio, Warcraft 3 spi...
Roblox sfida l'ecosistema gaming: app st...
OpenAI accusata di plagio dai migliori m...
Altro attacco hacker dell'IA: gli agenti...
Stiamo davvero perdendo il controllo del...
Microsoft perde un pilastro: Frank Shaw ...
Diablo V annunciato a sorpresa: il colpo...
Meno di 5 euro per il 5G: l'offerta Kena...
World of Warcraft: Forever è il Classic+...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v