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

Найти ошибку в коде

21.10.2014, 17:34. Показов 919. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, помогите найти ошибку в коде программы, компилятор выводит операнды имеют неправдивые типы, заранее благодарен
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
{Вычислить точное значение суммы 12 + 22 + 32 + … + n2 (n >= 20000).}
Program DLUHHA9I_APUqpMETUKA;
uses crt;
Const NMax = 2000;
Type Digit = 0..9; DlChislo = Array[1..Nmax] Of Digit;
Var S : String;
    M, N, R, F : DlChislo;
    I, MaxF : Word;
    Logic : Boolean;
{Процедура обнуления длинного числа}
Procedure Zero(Var A : DlChislo);
Var I : Integer;
  Begin
    For I := 1 To NMax Do A[I] := 0;
  End;
{Функция определения количества цифр в записи длинного числа}
Function Dlina(C : DlChislo) : Integer;
Var I : Integer;
 Begin
   I := NMax;
   While (I > 1) And (C[I] = 0) Do I := I - 1;
   Dlina := I
 End;
{Процедура печати длинного числа}
Procedure Print(A : DlChislo);
Var I : Integer;
 Begin
    For I := Dlina(A) DownTo 1 Do Write(A[I] : 1);
    WriteLn
 End;
 {Процедура для нахождения суммы ариметической прогрессии}
     Procedure Arif_Progressia(A : DlChislo);
Var S,n,i: LongInt;
 Begin
  S:= 12;
    S:= (2 * S + 10 * (n - 1)) * n div 2;
 End;
{Процедура преобразования длинного числа в массив цифр}
Procedure Translate(S : String; Var A : DlChislo;
                    Var OK : Boolean);
Var I : Word;
 Begin
   Zero(A); I := Length(S); OK := True;
   While (I >= 1) And OK Do
   Begin
      If S[I] In ['0'..'9']
      Then A[Length(S) - I+ 1] := Ord(S[I]) - 48
      Else OK := False;
      I := I - 1
   End
 End;
Procedure Multiplication(A, B : DlChislo; Var C : DlChislo);
Var I, J : Integer; P : Digit; VspRez : 0..99;
 Begin
  Zero(C);
  For I := 1 To Dlina(A) Do
  Begin P := 0;
        For J := 1 To Dlina(B) Do
        Begin
          VspRez := A[I] * B[J] + P + C[I + J - 1];
            C[I + J - 1] := VspRez Mod 10;
            P := VspRez Div 10
          End;
        C[I + J] := P
   End
 End;
{Основная программа}
Begin
   Repeat {повторяем ввод, пока число не будет введено правильно}
     Write('Введите первое число: ');
     ReadLn(S); Translate(S, M, Logic)
   Until Logic;
   Repeat
     Write('Введите второе число: ');
     ReadLn(S); Translate(S, N, Logic)
   Until Logic;
   Multiplication(M, N, R); Print(R)
End.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.10.2014, 17:34
Ответы с готовыми решениями:

Найти ошибку в коде
подскажите где ошибка var a:file of integer; b:file of integer; t,l,k,n,i:integer; begin assign(a,'1f6.txt'); ...

Найти ошибку в коде
В чем ошибка в файле А.in 3 1 2 3 должно выйти 3 2 1 результат на экране

Найти ошибку в коде
Раскладывает на столе N палочек(1 <= n <= 32000) и начинает убирать палочки через одну, начиная с первой. Оставшиеся палочки также убирает...

7
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
21.10.2014, 19:40
Я запускал на PascalABC и PascalABC.Net - не выдавало ошибок.
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
21.10.2014, 19:46  [ТС]
а почему в процедуре не высчитывается арифметическая прогрессия по формуле, хотел высчитать {Вычислить точное значение суммы 12 + 22 + 32 + … + n2 (n >= 20000).}
0
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
21.10.2014, 19:56
Pascal
1
Procedure Arif_Progressia(A : DlChislo);
Её надо вызвать, а я не вижу, чтобы вы её вызывали

