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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2012, 19:55   #1
lilywka
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 31
Сообщение процедура Swap

Proc10. Описать процедуру Swap (X, Y), что изменяет содержание переменных X и Y (X и Y - вещественные параметры, являющиеся одновременно входными и выходными). С ее помощью для данных переменных A, B, C, D последовательно поменять содержимое следующих пар: A и B, C и D, B и C и вывести новые значения A, B, C, D.

не могу понять в чем ошибка. в этой программе чего то не хватает. помогите доделать))

Код:
{$APPTYPE CONSOLE}

uses
  SysUtils;

Procedure Swap(var a,b:real);
var x:real;
begin
x:=a;
a:=b;
b:=x;
end;
var a,b,c,d:real;
begin
writeln('Ââåäèòå 4 âåùåñòâåííûõ ÷èñëà:');
read(a,b,c,d);
Swap(a,b);
Swap(c,d);
Swap(b,c);
writeln(a:0:2,' ',b:0:2,' ',c:0:2,' ',d:0:2);
readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 04.11.2012 в 20:49.
lilywka вне форума Ответить с цитированием
Старый 04.11.2012, 20:15   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

А в чём именно заключается ошибка? Мне не удалось найти её в вашем коде.
Вадим Мошев вне форума Ответить с цитированием
Старый 04.11.2012, 20:36   #3
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
А в чём именно заключается ошибка? Мне не удалось найти её в вашем коде.
А ее там и нет
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 04.11.2012, 20:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не могу понять в чем ошибка.
Надеюсь это ты в Делфи запускаешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2012, 21:31   #5
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Цитата:
Код:
a:0:2
А это как Вы объясните ? Не пойду проверять, как оно в реале, но я бы , будь я разработчиком компилятора, бил бы error'ом по голове за 0 в величине знакомест под ВСЁ число, особенно при том, что под знаки после запятой отводится ажно 2 знакоместа. Эти числа должны быть такие, что первое всегда больше второго, ну а пытаться вывести число в 0 знакомест это вообще уму не поддаётся.

ПС. я таки сподобился подкрепить пруфом:
Цитата:
Сообщение от дельфихелп
A write parameter has the form:
OutExpr [: MinWidth [: DecPlaces ] ]
where OutExpr is an output expression. MinWidth and DecPlaces are type integer expressions.
MinWidth specifies the minimum field width, which must be greater than 0.

Последний раз редактировалось phomm; 04.11.2012 в 21:39.
phomm вне форума Ответить с цитированием
Старый 04.11.2012, 22:08   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от phomm
А это как Вы объясните ? Не пойду проверять, как оно в реале
А Вы проверьте в реале...
0 в данном случае означает, вывести только значащие цифры числа.
проверьте:
Код:
var x,y : real;
begin
  x := 1237.56778;
  y := -2.456789;
  WriteLn('x= ',x:0:2);
  WriteLn('y= ',y:0:3);
  Readln
end.
p.s. если надо, я подкреплю свой ответ скриншотом
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.11.2012, 22:17   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В этом коде затык может быть только здесь:
Цитата:
read(a,b,c,d);
Нужно readln
По факту он отрабатывает, просто автор не успевает увидеть результат.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2012, 22:39   #8
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Блин, справка меня обманула... The cake is a lie.
Как теперь жить?

Наезды снимаю
Тогда по теме не могу ничего более сообщить.

ПС. замечу, что редко работаю с консольными приложениями.
phomm вне форума Ответить с цитированием
Старый 04.11.2012, 23:34   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

А я согласен с Виталием, ибо проверил код. Программа действительно отрабатывает и закрывается.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 06.11.2012, 18:28   #10
lilywka
Пользователь
 
Регистрация: 14.10.2012
Сообщений: 31
По умолчанию

спасибо всем за бурное обсуждение программы)) я уже нашла ошибку))
lilywka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Swap. Макросы. Си Chelovekpredel Помощь студентам 4 13.05.2016 12:05
Inline assembler C++ функция swap(). nartov55 Помощь студентам 7 04.04.2012 14:28
SWAP функция moon-guest Общие вопросы C/C++ 4 14.11.2010 18:17
Процедура в процедура в C++ Builder Ecosasha C++ Builder 2 06.06.2009 17:17
Swap nusik Паскаль, Turbo Pascal, PascalABC.NET 0 27.05.2009 12:45