Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
4 / 5 / 2
Регистрация: 17.09.2021
Сообщений: 402

Исключительные ситуаций и вычисление

11.09.2025, 19:21. Показов 799. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помоги пожалуйста решить данную задачи и исправить ошибки



1C
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
&НаКлиенте
Процедура II(Команда)    
    // Переменные для хранения результата
    Перем РезультатF1, РезультатF2, РезультатY;
    
    // Предполагаем, что переменные 'a', 'b', 'c'
    // уже существуют в контексте формы и заполнены пользователем
    // Например: a = ЭлементыФормы.ПолеА.Значение;
    
    // Вычисляем первую часть выражения: F(a, b*12, c/4)
    РезультатF1 = ФункцияF(a, b * 12, c / 4);
    
    // Проверяем, успешно ли прошло вычисление
    Если РезультатF1 = Неопределено Тогда
        Возврат; // Выходим из процедуры, так как произошла ошибка
    КонецЕсли;
    
    // Вычисляем вторую часть выражения: F(a/2, c, 5.0)
    РезультатF2 = ФункцияF(a / 2, c, 5.0);
    
    // Проверяем, успешно ли прошло вычисление
    Если РезультатF2 = Неопределено Тогда
        Возврат; // Выходим из процедуры
    КонецЕсли;
    
    // Вычисляем итоговый результат y
    РезультатY = РезультатF1 + РезультатF2;
    
    Сообщить("Итоговый результат y = " + Строка(РезультатY));   
КонецПроцедуры
 
// Вычисляет значение функции F(a, b, c)
// Параметры:
//   a, b, c - числа, вводимые пользователем
// Возвращает:
//   Результат вычисления или Неопределено в случае ошибки
Функция ФункцияF(a, b, c) Экспорт
    
    // Вычисляем числитель
    // Проверяем, что подкоренное выражение (a - c) неотрицательно
    Если (a - c) < 0 Тогда
        Сообщить("Ошибка: корень из отрицательного числа (a - c).");
        Возврат Неопределено;
    КонецЕсли;
    
    // Проверяем, что подкоренное выражение (b - c) неотрицательно
    Если (b - c) < 0 Тогда
        Сообщить("Ошибка: корень из отрицательного числа (b - c).");
        Возврат Неопределено;
    КонецЕсли;
    
    Числитель = Sqrt(Abs(a - c)) + b * Sqrt(b - c);
    
    // Вычисляем знаменатель
    // Проверяем, что подкоренное выражение (b - c) неотрицательно
    Если (b - c) < 0 Тогда
        Сообщить("Ошибка: корень из отрицательного числа (b - c) в знаменателе.");
        Возврат Неопределено;
    КонецЕсли;
    
    Знаменатель = a + c * (a - Sqrt(b - c));
    
    // Проверяем деление на ноль
    Если Знаменатель = 0 Тогда
        Сообщить("Ошибка: деление на ноль.");
        Возврат Неопределено;
    КонецЕсли;
    
    // Возвращаем итоговый результат
    Возврат Числитель / Знаменатель;
    
КонецФункции




1C
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
51
52
53
54
55
56
57
58
Перем а, б, с, н;
 
Процедура Вычислить()
    
    // Ввод данных от пользователя
    а = ВвестиЧисло("Введите значение a:");
    б = ВвестиЧисло("Введите значение b:");
    с = ВвестиЧисло("Введите значение c:");
    н = ВвестиЧисло("Введите целое число n:");
    
    // Проверка, что n - целое число
    Если н <> Цел(н) Тогда
        Сообщить("Ошибка: n должно быть целым числом!");
        Возврат;
    КонецЕсли;
    
    // Вычисление S(a, b/2)
    S1 = S(а, б/2, н);
    
    // Вычисление S(c, a*5)
    S2 = С(с, а*5, н);
    
    // Вычисление S(b/5, c+3)
    S3 = С(б/5, с+3, н);
    
    // Вычисление конечного результата
    у = (S1 - S2) * S3;
    
    // Вывод результата
    Сообщить("Результат y = " + у);
    
КонецПроцедуры
 
Функция S(парамА, парамБ, парамН)
    Возврат F(парамА, парамБ, парамН) + T(парамА, с, парамН);
КонецФункции
 
Функция F(парамА, парамБ, парамН)
    Результат = 0;
    Для i = 1 По парамН Цикл
        Результат = Результат + (парамА + парамБ)^парамН;
    КонецЦикла;
    Возврат Результат;
