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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2014, 13:31   #11
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну цикл можно ввести искусственно, но непонятно задание.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 08.09.2014, 13:35   #12
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Автор, сфоткай задание, я ж просил!
Не верю я, что оно звучит так, как ты написал.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.09.2014, 13:37   #13
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,582
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Судя по заданию тут нет ни for ни case, поэтому решено с ошибкой.
Так пойдет?

Код:
type
  TMyABC = record
    case Boolean of
      True:  (A, B, C: Integer);
      False: (M: array[1..3] of Integer);
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ABC: TMyABC;
  I: Integer;
begin
  with ABC do begin
    A := StrToInt(Edit1.Text);
    B := StrToInt(Edit2.Text);
    C := StrToInt(Edit3.Text);
    case (A < B) and (B < C) of
      true:
        for I := 1 to 3 do
          M[I] := M[I] * 2;
    end;
    case (A >= B) and (B >= C) of
      true:
        for I := 1 to 3 do
          M[I] := -M[I];
    end;
    Edit1.Text := IntToStr(A);
    Edit2.Text := IntToStr(B);
    Edit3.Text := IntToStr(C);
  end;
end;
Arigato вне форума Ответить с цитированием
Старый 08.09.2014, 13:43   #14
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
Восклицание


Цитата:
Так пойдет?
Грязный извращенец!!!111
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.09.2014, 13:46   #15
Foreseen
Техножрец
Форумчанин
 
Аватар для Foreseen
 
Регистрация: 04.07.2014
Сообщений: 289
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
садитесь, два
За что?) mass[3] выполняет вспомогательную функцию. Цикл там наф не нужен, поэтому код получился на костылях. Я вообще удивлен, что он еще и работает
— Двери есть везде. Просто нужно знать, как в них войти.
Foreseen вне форума Ответить с цитированием
Старый 08.09.2014, 14:14   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Грязный извращенец!!!111
Неа. У мну было бы грязнее
Arigato как всегда Domo
Цитата:
За что?
За военкомат
Не ну согласись, задание такое что массив ну никак не втюхать по нормальному.
Че поделать? Преподы тож так учились.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.09.2014, 14:39   #17
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Гулять так гулять Предлагаю цикл на цикле и кейсом поганяет
Код:
var a,b,c,i,j,k: Integer;
begin
  //чего-то в a,b,c нужно засунуть
  j:=0;
  for i:=1 to 3 do
    case i of
    1: if a<b then j:=1 else if a>b then j:=2;
    2: if ((j=1) and (b>=c)) or ((j=2) and (b<=c)) then j:=0;
    3: case j of
       1: for k:=1 to 3 do
            case k of
            1: a:=a*2;
            2: b:=b*2;
            3: c:=c*2;
            end;
       2: for k:=1 to 3 do
            case k of
            1: a:=-a;
            2: b:=-b;
            3: c:=-c;
            end;
       end;
    end;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.09.2014, 14:43   #18
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Ну перестаньте!
Хватит!!!
НЕ НАДО ТАК!!!1111

Автор, ну ты где пропал? Сфоткай задание, не своди с ума народ!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.09.2014, 19:54   #19
Ken_Watanabe
Пользователь
 
Регистрация: 17.04.2014
Сообщений: 39
По умолчанию

Все спасибо всем за внимание) Спасибо всем за помощь получил 4-ку) Всем палец вверх!
Ken_Watanabe вне форума Ответить с цитированием
Старый 08.09.2014, 20:02   #20
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

Код:
function calc(var A, B, C: Integer): TValueSign;
var
  Y: Integer;
  Xp: TVarArrayCoorArray absolute A;
begin
  Result := Sign(Sign(C - B) + Sign(B - A));
  case Result of
    -1:  for Y := 0 to cnt - 1 do
      Xp(.Y.) := -Xp(.Y.);
    1: for Y := 0 to cnt - 1 do
      Xp(.Y.) := Xp(.Y.) * 2;
  end;
end;
Я понимаю, что использование кейса несколько притянуто за уши, т.к. можно было бы и обойтись формулой выводящей множитель из резалта (-1 или 2 для наличия знака и 1 для отсутствия), тогда, конечно, размер решения в коде будет реально миниатюрным (цикл с однострочным телом - формулой).
Остальные приёмы - для внимательного и искушённого зрителя.
Использование приёмов работы со знаком (из Math) и типа для массива (из System) - чисто , чтобы не пилить свои вело.
Тестовый проект прилагается.
Ограничение данного способа - он не будет есть локальные переменные (стек почему-то косячится я не копал почему, в тестпроге поэтому заюзаны глобалки).

upd. Упс, ТС уже сдал. Интересно, какие были глаза у препода на вышеприведённые извраты.
upd2. const cnt = 3; кому неохота лезть в приложение.
Вложения
Тип файла: zip 3.ZIP (245.0 Кб, 6 просмотров)

Последний раз редактировалось phomm; 08.09.2014 в 20:13.
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано файл d. xhatex Помощь студентам 14 21.01.2013 09:59
дано 3 числа. viknik Помощь студентам 7 25.02.2012 23:21
Дано число n. MACCOP Помощь студентам 6 01.09.2010 23:59
Дано натуральное n zheka89 Паскаль, Turbo Pascal, PascalABC.NET 0 28.04.2010 07:52
Дано х. Сформировать массив а(10). dsdt Паскаль, Turbo Pascal, PascalABC.NET 7 22.12.2008 20:51