Помощь - Поиск - Пользователи - Календарь
Полная версия: Исправление ошибки в проге
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Juhn
Есть такая программа:
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
Цитата
а вот количество цифр почему - то пишется 1, а не 2,
Ты приведи пример, где неправильно выдает ответ
Цитата
Какой тип к этим переменным присваевается ?
Это функции: первая вернет результат вещественного типа, вторая-целого. В скобках указываются формальные параметры и их тип.
Juhn
Ну вообщем запрвашивается 2 числа, я напрмиер ввожу первое 2, и второе 4, и мне выдаётся результат:
сумма = 6, ср. фрифметическое = 3, кол-во цифр = 1. Вот она и ошибка, выдаёт что количество цифр =1, а нужно что бы выдавало 2, ведь я ввёл 2 числа.
Client
Вот смотри, твоя прога
Juhn
Странно у тебя вообще показывает количество цифр то 2, то 3, а у меня 1, интересно из - за чего одна и та же программа у всех по разному... вот в этом и загвоздка, это надо как - то подправить что бы было 2, не понимаю в чём тут ошибка
compiler
Juhn, а кто писал эту программу? сам?
Juhn
Да нет не сам, мне срочно нужно было в школе, попросил, написали, в школе проверил, неполадочка :/
Client
Цитата
количество цифр то 2, то 3, а у меня 1,
Если ввести 3 и 10 то ответ должен быть 3, что и выдала программа.
Цитата
не понимаю в чём тут ошибка
while i2<>0 do begin
inc(i);
i2:=i2 div 10;
end;

num:=i;
end; // у тебя так??
var
compiler
Цитата(Juhn @ 15.01.2008 21:49) *
Да нет не сам, мне срочно нужно было в школе, попросил, написали, в школе проверил, неполадочка :/
А зачем надо было создавать новую тему? Помогите пожалуйста написать прогу
я уже думал, скажешь сам написал mad.gif
Juhn
Client да так, это в первом посте и написано.
compiler сорри, темка далеко ушла, я думал может и удалена уже
compiler
>>Client да так, это в первом посте и написано.
а теперь сверь с тем что я выкладывал... или сделай отступы(правильно сделаешь -> найдёшь ошибку)... Client, правильно отметил место...*
>>compiler сорри, темка далеко ушла, я думал может и удалена уже
Поиск рулит! А если давать тема информативные имена, то и искать одно удовольствие

примечание
неужели, эта программа компилируется на ТП? сейчас поздно но завтра проверю...

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.