Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/64: Рейтинг темы: голосов - 64, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 30

простой калькулятор

30.01.2013, 14:38. Показов 13218. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться, почему он не выполняет вычисления?


PHP
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
<?php
// Функция вывода формы ввода
function show_form()
{
echo '<html>';
echo '<head>';
echo '<title>Калькулятор</title>';
echo '</head>';
echo '<body>';
echo '<form action="sum1.php" method="post">';
echo '<input type="text" name="a"/>';
 
echo '<input type="submit" name="oper" value= "+" />';
echo '<input type="submit" name="oper" value= "-" />';
echo '<input type="submit" name="oper" value= "*" />';
echo '<input type="submit" name="oper" value= "/" />';
 
echo '<input type="text" name="b" />';
echo '<input type="submit" value="=" />';
 
echo '</form>';
echo '</body>';
echo '</html>';
}
// Функция вычисления результата.
//function count_result($oper,$a, $b)
//{
$oper = $_POST['oper'];
if ($oper == "+")
{
$result = $a + $b;
 
}
else if ($oper == "-")
{
$result = $a - $b;
 
}
else if ($oper == "*")
{
$result = $a * $b;
 
}
else if ($oper == "/")
{
if ($b != 0)
{
$result = $a / $b;
 
}
else
{ 
echo "на ноль делить нельзя!";
}
}
 
//}
 
// Функция вывода результата.
function show_result($a, $b)
{
echo '<html>';
echo '<head>';
echo '<title>Сумматор</title>';
echo '</head>';
echo '<body>';
echo '<form action="sum1.php" method="get">';
echo '<input type = "text" name = "a" value = '.$_POST['a'].'>';
echo '<input type="submit" value="+" />';
echo '<input type="submit" value="-" />';
echo '<input type="submit" value="*" />';
echo '<input type="submit" value="/" />';
 
echo '<input type = "text" name = "b" value = '.$_POST['b'].'>';
echo '<input type="submit" value="=" />';
echo $result;
echo '<br>';
echo '<a href="sum1.php">Хочу продолжить вычисление</a>';
echo '</p>';
echo '</body>';
echo '</html>';
}
 
// Точка входа.
// Показываем результат операции или форму ввода.
if (isset($_POST['a']) && isset($_POST['b']))
{
show_result($_POST['a'], $_POST['b'],$oper);
}
else
{
show_form();
}
 
?>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.01.2013, 14:38
Ответы с готовыми решениями:

Простой калькулятор
Суть задания написать обычный калькулятор который берёт данные из html формы. Собственно не сложное задание, но столкнулся с проблемой...

Простой калькулятор
Ребята, совсем сломал голову как правильно делать. Подскажите в каком направлении думать, а лучше примеры кода покажите. Задача такая:...

Написать простой калькулятор
Напишите программу, которая выполняет следующие действия: 1) выводит форму, содержащую поле для ввода 1-го числа, список для выбора...

9
 Аватар для Pafos
97 / 97 / 17
Регистрация: 18.10.2009
Сообщений: 453
30.01.2013, 15:12
В самом начале скрипта, напишите:
PHP
1
error_reporting(E_ALL);
Добавлено через 37 секунд
Смотрите по ошибкам, правьте код.
Если, что-то не понятно спрашивайте...
1
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 30
30.01.2013, 15:35  [ТС]
Мне непонятно,почему в функции count_result не идентифицируются имена "+" "-" "*" "/"
0
 Аватар для c4boomb
198 / 166 / 23
Регистрация: 20.04.2011
Сообщений: 750
Записей в блоге: 1
30.01.2013, 15:40
Во первых надо проверять
PHP
1
if(isset($_POST['oper']))
В show_result у вас нету name у submit
1
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 30
30.01.2013, 15:58  [ТС]
Notice: Undefined variable: oper in Z:\home\sum\www\sum1.php on line 30

Notice: Undefined variable: oper in Z:\home\sum\www\sum1.php on line 36

Notice: Undefined variable: oper in Z:\home\sum\www\sum1.php on line 41

Notice: Undefined variable: oper in Z:\home\sum\www\sum1.php on line 46

Notice: Undefined variable: result in Z:\home\sum\www\sum1.php on line 79


Я не понимаю,почему не идентифицирует переменные

