Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 75

Исключительная ситуация - выход за границу массива

08.12.2016, 22:13. Показов 1226. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят,помогите пожалуйста,мне нужно сделать ,если z>q(z-знаменатель,q-исходное данное,которые мы задаем),то мы создаем ситуацию выхода за границу массива,затем указываем ,что z вышел на это условие,и вводим заново z.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package программы;
 
public class pr                       
{
  public static void main(String[] args) 
  {
                                         /*Исходные данные :  x, a  ;точность е.*/
    double e=0.001;                  /* инициализация исходных данных*/
    int m=0,n=5 ;                            /* инициализация исходных данных*/
    double x=1,a=2,s=0,y,w,q=x*x,g=1,h=x,v=2;                    /*S- результат- сумма ; y-текущий член ряда ; 
                                           w- рабочая переменная, соответствующая a в текущей степени x ; 
                                           q- рабочая переменная, соответствующая x в соответствующей степени*/
    double denominator;                  /*текущее значение первог числа в знаменателе*/
    int i=1,fact=1;                      /*i-номер следующего члена ряда,fact-факториал*/
    
    do
    {
      
      g=i*x;
      
      w=Math.pow(a,g);                  /*присвоение w значения a в степени x*/
     
      denominator=3*i;                   /*вычисление значения первого числа в знаменателе*/
      
      fact=(i+4)*fact;                   /*вычисление факториала*/
      
                                  
      
      y=(w+24*fact)/(denominator-q);     /*вычисление значения соответсвующего члена ряда*/
     
      if((Math.abs(y)>=e)&&(m<=n-1))
      {
          System.out.print("    \ny="+y);    /*выдача на печать соответствующего члена ряда*/
          s=s+y;                             /*вычисление суммы всего действующего ряда*/
          i++;                               /*переход к следующему номеру члена ряда*/
          v=v+1;
          h=x*x;                             /*увеличение степени x в знаменателе*/
          m++;
          q=q*x;
      }
     
    }
    while((Math.abs(y)>=e)&&(m<=(n-1)));                        /*проверка  условия  выхода из цикла по значению y-  текущего члена ряда*/
    
    if(Math.abs(y)>=e) System.out.println("\nТочность "+e+" не была достигнута за "+n+" итераций.");
    else System.out.println("\nТочность "+e+" была достигнута за "+m+" итераций,при заданном "+n);
    
    System.out.println("    \ns="+s);    /* выдача на печать значения суммы ряда*/
  }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.12.2016, 22:13
Ответы с готовыми решениями:

Исключительная ситуация. Выход за границы массива
В программе рассматривается выход за границы массива. Создается исключительная ситуация в которой увеличивается размер массива /* *...

Исключительная ситуация (переполнение массива сверху)
Изучаем сейчас исключительные ситуации и нужно привести пример , т.е. вызвать исключительную ситуацию для переполнения массива сверху или...

Исключительная ситуация
Помогите написать исключительную ситуацию. procedure TForm1.Button1Click(Sender: TObject); var n,i:integer; begin ...

14
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
09.12.2016, 00:52
какого массива? зачем тут вообще этот код? что это все значит?
0
35 / 35 / 54
Регистрация: 26.11.2016
Сообщений: 115
10.12.2016, 11:08
что z вышел на это условие,и вводим заново z.
в коде нет такой переменной?
может сделать в цикле проверку while(z>q){}? или что-то вроде того?
0
0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 75
11.12.2016, 13:35  [ТС]
xoraxax, (z-знаменатель,q-исходное данное,которые мы задаем)

Добавлено через 2 минуты
ст13, это я понимаю,но не могу понять,как мне здесь сделать исключительную ситуацию
типо если z>q,то нужно создать исключительную ситуацию выхода за границу массива,а затем вводим заново z и продолжаем расчет

Добавлено через 2 минуты
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public class pr                       
{
  public static void main(String[] args) 
  {
                                         /*Исходные данные :  x, a  ;точность е.*/
    double e=0.001;                  /* инициализация исходных данных*/
    int m=0,n=5 ;                            /* инициализация исходных данных*/
    double x=1,a=2,s=0,y,w,q=x*x,g=1,h=x,v=2;                    /*S- результат- сумма ; y-текущий член ряда ; 
                                           w- рабочая переменная, соответствующая a в текущей степени x ; 
                                           q- рабочая переменная, соответствующая x в соответствующей степени*/
    double denominator;                  /*текущее значение первог числа в знаменателе*/
    int i=1,fact=1;                      /*i-номер следующего члена ряда,fact-факториал*/
    double z;
    do
    {
      denominator=3*i;                   /*вычисление значения первого числа в знаменателе*/
      z=denominator-q;
      g=i*x;
      
      w=Math.pow(a,g);                  /*присвоение w значения a в степени x*/
     
      
      
      fact=(i+4)*fact;                   /*вычисление факториала*/
      
                                  
      
      y=(w+24*fact)/(z);     /*вычисление значения соответсвующего члена ряда*/
     
      if((Math.abs(y)>=e)&&(m<=n-1))
      {
          System.out.print("    \ny="+y);    /*выдача на печать соответствующего члена ряда*/
          s=s+y;                             /*вычисление суммы всего действующего ряда*/
          i++;                               /*переход к следующему номеру члена ряда*/
          v=v+1;
          h=x*x;                             /*увеличение степени x в знаменателе*/
          m++;
          q=q*x;
      }
     
    }
    while((Math.abs(y)>=e)&&(m<=(n-1)));                        /*проверка  условия  выхода из цикла по значению y-  текущего члена ряда*/
    