КонецФункции
 
Функция T(парамА, парамС, парамН)
    Результат = 0;
    Для i = 2 По парамН + 1 Цикл
        Результат = Результат + (парамА^парамН - парамС^(парамН-1));
    КонецЦикла;
    Возврат Результат;
КонецФункции
 
Функция ВвестиЧисло(ТекстЗапроса)
    Перем Результат;
    ВвестиЗначение(Результат, ТекстЗапроса);
    Возврат Результат;
КонецФункции
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.09.2025, 19:21
Ответы с готовыми решениями:

Обсуждение ситуаций
давайте поразмышляем)) Ситуация 2. В крупной фирме сотрудники двух отделов – бухгалтерии и...

Отчет на основе исключительно регистров сведений
Доброго времени суток! Может кому-то покажется банальным, однако... В системе СКД отчеты за...

Как быть в ситуации когда строка занимает не то место из-за внутреннего идентификатора?
Как быть в ситуации когда строка занимает не то место из-за внутреннего идентификатора? Заранее...

12
Модератор
Эксперт 1С
 Аватар для Yulunga
4137 / 944 / 265
Регистрация: 22.04.2013
Сообщений: 6,587
Записей в блоге: 1
11.09.2025, 20:24
ошибок не вижу. значит задачи решены.
0
4 / 5 / 2
Регистрация: 17.09.2021
Сообщений: 402
11.09.2025, 21:36  [ТС]
Yulunga, Ну да что ошибка выходят, каждый раз, и не зря сюда написал
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4137 / 944 / 265
Регистрация: 22.04.2013
Сообщений: 6,587
Записей в блоге: 1
11.09.2025, 21:50
какие ошибки?
0
4 / 5 / 2
Регистрация: 17.09.2021
Сообщений: 402
11.09.2025, 21:59  [ТС]
Yulunga,



Задание 3

Во второй почему то не отображается сообщение
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4137 / 944 / 265
Регистрация: 22.04.2013
Сообщений: 6,587
Записей в блоге: 1
12.09.2025, 05:48
Цитата Сообщение от Dmitry0-01 Посмотреть сообщение
парамА^парамН
что это означает на языке 1С?
0
Эксперт 1С
2199 / 245 / 73
Регистрация: 12.11.2015
Сообщений: 1,523
12.09.2025, 08:37
Цитата Сообщение от Dmitry0-01 Посмотреть сообщение
Результат = Результат + (парамА + парамБ)^парамН;
что здесь за символ "^" такой? Нет такого математического знака в 1С
0
4 / 5 / 2
Регистрация: 17.09.2021
Сообщений: 402
12.09.2025, 10:31  [ТС]
slypower,

1C
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
&НаКлиенте
Процедура II(Команда)
    
    Перем a, b, c;
    Перем ВведеноКорректно;
    
    // Ввод a
    ВведеноКорректно = Ложь;
    Пока Не ВведеноКорректно Цикл
        Попытка
            ВвестиЗначение(a, "Введите a:", , "Число");
            ВведеноКорректно = Истина;
        Исключение
            Сообщить("Введите корректное число для a!");
        КонецПопытки;
    КонецЦикла;
    
    // Ввод b
    ВведеноКорректно = Ложь;
    Пока Не ВведеноКорректно Цикл
        Попытка
            ВвестиЗначение(b, "Введите b:", , "Число");
            ВведеноКорректно = Истина;
        Исключение
            Сообщить("Введите корректное число для b!");
        КонецПопытки;
    КонецЦикла;
    
    // Ввод c
    ВведеноКорректно = Ложь;
    Пока Не ВведеноКорректно Цикл
        Попытка
            ВвестиЗначение(c, "Введите c:", , "Число");
            ВведеноКорректно = Истина;
        Исключение
            Сообщить("Введите корректное число для c!");
        КонецПопытки;
    КонецЦикла;
    
    // Вычисляем y
    Результат1 = F(a, b * 12, c / 4);
    Если Результат1.Ошибка Тогда
        Сообщить("Ошибка при вычислении F(a, b*12, c/4): " + Результат1.Сообщение);
        Возврат;
    КонецЕсли;
    
    Результат2 = F(a / 2, c, 5);
    Если Результат2.Ошибка Тогда
        Сообщить("Ошибка при вычислении F(a/2, c, 5): " + Результат2.Сообщение);
        Возврат;
    КонецЕсли;
    
    y = Результат1.Значение + Результат2.Значение;
    
    Сообщить("Результат y = " + y);
    
