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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2010, 18:53   #1
WitaliG
Пользователь
 
Регистрация: 17.08.2010
Сообщений: 75
По умолчанию Задача в Паскале

Здравствуйте!
Помогите, пожалуйста, разобраться в задаче в Паскале.
Вычислить разность 2-х чисел а и b без использования операции « - «.
Совершенно не пойму как это можно сделать.
С уважением Виталий.
WitaliG вне форума Ответить с цитированием
Старый 26.10.2010, 20:38   #2
Xeonc
Форумчанин
 
Регистрация: 20.10.2010
Сообщений: 143
По умолчанию

Вариант с умножением вычитаемого на -1 подойдет?
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
Xeonc вне форума Ответить с цитированием
Старый 26.10.2010, 23:26   #3
Jop
Новичок
Джуниор
 
Регистрация: 26.10.2010
Сообщений: 7
По умолчанию

Код:
program project1;
var a,b,s,n:integer;
begin
readln(a,b);
if (a=b) then
begin
s:=0;
writeln(s);
readln;
end;
if (a>b) then
begin
while (b>0)  do
begin
dec(b);
dec(a);
end;
writeln(a);
readln;
end;
if (a<b) then
begin
while (a>0)    do
begin
dec(a);
dec(b);
end;
s:=b;
n:=s;
while (s<3*n) do
begin
dec(b);
s:=s+1;
end;
writeln(b);
readln;
end;
end.
Вот чего придумал.
Jop вне форума Ответить с цитированием
Старый 26.10.2010, 23:38   #4
WitaliG
Пользователь
 
Регистрация: 17.08.2010
Сообщений: 75
По умолчанию

Я эту задачу нашел в видеоуроке школьного учителя информатики. Урок был посвящен циклу с параметром. А в конце несколько задач. Логика подсказывает, что решение должно быть какое-то несложное...
Но то, что предлагает Jop, как мне кажется школьнику будет трудновато.
Должно быть есть более простое решение.
Но я могу и ошибаться...
WitaliG вне форума Ответить с цитированием
Старый 26.10.2010, 23:43   #5
Kingdom_Reborn
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 130
По умолчанию

Если числа целые, то можно так:
Код:
var
  a, b: Integer;
begin
  ReadLn(a, b);
  while b <> 0 do
  begin
    if b > 0 then
    begin
      Dec(a);
      Dec(b)
    end
    else
    begin
      Inc(a);
      Inc(b);
    end;
  end;
  WriteLn(a);
  ReadLn;
end.

Последний раз редактировалось Kingdom_Reborn; 27.10.2010 в 00:22.
Kingdom_Reborn вне форума Ответить с цитированием
Старый 26.10.2010, 23:47   #6
Jop
Новичок
Джуниор
 
Регистрация: 26.10.2010
Сообщений: 7
По умолчанию

Да, прикольно, я чего то намудрил в ней))
Jop вне форума Ответить с цитированием
Старый 26.10.2010, 23:50   #7
Jop
Новичок
Джуниор
 
Регистрация: 26.10.2010
Сообщений: 7
По умолчанию

ОДНАКО ни этот ни тот варианты не будут работать, если оба числа отрицательные!
Jop вне форума Ответить с цитированием
Старый 26.10.2010, 23:56   #8
Kingdom_Reborn
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 130
По умолчанию

Цитата:
Сообщение от Jop Посмотреть сообщение
ОДНАКО ни этот ни тот варианты не будут работать, если оба числа отрицательные!
мой вариант будет, подправил немного
Kingdom_Reborn вне форума Ответить с цитированием
Старый 27.10.2010, 00:09   #9
Jop
Новичок
Джуниор
 
Регистрация: 26.10.2010
Сообщений: 7
По умолчанию

нед, не работает))
Jop вне форума Ответить с цитированием
Старый 27.10.2010, 00:23   #10
Kingdom_Reborn
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 130
По умолчанию

уже работает ))
Kingdom_Reborn вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на паскале. Dukem Помощь студентам 2 27.09.2010 18:08