Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2011, 21:42   #1
RockerwomanLOVE
Новичок
Джуниор
 
Регистрация: 02.06.2011
Сообщений: 3
По умолчанию натуральные числа

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

пожалуйста помоги решить эту задачу тремя способами: с процедурой, с функцией и просто линейно.
буду весьма благодарна , если поможете решить хотя бы одним способом.
заранее спасибо!!!

даны три натуральных числа, выяснить в каком из них больше цифр.
RockerwomanLOVE вне форума Ответить с цитированием
Старый 02.06.2011, 21:43   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

И чё за задача?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 02.06.2011, 21:48   #3
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
Сообщение от RockerwomanLOVE Посмотреть сообщение
от этой задачи зависит моя учеба.

....

даны три натуральных числа, выяснить в каком из них больше цифр.
Если от такой задачи зависит твоя учёба, то пусть лучше тебя отчислят.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 02.06.2011, 22:11   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Код:
// Функция
int Comparison(float x, float y, float z)
{
AnsiString X,Y,Z;
X = FloatToStr(x);
Y = FloatToStr(y);
Z = FloatToStr(z);
if(X.Length() > Y.Length() && X.Length() > Z.Length()) return 1;
else  if(Y.Length() > Z.Length()) return 2;
return 3;
}
Вот, примерно так.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 03.06.2011, 07:25   #5
RockerwomanLOVE
Новичок
Джуниор
 
Регистрация: 02.06.2011
Сообщений: 3
По умолчанию

Спасибо!!!!
RockerwomanLOVE вне форума Ответить с цитированием
Старый 03.06.2011, 07:53   #6
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Turbo Pascal:
1) линейный
Код:
uses crt;
var a,b,c:integer;
    n1,n2,n3:integer;
begin
     clrscr;
     write('Enter a: ');
     readln(a);
     write('Enter b: ');
     readln(b);
     write('Enter c: ');
     readln(c);
     while a div 10 > 0 do
     begin
          inc(n1);
          a:=a div 10;
     end;
     while b div 10 > 0 do
     begin
          inc(n2);
          b:=b div 10;
     end;
     while c div 10 > 0 do
     begin
          inc(n3);
          c:=c div 10;
     end;
     if (n1>n2) and (n1>n3) then writeln('1st digit')
     else if (n2>n1) and (n2>n3) then writeln('2nd digit')
     else if (n3>n1) and (n3>n2) then writeln('3rd digit')
     else if (n1=n2) and (n1>n3) then writeln('1st and 2nd')
     else if (n1=n3) and (n1>n2) then writeln('1st and 3rd')
     else if (n2=n3) and (n2>n1) then writeln('2nd and 3rd')
     else writeln('Bce paBHbI');
     readln;
end.
2) через процедуру
Код:
uses crt;
var a,b,c:integer;
    n1,n2,n3:integer;
procedure lenDigit(var lDig:integer; digit:integer);
begin
     lDig:=0;
     while digit div 10 > 0 do
     begin
          inc(lDig);
          digit:=digit div 10;
     end;
end;
begin
     clrscr;
     write('Enter a: ');
     readln(a);
     write('Enter b: ');
     readln(b);
     write('Enter c: ');
     readln(c);

     lenDigit(n1,a);
     lenDigit(n2,b);
     lenDigit(n3,c);

     if (n1>n2) and (n1>n3) then writeln('1st digit')
     else if (n2>n1) and (n2>n3) then writeln('2nd digit')
     else if (n3>n1) and (n3>n2) then writeln('3rd digit')
     else if (n1=n2) and (n1>n3) then writeln('1st and 2nd')
     else if (n1=n3) and (n1>n2) then writeln('1st and 3rd')
     else if (n2=n3) and (n2>n1) then writeln('2nd and 3rd')
     else writeln('Bce paBHbI');
     readln;
end.
3) через функцию
Код:
uses crt;
var a,b,c:integer;
    n1,n2,n3:integer;
