
Федеральное агентство железнодорожного транспорта
____________________
Московский государственный университет путей сообщения (МИИТ)
___________________
Институт управления и информационных технологий
___________________
Кафедра «Вычислительные системы и сети»
Отчет
По лабораторным работам
По дисциплине «Технологии программирования»
студента группы УВВ-211
Шаброва Александра Евгеньевича
Приняла: Никольская М.Н.
Москва - 2012 г.
Задание №1
Составить программу для вычисления суммы ряда с определенной точностью eps.Если заданая точность не может быть достигнута за n итераций выдать текущее значение суммы.
Исходные данные: a,b,x,n,eps.
Блок схема
Код программы
package lab;
public class q {
public q() {
super();
}
public static void main(String[] args) {
q q = new q();
char d;
int i,n=3;
double x=0.1,x2,y=0,e=0.01,ch,zn,a=2,b=3;
if (x>0)
{
for(i=0;i<n;i++)
{
ch=Math.pow(x,(i+1)*a+Math.pow(b,Math.pow(2,i)));
System.out.print("ch="+ch+"\n");
zn=Math.pow(Math.E,2*Math.pow(x,i+1));
System.out.print("zn="+zn+"\n");
x2=ch/zn;
System.out.print("x2="+x2);
y=y+x2;
if (Math.abs(x2)<e) {
System.out.print("при достижении e"); break;
}
}
}
else
{
for(i=0;i<n;i++)
{
ch=Math.pow(x,(i+1)*a+Math.pow(b,Math.pow(2,i)));
System.out.print(ch+"\n");
zn=Math.pow(Math.E,2*Math.pow(x,i+1));
System.out.print(zn+"\n");
x2=ch*zn;
System.out.print(x2);
y=y+x2;
if (Math.abs(x2)<e) {
System.out.print("при достижении e"); break;
}
}
}
System.out.print(y);
}
}
Результаты работы программы
Исходные данные |
Результат |
a=2,b=3,x=1,n=2,eps=0.01 |
0.2706705664732254 достигнута при n = 2 |
a=2,b=3,x=0.1,n=3,eps=0.01 |
8.187307530779821E-6 При достижение точности |
Задание №2
Составить программу, которая реализует ввод таблицы, состоящей из n строк. Каждая строка таблицы содержит следующую информацию :Название города, кол-во мэров , имя мэра , количество голосов .
Требуется определить мэра для каждого города.
Блок схема
Начало
Кол-во строк в таблице
Исходные данные
Исходная таблица
Обработка
Вывод мэров по для каждого города
Конец




