Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2014, 18:17   #1
katyawapka
Пользователь
 
Регистрация: 16.10.2012
Сообщений: 13
По умолчанию Составить процедуру замены в паскаль

Помогите составить процедуру, которая заменяет все элементы вещественного массива на целые числа, полученные при удалении десятичной точки из записи соответствующего элемента.
katyawapka вне форума Ответить с цитированием
Старый 23.01.2014, 18:29   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
procedure round_mas( var a : array of real; n : integer);
var i : integer;
 begin
  for i:= 0 to n -1 do // если передается безразмерный то начинается массив с нуля,если не ошибаюсь
    while ( real(round( a[ i ] )) <>  a[i] )  do // явное преобразование типов, на всякий случай, 
//если компилятору не понравится сравнение вещественного с целочисленным
      a[i] := a[i] * 10;
 end;
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 23.01.2014, 23:33   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

А может быть, так удобнее будет?

Код:
function RealToInt(d : extended):LongInt;
var r : extended;
begin
   r := d;
   while frac(r)>0.000001 do r := r * 10;
   RealToInt := Trunc(r);
 end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.01.2014, 01:13   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
А может быть, так удобнее будет?

Код:
function RealToInt(d : extended):LongInt;
var r : extended;
begin
   r := d;
   while frac(r)>0.000001 do r := r * 10;
   RealToInt := Trunc(r);
 end;
тогда еще frac(r) взять по модулю, на случай если числа будут отрицательными в массиве...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 24.01.2014, 09:12   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
тогда еще frac(r) взять по модулю, на случай если числа будут отрицательными в массиве...
ага. точно. согласен!
спасибо за уточнение:

Код:
while abs(frac(r))>0.000001 do r := r * 10;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MS-Exel, VBA. составить процедуру-функцию построения матрицы. Elly_Dorian Помощь студентам 0 14.05.2013 15:25
составить процедуру перемножения матриц и умножения матрицы на вектор kolychii Помощь студентам 0 25.01.2013 03:42
паскаль.Используя готовую процедуру sort_file ,составить программу сортировки afro13 Помощь студентам 1 09.12.2012 22:13
составить подпрограмму-процедуру для вычисления матрицы bananklubnika Помощь студентам 1 30.05.2010 23:22
Процедуру и функцию помогите составить плиз Oleg36 Помощь студентам 2 26.12.2008 11:27