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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2015, 17:58   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Окса_на Посмотреть сообщение
А можно это все "просто" реализовать в паскалевской форме?
можно так:
Код:
program lab;
var
  n, n1, n2: string;
  i, t, p, t1, t2, d: integer;
  n3: string[1];
  code1, code2: integer;
begin
  Writeln('Input n1');
  Readln(n1);
  Writeln('Input n2');
  Readln(n2);
  if length(n1)<>length(n2) then begin
    Writeln('Извините. Но пока ещё программист '+
            'не сделал вычитание чисел разной длины.');
    readln;
    Halt(1);
  end;
  p := 0;
  n := '';
  for i := length(n1) downto 1 do begin
    {perebiraem chislo-stroki spravo-nalevo}
    Val(n1[i], t1, code1);
    Val(n2[i], t2, code2);
    {prevrachaem simvol cifru}

    d := p + t1 - t2;   {operaciya vychitanya chisla s ostatkom}

    if d<0 then begin p:=-1; d:= d+10; end
    else p:=0; 
    str(d, n3);
    n := n3 + n;
  end;
  if p<0 then 
    WriteLn('Получилось отрицательное число!')
  else
    Writeln('Результат = ',n);
  readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.04.2015, 18:09   #12
Окса_на
Пользователь
 
Регистрация: 09.04.2015
Сообщений: 17
Восклицание

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
можно так:
Код:
program lab;
var
  n, n1, n2: string;
  i, t, p, t1, t2, d: integer;
  n3: string[1];
  code1, code2: integer;
begin
  Writeln('Input n1');
  Readln(n1);
  Writeln('Input n2');
  Readln(n2);
  if length(n1)<>length(n2) then begin
    Writeln('Извините. Но пока ещё программист '+
            'не сделал вычитание чисел разной длины.');
    readln;
    Halt(1);
  end;
  p := 0;
  n := '';
  for i := length(n1) downto 1 do begin
    {perebiraem chislo-stroki spravo-nalevo}
    Val(n1[i], t1, code1);
    Val(n2[i], t2, code2);
    {prevrachaem simvol cifru}

    d := p + t1 - t2;   {operaciya vychitanya chisla s ostatkom}

    if d<0 then begin p:=-1; d:= d+10; end
    else p:=0; 
    str(d, n3);
    n := n3 + n;
  end;
  if p<0 then 
    WriteLn('Получилось отрицательное число!')
  else
    Writeln('Результат = ',n);
  readln;
end.
Пожалуйста напишите код паскаля на примере вычитания 320-129,но при этом надо описать как ты занимаешь у 2-ки 1-цу чтобы от 0 отнять 9 вместо строковых предложений, цифрами!
Окса_на вне форума Ответить с цитированием
Старый 09.04.2015, 18:09   #13
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,547
По умолчанию

В случае разной длинны можно нулями слева дополнить или же дополнительную проверочку ввести.
Arigato вне форума Ответить с цитированием
Старый 09.04.2015, 18:12   #14
Окса_на
Пользователь
 
Регистрация: 09.04.2015
Сообщений: 17
Восклицание

Блин Умный народ ну напишите решение этой задачки в коде паскаля))) судьба человека от этого зависит как никак)))
Окса_на вне форума Ответить с цитированием
Старый 09.04.2015, 18:13   #15
Окса_на
Пользователь
 
Регистрация: 09.04.2015
Сообщений: 17
По умолчанию

ПОМОГИТЕЕЕЕЕЕ!!! Крик Души)))
Окса_на вне форума Ответить с цитированием
Старый 09.04.2015, 18:21   #16
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,547
По умолчанию

Так вам уже написали, немного напильником код обработать и можно сдавать.
Arigato вне форума Ответить с цитированием
Старый 10.04.2015, 08:37   #17
Окса_на
Пользователь
 
Регистрация: 09.04.2015
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
можно так:
Код:
program lab;
var
  n, n1, n2: string;
  i, t, p, t1, t2, d: integer;
  n3: string[1];
  code1, code2: integer;
begin
  Writeln('Input n1');
  Readln(n1);
  Writeln('Input n2');
  Readln(n2);
  if length(n1)<>length(n2) then begin
    Writeln('Извините. Но пока ещё программист '+
            'не сделал вычитание чисел разной длины.');
    readln;
    Halt(1);
  end;
  p := 0;
  n := '';
  for i := length(n1) downto 1 do begin
    {perebiraem chislo-stroki spravo-nalevo}
    Val(n1[i], t1, code1);
    Val(n2[i], t2, code2);
    {prevrachaem simvol cifru}

    d := p + t1 - t2;   {operaciya vychitanya chisla s ostatkom}

    if d<0 then begin p:=-1; d:= d+10; end
    else p:=0; 
    str(d, n3);
    n := n3 + n;
  end;
  if p<0 then 
    WriteLn('Получилось отрицательное число!')
  else
    Writeln('Результат = ',n);
  readln;
end.
Сергей подс к ажите как в этой программе получить правильный ответ когда вычитаем с 321 -129, в программе когда я ввожжу эти числа он выдает не правильный ответ, и когда вычитаешь с 129-321 тоже не выдает правильный ответ. Что можно прописать чтоб программа вычитала правильно?))
Окса_на вне форума Ответить с цитированием
Старый 10.04.2015, 08:46   #18
Окса_на
Пользователь
 
Регистрация: 09.04.2015
Сообщений: 17
Радость

Ребятки и огромное спасибо вам за помощь))))
Окса_на вне форума Ответить с цитированием
Старый 10.04.2015, 08:49   #19
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Интересно, какой у ТС правильный ответ для 321-129. Подозреваю, что более правильный, чем у программы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.04.2015, 09:02   #20
Окса_на
Пользователь
 
Регистрация: 09.04.2015
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Интересно, какой у ТС правильный ответ для 321-129. Подозреваю, что более правильный, чем у программы
Я вот когда вычитаю от 321 -129 он мне в ответе выдает 202 (( а когда 129-321 выдает 808 приблизиткльно так
Окса_на вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, решить задачу по паскалю! illuzia Помощь студентам 2 14.05.2009 11:24
помогите пожалуйста решить задачу по паскалю игорек фролоff Помощь студентам 2 08.05.2009 15:01
помогите решить задачу по паскалю! ...Оленька... Паскаль, Turbo Pascal, PascalABC.NET 4 06.12.2008 17:49