Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.22;
Скачать: CL | DM;

Вниз

Задачка на Pascal   Найти похожие ветки 

 
Pascal96   (2009-10-09 12:29) [0]

Pascal:

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


 
MonoLife ©   (2009-10-09 12:44) [1]

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


 
MBo ©   (2009-10-09 12:51) [2]

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


 
DrPass ©   (2009-10-09 12:52) [3]


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 лет такие задачки надо самому решать за несколько минут. Иначе вырастешь и станешь дворником или грузчиком. Не ленись, тренируй мозги, пока они еще гибкие


 
MonoLife ©   (2009-10-09 12:54) [4]


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

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


 
palva ©   (2009-10-09 15:07) [5]

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


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

(N div 100) mod 10


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

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

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


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

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


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


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

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


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

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


 
DrPass ©   (2009-10-09 19:03) [11]


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

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


 
Pascal96   (2009-10-10 11:42) [12]

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


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


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


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


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


 
Pascal96   (2009-10-10 12:04) [14]

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


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

> 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 13:04) [16]

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



Страницы: 1 вся ветка

Текущий архив: 2009.11.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
2-1255156605
Aleks
2009-10-10 10:36
2009.11.22
Как программно добавить иконку в ImageList?


2-1254990514
Маркабес
2009-10-08 12:28
2009.11.22
where fld <> --- Что это ?


2-1255147550
NGPOL
2009-10-10 08:05
2009.11.22
Виснет прога во время ExecSQL


2-1254891407
JohnKorsh
2009-10-07 08:56
2009.11.22
Работа с WiFi на низком уровне.


15-1253626742
StriderMan
2009-09-22 17:39
2009.11.22
рынок "тяжелых" вычислений