    if(Math.abs(y)>=e) System.out.println("\nТочность "+e+" не была достигнута за "+n+" итераций.");
    else System.out.println("\nТочность "+e+" была достигнута за "+m+" итераций,при заданном "+n);
    
    System.out.println("    \ns="+s);    /* выдача на печать значения суммы ряда*/
  }
}
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
11.12.2016, 15:05
Непонятно, причем здесь массив. У вас нет массивов в программе
0
0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 75
11.12.2016, 15:53  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public class pr                       
{
  public static void main(String[] args) 
  {
                                         /*Исходные данные :  x, a  ;точность е.*/
    double e=0.001;                  /* инициализация исходных данных*/
    int m=0,n=5 ;                            /* инициализация исходных данных*/
    double x=1,a=2,s=0,y,w,q=x*x,g=1,h=x,v=2;                    /*S- результат- сумма ; y-текущий член ряда ; 
                                           w- рабочая переменная, соответствующая a в текущей степени x ; 
                                           q- рабочая переменная, соответствующая x в соответствующей степени*/
    double denominator;                  /*текущее значение первог числа в знаменателе*/
    int i=1,fact=1;                      /*i-номер следующего члена ряда,fact-факториал*/
    double[] z={1};
    do
    {
      denominator=3*i;                   /*вычисление значения первого числа в знаменателе*/
      z[0]=denominator-q;
      g=i*x;
      
      w=Math.pow(a,g);                  /*присвоение w значения a в степени x*/
     
      
      
      fact=(i+4)*fact;                   /*вычисление факториала*/
      
                                  
      
      y=(w+24*fact)/(z[0]);     /*вычисление значения соответсвующего члена ряда*/
     
      if((Math.abs(y)>=e)&&(m<=n-1))
      {
          System.out.print("    \ny="+y);    /*выдача на печать соответствующего члена ряда*/
          s=s+y;                             /*вычисление суммы всего действующего ряда*/
          i++;                               /*переход к следующему номеру члена ряда*/
          v=v+1;
          h=x*x;                             /*увеличение степени x в знаменателе*/
          m++;
          q=q*x;
      }
     
    }
    while((Math.abs(y)>=e)&&(m<=(n-1)));                        /*проверка  условия  выхода из цикла по значению y-  текущего члена ряда*/
    
    if(Math.abs(y)>=e) System.out.println("\nТочность "+e+" не была достигнута за "+n+" итераций.");
    else System.out.println("\nТочность "+e+" была достигнута за "+m+" итераций,при заданном "+n);
    
    System.out.println("    \ns="+s);    /* выдача на печать значения суммы ряда*/
  }
}
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
11.12.2016, 16:03
Здесь нет выхода за границы массива, z[0] единственный элемент (зачем?), и программа к нему обращается напрямую
0
0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 75
11.12.2016, 16:30  [ТС]
oldnewyear, так просто задание такое,а я не могу понять ,как это сделать=(
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
11.12.2016, 16:34
Цитата Сообщение от adam1105 Посмотреть сообщение
oldnewyear, так просто задание такое,а я не могу понять ,как это сделать=(
Напишите задание
0
0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 75
11.12.2016, 18:11  [ТС]
oldnewyear, если z>q,где q-исходное данное,создается ситуация выхода за границу массива.Указываем,что z вышел на такое условие,вводим z заново и продолжаем расчет.
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
11.12.2016, 23:14
Это вы своими словами пересказали?
0
0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 75
12.12.2016, 00:03  [ТС]
oldnewyear, нет
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.12.2016, 00:31
Ты сам прочитай, что ты пишешь. Ты можешь мысли свои формулировать полностью и как-то более связно?
А если не понимаешь задание, подойди к тому, кто тебе его дал, и попроси полную формулировку.
0
 Аватар для Alradalion
132 / 126 / 85
Регистрация: 13.09.2013
Сообщений: 485
12.12.2016, 11:10
Можно было бы предположить, что программа должна вычислять, например, факториал, только до 20!, а пользователь ввел 22. Но тут нет ввода с консоли(
0
35 / 35 / 54
Регистрация: 26.11.2016
Сообщений: 115
13.12.2016, 11:08
ст13, это я понимаю,но не могу понять,как мне здесь сделать исключительную ситуацию
типо если z>q,то нужно создать исключительную ситуацию выхода за границу массива,а затем вводим заново z и продолжаем расчет
Не понял как это должно работать?
Но если нужна исключительная ситуация - можно попробовать сделать расчет в отдельном методе.
Вызвать его в main и окружить try/catch

Java
1
2
3
4
5
6
7
8
try{
raschet();
}catch (Exception e){
z=...;
raschet();
}
 
public void raschet(){};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2016, 11:08
Помогаю со студенческими работами здесь

Исключительная ситуация
Ребят вопрос касаемо кода: Наберите текст программы приведенного примера обработки исключительных ситуаций и откомпилируйте его...

C# исключительная ситуация
Как в C# сделать обработку нескольких исключительных ситуаций! Например: try { string a=textbox1.text; // путь string...

исключительная ситуация
подскажите как сделать проверку на правильность введенных данных (я пытался делать через исключения однако не работает нужно проверить...

Исключительная ситуация
это полностью рабочая прога списки студентов( добавление удаление вывод) как сделать чтобы когда я добавляю нового студента(когда пишу...

Выход за границу массива
Не могу понять почему выходит за границы индекса массива. using System; namespace ConsoleApplication4 { class Program ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru