Есть такая программа: program chisla; function sar(const a, b:integer):real; begin sar:=(a + b)/2; end;
function num(var i1, i2:integer):integer; var i:integer; begin i:=0; while i1<>0 do begin inc(i); i1:=i1 div 10; end;
while i2<>0 do begin inc(i); i2:=i2 div 10; end;
num:=i;
var a, b:integer; begin repeat writeln('Vvedite a'); readln(a); writeln('Vvedite b'); readln(b); until(a<b); writeln('summa chisel:', (a+b)); writeln('srednee arifmeticheskoe:', sar(a,b):4); writeln('kolichestvo cifr:', num(a,b)); readln; end.
1.Ошибка в следующем, сумма и арифметическое считается правильно, а вот количество цифр почему - то пишется 1, а не 2, хотя написано writeln('kolichestvo cifr:', num(a,b)); Как сделать что бы выдавало кол-во цифр 2 ? 2. Не поможете разобраться с данными строками: function sar(const a, b:integer):real; function num(var i1, i2:integer):integer;
Какой тип к этим переменным присваевается ? реальный или переменный? а то в скобках например integer а за скобками ещё и real. Вообщем помогите как расписать эти строки. Заранее спасибо.
Client
16.01.2008 2:27
Цитата
а вот количество цифр почему - то пишется 1, а не 2,
Ты приведи пример, где неправильно выдает ответ
Цитата
Какой тип к этим переменным присваевается ?
Это функции: первая вернет результат вещественного типа, вторая-целого. В скобках указываются формальные параметры и их тип.
Juhn
16.01.2008 2:31
Ну вообщем запрвашивается 2 числа, я напрмиер ввожу первое 2, и второе 4, и мне выдаётся результат: сумма = 6, ср. фрифметическое = 3, кол-во цифр = 1. Вот она и ошибка, выдаёт что количество цифр =1, а нужно что бы выдавало 2, ведь я ввёл 2 числа.
Client
16.01.2008 2:38
Вот смотри, твоя прога
Juhn
16.01.2008 2:40
Странно у тебя вообще показывает количество цифр то 2, то 3, а у меня 1, интересно из - за чего одна и та же программа у всех по разному... вот в этом и загвоздка, это надо как - то подправить что бы было 2, не понимаю в чём тут ошибка
compiler
16.01.2008 2:45
Juhn, а кто писал эту программу? сам?
Juhn
16.01.2008 2:49
Да нет не сам, мне срочно нужно было в школе, попросил, написали, в школе проверил, неполадочка :/
Client
16.01.2008 2:50
Цитата
количество цифр то 2, то 3, а у меня 1,
Если ввести 3 и 10 то ответ должен быть 3, что и выдала программа.
Цитата
не понимаю в чём тут ошибка
while i2<>0dobegin
inc(i);
i2:=i2 div10;
end;
num:=i;
end; // у тебя так??
var
compiler
16.01.2008 2:53
Цитата(Juhn @ 15.01.2008 21:49)
Да нет не сам, мне срочно нужно было в школе, попросил, написали, в школе проверил, неполадочка :/
Client да так, это в первом посте и написано. compiler сорри, темка далеко ушла, я думал может и удалена уже
compiler
16.01.2008 3:58
>>Client да так, это в первом посте и написано. а теперь сверь с тем что я выкладывал... или сделай отступы(правильно сделаешь -> найдёшь ошибку)... Client, правильно отметил место...* >>compiler сорри, темка далеко ушла, я думал может и удалена уже Поиск рулит! А если давать тема информативные имена, то и искать одно удовольствие
примечание неужели, эта программа компилируется на ТП? сейчас поздно но завтра проверю...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.