Добавлено через 1 минуту
Добавте вызов данной процедуры Arif_Progressia с этой:
Pascal
1
Procedure Translate(S : String; Var A : DlChislo; Var OK : Boolean);
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
21.10.2014, 20:51  [ТС]
компилятор выдает ошибку неверное количество фактических параметров...
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
{Âû÷èñëèòü òî÷íîå çíà÷åíèå ñóììû 12 + 22 + 32 + … + n2 (n >= 20000).}
Program DLUHHA9I_APUqpMETUKA;
uses crt;
Const NMax = 2000;
Type Digit = 0..9; DlChislo = Array[1..Nmax] Of Digit;
Var S : String;
    M, N, R, F : DlChislo;
    I, MaxF : Word;
    Logic : Boolean;
{Ïðîöåäóðà îáíóëåíèÿ äëèííîãî ÷èñëà}
Procedure Zero(Var A : DlChislo);
Var I : Integer;
  Begin
    For I := 1 To NMax Do A[I] := 0;
  End;
{Ôóíêöèÿ îïðåäåëåíèÿ êîëè÷åñòâà öèôð â çàïèñè äëèííîãî ÷èñëà}
Function Dlina(C : DlChislo) : Integer;
Var I : Integer;
 Begin
   I := NMax;
   While (I > 1) And (C[I] = 0) Do I := I - 1;
   Dlina := I
 End;
{Ïðîöåäóðà ïå÷àòè äëèííîãî ÷èñëà}
Procedure Print(A : DlChislo);
Var I : Integer;
 Begin
    For I := Dlina(A) DownTo 1 Do Write(A[I] : 1);
    WriteLn
 End;
 {Ïðîöåäóðà äëÿ íàõîæäåíèÿ ñóììû àðèìåòè÷åñêîé ïðîãðåññèè}
     Procedure Arif_Progressia(A : DlChislo);
Var S,n,i: LongInt;
 Begin
  S:= 12;
    S:= (2 * S + 10 * (n - 1)) * n div 2;
 End;
{Ïðîöåäóðà ïðåîáðàçîâàíèÿ äëèííîãî ÷èñëà â ìàññèâ öèôð}
Procedure Translate(S : String; Var A : DlChislo;
                    Var OK : Boolean);
Var I : Word;
 Begin
   Zero(A); I := Length(S); OK := True;
   While (I >= 1) And OK Do
   Begin
      If S[I] In ['0'..'9']
      Then A[Length(S) - I+ 1] := Ord(S[I]) - 48
      Else OK := False;
      I := I - 1
   End
 End;
Procedure Multiplication(A, B : DlChislo; Var C : DlChislo);
Var I, J : Integer; P : Digit; VspRez : 0..99;
 Begin
  Zero(C);
  For I := 1 To Dlina(A) Do
  Begin P := 0;
        For J := 1 To Dlina(B) Do
        Begin
          VspRez := A[I] * B[J] + P + C[I + J - 1];
            C[I + J - 1] := VspRez Mod 10;
            P := VspRez Div 10
          End;
        C[I + J] := P
   End
 End;
{Îñíîâíàÿ ïðîãðàììà}
Begin
   Repeat {ïîâòîðÿåì ââîä, ïîêà ÷èñëî íå áóäåò ââåäåíî ïðàâèëüíî}
     Write('Ââåäèòå ïåðâîå ÷èñëî: ');
     ReadLn(S); Translate(S, M, Logic)
   Until Logic;
   Repeat
     Write('Ââåäèòå âòîðîå ÷èñëî: ');
     ReadLn(S); Translate(S, N, Logic)
   Until Logic;
   Arif_Progressia (S, N, Logic);
   Multiplication(M, N, R); Print(R)
End.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
21.10.2014, 21:13
Объявляем
Pascal
1
Procedure Arif_Progressia(A : DlChislo);
1 параметр


Вызываем
Pascal
1
Arif_Progressia (S, N, Logic);
3 параметра.
И что?
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
21.10.2014, 21:24  [ТС]
я не понял вас..
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
21.10.2014, 21:33
У процедуры при объявлении и вызове должно быть одинаковое число параметров одинаковых типов, например
Pascal
1
2
type mas=array[1..20] of integer;
procedure vvod(var a:mas;n,m:byte);

вызов
Pascal
1
2
3
4
var x:mas;
     a,b:byte;
begin
vvod(x,a,b);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.10.2014, 21:33
Помогаю со студенческими работами здесь

Найти ошибку в коде
Хочу заменить текст наоборот но выдает ошибку var s,s1,s2:String; c:integer; begin readln(s); s:=s+' '; while s<>'' do ...

Найти ошибку в коде
begin for j:=1 to msize do begin kol:=0; sum:=0; for i:=1 to nsize do if x mod 2=0 then begin inc(sum,x); inc(kol);

Найти ошибку в коде
program COSSET; uses crt; var c,d,a,k,i,u,z,r,q,w,e,n,y,m,b,v,o,s,x:real; begin//начинаю ввод write('Вас приветствует...

Найти ошибку в коде
uses crt; const m=10; label met; var c:char; f,dt:text; k,i,j,z,b:byte; a:array of real; procedure keyboard; begin

Найти ошибку в коде
Цель программы, она должна создавать текстовый файл, потом спрашивает сколько хотите ввести строк - мы их вводим, а потом найти минимально...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
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 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты 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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru