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

<?php
/*
CLAUDIO CARDINALE 4AI
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
*/
//acquisizione dei dati
print "quanti nomi : ";
fscanf(STDIN,"%d",$n);
for($i = 0;$i<$n;$i++){
	print "nome : ";
	fscanf(STDIN,"%s",$nomi[$i]);
	print "eta : ";
	fscanf(STDIN,"%d",$eta[$i]);
}
	
//scelta
do{
	print "0) esci\n1) minimo\n2) massimo\n3) media\n4) nomi corrispondenti ad un eta`\n5) ricerca\n6) ordinamento\nscelta : ";
	fscanf(STDIN,"%d",$scelta);
	switch($scelta){
		case 0:
			break;
		case 1:
			print minimo($eta,$n)."\n";
			break;
		case 2:
			print massimo($eta,$n)."\n";
			break;
		case 3:
			print media($eta,$n)."\n";
			break;
		case 4:
			print "quale eta : ";
			fscanf (STDIN,"%d",$etap);
			eton($nomi, $eta, $etap, $n);
			break;
		case 5:
			print "quale nome ";
			fscanf(STDIN,"%s",$nome);
			ricerca($nomi, $nome, $eta, $n);
			break;
		case 6:
			$ordinato = ordina($nomi,$n);
			for($i=0;$i<$n;$i++)
				print $nomi[$ordinato[$i]]." - ".$eta[$ordinato[$i]]."\n";
			break;
		default:
			print "opzione non valida\n";
				
	}
}while($scelta);

function minimo($vet, $n){
	//inizializzazioni
	$pos = 0;
	
	//calcoli
	for($i=1;$i<$n;$i++)
		if($vet[$i]<$vet[$pos])
			$pos = $i;
	
	//ritorno
	return $vet[$pos];
}

function massimo($vet, $n){
	//inizializzazioni
	$pos = 0;
	
	//calcoli
	for($i=1;$i<$n;$i++)
		if($vet[$i]>$vet[$pos])
			$pos = $i;
	
	//ritorno
	return $vet[$pos];
}

function media($vet, $n){
	//inizializzazioni
	$somma = 0;
	
	for($i=0;$i<$n;$i++)
		$somma += $vet[$i];
	
	//ritorno
	return $somma/$n;
}

function eton($nomi, $eta, $etap, $n){
	//inizializzazioni
	$flag = 0;
	
	//calcoli
	for($i=0;$i<$n;$i++)
		if($etap==$eta[$i]){
			$flag = 1;
			print $nomi[$i]."\n";
		}
	if(!$flag)
		print "non c'e` nessuno che ha ".$etap." anni\n";
}

function ricerca($vet, $str, $eta, $n){
	//inizializzazioni
	$i = 0;
	$flag = 0;
	
	//ricerca
	while($i<$n && !$flag)
		if($str==$vet[$i])
			$flag=1;
		else
			$i++;

	//visualizzazione risultati
	if($flag)
		print $str." ha ".$eta[$i]." anni\n";
	else
		print $str." non è presente`\n";
}

function ordina($vet, $n){  
	//calcoli 
	for($i=0;$i<$n;$i++)
		$ordinato[$i] = $i;
	do{ 
		$k = 0; 
		for($i=0;$i<$n-1;$i++) 
			if($vet[$ordinato[$i]]>$vet[$ordinato[$i+1]]){ 
				$aux = $ordinato[$i]; 
				$ordinato[$i] = $ordinato[$i+1]; 
				$ordinato[$i+1] =  $aux; 
				$k = $i+1; 
			} 
		$n=$k; 
	}while($k); 
	
	return $ordinato;
}

torna



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