logo Thecsea.it



Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License



scolastica » esercizi » quarta superiore » php

Testo dell'esercizio

dato un vettore di nomi e di eta effettuare le seguenti operazioni:
minimo
masismo
media
ricerca di nomi corrispondenti ad un eta
ricerca dell'eta di un nome
ordinamento

mostra soluzione

001<?php
002/*
003CLAUDIO CARDINALE 4AI
004dato un vettore di nomi e di eta effettuare le seguenti operazioni:
005minimo
006masismo
007media
008ricerca di nomi corrispondenti ad un eta
009ricerca dell'eta di un nome
010ordinamento
011*/
012//acquisizione dei dati
013print "quanti nomi : ";
014fscanf(STDIN,"%d",$n);
015for($i = 0;$i<$n;$i++){
016    print "nome : ";
017    fscanf(STDIN,"%s",$nomi[$i]);
018    print "eta : ";
019    fscanf(STDIN,"%d",$eta[$i]);
020}
021     
022//scelta
023do{
024    print "0) esci\n1) minimo\n2) massimo\n3) media\n4) nomi corrispondenti ad un eta`\n5) ricerca\n6) ordinamento\nscelta : ";
025    fscanf(STDIN,"%d",$scelta);
026    switch($scelta){
027        case 0:
028            break;
029        case 1:
030            print minimo($eta,$n)."\n";
031            break;
032        case 2:
033            print massimo($eta,$n)."\n";
034            break;
035        case 3:
036            print media($eta,$n)."\n";
037            break;
038        case 4:
039            print "quale eta : ";
040            fscanf (STDIN,"%d",$etap);
041            eton($nomi, $eta, $etap, $n);
042            break;
043        case 5:
044            print "quale nome ";
045            fscanf(STDIN,"%s",$nome);
046            ricerca($nomi, $nome, $eta, $n);
047            break;
048        case 6:
049            $ordinato = ordina($nomi,$n);
050            for($i=0;$i<$n;$i++)
051                print $nomi[$ordinato[$i]]." - ".$eta[$ordinato[$i]]."\n";
052            break;
053        default:
054            print "opzione non valida\n";
055                 
056    }
057}while($scelta);
058 
059function minimo($vet, $n){
060    //inizializzazioni
061    $pos = 0;
062     
063    //calcoli
064    for($i=1;$i<$n;$i++)
065        if($vet[$i]<$vet[$pos])
066            $pos = $i;
067     
068    //ritorno
069    return $vet[$pos];
070}
071 
072function massimo($vet, $n){
073    //inizializzazioni
074    $pos = 0;
075     
076    //calcoli
077    for($i=1;$i<$n;$i++)
078        if($vet[$i]>$vet[$pos])
079            $pos = $i;
080     
081    //ritorno
082    return $vet[$pos];
083}
084 
085function media($vet, $n){
086    //inizializzazioni
087    $somma = 0;
088     
089    for($i=0;$i<$n;$i++)
090        $somma += $vet[$i];
091     
092    //ritorno
093    return $somma/$n;
094}
095 
096function eton($nomi, $eta, $etap, $n){
097    //inizializzazioni
098    $flag = 0;
099     
100    //calcoli
101    for($i=0;$i<$n;$i++)
102        if($etap==$eta[$i]){
103            $flag = 1;
104            print $nomi[$i]."\n";
105        }
106    if(!$flag)
107        print "non c'e` nessuno che ha ".$etap." anni\n";
108}
109 
110function ricerca($vet, $str, $eta, $n){
111    //inizializzazioni
112    $i = 0;
113    $flag = 0;
114     
115    //ricerca
116    while($i<$n && !$flag)
117        if($str==$vet[$i])
118            $flag=1;
119        else
120            $i++;
121 
122    //visualizzazione risultati
123    if($flag)
124        print $str." ha ".$eta[$i]." anni\n";
125    else
126        print $str." non è presente`\n";
127}
128 
129function ordina($vet, $n){ 
130    //calcoli
131    for($i=0;$i<$n;$i++)
132        $ordinato[$i] = $i;
133    do{
134        $k = 0;
135        for($i=0;$i<$n-1;$i++)
136            if($vet[$ordinato[$i]]>$vet[$ordinato[$i+1]]){
137                $aux = $ordinato[$i];
138                $ordinato[$i] = $ordinato[$i+1];
139                $ordinato[$i+1] =  $aux;
140                $k = $i+1;
141            }
142        $n=$k;
143    }while($k);
144     
145    return $ordinato;
146}

torna



Copyright © 2004-2025 thecsea.it (Claudio Cardinale - cardi@thecsea.it)! Tutti i diritti riservati. - contattaci