Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Помогите с решение данных Delphi задач.

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 24.01.2012, 14:15   #1
 Пехотинец
Аватар для Stalkerr
 
Stalkerr скоро будет известенStalkerr скоро будет известенStalkerr скоро будет известен
Регистрация: 28.06.2010
Сообщений: 73
Популярность: 242
Сказал(а) спасибо: 59
Поблагодарили 30 раз(а) в 21 сообщениях
 
Question Помогите с решение данных Delphi задач.

1. Имеются две переменные "a" и "b" - выдать наибольшее значение не используя: if, case и while.
  Ответить с цитированием
Старый 25.01.2012, 06:10   #2
 Разведчик
Аватар для angryJC
 
angryJC на правильном пути
Регистрация: 24.01.2012
Сообщений: 1
Популярность: 49
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Помогите с решение данных Delphi задач.

ну если задача стоит именно так, то используй функцию max(a,b) из модуля Math. она возвращает максимальное из двух чисел и в коде не будет видно никаких if, case и while
  Ответить с цитированием
Старый 25.01.2012, 09:43   #3
Super Moderator
 Сержант
Аватар для Рэйзор
 
Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(
Регистрация: 20.07.2010
Сообщений: 137
Популярность: 26409
Сказал(а) спасибо: 52
Поблагодарили 566 раз(а) в 197 сообщениях
 
По умолчанию Re: Помогите с решение данных Delphi задач.

Цитата:
Сообщение от angryJCПосмотреть сообщение
ну если задача стоит именно так, то используй функцию max(a,b) из модуля Math. она возвращает максимальное из двух чисел и в коде не будет видно никаких if, case и while

Функция Max реализована условиями:
Код:
function Max(const A, B: Integer): Integer;
begin
  if A > B then
    Result := A
  else
    Result := B;
end;
Вот мой вариант, вроде бы проще некуда.
Код:
var
  max, a, b: integer;

begin
  a:=10;
  b:=1;
  max := a * ord(a > b) + b * ord(a <= b);
end;
выполниться может только одно логическое выражение. Ord(true) = 1 | Ord(false) = 0, соответственно выражение оставляет ту из переменных, для которой выполнено условие.
________________
-> Keep2Me <-

Последний раз редактировалось Рэйзор; 25.01.2012 в 09:46.
  Ответить с цитированием
Старый 25.01.2012, 12:56   #4
 Пехотинец
Аватар для Stalkerr
 
Stalkerr скоро будет известенStalkerr скоро будет известенStalkerr скоро будет известен
Регистрация: 28.06.2010
Сообщений: 73
Популярность: 242
Сказал(а) спасибо: 59
Поблагодарили 30 раз(а) в 21 сообщениях
 
По умолчанию Re: Помогите с решение данных Delphi задач.

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  max, a, b: integer;

begin
  a:=10;
  b:=1;
  max := a * ord(a > b) + b * ord(a <= b);
  readln;
end;
function max(const a, b: integer): Integer;
begin
  if A > B then
    Result := A
  else
    Result := B;
end.
Что я не так делаю? Не выполняется условие, да и я добавил задержку "readln;" А то быстро скрывалось...

Добавлено через 2 минуты
Мне нужно, чтоб в интерпретатор(командная строка) выдалось наибольшее значение, из этих переменных..

Последний раз редактировалось Stalkerr; 25.01.2012 в 12:59. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 25.01.2012, 14:04   #5
 Разведчик
Аватар для InFixion
 
InFixion на правильном путиInFixion на правильном пути
Регистрация: 17.11.2011
Сообщений: 7
Популярность: 100
Золото Zhyk.Ru: 15
Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 3 сообщениях
 
По умолчанию Re: Помогите с решение данных Delphi задач.

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

  var a,b,max:integer;

begin

  a:=10;
  b:=1;

   max := a * ord(a > b) + b * ord(a <= b);

   writeln(max);

   readln;

end.
Добавлено через 2 минуты
все работает, только ты забыл написать writeln(max);
а строки
Код:
function max(const a, b: integer): Integer;
begin
  if A > B then
    Result := A
  else
    Result := B;
end.
ты вообще можешь убрать, они низачем

Последний раз редактировалось InFixion; 25.01.2012 в 14:06. Причина: Добавлено сообщение
  Ответить с цитированием
Пользователь сказал cпасибо:
Stalkerr (31.01.2012)
Старый 25.01.2012, 14:53   #6
Super Moderator
 Сержант
Аватар для Рэйзор
 
Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(
Регистрация: 20.07.2010
Сообщений: 137
Популярность: 26409
Сказал(а) спасибо: 52
Поблагодарили 566 раз(а) в 197 сообщениях
 
По умолчанию Re: Помогите с решение данных Delphi задач.

Быстро взять учебник по Паскалю и идти учить.
________________
-> Keep2Me <-
  Ответить с цитированием
Старый 01.02.2012, 09:55   #7
 Пехотинец
Аватар для Stalkerr
 
Stalkerr скоро будет известенStalkerr скоро будет известенStalkerr скоро будет известен
Регистрация: 28.06.2010
Сообщений: 73
Популярность: 242
Сказал(а) спасибо: 59
Поблагодарили 30 раз(а) в 21 сообщениях
 
По умолчанию Re: Помогите с решение данных Delphi задач.

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

var a,b,max:integer;

begin

a:=10;
b:=1;

max := a * ord(a > b) + b * ord(a <= b);

writeln(max);

readln;

end.
А можно это как-то уменьшить, то есть заменить операторы сравнения: >, <, >=, <=
  Ответить с цитированием
Старый 01.02.2012, 19:04   #8
Super Moderator
 Сержант
Аватар для Рэйзор
 
Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(
Регистрация: 20.07.2010
Сообщений: 137
Популярность: 26409
Сказал(а) спасибо: 52
Поблагодарили 566 раз(а) в 197 сообщениях
 
По умолчанию Re: Помогите с решение данных Delphi задач.

Цитата:
Сообщение от StalkerrПосмотреть сообщение
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

var a,b,max:integer;

begin

a:=10;
b:=1;

max := a * ord(a > b) + b * ord(a <= b);

writeln(max);

readln;

end.
А можно это как-то уменьшить, то есть заменить операторы сравнения: >, <, >=, <=

Пжлста, можно еще и минимум найти:
Код:
max := (a+b+abs(a-b)) div 2;
min := (a+b-abs(b-a)) div 2;
________________
-> Keep2Me <-
  Ответить с цитированием
Пользователь сказал cпасибо:
Stalkerr (02.02.2012)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с ЗАДАЧЕЙ idma Вопросы и ответы, обсуждения 3 22.12.2011 22:32
ребята помогите с задачами в jpg или txt stalker0007 Треп 2 20.12.2011 06:05
Решение ошибки Базы Данных в отображении последних тем IPB 3.2 в StressWeb 12 ~Nero~ Lineage 2 0 08.12.2011 18:24
[Помогите!] Помогите решить задачки ^_^ Mister86 Вопросы и ответы, обсуждения 2 20.05.2010 09:24

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 18:01.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net