Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Per diversi giorni il Galaxy S26 Ultra di Samsung è stato il nostro compagno di vita. Oltre alle conferme del colosso coreano come la qualità del display e una suite AI senza rivali, arriva il Privacy Display, un unicum nel mondo smartphone. Ci sono ancora alcuni gap che non sono riusciti a colmare lato batteria e fotocamera, seppur con alcuni miglioramenti.
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Abbiamo provato per voi il nuovo DLC lanciato a sorpresa da Blizzard per Diablo II: Resurrected e quella che segue è una disamina dei nuovi contenuti che abbiamo avuto modo di sperimentare nel corso delle nostre sessioni di gioco, con particolare riguardo per la nuova classe dello Stregone
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-07-2010, 03: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, 11: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, 14: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, 17: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, 20: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


Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
Dopo 13 anni cade la fortezza Xbox One: ...
Gli aggiornamenti delle stampanti HP che...
AWS al MWC 2026: quando il cloud diventa...
Project Genie non è un tool per l...
Elon Musk, il progetto TeraFab è ...
Instagram eliminerà la crittograf...
Il paradosso della crisi delle memorie: ...
SSD Samsung 9100 PRO 4TB, 14.800 MB/s, P...
Prezzo senza rivali: MSI Katana con RTX ...
Samsung T7 2TB crolla su Amazon a 159€: ...
Spotify introduce 'Taste Profile': il co...
Sole e pioggia insieme: il nuovo pannell...
AWS e Cerebras uniscono le forze: nuova ...
Windows 11: accesso al drive C: bloccato...
BYD pronta a comprare un marchio storico...
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: 09:30.


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