PHP
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
<?php
error_reporting(E_ALL);
// Функция вывода формы ввода
function show_form()
{
echo '<html>';
echo '<head>';
echo '<title>Калькулятор</title>';
echo '</head>';
echo '<body>';
echo '<form action="sum1.php" method="post">';
echo '<input type="text" name="a"/>';
 
echo '<input type="submit" name="oper" value= "+" />';
echo '<input type="submit" name="oper" value= "-" />';
echo '<input type="submit" name="oper" value= "*" />';
echo '<input type="submit" name="oper" value= "/" />';
 
echo '<input type="text" name="b" />';
echo '<input type="submit" value="=" />';
 
echo '</form>';
echo '</body>';
echo '</html>';
}
// Функция вычисления результата.
//function count_result($oper,$a, $b)
//{
 
if ($oper == "+")
{
$result = $a + $b;
return $result;
 
}
else if ($oper == "-")
{
$result = $a - $b;
return $result;
}
else if ($oper == "*")
{
$result = $a * $b;
return $result;
}
else if ($oper == "/")
{
if ($b != 0)
{
$result = $a / $b;
return $result;
}
else
{ 
echo "на ноль делить нельзя!";
}
}
 
//}
 
// Функция вывода результата.
function show_result($a, $b)
 
{
echo '<html>';
echo '<head>';
echo '<title>Сумматор</title>';
echo '</head>';
echo '<body>';
echo '<form action="sum1.php" method="get">';
echo '<input type = "text" name = "a" value = '.$_POST['a'].'>';
echo '<input type="submit" name="oper" value= "+" />';
echo '<input type="submit" name="oper" value= "-" />';
echo '<input type="submit" name="oper" value= "*" />';
echo '<input type="submit" name="oper" value= "/" />';
 
echo '<input type = "text" name = "b" value = '.$_POST['b'].'>';
echo '<input type="submit" value="=" />';
echo $result;
echo '<br>';
echo '<a href="sum1.php">Хочу продолжить вычисление</a>';
echo '</p>';
echo '</body>';
echo '</html>';
}
 
// Точка входа.
// Показываем результат операции или форму ввода.
if (isset($_POST['oper'])&&isset($_POST['a']) && isset($_POST['b']))
{
show_result($_POST['a'], $_POST['b']);
}
else
{
show_form();
}
 
?>
0
 Аватар для Pafos
97 / 97 / 17
Регистрация: 18.10.2009
Сообщений: 453
30.01.2013, 16:13
Потому, что переменной $oper не существует, вот скрипт и ругается...

У вас в предвещающем примере, была строка...
PHP
1
$oper = $_POST['oper'];
Верните её, и исправьте на:
PHP
1
2
3
4
5
if (isset($_POST['oper'])) { // если в глобальном массиве ПОСТ существует ключ 'oper', инициализируем и присваиваем значения переменной $oper.
    $oper = $_POST['oper']
} else { // иначе, инициализируем переменную с пустым значениям
    $oper = '';
}
1
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 30
30.01.2013, 19:14  [ТС]
Теперь программа совсем не работает, не знаю,что не так


PHP
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
<?php
 
// Функция вывода формы ввода
function show_form()
{
echo '<html>';
echo '<head>';
echo '<title>Калькулятор</title>';
echo '</head>';
echo '<body>';
echo '<form action="sum1.php" method="post">';
echo '<input type="text" name="a"/>';
 
echo '<input type="submit" name="oper" value= "+" />';
echo '<input type="submit" name="oper" value= "-" />';
echo '<input type="submit" name="oper" value= "*" />';
echo '<input type="submit" name="oper" value= "/" />';
 
echo '<input type="text" name="b" />';
echo '<input type="submit" value="=" />';
 
echo '</form>';
echo '</body>';
echo '</html>';
}
 
if (isset($_POST['oper'])) 
{ 
    $oper = $_POST['oper'];
} 
else 
{ 
    $oper = '';
}
 
if (isset($_POST['a'])) 
{ 
    $a = $_POST['a'];
} 
else 
{ 
    $a = '';
}
if (isset($_POST['b'])) 
{ 
    $b = $_POST['b'];
}
else 
{ 
    $b = '';
}
 
 
// Функция вычисления результата.
if ($oper == "+")
{
$result = $a + $b;
return $result;
 
}
else if ($oper == "-")
{
$result = $a - $b;
return $result;
}
else if ($oper == "*")
{
$result = $a * $b;
return $result;
}
else if ($oper == "/")
{
if ($b != 0)
{
$result = $a / $b;
return $result;
}
else
{ 
echo "на ноль делить нельзя!";
}
}
 
//}
 
// Функция вывода результата.
function show_result($a, $b)
 
