17.01.2011, 14:41 | #1 (permalink) | ||
Member
Регистрация: 15.12.2010
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Функции на Pascal.
Функции знаю не очень, вот что у меня получилось. Помогите пожалуйста исправить. При компиляции выдает Error 113: error in statement в подчеркнутой строке. Код:
uses crt; function kolcifr(n:integer):integer;{Функция количества цифр в числе} var k:integer; begin k:=0; while n<>0 do begin k:=k+1; n:=n div 10; kolcifr:=k; end; function sumcifr(n:integer):integer;{Функция суммы цифр на нечетных местах} var s:integer; i:integer; begin s:=0; for i:=1 to kolcifr(n) do if i mod 2 = 1 then begin s:=s+i; end; sumcifr:=s; end; begin clrscr; write('Vvedite chislo: '); readln(n); writeln('Kolichestvo cifr v chisle = ',kolcifr(n)); writeln('Summa cifr na nechetnih mestah = ',sumcifr(n)); readln; end.
Последний раз редактировалось Max; 17.01.2011 в 14:43 Причина: ... |
||
17.01.2011, 14:41 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Вам даже не придется пользоваться поиском, вот аналогичные темы Функции на Паскале Процедуры, функции График функции C# массивы и функции |
17.01.2011, 15:24 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да, кстати - и вторая функция написана неверно: вместо подсчета суммы цифр ЧИСЛА Вы вычисляете сумму нечетных номеров позиций: 1+3+5...
|
17.01.2011, 15:49 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
17.01.2011, 16:20 | #7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Слева, говорите? Т.е. со старших порядков? Тогда несколько сложнее (справа было бы существенно проще). Ну ладно, слева так слева:
Код:
Var N:LongInt; Num:Byte; Sum1,Sum2:Word; BEGIN Num:=0; Sum1:=0; Sum2:=0; Write('N= '); ReadLn(N); Repeat Num:=Num+1; If (Num mod 2)=1 then Sum1:=Sum1+(N mod 10) else Sum2:=Sum2+(N mod 10); N:=N div 10; Until N=0; WriteLn('Number of figures= ',Num); Write('Sum of figures on odd places= '); If (Num div 2)=1 then WriteLn(Sum1) else WriteLn(Sum2); ReadLn; END. |
17.01.2011, 16:28 | #8 (permalink) |
Member
Регистрация: 15.12.2010
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|