КонецПроцедуры
 
&НаКлиенте
Функция F(a, b, c)
    
    // Проверяем корень из отрицательного числа
    Если (a - c) < 0 Тогда
        Возврат Новый Структура("Ошибка", Истина, "Сообщение", "Корень из отрицательного числа (a - c)", "Значение", 0);
    КонецЕсли;
    
    Если (b - c) < 0 Тогда
        Возврат Новый Структура("Ошибка", Истина, "Сообщение", "Корень из отрицательного числа (b - c)", "Значение", 0);
    КонецЕсли;
    
    // Вычисляем знаменатель
    Знаменатель = a + c * (a - Sqrt(b - c));
    
    // Проверяем деление на ноль
    Если Знаменатель = 0 Тогда
        Возврат Новый Структура("Ошибка", Истина, "Сообщение", "Деление на ноль", "Значение", 0);
    КонецЕсли;
    
    // Вычисляем значение функции
    Значение = (Sqrt(a - c) + b * Sqrt(b - c)) / Знаменатель;
    
    Возврат Новый Структура("Ошибка", Ложь, "Сообщение", "", "Значение", Значение);
    
КонецФункции
Ну вот вторая задание
0
Эксперт 1С
2199 / 245 / 73
Регистрация: 12.11.2015
Сообщений: 1,523
12.09.2025, 10:40
Цитата Сообщение от Dmitry0-01 Посмотреть сообщение
Ну вот вторая задание
я не ваш преподаватель, чтобы проверять ваше задание. Есть программные ошибки по этому заданию?
0
4 / 5 / 2
Регистрация: 17.09.2021
Сообщений: 402
12.09.2025, 11:42  [ТС]
slypower,

1C
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
&НаКлиенте
Процедура II(Команда)
    
    Перем a, b, c;
    
    a = ВвестиЧисло("Введите a:");
    Если a = Неопределено Тогда
        Сообщить("Ввод числа 'a' был отменен.");
        Возврат;
    КонецЕсли;
    
    b = ВвестиЧисло("Введите b:");
    Если b = Неопределено Тогда
        Сообщить("Ввод числа 'b' был отменен.");
        Возврат;
    КонецЕсли;
    
    c = ВвестиЧисло("Введите c:");
    Если c = Неопределено Тогда
        Сообщить("Ввод числа 'c' был отменен.");
        Возврат;
    КонецЕсли;
    // --- ИЗМЕНЕНИЕ КОНЕЦ ---
    
    // Вычисляем y
    Результат1 = F(a, b * 12, c / 4);
    Если Результат1.Ошибка Тогда
        Сообщить("Ошибка при вычислении F(a, b*12, c/4): " + Результат1.Сообщение);
        Возврат;
    КонецЕсли;
    
    Результат2 = F(a / 2, c, 5);
    Если Результат2.Ошибка Тогда
        Сообщить("Ошибка при вычислении F(a/2, c, 5): " + Результат2.Сообщение);
        Возврат;
    КонецЕсли;
    
    y = Результат1.Значение + Результат2.Значение;
    
    Сообщить("Результат y = " + y);
    
КонецПроцедуры
 
&НаКлиенте
Функция F(a, b, c)
    
    // Проверяем корень из отрицательного числа
    Если (a - c) < 0 Тогда
        Возврат Новый Структура("Ошибка, Сообщение, Значение", Истина, "Корень из отрицательного числа (a - c)", 0);
    КонецЕсли;
    
    Если (b - c) < 0 Тогда
        Возврат Новый Структура("Ошибка, Сообщение, Значение", Истина, "Корень из отрицательного числа (b - c)", 0);
    КонецЕсли;
    
    // Вычисляем знаменатель
    Знаменатель = a + c * (a - Sqrt(b - c));
    
    // Проверяем деление на ноль
    Если Знаменатель = 0 Тогда
        Возврат Новый Структура("Ошибка, Сообщение, Значение", Истина, "Деление на ноль", 0);
    КонецЕсли;
    
    // Вычисляем значение функции
    Значение = (Sqrt(a - c) + b * Sqrt(b - c)) / Знаменатель;
    
    Возврат Новый Структура("Ошибка, Сообщение, Значение", Ложь, "", Значение);
    
КонецФункции
 