Код программы
import java.io.IOException;
public class q2 {
public static void main(String[] args) {
char ch;
int n,i,j,c,r;
int kol[][],kol_m[];
String s;
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);
String name_city[] = new String[n];
String name_mayor[][]=new String[n][];
kol=new int[n][];
kol_m=new int[n];
for (i = 0; i < n; i++) {
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());
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());
}
}
//Вывод таблицы
System.out.print("Город Мэр Кол-во голосов");
for(i=0;i<n;i++)
for(j=0;j<kol_m[i];j++){
System.out.print(name_city[i]+" "+name_mayor[i][j]+" "+kol[i][j]);
}
//Обработка
for(i=0;i<n;i++){
for(c=0;c<kol_m[i]-1;c++){
for(j=0;j<kol_m[i]-1;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;
}
}
}
}
//Вывод ответа
System.out.print("Город Мэр Кол-во голосов");
for(i=0;i<n;i++){
System.out.print(name_city[i]+" "+name_mayor[i][0]+" "+kol[i][0]);
}
}
catch(IOException e){
System.out.println("gh");
}
}
}
Результаты работы программы
Введите кол-во строк в таблице
3
Введите имя города
moskva
Введите кол-во мэров
2
Введите имя мэра
sasha
Кол-во голосов:
1
Введите имя мэра
masha
Кол-во голосов:
3
Введите имя города
tula
Введите кол-во мэров
3
Введите имя мэра
sasha
Кол-во голосов:
4
Введите имя мэра
masha
Кол-во голосов:
5
Введите имя мэра
dasha
Кол-во голосов:
6
Введите имя города
orel
Введите кол-во мэров
2
Введите имя мэра
sasha
Кол-во голосов:
7
Введите имя мэра
masha
Кол-во голосов:
3
Город Мэр Кол-во голосов
moskva sasha 1
moskva masha 3
tula sasha 4
tula masha 5
tula dasha 6
orel sasha 7
orel masha 3
Город Мэр Кол-во голосов
moskva masha 3
tula dasha 6
orel sasha 7
Задание №3
Составить программу, которая реализует ввод таблицы, состоящей из n строк. Каждая строка таблицы содержит следующую информацию :Название города, кол-во мэров , имя мэра , количество голосов .
Требуется определить мэра для каждого города. Для представления таблицы использовать массив объектов, в которых каждая строка таблицы представлена объектом. Членами данных объекта являются поля таблицы.
Исходные данные
Блок схема
Начало
Кол-во строк в таблице
Исходная таблица
Обработка
Вывод мэров по для каждого города
Конец
Кодпрограммы
import java.io.IOException;
public class q3 {
private char ch;
private int n,i,j,c,r;
private int kol[][],kol_m[];
private String s;
private String name_city[];
private String name_mayor[][];
private String fuo[][];
//метод для ввода данных
public void Enter(){
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);
name_city = new String[n];
name_mayor=new String[n][];
kol=new int[n][];
kol_m=new int[n];
for (i = 0; i < n; i++) {
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]];
fuo=new String[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());
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());
fuo[j]=new String[kol[i][j]];
for (c = 0; c < kol[i][j]; c++) {
str = new StringBuffer();
System.out.println("Введите ФИО проголосовавших:");
while ((ch = (char) System.in.read()) != '\n')
str.append(ch);
fuo[j][c] = new String(str.toString());
}
}
}
}
catch(IOException e){
System.out.println("gh");
}
}
//метод для выводы таблицы
public void Print(int a){
System.out.print("Город Мэр Кол-во голосов");
for(i=0;i<n;i++)
for(j=0;j<kol_m[i];j++){
System.out.print(name_city[i]+" "+name_mayor[i][j]+" "+kol[i][j]);
}
}
//метод для вывода ответа
public void Print(){
System.out.print("Город Мэр Кол-во голосов");
for(i=0;i<n;i++){
System.out.print(name_city[i]+" "+name_mayor[i][0]+" "+kol[i][0]);
}
}
//метод обработки
public void Processing(){
for(i=0;i<n;i++){
for(c=0;c<kol_m[i]-1;c++){
for(j=0;j<kol_m[i]-1;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){
q3 A=new q3();
A.Enter();
A.Print(1);
A.Processing();
A.Print();
}
}
Результаты работы программы
Результаты работы программы №3 аналогичны результатам программы №2
Задание №4
Проанализировать структуру класса Doubleсоставить программу тестирования всех констант, включенных в класс и методов, принадлежащих этому классу.
Блок схема
Кодпрограммы
import java.lang.Double;
public class q4 {
public static void main(String args[]){
/*Конструкторы создают объекты типа Double.Можно создавать в явном виде и неявном виде*/
Double d1=new Double(3.15345);
Double d2=new Double(315345E-5);
System.out.println(d1+"="+d2+"->"+d1.equals(d2));
/*В классе Double имеются константы: бесконечность , неопределенность.
А также методы их проверки.*/
Double d3=Double.POSITIVE_INFINITY;
Double d4=Double.NaN;
System.out.println(d3+":"+d3.isInfinite()+","+d3.isNaN());
System.out.println(d4+":"+d4.isInfinite()+","+d4.isNaN());
System.out.println("d3 Infinite?"+Double.isInfinite(d3));
System.out.println("d4 NaN?"+Double.isNaN(d4));
d3=Double.NEGATIVE_INFINITY;
System.out.println(d3);
System.out.println("d3 == Infinity? "+(d3 == Double.POSITIVE_INFINITY) );
Double d5=new Double(-3);
//Метод представляющий объект в виде строки в 16-ной системе исчисления
System.out.println("d5="+Double.toHexString(d5));
try{
//Метод перевода из строки в Double
String g=new String("1234");
Double d6=Double.parseDouble(g);
System.out.println("d6="+d6);
}
catch(Exception e){}
//Методы сравнения
System.out.println("d5>d1? "+d5.compareTo(d1));
System.out.println("d1=d1 ?"+d1.compareTo(d1));
System.out.println("d1>d5 "+d1.compareTo(d5));
System.out.println("d5>d1 "+Double.compare(d5, d1));
//Константы максимума и минимума
d1=Double.MAX_VALUE;
System.out.println("Max_d1="+d1);
d1=Double.MIN_VALUE;
System.out.println("Min_d1="+d1);
//Методы перевода в другие типы данных
long d7=Double.doubleToLongBits(d2);
System.out.println("d7="+d7);
System.out.println("d2 в шестнадцатеричном представлении:"+Double.toHexString(d2));
String s=Double.toString(d2);
System.out.println("d2 в представлении ASCII cod:"+s);
}
}