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 file contenente nomi ed eta efettuare le seguenti operazioni direttamente da file :
minimo
masismo
media
ricerca di nomi corrispondenti ad un eta
ricerca dell'eta di un nome

mostra soluzione

001<?php
002/*
003CLAUDIO CARDINALE 4AI
004dato un file contenente nomi ed eta efettuare le seguenti operazioni direttamente da file :
005minimo
006masismo
007media
008ricerca di nomi corrispondenti ad un eta
009ricerca dell'eta di un nome
010*/
011 
012$f_name = "persone";
013     
014//scelta
015do{
016    print "0) esci\n1) minimo\n2) massimo\n3) media\n4) nomi corrispondenti ad un eta`\n5) ricerca\nscelta : ";
017    fscanf(STDIN,"%d",$scelta);
018    switch($scelta){
019        case 0:
020            break;
021        case 1:
022            print minimo($f_name)."\n";
023            break;
024        case 2:
025            print massimo($f_name)."\n";
026            break;
027        case 3:
028            print media($f_name)."\n";
029            break;
030        case 4:
031            print "quale eta : ";
032            fscanf (STDIN,"%d",$etap);
033            eton($f_name, $etap);
034            break;
035        case 5:
036            print "quale nome ";
037            fscanf(STDIN,"%s",$nome);
038            cerca_f($f_name, $nome);
039            break;
040        default:
041            print "opzione non valida\n";
042                 
043    }
044}while($scelta);
045 
046function minimo($f_name){  
047    //calcoli
048    $f = fopen($f_name,"r") or die("il file non e` stato aperto\n");
049    fscanf($f,"%s %d",$nome, $eta);
050    while(!feof($f)){
051        fscanf($f,"%s %d",$nome, $eta2);
052        if($eta != "" && $eta2 != "" && $eta2<$eta)
053            $eta = $eta2;
054    }
055    fclose($f);
056     
057    //ritorno
058    return $eta;
059}
060 
061function massimo($f_name){
062    //calcoli
063    $f = fopen($f_name,"r") or die("il file non e` stato aperto\n");
064    fscanf($f,"%s %d",$nome, $eta);
065    while(!feof($f)){
066        fscanf($f,"%s %d",$nome, $eta2);
067        if($eta != "" && $eta2 != "" && $eta2>$eta)
068            $eta = $eta2;
069    }
070    fclose($f);
071     
072    //ritorno
073    return $eta;
074}
075 
076function media($f_name){
077    //inizializzazioni
078    $somma = 0;
079    $n = 0;
080     
081    //calcoli
082    $f = fopen($f_name,"r") or die("il file non e` stato aperto\n");
083    while(!feof($f)){
084        fscanf($f,"%s %d",$nome, $eta);
085        $somma += $eta;
086        $n++;
087    }
088    fclose($f);
089    $somma -= $eta;
090    $n--;
091     
092    //ritorno
093    return ($somma/$n);
094}
095 
096function eton($f_name, $etap){
097    //inizializzazioni
098    $flag = 0;
099     
100    //calcoli
101    $f = fopen($f_name, "r");
102    while(!feof($f)){
103        fscanf($f, "%s %d", $nome, $eta);
104        if($eta == $etap){
105            $flag = 1;
106            print $nome."\n";
107        }
108    }
109    fclose($f);
110    if(!$flag)
111        print "non c'e` nessuno che ha ".$etap." anni\n";
112}
113 
114function cerca_f($file_name, $nome){
115    $f = fopen($file_name, "r");
116    $flag = 0;
117    while(!feof($f) && !$flag){
118        fscanf($f, $nome." %d", $eta);
119        if($eta != "")
120            $flag = 1;
121    }
122    if($flag)
123        print $nome." ha ".$eta." anni\n";
124    else
125        print $nome." non trovato\n";
126    fclose($f);
127}

torna



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