Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Java.doc
Скачиваний:
836
Добавлен:
04.06.2015
Размер:
5.55 Mб
Скачать

Программа

int i, n, s = 0;

String input;

input=JOptionPane.showInputDialog("Введите целое положительное число:");

n=Integer.parseInt(input);

while (n>0)

{

i = n % 10;

s+=i;

n /= 10;

}

System.out.printf(“/ns=%d”,s);

  1. ввести с клавиатуры по одному последовательность целых чисел (конец последовательности – число 0). Определить их сумму, максимальное и минимальное число, количество введенных чисел и их среднее арифметическое.

Пусть s– искомая сумма,

min, max– минимальное и максимальное из введенных чисел,

count– количество введенных чисел,

sred– среднее арифметическое,

n– очередное число.

Тогда алгоритмрешения задачи можно описать следующим образом:

  1. обнуляем сумму s = 0,

  2. вводим первое число n,

  3. если оно не равно нулю, то

  4. принимаем его значение за minиmax

  5. количество введенных чисел count = 1

  6. увеличиваем сумму на введенное число s = s + n

  7. входим в цикл ввода:

  8. вводим очередное число n,

  9. если оно не равно нулю, то

  10. количество введенных чисел увеличиваем на 1:count = count+1

  11. увеличиваем сумму на введенное число s = s + n

  12. если оно меньше min, тоmin = n,

  13. если оно больше max, тоmax = n,

  14. повторяем цикл до тех пор, пока n # 0– это и будетусловиемпродолжения цикла.

Создадим интерфейсэтой задачи – взаимодействие программы с пользователем, то есть что должно выводиться на экран:

Первое число: 3

Очередное число: 8

Очередное число: 1

Очередное число: -2

Очередное число: 0

Сумма = 10

Количество чисел = 4

min = -2

max = 8

Среднее арифметическое = 2.50

Схема алгоритма:

Программа

int min, max, n, count = 0;

double sred, s = 0.0;

String input;

input=JOptionPane.showInputDialog("Введите первое число:");

n=Integer.parseInt(input);

if (n==0) //если введено число 0, то

return 0; //выход из программы с результатом 0

//иначе

min = n; // за минимум и максимум принимаем

max = n; //первое введенное число

count = 1; //введено одно число

s += n;

while (n!=0) // пока введенное число - не ноль

{ // выполнять цикл

input=JOptionPane.showInputDialog("Введите очередное число:");

n=Integer.parseInt(input);

if (n==0)

break; // если введен ноль – выход из цикла ввода

count++; // количество введенных чисел

s += n; // сумма введенных чисел

if (n > max) // определение максимального числа

max = n;

if (n < min) // определение минимального числа

min = n;

}

System.out.printf(“\nСумма = %4.2f”, s);

System.out.printf(“\nКоличество чисел = %d”, count);

System.out.printf(“\nmin = %d”, min);

System.out.printf(“\nmax = %d”, max);

sred = (double)s/count; // определение среднего арифм.

System.out.printf(“\n Среднее арифметическое = %6.2f”,sred);

Часто встречающиеся ошибки программирования:

1.Использование послеусловияточки с запятой, что, как правило, приводит к появлениюбесконечногоцикла:

int i=1, s = 0;

while (i<=100);

{

s += i;

i++;

}

2. Условиене заключено в скобки:

int i=1, s = 0;

while i<=100

{

s += i;

i++;

}

3. Отсутствие фигурных скобок, в которые заключается тело цикла:

int i=1, s = 0;

while (i<=100)

s += i;

i++;

Это может привести к появлению бесконечных циклов.

4.Отсутствие в теле цикла оператора, изменяющегоусловие:

int i=1, s = 0;

while (i<=100)

{

s += i;

}

Это тоже приводит к появлению бесконечных циклов.