function getLen(digit:integer):integer;
var n:integer;
begin
     while digit div 10 > 0 do
     begin
          inc(n);
          digit:=digit div 10;
     end;
     getLen:=n;
end;
begin
     clrscr;
     write('Enter a: ');
     readln(a);
     write('Enter b: ');
     readln(b);
     write('Enter c: ');
     readln(c);
     n1:=getLen(a);
     n2:=getLen(b);
     n3:=getLen(c);
     if (n1>n2) and (n1>n3) then writeln('1st digit')
     else if (n2>n1) and (n2>n3) then writeln('2nd digit')
     else if (n3>n1) and (n3>n2) then writeln('3rd digit')
     else if (n1=n2) and (n1>n3) then writeln('1st and 2nd')
     else if (n1=n3) and (n1>n2) then writeln('1st and 3rd')
     else if (n2=n3) and (n2>n1) then writeln('2nd and 3rd')
     else writeln('Bce paBHbI');
     readln;
end.
все вместе
Код:
uses crt;
var a,b,c:integer;
    n1,n2,n3:integer;
    f:byte;
procedure lenDigit(var lDig:integer; digit:integer);
begin
     lDig:=0;
     while digit div 10 > 0 do
     begin
          inc(lDig);
          digit:=digit div 10;
     end;
end;
function getLen(digit:integer):integer;
var n:integer;
begin
     while digit div 10 > 0 do
     begin
          inc(n);
          digit:=digit div 10;
     end;
     getLen:=n;
end;
begin
     clrscr;
     writeln('1) line');
     writeln('2) procedure');
     writeln('other) function');
     readln(f);

     write('Enter a: ');
     readln(a);
     write('Enter b: ');
     readln(b);
     write('Enter c: ');
     readln(c);

     if f=1 then
     begin
          while a div 10 > 0 do
          begin
               inc(n1);
               a:=a div 10;
          end;
          while b div 10 > 0 do
          begin
               inc(n2);
               b:=b div 10;
          end;
          while c div 10 > 0 do
          begin
               inc(n3);
               c:=c div 10;
          end;
     end else
     if f=2 then
     begin
          lenDigit(n1,a);
          lenDigit(n2,b);
          lenDigit(n3,c);
     end else
     begin
          n1:=getLen(a);
          n2:=getLen(b);
          n3:=getLen(c);
     end;
     if (n1>n2) and (n1>n3) then writeln('1st digit')
     else if (n2>n1) and (n2>n3) then writeln('2nd digit')
     else if (n3>n1) and (n3>n2) then writeln('3rd digit')
     else if (n1=n2) and (n1>n3) then writeln('1st and 2nd')
     else if (n1=n3) and (n1>n2) then writeln('1st and 3rd')
     else if (n2=n3) and (n2>n1) then writeln('2nd and 3rd')
     else writeln('Bce paBHbI');
     readln;
end.
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.

Последний раз редактировалось Sparkman; 03.06.2011 в 08:00.
Sparkman вне форума Ответить с цитированием
Старый 05.06.2011, 14:55   #7
RockerwomanLOVE
Новичок
Джуниор
 
Регистрация: 02.06.2011
Сообщений: 3
По умолчанию

Огромное вам спасибо!!! Вы мне очень помогли!!!я немножко переделаю программы с вашего разрешения на студенческий лад???!!!! Спасибо Вам большое!!!
RockerwomanLOVE вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны натуральные числа n и m. Получить сумму m последних цифр числа n pahanzona Microsoft Office Excel 11 27.02.2011 02:17
Даны натуральные числа n,p, целые числа a1 , ... ,an. Наталья111 Фриланс 10 09.11.2010 20:09
Натуральные числа Skynet88 Фриланс 13 17.02.2010 21:33
вводим два числа, получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m Sparky Помощь студентам 2 22.11.2009 21:59
Даны натуральные числа m,n. Посчитать сумму m последнего числа n. лялька Паскаль, Turbo Pascal, PascalABC.NET 6 25.12.2008 15:22