{
echo '<html>';
echo '<head>';
echo '<title>Сумматор</title>';
echo '</head>';
echo '<body>';
echo '<form action="sum1.php" method="get">';
echo '<input type = "text" name = "a" value = '.$_POST['a'].'>';
echo '<input type="submit" name="oper" value= "+" />';
echo '<input type="submit" name="oper" value= "-" />';
echo '<input type="submit" name="oper" value= "*" />';
echo '<input type="submit" name="oper" value= "/" />';
 
echo '<input type = "text" name = "b" value = '.$_POST['b'].'>';
echo '<input type="submit" value="=" />';
echo $result;
echo '<br>';
echo '<a href="sum1.php">Хочу продолжить вычисление</a>';
echo '</p>';
echo '</body>';
echo '</html>';
}
 
// Точка входа.
// Показываем результат операции или форму ввода.
if (isset($_POST['oper'])&&isset($_POST['a']) && isset($_POST['b']))
{
show_result($_POST['a'], $_POST['b']);
}
else
{
show_form();
}
 
?>
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
30.01.2013, 19:40
подправил что в глаза бросилось , может быть счто-то криво осталось
PHP
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
<?php
 
// Функция вывода формы ввода
function show_form()
{
echo '<html>';
echo '<head>';
echo '<title>Калькулятор</title>';
echo '</head>';
echo '<body>';
echo '<form action="#" method="post">';
echo '<input type="text" name="a"/>';
 
echo '<input type="submit" name="oper" value= "+" />';
echo '<input type="submit" name="oper" value= "-" />';
echo '<input type="submit" name="oper" value= "*" />';
echo '<input type="submit" name="oper" value= "/" />';
 
echo '<input type="text" name="b" />';
echo '<input type="submit" value="=" />';
 
echo '</form>';
echo '</body>';
echo '</html>';
}
 
 
 
 
// Функция вывода результата.
function show_result($a, $b , $oper) 
{
 
 $result = null;
 if ($oper == "+")       {  $result = $a + $b;  }
 else if ($oper == "-")  {  $result = $a - $b;  }
 else if ($oper == "*")  {  $result = $a * $b;  }
 else if ($oper == "/")  {  $result = $b != 0 ? $a / $b : "на ноль делить нельзя!"; }
echo '<html>';
echo '<head>';
echo '<title>Сумматор</title>';
echo '</head>';
echo '<body>';
echo '<form action="#" method="get">';
echo '<input type = "text" name = "a" value = '.$a.'>';
echo '<input type="submit" name="oper" value= "+" />';
echo '<input type="submit" name="oper" value= "-" />';
echo '<input type="submit" name="oper" value= "*" />';
echo '<input type="submit" name="oper" value= "/" />';
 
echo '<input type = "text" name = "b" value = '.$b.'>';
echo '<input type="submit" value="=" />';
echo $result;
echo '<br>';
echo '<a href="sum1.php">Хочу продолжить вычисление</a>';
echo '</p>';
echo '</body>';
echo '</html>';
}
 
// Точка входа.
// Показываем результат операции или форму ввода.
if (!empty($_POST['oper']) && !empty($_POST['a']) && !empty($_POST['b']))
{
show_result($_POST['a'], $_POST['b'],$_POST['oper']);
}
else
{
show_form();
}
1
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 30
30.01.2013, 21:41  [ТС]
Спасибо! Всё работает! Пожалуйста,объясните мне, почему сначала надо писать $result=null? И почему в конце нужно использовать !empty?
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
31.01.2013, 13:21
Цитата Сообщение от Elena1986 Посмотреть сообщение
Пожалуйста,объясните мне, почему сначала надо писать $result=null?
потому что если ни одно условие не сработает то перемнной не будет и будет натайс , а так переменная будет в ней будет null (ничего)
Цитата Сообщение от Elena1986 Посмотреть сообщение
И почему в конце нужно использовать !empty?
зачем что-то считать если одно и полей пустое ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.01.2013, 13:21
Помогаю со студенческими работами здесь

Простой калькулятор и калькулятор с парсингом
Ребят я совсем не давно только начал изучать сишку, решил написать простенький калькулятор который работает с 2 числами. Возник вопрос, как...

простой калькулятор
Хочу сделать небольшой домашний проект - калькулятор на Ардуино. Как в IDE привязать число к кнопке, как привязать операцию (сложение,...

Калькулятор (простой)
Уважаемые форумчане! Ранее всегда пользовался 1st Calculator, но в настоящее время не имею возможности им пользоваться (основная...

простой калькулятор
#include &lt;Keypad.h&gt; #include &lt;LiquidCrystal.h&gt; LiquidCrystal lcd(7,8,9,10,11,12); long num1,num2 ; double total; char...

Простой калькулятор
Написать WSH сценарий, который: Запросит у пользователя два числа Запросит одну из 4 операций (+,-,*,/) Выполнит операцию над...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru