Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Задачка на Pascal


Pascal96 ©   (2009-10-09 12:29:00) 

Pascal:

Дано целое число, большее 99. Найти третью от конца его цифру (так, если данное число 2345, то искомая цифра 3).


Pascal96   (2009-10-10 13:04:00) [1]

Спасибо. ))))))
А я думал, есть уже готовые решения в стандартных либах.


Юрий Зотов   (2009-10-10 12:46:00) [2]

> Pascal96   (10.10.09 12:04) [14]

В стандартной библиотеке Паскаля (модуль System) функции возведения числа в степень нет. Она и не нужна, потому что есть функции Exp и Ln, а дальше надо просто вспомнить школьную математику:
X^Y = Exp(Y*Ln(X))

Кроме того, существуют нестандартные библиотеки. В Delphi это модуль Math - в нем есть фунции Power и IntPower. Там же есть функция округления числа до заданного количества знаков (RoundTo), но такую функцию несложно написать и самому.

Сначала надо найти вспомогательное число N - оно будет равно 10 в степени "нужное количество знаков после запятой". Потом исходное число надо умножить на N, отбросить дробную часть (или округлить до ближайшего целого) и снова разделить на N. Получится примерно вот что:

function MyRoundTo(X: real, Digits: word): real;
var
 i, N: integer;
begin
 N := 1;
 for i := 1 to Digits do
   N := N * 10;
 MyRoundTo := Int(X * N) / N
end;


Pascal96   (2009-10-10 12:04:00) [3]

Спасибо. ))) Мне не влом учиться.
И последнее:
Подскажите функцию возведения числа в определённыую степень.
И функцию выдающую часть числа после запятой с возможностью установки кол-ва чисел после запятой, т.е.
было 1.2342341234324 = 1.2342 (Отсеяли все числа, кроме 4 (можно менять))


Юрий Зотов   (2009-10-10 11:56:00) [4]


(Abs(X1-X2)=2) and (Abs(Y1-Y2)=1) or (Abs(X1-X2)=1) and (Abs(Y1-Y2)=2)


Pascal96   (2009-10-10 11:42:00) [5]

Спасибо.
Ещё вот такая:


Даны координаты (как целые от 1 до 8) двух различных полей шахматной доски. Если конь за один ход может перейти с одного поля на другое, вывести логическое значение True, в противном случае вывести значение False.


Я сделал так: заранее нашёл расстояние от крайних клеток хода коня - то бишь получилось 2.23...
И дальше сравниваю это число с расстоянием от заданных клеток.


DrPass   (2009-10-09 19:03:00) [6]


> Franzy   (09.10.09 15:51) [8]
> DrPass
> В паскале есть команда str, которая делает ровно то же самое.
>

Вот спасибо, а то я за 14 лет работы с Паскалем/Delphi об этом так и не знал :)


Зорг   (2009-10-09 16:08:00) [7]

if n > 99 then
 x := n mod 1000 div 100;


Германн   (2009-10-09 15:58:00) [8]


> Franzy   (09.10.09 15:51) [8]
>
> DrPass
> В паскале есть команда str, которая делает ровно то же самое.
>

Во-первых не команда, а процедура. А во-вторых нафига она нужна в данной задаче?


Franzy   (2009-10-09 15:51:00) [9]

DrPass
В паскале есть команда str, которая делает ровно то же самое.


clickmaker   (2009-10-09 15:40:00) [10]

> Иначе вырастешь и станешь дворником или грузчиком

что само по себе не так уж и плохо...


Юрий Зотов   (2009-10-09 15:11:00) [11]

(N div 100) mod 10


palva   (2009-10-09 15:07:00) [12]

Это не задачка на Pascal, это задачка по математике.
На целую арифметику, т. е. класса для пятого.


MonoLife   (2009-10-09 12:54:00) [13]


> DrPass ©   (09.10.09 12:52) [3]
> В Паскале нет функции IntToStr

точно, прошу пардона))


DrPass   (2009-10-09 12:52:00) [14]


MonoLife ©   (09.10.09 12:44) [1]
> Copy(IntToStr(2345),Length(IntToStr(2345))-2,1)

В Паскале нет функции IntToStr


> Pascal96   (09.10.09 12:29)  
> Pascal:
>
> Дано целое число, большее 99. Найти третью от конца его
> цифру (так, если данное число 2345, то искомая цифра 3).
>

В 13 лет такие задачки надо самому решать за несколько минут. Иначе вырастешь и станешь дворником или грузчиком. Не ленись, тренируй мозги, пока они еще гибкие


MBo   (2009-10-09 12:51:00) [15]

Операции div и mod помогут


MonoLife   (2009-10-09 12:44:00) [16]

Copy(IntToStr(2345),Length(IntToStr(2345))-2,1)


Наверх

Титульная страница Поиск, карта сайта Написать письмо