Програма за изчисляване на средна стойност



Дата03.01.2017
Размер23.9 Kb.
ТипПрограма




Приложение 1. Програма за изчисляване на средна стойност.

Вариант 1: методът average() не “улавя” изключения от вида NumberFormatException, хвърлени от метода parseDouble() и затова при грешка във формата на въвежданите числа програмата не завършва.

import java.io.*;

import java.util.*;

class EssentialMath{

public static double average() throws IOException{

System.out.println("Enter numbers at the same line");

BufferedReader b=new BufferedReader(new InputStreamReader(System.in));

String s=b.readLine();

StringTokenizer st=new StringTokenizer(s);

double sum=0;

int numberOfValues =0;

while(st.hasMoreTokens()){

String n=st.nextToken();

double num=Double.parseDouble(n);

sum +=num;

numberOfValues++;

}

double average=sum/numberOfValues;



return average;

}

}



public class FindAverage {

public static void main(String[] args)throws IOException {

double avg=EssentialMath.average();

System.out.println("The average value is: "+avg);

}

}

Вариант 2. Модифициран метод average(), който “улавя” изключения от вида NumberFormatException, хвърлени от метода parseDouble(). Това позволява числата с грешен формат да се пренебрегнат и да се изведе информация къде са грешните числа.



public static double average() throws IOException{

System.out.println("Enter numbers at the same line");

BufferedReader b=new BufferedReader(new InputStreamReader(System.in));

String s=b.readLine();

StringTokenizer st=new StringTokenizer(s);

double sum=0;

int numberOfValues =0;

int numberOfErrors=0;

while(st.hasMoreTokens()){

String n=st.nextToken();

try{

double num=Double.parseDouble(n);



sum +=num;

numberOfValues++;

}catch(NumberFormatException e){

numberOfErrors++;

System.out.println("Invalid number at position "+

(numberOfValues+numberOfErrors)+" ignored.");

} }

double average=sum/numberOfValues;



return average;

}

Приложение 3. Дели числата в един масив с едно нормиращо число и улавя и обработва изключение от тип ArithmeticException когато се дели на нула.



import java.util.*;

public class ThrowDemo {


public static void main(String[] args) {

double data[] = { 1.2, 2.3, 3.4, 4.5 };

Scanner s=new Scanner(System.in);

System.out.println("Enter a scaling number");

double d=s.nextDouble();


try {

scaleArray(data, d);

printArray(data);

} catch(ArithmeticException ae) {

System.out.println("Opa, divide by zero");

}
}


public static void scaleArray(double[] array, double d){

if ( d == 0.0 ) throw new ArithmeticException();


for(int i=0; iarray[i] /= d;

}

}

public static void printArray(double array[]) {



for(int i=0; i

System.out.println("array[" + i +

"] = " + array[i]);

}

System.out.println();



}

}

Приложение 4. Запълва и изпразва стек и дава съобщения ако стека е пълен или празен.



class StackFullException extends Exception{

int size;

//constructor

StackFullException(int s){size=s;}

public String toString(){//method

return "\nStack is full. Maximum size is "+size;

}

}

class StackEmptyException extends Exception{



public String toString(){

return "\nStack is empty!!!";

}

}
class Stack{



private char stk[];// array containing the stack

private int tos;//top of stack

Stack(int size){//constructor defining size

stk=new char[size];

tos=0;

}

Stack(char a[]){//constructor defining values from array



stk=new char [a.length];

for(int i=0;i

try{

push(a[i]);



}

catch(StackFullException exc){

System.out.println(exc);}

}

}



void push(char ch)throws StackFullException {//method to add character to stack

if(tos==stk.length)

throw new StackFullException(stk.length);

stk[tos]=ch;

tos++;

}

char pop()throws StackEmptyException{//method to take character from stack



if(tos==0)

throw new StackEmptyException();

tos--;

return stk[tos];



}

void showStack()throws StackEmptyException{//show stack method

for(int i=0;i

char ch=pop();

System.out.print(ch);

}

System.out.println();



}

}

class StackDemo {



public static void main (String[] args)throws Exception{

Stack stk1=new Stack(10);

char name[]={'S','o','f','i','a'};

Stack stk2=new Stack(name);//fill stk2 by array

//fill stk1

for(int i=0;i<10;i++)

stk1.push((char)('A'+i));

//show stack by loop

stk1.showStack();

stk2.showStack();

//stk2.showStack();

}

}


Приложение 5. Същото като приложение 4, но грешките при излизане от границите на стека се обработват от изключения, които не са вградени в Java.
class Stack{

private char stk[];// array containing the stack

private int tos;//top of stack

Stack(int size){//constructor defining size

stk=new char[size];

tos=0;


}

Stack(char a[]){//constructor defining values from array

stk=new char [a.length];

for(int i=0;i

push(a[i]);

}

void push(char ch) {//method to add character to stack



if(tos==stk.length){

System.out.println("Stack is full.");

return;

}

stk[tos]=ch;



tos++;

}

char pop(){//method to take character from stack



if(tos==0){

System.out.println("Stack is empty.");

return (char)0;

}

tos--;



return stk[tos];

}

void showStack(){//show stack method



for(int i=0;i

char ch=pop();

System.out.print(ch);

}

System.out.println();



}

}

class StackDemo {


public static void main (String[] args)throws Exception{

Stack stk1=new Stack(10);

char name[]={'S','o','f','i','a'};

Stack stk2=new Stack(name);//fill stk2 by array

//fill stk1 by loop

for(int i=0;i<10;i++)

stk1.push((char)('A'+i));

//show stack by loop

stk1.showStack();

stk2.showStack();



//stk2.showStack();

}

}
Каталог: ~tank -> JAVA -> Lectures
Lectures -> Лекция Изключения. Уравнение на КортевегДеВриз
Lectures -> Лекция 2 Типове данни. Класове и обекти. Числено интегриране
Lectures -> Лекция аплети и уеб-страници
Lectures -> Лекция Mногонишково програмиране в java понятието нишка (thread) се свързва с контрола или изпълнението на отделна програма или задача. Нишките са опънати във времето и свързват една с друга последователните команди
Lectures -> Програма за изчисляване на средна стойност
Lectures -> Лекция Характерни особености на езика java. Сравнение с други
Lectures -> Приложение Аплети с геометрични фигури. // A java applet displaying a white circle in a black square
Lectures -> Лекция 10. Програмиране в уеб-страница с помощта на Java Script
Lectures -> Лекция Входни и изходни потоци. Писане във файл и четене от


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©obuch.info 2019
отнасят до администрацията

    Начална страница