Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 15.01.2019
Сообщений: 17
1

Код работает некорректно

15.01.2019, 19:02. Показов 925. Ответов 3
Метки нет (Все метки)

помогите найти ошибку в коде))))))
a = 45
b = 67
проблема при возведении в 10 степень


Pascal
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
151
program ert;
 
 
label 1,2,3,4,5,6,7,8,9,10,998,999;
var
r,t,e,p,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10 : longint;
a,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 : longint;
b,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10 : longint;
 
 
begin
s1:= 1;
s2:= 2;
s3:= 3;
s4:= 4;
s5:= 5;
s6:= 6;
s7:= 7;
s8:= 8;
s9:= 9;
s10:= 10;
10:
begin
writeln ('Введите значение a');
readln (a);
writeln ('Введите значение b');
readln (b);
writeln ('Выбирайте операцию');
writeln ('1 - вычитание');
writeln ('2 - сложение');
writeln ('3 - умножение');
writeln ('4 - деление');
writeln ('5 - возведение в степень');
readln (e);
if (e = 1) then goto 1;
if (e = 2) then goto 2;
if (e = 3) then goto 3;
if (e = 4) then goto 4;
if (e = 5) then goto 5;
1:
r:= a-b;
writeln (r);
goto 999;
2:
r:= a+b;
writeln (r);
goto 999;
3:
r:= a*b;
writeln (r);
goto 999;
4:
writeln ('целое ',a div b);
writeln ('отсаток ', a mod b);
goto 999;
5:
writeln ('В какую степень?');
writeln ('В 0 степень');
writeln ('В 1 степень');
writeln ('В 2 степень');
writeln ('В 3 степень');
writeln ('В 4 степень');
writeln ('В 5 степень');
writeln ('В 6 степень');
writeln ('В 7 степень');
writeln ('В 8 степень');
writeln ('В 9 степень');
writeln ('В 10 степень');
readln (p);
if (p = 0) then 
begin
writeln (1);
goto 999;
end;
if (p = 1) then 
begin
a1:= a;
b1:= b;
writeln ('a = ',a1,' ','b = ',b1);
goto 999;
end;
if (p = 2) then 
begin
a2:= a*a;
b2:= b*b;
writeln ('a = ',a2,' ','b = ',b2);
goto 999;
end;
if (p = 3) then 
begin
a3:= a*a*a;
b3:= b*b*b;
writeln ('a = ',a3,' ','b = ',b3);
goto 999;
end;
if (p = 4) then 
begin
a4:= a*a*a*a;
b4:= b*b*b*b;
writeln ('a = ',a4,' ','b = ',b4);
goto 999;
end;
if (p = 5) then 
begin
a5:= a*a*a*a*a;
b5:= b*b*b*b*b;
writeln ('a = ',a5,' ','b = ',b5);
goto 999;
end;
if (p = 6) then 
begin
a6:= a*a*a*a*a*a;
b6:= b*b*b*b*b*b;
writeln ('a = ',a6,' ','b = ',b6);
goto 999;
end;
if (p = 7) then 
begin
a7:= a*a*a*a*a*a*a;
b7:= b*b*b*b*b*b*b;
writeln ('a = ',a7,' ','b = ',b7);
goto 999;
end;
if (p = 8) then 
begin
a8:= a*a*a*a*a*a*a*a;
b8:= b*b*b*b*b*b*b*b;
writeln ('a = ',a8,' ','b = ',b8);
goto 999;
end;
if (p = 9) then 
begin
a9:= a*a*a*a*a*a*a*a*a;
b9:= b*b*b*b*b*b*b*b*b;
writeln ('a = ',a9,' ','b = ',b9);
goto 999;
end;
if (p = 10) then 
begin
a10:= a*a*a*a*a*a*a*a*a*a;
b10:= b*b*b*b*b*b*b*b*b*b;
writeln ('a = ',a10,' ','b = ',b10);
goto 999;
end;
999:
end;
readln (t);
if (t = 1) then goto 10;
if (t = 2) then goto 998;
998:
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2019, 19:02
Ответы с готовыми решениями:

