
Результаты работы программы
3.15345=3.15345->true
Infinity:true,false
NaN:false,true
d3 Infinite?true
d4 NaN?true
-Infinity
d3 == Infinity? false
d5=-0x1.8p1
d6=1234.0
d5>d1? -1
d1=d1 ?0
d1>d5 1
d5>d1 -1
Max_d1=1.7976931348623157E308
Min_d1=4.9E-324
d7=4614283356922483153
d2 в шестнадцатеричном представлении:0x1.93a43fe5c91d1p1
d2 в представлении ASCII cod:3.15345
Задание №5
Условие
На основании задания №2 исследовать работу исключительных ситуаций. Создать программу обработки следующих ситуаций:
Исключительную ситуацию если введено имя мэра, которого нет в списке допустимых мэров
Исключительную ситуацию если количество голосов превышает допустимое кол-во
Блок схема
Кодпрограммы
package package1;
import java.io.IOException;
public class q5 {
static private char ch;
static private int i,j,c,r,key=0,kol_j[],kol_i;
private int kol[][],kol_m[],kol_max=10,l;
private String s;
private String name_city[];
private String name_mayor[][];
static public int n;
static private String list[];
private int amount=5;
q5(){
list=new String[amount];
list[0]="qqq";
list[1]="www";
list[2]="eee";
list[3]="rrr";
list[4]="ttt";
}
//Метод обработки исключительной ситуации , если мэра нет в списке
private void listexception()throws MyException{
StringBuffer str;
System.out.println("(1)Хотите поменять имя и продолжить ввод или (2)закончить ввод");
try{
str=new StringBuffer();
while ((ch = (char) System.in.read()) != '\n')
str.append(ch);
l=Integer.parseInt(str.toString());}
catch(IOException e){}
switch(l){
case '1':{try{key=0;str=new StringBuffer();
System.out.println("Введите имя мэра");
while ((ch = (char) System.in.read()) != '\n')
str.append(ch);
name_mayor[i][j] = new String(str.toString());
int l=0;
for(c=0;c<amount;c++){
if(name_mayor[i][j].equals(list[c]))
{
l++;
break;
}
}
if(l==0){
throw new ListException(name_mayor[i][j]);
}
break;}
catch(IOException e){}
catch(MyException List){
System.out.println("caught "+List);
listexception();
}
}
case '2':key=1;kol_j[i]=j+1;break;
}
}
//Метод обработки исключительной ситуации , если кол-во голосов превышает допустимое количество
private void kolexception()throws MyException{
StringBuffer str;
System.out.println("(1)Хотите поменять кол-во голосов и продолжить ввод или (2)закончить ввод");
try{
str=new StringBuffer();
while ((ch = (char) System.in.read()) != '\n')
str.append(ch);
l=Integer.parseInt(str.toString());}
catch(IOException e){}
switch(l){
case '1':{
try{
key=0;str = new StringBuffer();
System.out.println("Кол-во голосов:");
while ((ch = (char) System.in.read()) != '\n')
if(ch!=13)str.append(ch);
kol[i][j] = Integer.parseInt(str.toString());
if (kol[i][j]>kol_max){
throw new KolException(name_mayor[i][j]);
}
break;}
catch(IOException e){}
catch(MyException List){
System.out.println("caught "+List);
kolexception();
}
}
case '2':key=1;kol_j[i]=j+1;break;
}
}
//Метод ввода таблицы
public void Enter()throws MyException,ListException,KolException{
try
{
name_city = new String[n];
name_mayor=new String[n][];
kol=new int[n][];
kol_m=new int[n];
StringBuffer str = new StringBuffer();
System.out.println("Введите имя города");
while ((ch = (char) System.in.read()) != '\n')
str.append(ch);
name_city[i] = new String(str.toString());
System.out.print("Введите кол-во мэров");
str = new StringBuffer();
while ((ch = (char) System.in.read()) != '\n')
if(ch!=13)str.append(ch);
kol_m[i]=Integer.parseInt(str.toString());
name_mayor[i]=new String[kol_m[i]];
kol[i]=new int[kol_m[i]];
for(j=0;j<kol_m[i];j++)
{
str=new StringBuffer();
System.out.println("Введите имя мэра");
while ((ch = (char) System.in.read()) != '\n')
str.append(ch);
name_mayor[i][j] = new String(str.toString());
try
{
int l=0;
for(c=0;c<amount;c++)
{
if(name_mayor[i][j].equals(list[c]))
{
l++;
break;
}
}
if(l==0)
{
throw new ListException(name_mayor[i][j]);
}
}
catch(MyException List){
System.out.println("caught "+List);
listexception();}
if(key==1)
break;
str = new StringBuffer();
System.out.println("Кол-во голосов:");
while ((ch = (char) System.in.read()) != '\n')
if(ch!=13)str.append(ch);
kol[i][j] = Integer.parseInt(str.toString());
try
{
if (kol[i][j]>kol_max)
{
throw new KolException(name_mayor[i][j]); }
}
catch(MyException List){
System.out.println("caught "+List);
kolexception();}
}
}
catch(IOException e){}
}
//Метод распечатки таблицы
public void Print(int a){
for(j=0;j<kol_m[i]-kol_j[i];j++){
System.out.print(name_city[i]+" "+name_mayor[i][j]+" "+kol[i][j]+"\n");
}
}
public void Print(){
System.out.print(name_city[i]+" "+name_mayor[i][0]+" "+kol[i][0]+"\n");
}
//Метод обработки
public void Processing(){
for(c=0;c<kol_m[i]-1-kol_j[i];c++){
for(j=0;j<kol_m[i]-1-kol_j[i];j++){
if (kol[i][j]<kol[i][j+1])
{
r=kol[i][j+1];
kol[i][j+1]=kol[i][j];
kol[i][j]=r;
s=name_mayor[i][j+1];
name_mayor[i][j+1]=name_mayor[i][j];
name_mayor[i][j]=s;
}
}
}
}
public static void main(String[] args){
try{
StringBuffer str = new StringBuffer();
System.out.print("Введите кол-во строк в таблице");
while ((ch = (char) System.in.read()) != '\n')
if(ch!=13)str.append(ch);
n = Integer.parseInt(str.toString());
System.out.println("n=" + n);
}catch(IOException e){}
kol_j=new int[n];
q5 A[]=new q5[n];
for(i=0;i<n;i++){
try{
A[i]=new q5();
A[i].Enter();
}catch(MyException List){
if (key!=0){
kol_i=i+1;
break;}
}
}
System.out.println("Исходные данные:");
System.out.print("Город Мэр Кол-во голосов\n");
for(i=0;i<n-kol_i;i++)
A[i].Print(1);
for(i=0;i<n-kol_i;i++)
A[i].Processing();
System.out.print("Ответ\n");
System.out.print("Город Мэр Кол-во голосов\n");
for(i=0;i<n-kol_i;i++)
A[i].Print();
}
}