&НаКлиенте 
Процедура III(Команда) 
      
     Перем a, b, c, n; 
     
     a = ВвестиЧисло("Введите a:"); 
     Если a = Неопределено Тогда Возврат; КонецЕсли; 
      
     b = ВвестиЧисло("Введите b:"); 
     Если b = Неопределено Тогда Возврат; КонецЕсли; 
      
     c = ВвестиЧисло("Введите c:"); 
     Если c = Неопределено Тогда Возврат; КонецЕсли; 
      
     n = ВвестиЧисло("Введите целое число n:"); 
     Если n = Неопределено Тогда Возврат; КонецЕсли; 
      
     // Проверка, что n - целое число 
     Если n <> Цел(n) Тогда 
         Сообщить("Ошибка: n должно быть целым числом!"); 
         Возврат; 
     КонецЕсли; 
      
     // Проверка, что n >= 1 
     Если n < 1 Тогда 
         Сообщить("Ошибка: n должно быть больше или равно 1!"); 
         Возврат; 
     КонецЕсли; 
      
     // Вычисляем S(a, b/2) 
     S1 = S(a, b / 2, n); 
          
     // Вычисляем S(c, a*5) 
     S2 = S(c, a * 5, n); 
      
     // Вычисляем S(b/5, c+3) 
     S3 = S(b / 5, c + 3, n); 
      
     // Вычисляем окончательный результат 
     y = (S1 - S2) * S3; 
      
     Сообщить("Результат y = " + y); 
      
 КонецПроцедуры 
 
 
&НаКлиенте 
Функция S(x, y, n) 
      
     // S(x,y,n) = F(x,y,n) + T(x,y,n) 
     Результат = F1(x, y, n) + T(x, y, n); 
      
     Возврат Результат; 
      
КонецФункции 
 
 
&НаКлиенте 
Функция F1(x, y, n) 
      
     Сумма = 0; 
     Для i = 1 По n Цикл 
         Сумма = Сумма + Pow(x + y, i); 
     КонецЦикла; 
      
     Возврат Сумма; 
      
КонецФункции 
 
&НаКлиенте 
Функция T(x, y, n) 
      
     Сумма = 0; 
     Для i = 2 По n + 1 Цикл 
         Сумма = Сумма + (pow(x, i) - pow(y, i - 1)); 
     КонецЦикла; 
      
     Возврат Сумма; 
      
 КонецФункции
Добавлено через 53 секунды
slypower, Можете пожалуйста проверить работоспособность

Добавлено через 20 секунд
slypower, Ошибки вроде как не выдает
0
12.09.2025, 12:32

Не по теме:

Цитата Сообщение от Dmitry0-01 Посмотреть сообщение
Можете пожалуйста проверить работоспособность
нет, я лучше напишу формирование отчета, сохранение в ПДФ и затем конвертацию в jpg (бесплавтно) для передачи по IP и саму передачу, нежели будут проверять ваше задание

0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
12.09.2025, 12:40
Цитата Сообщение от Dmitry0-01 Посмотреть сообщение
Можете пожалуйста проверить работоспособность
Что вы подразумеваете под "проверкой работоспособности"? Если ваша программа работает так, как вы ожидаете, то всё Ок. Если не так, тогда можно написать на форуме понятное описание вашей проблемы. Проверить делает ли программа то или не то можете только вы, другие люди не знают, что вы от программы ожидаете.

В будущем рекомендую пользоваться шаблоном "Вот эта программа, которую я написал (вариант - скопировал оттуда-то), на мой взгляд, должна работать так-то и выдавать такой-то результат. Но фактически программа делает то-то (скришнот). Подскажите, пожалуйста, в чем я ошибся."
0
12.09.2025, 13:40

Не по теме:

Ох уж эти программисты воспитанные чатжпт :rtfm:

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.09.2025, 13:40
Помогаю со студенческими работами здесь

Как обратиться с сервера на клиент (или как выйти из безнадежной ситуации)
Здравствуйте.Проблема стоит в том что набор записей регистра сведений проверяет наличие изменений...

такая ситуация
Составляю отчет с помощю консоли отчетов. Получается такая таблица: Номер КонтрагентНаименование...

Не понятная ситуация с базами 1С
Добрый день, такая проблема, в один прекрасный момент, на RDP сервере на диске, все базы стали...

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

вычисление суммы
Столкнулся с такой ошибкой &amp;НаКлиенте Процедура ТабличнаяЧасть2ТарифПриИзменении(Элемент)...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
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 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru