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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2011, 19:31   #1
Andrey35
Пользователь
 
Аватар для Andrey35
 
Регистрация: 15.10.2011
Сообщений: 18
По умолчанию Счетчики числа повторений циклов.

Помогите нужно :
1) Добавить в обе программы счетчики числа повторений циклов.
2) В программу Al_Horezmi добавить проверку знака вводимых значений M и N . Если вводится отрицательное число, то компьютер должен сообщить пользователю об ошибке и предложить повторить ввод.

(1 программа)

program Russian_method;
Var M,N,Mul;integer;
begin
write('M='); readln(M);
write('N='); readln(N);
write(M,'*',N,'=');
Mul:=0;
while N>=1 do
begin
if (N mod 2=1)
then Mul:=Mul+M;
N:=N div 2; M:=M*2;
end;
writeln(Mul)
end.

(2 программа)

Program Al_Horezmi;
Var M,N,Mul,Q:integer;
begin
write('M='); readln(M);
write('N='); readln(N);
write(M,'*',N,'=');
Mul:=0; Q:=1;
while N>=1 do
begin
Mul:=Mul+M*(N mod 10)*Q;
N:=N div 10; Q:=Q*10
end;
writeln(Mul)
end.
Мнения автора могут не совпадать с его точкой зрения.
Andrey35 вне форума Ответить с цитированием
Старый 14.11.2011, 20:45   #2
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Код:
program Russian_method;

var
  M, N, Mul, i: integer;

begin
  write('M='); readln(M);
  write('N='); readln(N);
  write(M, '*', N, '=');
  Mul := 0;
  i := 0;
  while N >= 1 do
  begin
    inc(i);
    if (N mod 2 = 1)
      then Mul := Mul + M;
    N := N div 2; M := M * 2;
  end;
  writeln(Mul)
end.
Код:
program Al_Horezmi;

var
  M, N, Mul, Q, i: integer;

begin
  repeat
    write('M='); readln(M);
    write('N='); readln(N);
  until (n >= 0) and (m >= 0);
  write(M, '*', N, '=');
  Mul := 0; Q := 1;
  i := 0;
  while N >= 1 do
  begin
    inc(i);
    Mul := Mul + M * (N mod 10) * Q;
    N := N div 10; Q := Q * 10
  end;
  writeln(Mul);
end.

Последний раз редактировалось unbanned; 14.11.2011 в 20:52.
unbanned вне форума Ответить с цитированием
Старый 14.11.2011, 21:05   #3
Andrey35
Пользователь
 
Аватар для Andrey35
 
Регистрация: 15.10.2011
Сообщений: 18
По умолчанию

Цитата:
Сообщение от unbanned Посмотреть сообщение
Код:
program Russian_method;

var
  M, N, Mul, i: integer;

begin
  write('M='); readln(M);
  write('N='); readln(N);
  write(M, '*', N, '=');
  Mul := 0;
  i := 0;
  while N >= 1 do
  begin
    inc(i);
    if (N mod 2 = 1)
      then Mul := Mul + M;
    N := N div 2; M := M * 2;
  end;
  writeln(Mul)
end.
Код:
program Al_Horezmi;

var
  M, N, Mul, Q, i: integer;

begin
  repeat
    write('M='); readln(M);
    write('N='); readln(N);
  until (n >= 0) and (m >= 0);
  write(M, '*', N, '=');
  Mul := 0; Q := 1;
  i := 0;
  while N >= 1 do
  begin
    inc(i);
    Mul := Mul + M * (N mod 10) * Q;
    N := N div 10; Q := Q * 10
  end;
  writeln(Mul);
end.
это счетчики числа повторений циклов ?
Мнения автора могут не совпадать с его точкой зрения.
Andrey35 вне форума Ответить с цитированием
Старый 14.11.2011, 21:23   #4
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

я думаю, что да. или вы не согласны?
unbanned вне форума Ответить с цитированием
Старый 14.11.2011, 21:42   #5
Andrey35
Пользователь
 
Аватар для Andrey35
 
Регистрация: 15.10.2011
Сообщений: 18
По умолчанию

Цитата:
Сообщение от unbanned Посмотреть сообщение
я думаю, что да. или вы не согласны?
спасибо за помощь.
А второе знаете как сделать ? был бы очень признателен вам
Мнения автора могут не совпадать с его точкой зрения.
Andrey35 вне форума Ответить с цитированием
Старый 14.11.2011, 21:46   #6
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Цитата:
А второе знаете как сделать ?
А это по вашему что?
Код:
  repeat 
    write('M='); readln(M);
    write('N='); readln(N);
  until (n >= 0) and (m >= 0);
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 14.11.2011, 21:50   #7
Andrey35
Пользователь
 
Аватар для Andrey35
 
Регистрация: 15.10.2011
Сообщений: 18
По умолчанию

Цитата:
Сообщение от IT-man Посмотреть сообщение
А это по вашему что?
Код:
  repeat 
    write('M='); readln(M);
    write('N='); readln(N);
  until (n >= 0) and (m >= 0);
блин что-то я запутался напишите пожалуйста где тут первое а где второе задание ?
Мнения автора могут не совпадать с его точкой зрения.
Andrey35 вне форума Ответить с цитированием
Старый 16.11.2011, 00:22   #8
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

переменная i и в первой и второй программе счетчик. можете вывести его на экран если надо.

Код:
repeat 
....
  until (n >= 0) and (m >= 0);
проверка ввода... сообщение об ошибке и выход из цикла доделаете сами

Последний раз редактировалось unbanned; 16.11.2011 в 19:22.
unbanned вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймеры/счетчики abused Помощь студентам 0 05.06.2011 22:29
Программирование циклов с неизвестным числом повторений Any13 Помощь студентам 0 23.11.2010 21:13
организация циклов с заданным числом повторений с использованием рекуррентных формул LtB Помощь студентам 10 17.10.2010 13:02
Delphi. random, случайные числа без повторений MerCY Помощь студентам 8 10.05.2010 15:19
Фрейм и счетчики Slavik HTML и CSS 6 20.03.2009 22:16