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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2010, 19:24   #1
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию Одна процедура вместо трёх.

Добрый вечер. Моя задача:
Описати процедуру Swap(X, Y), що змінює вміст перемінних
X і Y (X і Y - дійсні параметри, що є одночасно вхідними і вихідними).
З її допомогою для даних перемінних A, B, C, D послідовно поміняти вміст
наступних пар: A і B, C і D, B і C і вивести нові значення A, B, C, D.}

Я её, то решил, но не совсем так как нужно.
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Procedure Swap3(a,b:integer);
  Var x:integer;
Begin
    Write('A = ');
    Readln(a);
    Write('B = ');
    Readln(b);
    x:=a;
    a:=b;
    b:=x;
    Writeln ('A = ',a,'B = ',b);
end;
Procedure Swap2(c,d:integer);
 Var x:integer;
begin
   Write('C = ');
   Readln(c);
   Write('D = ');
   Readln(d);
   x:=c;
   c:=d;
   d:=x;
   writeln ('C = ',c,'D = ',d);
End;

Procedure Swap1(b,c:integer);
Var x:integer;
begin
   Write('B = ');
   Readln(b);
   Write('C = ');
   Readln(c);
   x:=b;
   b:=c;
   c:=x;
   writeln ('B = ',b,'C = ',c);
end;
 Var a,b,c,d,x:integer;
begin
   swap3(a,b);
   Writeln('__________');
   swap2 (c,d);
   Writeln('__________');
   swap1 (b,c);
   Writeln('__________');
   readln;
end.
Мне нужно чтобы была 1 процедура, её 3 раза вызывать, и через неё менять числа. Подскажите пожалуйста, как это сделать?
Учусь учиться.

Последний раз редактировалось Stilet; 01.11.2010 в 20:58.
Wild_klas вне форума Ответить с цитированием
Старый 31.10.2010, 20:00   #2
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Код:
procedure Swap(var a, b: Integer);
var
    x: Integer;
begin
    x := a;
    a := b;
    b := x;
end;
Somebody вне форума Ответить с цитированием
Старый 31.10.2010, 20:32   #3
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию

Somebody, я написал, не работает, мб что не так, глянь пожалуйста:
program Project2;

Код:
{$APPTYPE CONSOLE}
uses
  SysUtils;

procedure Swap(var a, b: Integer);
var
    x: Integer;
begin
    x := a;
    a := b;
    b := x;
end;
procedure Swap(var b, c: Integer);
var
    x: Integer;
begin
    x := b;
    b := c;
    c := x;
end;
procedure Swap(var d, c: Integer);
var
    x: Integer;
begin
    x := d;
    d := c;
    c := x;
end;
Var a,b,c,d,x:integer;
Begin
 Swap(a,b);
 Swap(b,c);
 Swap(d,c);
End
У нас принято оформлять код специальным тэгом - при помощи кнопочки "#".
Только...
И не значком #.
И не РНР-кодом.
И не значком цитаты.
И не собственными "ручками".
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор
Учусь учиться.

Последний раз редактировалось Wild_klas; 01.11.2010 в 20:31.
Wild_klas вне форума Ответить с цитированием
Старый 31.10.2010, 21:03   #4
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Так на фига три Swap'а?! Может, лучше в книжке про процедуры/функции перечитать?
Somebody вне форума Ответить с цитированием
Старый 31.10.2010, 21:15   #5
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Если бы в паскале и существовал полиморфизм, то ваш исходниквсе равно бы не скомпилился.
Цитата:
Levsha100, то вообще то Делфи, и полиморфизм в ней есть
Точно, не заметил директиву препроцессора и подключение стандартного для паскаля модуля, но все равно нескомпилицо)

Последний раз редактировалось Levsha100; 31.10.2010 в 22:10.
Levsha100 вне форума Ответить с цитированием
Старый 31.10.2010, 21:33   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Levsha100, то вообще то Делфи, и полиморфизм в ней есть
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2010, 22:25   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,579
По умолчанию

Вы бы для начала удосужились бы текст задания на русский перевести.
Но это так, общее замечание, которое Вам уже не поможет.
Arigato вне форума Ответить с цитированием
Старый 01.11.2010, 20:34   #8
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию

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

Somebody, хорошо перечитаю, спасибо за совет.

Ув. Модератор, извините, больше такого не повториться. правила перечитал уже.
Учусь учиться.

Последний раз редактировалось Wild_klas; 01.11.2010 в 20:36.
Wild_klas вне форума Ответить с цитированием
Старый 01.11.2010, 21:06   #9
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,579
По умолчанию

И так, процедура Swap описана, однако она реализована для целочисленных переменных. Меняйте тип на вещественный. И уберите эти 3 копии одной и той же процедуры...
Arigato вне форума Ответить с цитированием
Старый 01.11.2010, 21:23   #10
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
И так, процедура Swap описана, однако она реализована для целочисленных переменных. Меняйте тип на вещественный. И уберите эти 3 копии одной и той же процедуры...
Так я у вас и пытаюсь узнать, как не 3 процедуры сделать, а 1 процедуру и через неё сделать три действия. Увы в книге я этого не нашол..
Учусь учиться.
Wild_klas вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одна оконная процедура TGrey[WoLf] Win Api 6 22.06.2010 00:30
Одна процедура для всех Edit(ов) SoftKoc Общие вопросы Delphi 7 23.01.2010 13:44
максимальное из трёх чисел (Delphi) WADADA Помощь студентам 2 27.03.2009 18:15
SQL процедура вместо перебора записей XPAiN БД в Delphi 5 11.09.2008 13:59
Наибольшее из трёх чисел в С++ Amen Общие вопросы C/C++ 19 08.03.2008 01:09