Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 07.05.2015, 15:57   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
И зачем темы были обьеденены?
Виталий, не ругайтесь. Ничего страшного не случилось!
Полина не нашла свою тему (после переименования) и создала ещё одну.
Поэтому я и слил темы воедино.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.05.2015, 15:58   #12
МиссПолина
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Растудытьтвоюжтуды!
Так шож ты не рассказала подробности?

И зачем темы были обьеденены? Тебе нужна реализация вычитания в столбик? Тогда мой код не катит.

Я честно, задачу совсем не поняла, нам препод поставил условия такие, что из этого условия, ну задачи, мы должны вычитать числовые строки из строк, ну я уже писала пример, там от 1234567 вычесть 1234 и получить ответ 1233333, также допустим от меньшего числа большее и получить отрицательное число, в основном все вычитание какие только можно))))
МиссПолина вне форума Ответить с цитированием
Старый 07.05.2015, 16:01   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Сообщение от МиссПолина Посмотреть сообщение
Есть варианты, как решить?))))
да. берёте мой код, который Вы успешно копируете в каждой теме.
Вставляете туда выравнивание меньшего по длине числа нулями слева (совет от Аватара) и получаете решение задачи.

правда, надо ещё учесть, какое из двух чисел больше, но это уже вторая часть марлезонского балета. Сперва сделайте выравнивание!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.05.2015, 16:02   #14
МиссПолина
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
да. берёте мой код, который Вы успешно копируете в каждой теме.
Вставляете туда выравнивание меньшего по длине числа нулями слева (совет от Аватара) и получаете решение задачи.

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

Эмммммммм))))))
МиссПолина вне форума Ответить с цитированием
Старый 07.05.2015, 16:03   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
Ничего страшного не случилось!
Ну да! А вдруг из-за этого "Прогресс" и рухнул?
(щютк)
Цитата:
Я честно, задачу совсем не поняла
Вотэтзнач бигом к преподу за выяснением подробностей.
Иначе гадать будем на кофейной гуще долго, что ж на самом деле нужно. Одно дело - посчитать строку выражения, другое расписать расчет в столбик.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.05.2015, 16:05   #16
МиссПолина
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
да. берёте мой код, который Вы успешно копируете в каждой теме.
Вставляете туда выравнивание меньшего по длине числа нулями слева (совет от Аватара) и получаете решение задачи.

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


Serge, а можно вас попросить?))) Не могли бы вы, мне написать как это все можно сделать?))) Т.е как в программе все это прописать?))

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну да! А вдруг из-за этого "Прогресс" и рухнул?
(щютк)

Вотэтзнач бигом к преподу за выяснением подробностей.
Иначе гадать будем на кофейной гуще долго, что ж на самом деле нужно. Одно дело - посчитать строку выражения, другое расписать расчет в столбик.

Виталий, я сейчас описала все слова препода)) что он от нас потребовал))

Последний раз редактировалось Stilet; 07.05.2015 в 16:40.
МиссПолина вне форума Ответить с цитированием
Старый 07.05.2015, 16:25   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Сообщение от МиссПолина Посмотреть сообщение
Виталий, я сейчас описала все слова препода)) что он от нас потребовал))
я ничего не знаю, я ничего не понимаю.
Я девочка, я не хочу Паскаль, я хочу пироженку...

я правильно понял Вас?

ладно.
держите код.
Хотя я реально не понимаю, зачем он Вам, если Вы ничего не хотите изучать и разбирать?!

Код:
program lab;
var
  n, n1, n2: string;
  i, t, p, t1, t2, d: integer;
  isN1Less : boolean;
  n3: string[1];
  code1, code2: integer;
begin
  Writeln('Input n1');
  //Readln(n1);
  n1 := '1240000';
  Writeln('Input n2');
  //Readln(n2);
  n2 := '1234';
  if length(n1)<>length(n2) then begin
    while length(n1)<length(n2) do n1 := '0'+n1;
    while length(n2)<length(n1) do n2 := '0'+n2;
  end;
  
  // сравним числа, первое должно быть НЕ МЕНЬШЕ второго
  isN1Less := false; {считаем, что не меньше}
  i:=1;
  while (i<=length(n1)) and Not(isN1Less) do 
    if n1[i]>n2[i] then break
    else 
      if n1[i]<n2[i] then isN1Less := true
      else Inc(i);
    
  // если второе число больше, поменяем числа местами, будем вычитать из большего меньшее
  if isN1Less then begin
     n := n1; n1 := n2; n2 := n
  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;
  Write('Результат = ');
  if isN1Less then Write('-'); {результат отрицательный}
  WriteLn(n);
  readln;
end.

