Назад | Начало урока | Вперед
Содержание

Глава 6

Задача 6.16 "Сумма квадратов."

Напишите типизированный метод, который принимает в качестве параметров целые числа и возвращает сумму квадратов целых чисел, находящихся на числовой прямой между ними, включая граничные значения. Как вызвать метод для вывода значений суммы квадратов целых чисел из диапазона от 1 до 10? Каким образом должна измениться программа, если данные сначала нужно ввести в массив?

Решение 2

Здесь использовано Display-окно, чтобы сделать ввод данных в программу интерактивным. Функция, которая подсчитывает сумму квадратов последовательности работает без изменений.

Код программы:


import java.io.*;
import javagently.*;
import java.util.*;
import myutilities.*;

class SumSquare {

Display d = new Display ("Сумма квадратов последовательности");

SumSquare () throws IOException {

d.prompt("Первый элемент", "1");
d.prompt("Последний элемент", "10");
for (; ;) {

d.ready("\nPress ready when numbers entered");

int m = d.getInt("Первый элемент"); //
int n = d.getInt("Последний элемент"); //
int sumSq = sumSquare(m,n);

d.println(" " + m);
d.println(" " + n);

d.println(" ");
d.println(" Summ of square of elements of array is " + sumSq);

}//end for
}

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

SumSquare data = new SumSquare ();
}

int sumSquare(int n, int m){

int k = m - n ;
int sumSq = 0;
System.out.println(" k = " + k);

if(k < 0){

k--;
k =-k;
int mas[] = new int[k];
for(int i = 0; i < k; i++){
mas[i] = m;
m++;
}
for(int j = 0; j < mas.length; j++){
sumSq = sumSq + mas[j]*mas[j];
}
}
else{
k++;
int mas[] = new int[k];
for(int i = 0; i < k; i++){
mas[i] = n;
n++;
}

for(int j = 0; j < mas.length; j++){

sumSq = sumSq + mas[j]*mas[j];
}
}
return sumSq;
}
} // class


Результат :

Подсказка


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz