Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Паскаль.Даны 2 целых числа. Есть ли у них одинаковые(по значению) разряды? (http://www.tehnari.ru/f41/t105734/)

votsarskam 10.12.2015 15:42

Паскаль.Даны 2 целых числа. Есть ли у них одинаковые(по значению) разряды?
 
Даны 2 целых числа. Есть ли у них одинаковые(по значению) разряды?

MagentaTiger 10.12.2015 15:49

Ну тут два варианта или преобразовать оба числа в строки, или последовательным делением по модулю на 10
типа
Код:

program a;
var m1,m2,d1,d2:Integer;
begin
write('Введите первое число : ');
readln(d1);
write('Введите второе число : ');
readln(d2);
while (d1<>0) and (d2<>0) do
begin
  m1 := d1 mod 10;
  m2 := d2 mod 10;
  if m1=m2 then
  begin
      writeln('Одинаковый разряд есть');
      break;
  end;
      d1 := d1 div 10;
      d2 := d2 div 10;
end;
readln;
end.

правда желательно бы еще предусмотреть обработку особого случая, когда оба числа изначально равны нулю.

votsarskam 10.12.2015 16:14

При вводе разных чисел программа не выдает результат

MagentaTiger 10.12.2015 16:20

Цитата:

Сообщение от votsarskam (Сообщение 1186734)
При вводе разных чисел программа не выдает результат

А что должна выдавать, в задании про это нет ничего ?
Ну сделайте, что бы выдавала ... Замените вывод (writeln) на установку какого либо флага, а после цикла анализируйте этот флаг ...
да еще бы надо добавить обработку разно знаковых чисел.
Код:

program a;
var m1,m2,d1,d2:Integer;
f:Boolean;
begin
f:=false;
write('Введите первое число : ');
readln(d1);
write('Введите второе число : ');
readln(d2);

{* проверим частный случай, когда оба числа 0 *}
if (d1=0) and (d2=0) then f:=true;

{* приведем к одному знаку *}
d1:= abs(d1);
d2:= abs(d2);

while (d1<>0) and (d2<>0) do
begin
  m1 := d1 mod 10;
  m2 := d2 mod 10;
  if m1=m2 then
  begin
    f:=true;
      break;
  end;
      d1 := d1 div 10;
      d2 := d2 div 10;
end;
if f then
  writeln('Одинаковый разряд есть')
else
  writeln('Одинаковых разрядов не найдено');
readln;
end.


votsarskam 10.12.2015 16:43

Спасибо большое


Часовой пояс GMT +4, время: 09:45.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.