p.s. по хорошему в ответе ещё нужно убрать ведущие (незначащие) нули.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.05.2015, 16:42   #18
МиссПолина
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я ничего не знаю, я ничего не понимаю.
Я девочка, я не хочу Паскаль, я хочу пироженку...

я правильно понял Вас?

ладно.
держите код.
Хотя я реально не понимаю, зачем он Вам, если Вы ничего не хотите изучать и разбирать?!

Код:
program lab;
var
  n, n1, n2: string;
  i, t, p, t1, t2, d: integer;
  isN1Less : boolean;
  n3: string[1];
  code1, code2: integer;
begin
  Writeln('Input n1');
  //Readln(n1);
  n1 := '1240000';
  Writeln('Input n2');
  //Readln(n2);
  n2 := '1234';
  if length(n1)<>length(n2) then begin
    while length(n1)<length(n2) do n1 := '0'+n1;
    while length(n2)<length(n1) do n2 := '0'+n2;
  end;
  
  // сравним числа, первое должно быть НЕ МЕНЬШЕ второго
  isN1Less := false; {считаем, что не меньше}
  i:=1;
  while (i<=length(n1)) and Not(isN1Less) do 
    if n1[i]>n2[i] then break
    else 
      if n1[i]<n2[i] then isN1Less := true
      else Inc(i);
    
  // если второе число больше, поменяем числа местами, будем вычитать из большего меньшее
  if isN1Less then begin
     n := n1; n1 := n2; n2 := n
  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;
  Write('Результат = ');
  if isN1Less then Write('-'); {результат отрицательный}
  WriteLn(n);
  readln;
end.

p.s. по хорошему в ответе ещё нужно убрать ведущие (незначащие) нули.
Serge, на носу диплом, 2 года балду пинали, не кому было нас учить, тут последний курс, поставили препода, ну и естественно он ничего в голову нам не вбил, так как часы не выданные по другим предметам зажимали, извините))))
МиссПолина вне форума Ответить с цитированием
Старый 07.05.2015, 16:49   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
2 года балду пинали
А надо было пинать учебники.
Цитата:
не кому было нас учить
Не кому березу поламати )))
Это как в тех мемах на Живых мертвецов: "Мы в универе в библиотеки ходили. В БИБЛИОТЕКИ!!!! КАРЛ!!!!"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.05.2015, 12:54   #20
МиссПолина
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я ничего не знаю, я ничего не понимаю.
Я девочка, я не хочу Паскаль, я хочу пироженку...

я правильно понял Вас?

ладно.
держите код.
Хотя я реально не понимаю, зачем он Вам, если Вы ничего не хотите изучать и разбирать?!

Код:
program lab;
var
  n, n1, n2: string;
  i, t, p, t1, t2, d: integer;
  isN1Less : boolean;
  n3: string[1];
  code1, code2: integer;
begin
  Writeln('Input n1');
  //Readln(n1);
  n1 := '1240000';
  Writeln('Input n2');
  //Readln(n2);
  n2 := '1234';
  if length(n1)<>length(n2) then begin
    while length(n1)<length(n2) do n1 := '0'+n1;
    while length(n2)<length(n1) do n2 := '0'+n2;
  end;
  
  // сравним числа, первое должно быть НЕ МЕНЬШЕ второго
  isN1Less := false; {считаем, что не меньше}
  i:=1;
  while (i<=length(n1)) and Not(isN1Less) do 
    if n1[i]>n2[i] then break
    else 
      if n1[i]<n2[i] then isN1Less := true
      else Inc(i);
    
  // если второе число больше, поменяем числа местами, будем вычитать из большего меньшее
  if isN1Less then begin
     n := n1; n1 := n2; n2 := n
  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;
  Write('Результат = ');
  if isN1Less then Write('-'); {результат отрицательный}
  WriteLn(n);
  readln;
end.

p.s. по хорошему в ответе ещё нужно убрать ведущие (незначащие) нули.
Serge, Здравствуйте! А подскажите, что означает "isN1Less"?
И еще, а программа у вас работает? У меня ошибки выдает)))
МиссПолина вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа читает из файла <data.txt> 10 чисел, перемножает их. решить задачу на турбо паскале bikmai4ik Помощь студентам 2 05.12.2013 12:06
вычитание неупакованных BCD-чисел Танчик007 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 09.04.2011 16:29
Выполнить вычитание чисел MapK Паскаль, Turbo Pascal, PascalABC.NET 0 06.12.2010 21:08
Деление целых чисел(dw) через вычитание Alex1991 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 12.11.2010 14:50
Вычитание чисел по основанию 4 и 16. Stager Общие вопросы C/C++ 1 21.01.2009 00:13


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840