Некорректно работает код
Задача такая: создать страницу содержащуюю input type="text". Введенное пользователем число в этот...

Некорректно работает код
Задание: Создайте двухмерный массив, который состоит из 3 рядов и 5 столбцов по правилу...

GoogleTranslate: некорректно работает код
Здравствуйте, у меня такой вопрос: у меня есть Файл с полностью забитыми строками. Нашел в...

Некорректно работает CSS-код
Здравствуйте, уважаемые программисты и верстальщики! Я учусь верстке сайтов, и у меня возникла...

3
3388 / 1808 / 487
Регистрация: 28.02.2015
Сообщений: 3,678
15.01.2019, 19:54 2
Цитата Сообщение от dilex567 Посмотреть сообщение
label 1,2,3,4,5,6,7,8,9,10,998,999;
метки в паскале ,это не BASIC
Pascal
1
2
3
4
5
if (e = 1) then goto 1;
if (e = 2) then goto 2;
if (e = 3) then goto 3;
if (e = 4) then goto 4;
if (e = 5) then goto 5;
Используйте CASE, и таких мест в коде куча. Переосмыслите свой код.
1
1828 / 1024 / 418
Регистрация: 07.04.2017
Сообщений: 3,917
15.01.2019, 21:12 3
И используйте отладчик (F8) чтоб искать где код не правильно выполняется. Во время отладки можно навести мышку на любую переменную чтоб посмотреть на её значение.
1
4658 / 2344 / 2216
Регистрация: 10.12.2014
Сообщений: 9,021
16.01.2019, 06:52 4
Лучший ответ Сообщение было отмечено dilex567 как решение

Решение

Во-первых, почему для всех операций у вас используются начальные значения a и b, а для возведения в степень нужно вводить степень?

Во-вторых, в PABC.NET тип Longint это то-же самое, что и Integer.

В-третьих, как сказал предыдущий „ответчик“, зачем вам GoTo ? От этого пережитка прошлого нужно избавляться!

В четвёртых, довольно странно выглядит конструкция типа:
Pascal
12
13
14
15
16
17
18
19
20
21
s1:= 1;
s2:= 2;
s3:= 3;
s4:= 4;
s5:= 5;
s6:= 6;
s7:= 7;
s8:= 8;
s9:= 9;
s10:= 10;
Тем более, что оно ни где не используется!

Как-то так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
begin
  repeat
    var a := ReadLnInteger('Введите значение a:');
    var b := ReadLnInteger('Введите значение b:');
    writeln ('1 - вычитание');
    writeln ('2 - сложение');
    writeln ('3 - умножение');
    writeln ('4 - деление');
    writeln ('5 - возведение в степень');
    var e := ReadLnInteger('Выбирайте операцию:');
    case e of
      1: WriteLn(a-b);
      2: WriteLn(a+b);
      3: WriteLn(a*b);
      4: WriteLn($'целое {a div b}{NewLine}остаток {a mod b}');
      5: WriteLn(a**b);
    end;
  until '¤1¤Д¤ДА¤Y¤YES¤'.IndexOf('¤'+ReadlnString('Ещё раз? (1 | Да | Yes) >').ToUpper+'¤')<0;
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2019, 06:52

Запись в файл, код работает некорректно
StreamWriter sw; // объект потока для записи StringBuilder builder; // построитель...

Некорректно работает код перевода дюймов в сантиметры
Привет) Задание. Перевести дюймы в см. т.е. ввожу 2i, должно вывести 5.08 см. #include...

Нативный код некорректно работает в Android Studio
Пишу простенький менеджер с шифрованием сообщений. Сам мессенджер написан на Java, а шифрующий...

Вычислить значение по формуле, код работает некорректно
У меня получилось на QBasic: CLS PRINT &quot;Vvedite znacheniya dlya K i X&quot; INPUT K, X F = (SIN(X...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru