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

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

15.01.2019, 19:02. Просмотров 794. Ответов 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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2019, 19:02
Ответы с готовыми решениями:

Записи (проверка работает некорректно)
блин проверка коряво работает, почему не пойму, надо чтобы если форма была пуста то он опять просил...

Программа для работы с файлом работает некорректно
Задание: Дан файл F, содержащий номера телефонов сотрудников учреждения с указанием их фамилий и...

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

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

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

3
Constantin Cat
2991 / 1125 / 376
Регистрация: 28.02.2015
Сообщений: 2,476
Завершенные тесты: 1
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
Sun Serega
411 / 267 / 150
Регистрация: 07.04.2017
Сообщений: 1,245
15.01.2019, 21:12 3
И используйте отладчик (F8) чтоб искать где код не правильно выполняется. Во время отладки можно навести мышку на любую переменную чтоб посмотреть на её значение.
1
JuriiMW
2212 / 1217 / 1666
Регистрация: 10.12.2014
Сообщений: 4,764
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2019, 06:52

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

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

Некорректно работает код (запись вставляется в БД дважды)
datamodule2.ADOQuery2.Close; DataModule2.ADOQuery2.SQL.Clear;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru