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

<?php
/*
CLAUDIO CARDINALE 4AI
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
*/

$f_name = "persone";
	
//scelta
do{
	print "0) esci\n1) minimo\n2) massimo\n3) media\n4) nomi corrispondenti ad un eta`\n5) ricerca\nscelta : ";
	fscanf(STDIN,"%d",$scelta);
	switch($scelta){
		case 0:
			break;
		case 1:
			print minimo($f_name)."\n";
			break;
		case 2:
			print massimo($f_name)."\n";
			break;
		case 3:
			print media($f_name)."\n";
			break;
		case 4:
			print "quale eta : ";
			fscanf (STDIN,"%d",$etap);
			eton($f_name, $etap);
			break;
		case 5:
			print "quale nome ";
			fscanf(STDIN,"%s",$nome);
			cerca_f($f_name, $nome);
			break;
		default:
			print "opzione non valida\n";
				
	}
}while($scelta);

function minimo($f_name){	
	//calcoli
	$f = fopen($f_name,"r") or die("il file non e` stato aperto\n");
	fscanf($f,"%s %d",$nome, $eta);
	while(!feof($f)){
		fscanf($f,"%s %d",$nome, $eta2);
		if($eta != "" && $eta2 != "" && $eta2<$eta)
			$eta = $eta2;
	}
	fclose($f);
	
	//ritorno
	return $eta;
}

function massimo($f_name){
	//calcoli
	$f = fopen($f_name,"r") or die("il file non e` stato aperto\n");
	fscanf($f,"%s %d",$nome, $eta);
	while(!feof($f)){
		fscanf($f,"%s %d",$nome, $eta2);
		if($eta != "" && $eta2 != "" && $eta2>$eta)
			$eta = $eta2;
	}
	fclose($f);
	
	//ritorno
	return $eta;
}

function media($f_name){
	//inizializzazioni
	$somma = 0;
	$n = 0;
	
	//calcoli
	$f = fopen($f_name,"r") or die("il file non e` stato aperto\n");
	while(!feof($f)){
		fscanf($f,"%s %d",$nome, $eta);
		$somma += $eta;
		$n++;
	}
	fclose($f);
	$somma -= $eta;
	$n--;
	
	//ritorno
	return ($somma/$n);
}

function eton($f_name, $etap){
	//inizializzazioni
	$flag = 0;
	
	//calcoli
	$f = fopen($f_name, "r");
	while(!feof($f)){
		fscanf($f, "%s %d", $nome, $eta);
		if($eta == $etap){
			$flag = 1;
			print $nome."\n";
		}
	}
	fclose($f);
	if(!$flag)
		print "non c'e` nessuno che ha ".$etap." anni\n";
}

function cerca_f($file_name, $nome){
	$f = fopen($file_name, "r");
	$flag = 0;
	while(!feof($f) && !$flag){
		fscanf($f, $nome." %d", $eta);
		if($eta != "")
			$flag = 1;
	}
	if($flag)
		print $nome." ha ".$eta." anni\n";
	else
		print $nome." non trovato\n";
	fclose($f);
}

torna



Copyright © 2004-2024 thecsea.it (Claudio Cardinale - [email protected])! Tutti i diritti riservati. - contattaci