Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Валера Кушнарев
0 / 0 / 0
Регистрация: 09.05.2017
Сообщений: 22
#1

Найти сумму цифр целой и дробной части числа - Pascal ABC

23.10.2017, 09:07. Просмотров 110. Ответов 1
Метки нет (Все метки)

Найти сумму цифр целой и дробной части числа.
123,35->6 и 8
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2017, 09:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти сумму цифр целой и дробной части числа (Pascal ABC):

Найти произведение первой цифры целой части и третьей цифры дробной части вещественного числа
Помогите написать программу в Паскале Найти произведение первой цифры целой...

Найти произведение двух первых цифр из дробной части положительного вещественного числа
Найти произведение двух первых цифр из дробной части положительного...

Присвоить целой переменной d первую цифру из дробной части положительного вещественного числа х
присвоить целой переменной d первую цифру из дробной части положительного...

Написать арифмометр для вычисление целой и дробной части
Заранее спасибо. Добавлено через 4 часа 19 минут вот есть код программы....

Строки. Подсчитать, сколько раз в дробной части исходного числа встречается комбинация цифр 33
Дано вещественное число a. Подсчитать, сколько раз в дробной части исходного...

Найти сумму цифр заданного четырехзначного числа N превосходит произведение цифр этого же числа
нужна программа которая проверяет следующий факт: Сумма цифр заданного...

1
Cyborg Drone
Модератор
5252 / 3119 / 2433
Регистрация: 17.08.2012
Сообщений: 10,075
24.10.2017, 02:37 #2
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Если число не представимо в виде конечной двоичной дроби, или если количество двоичных разрядов в конечной двоичной дроби не помещается в разрядную сетку компьютера, то сумма цифр дробной части числа будет найдена неверно из-за ошибок усечения.

Примеры.

Решение через строковое представление числа в виде десятичной дроби, работаем именно с представлением числа, а не самим числом, поэтому ошибок не возникает, но, думаю, преподаватель скажет, что нужно решать не через строки:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var n: string;
    st, sf, err, i: integer;
    f: real;
    p: boolean;
begin
  repeat
    write('Введите неотрицательное вещественное число: ');
    readln(n);
    val(n, f, err)
  until (err = 0) and (f > 0);
  st := 0;
  sf := 0;
  p := false;
  for i := 1 to length(n) do
    if n[i] = '.'
      then p := true
      else if p
        then sf := sf + ord(n[i]) - ord('0')
        else st := st + ord(n[i]) - ord('0');
  writeln('Сумма цифр целой части = ', st, ', сумма цифр дробной части = ', sf)
end.
Якобы верное решение, которое, скорее всего, от Вас и ждёт преподаватель, с использованием компьютерного представления числа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var n: string;
    i, st, sf, t, err: integer;
    f: real;
begin
  repeat
    write('Введите неотрицательное вещественное число: ');
    readln(n);
    val(n, f, err)
  until (err = 0) and (f > 0);
  st := 0;
  sf := 0;
  t := trunc(f);
  f := frac(f);
  i := 0;
  write('Число в машинном представлении: ', t, '.');
  repeat
    inc(i);
    st := st + t mod 10;
    t := t div 10
  until t = 0;
  for i := 1 to 16 - i do
    begin
      sf := sf + trunc(f * 10);
      write(trunc(f * 10));
      f := frac(f * 10)
    end;
  writeln;
  writeln('Сумма цифр целой части = ', st, ', сумма цифр дробной части = ', sf)
end.
Интересный факт: языки высокого уровня, типа того же паскаля, обнаруживают усечённую двоичную дробь, и выводят на печать не то, что содержится в памяти компьютера, а "восстановленное" значение числа, наверное, чтобы не очень хороших программистов не пугать. В программе я сделал вывод числа в том виде, в котором оно на самом деле записано в памяти компьютера. Целая часть числа представлена верно, а вот дробная... Если ввести, например, 1.5, результат будет верным, поскольку 1.5 преобразуется в конечную двоичную дробь, а вот если, к примеру, 123.1 или, допустим, 0.3... То дробная часть будет, так скажем, несколько отличаться от ожидаемой.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2017, 02:37
Привет! Вот еще темы с решениями:

Процедуры. Даны три вещественных числа. Составить процедуру нахождения целой части числа
2. Даны три вещественных числа. Составить процедуру нахождения целой части...

Вычисление целой части числа Х
Дано действительное число X. Напишите программу для вычисления: + целой части...

Вывести первую цифру дробной части числа
Вывести первую цифру дробной части числа (дано 12,34 - вывести 3), НО БЕЗ...

Найти сумму первых трех цифр дробной части вещественного числа.например для числа 23,16809 она равна 15
Найти сумму первых трех цифр дробной части вещественного числа.например для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru