Форум: "Начинающим";
Текущий архив: 2009.11.22;
Скачать: [xml.tar.bz2];
ВнизЗадачка на 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c