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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2011, 15:48   #1
Fanyuus
Форумчанин
 
Аватар для Fanyuus
 
Регистрация: 07.05.2011
Сообщений: 169
По умолчанию Число Е - задача

Выведите в выходной файл округленное до n знаков после десятичной точки число E. Число Е, округленное до 25 знаков после десятичной точки, равно 2.7182818284590452353602875.

Входные данные
Входной файл INPUT.TXT содержит целое число n (0 ≤ n ≤ 25).

Выходные данные
В выходной файл OUTPUT.TXT выведите ответ на задачу.

примеры:
если n = 0, то е=3,
если n = 2, то е=2,72.



пожалуйста, при решении, напишите комментарий что к чему и зачем к основным действиям.
Fanyuus вне форума Ответить с цитированием
Старый 08.11.2011, 16:08   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

Код:
const e='2.7182818284590452353602875';
var n,i,j,k:Integer;
      str,st:string;
      F:File;
begin
    //------ чтение из файла делайте сами
    .....
    //-------------------
    WriteLn('n=',n);
    j:=2+n;//номер позиции запятой+нужное количество символов после неё
    str:='';
    str:=Copy(e,1,j-1);//это неприкасаемая часть числа e
    //---------------а эту будем изменять
    st:=Copy(e,j+1,1);
    i:=StrToInt(st);//превращаем (N+1)-й символ в число, которое будем проверять
    st:=Copy(e,j,1);
    k:=StrToInt(st);//а вот это число, стоящее на N-й позиции и будем округлять.
    if(i<5)then k:=k;//ну, то есть оствляем как есть
    if(5<=i)then k:=k+1;
    str:=str+IntToStr(k);//формируем округленную стоку
    //-------------- запись в файл
    AssignFile(F,'OUTPUT.TXT');
    Rewrite(F,1);
    for i:=1 to Length(str) do
    begin
       Seek(F,1);//ставим на нужную позицию
       BlockWrite(F,str[i],1);//всю строку посимвольно записываем в файл
    end;
    CloseFile(F);
end;
ну, или попробуйте найти функцию округления типа, FloatToStr....

вот чтение из файла:
Код:

var c:Char;

    AssignFile(F,'INPUT.TXT');
    Reset(F,1);
    for i:=1 to FileSize(F)-1 do
    begin
       Seek(F,1);//ставим на нужную позицию
       BlockWrite(F,c,1);//посимвольно считываем всю запись из файла
       str:=str+c;
    end;
    CloseFile(F);
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 08.11.2011 в 16:20.
NetSpace вне форума Ответить с цитированием
Старый 08.11.2011, 18:48   #3
Fanyuus
Форумчанин
 
Аватар для Fanyuus
 
Регистрация: 07.05.2011
Сообщений: 169
По умолчанию

большое спасибо!
завтра проверю
Fanyuus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача. Найти число. Рон99 Паскаль, Turbo Pascal, PascalABC.NET 8 04.10.2011 11:47
задача. число нажатий на баттон obsession Общие вопросы Delphi 1 09.05.2011 10:30
Задача на целое число DesignFootball.Ru Помощь студентам 11 13.03.2011 13:55
Задача: десятичное число (Си) Ezhuk Помощь студентам 8 10.10.2010 17:52
Элементарная задача,определить наименьшее число juzam Паскаль, Turbo Pascal, PascalABC.NET 7 26.11.2008 23:53