Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1254997105
Инна
2009-10-08 14:18
2009.11.22
Число вариантов


4-1197190870
Вредитель
2007-12-09 12:01
2009.11.22
Как узнать язык в окне?


1-1225292591
Циркуль
2008-10-29 18:03
2009.11.22
Не печатаются изображения на принтере


2-1254729868
Virgo_Style
2009-10-05 12:04
2009.11.22
Взаимодействие с программой из открытого браузером html-документа


15-1254125350
Дмитрий С
2009-09-28 12:09
2009.11.22
Интересно, почему локальные антивирусы и фаерволы не могут...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский