Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Максим Мирошин
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 9
1

Вывести то число, которое ближе всего к 10.

14.03.2013, 12:51. Просмотров 1202. Ответов 9
Метки нет (Все метки)

Помогите пожалуйста, пытался решить задачу через сравнение модулей разностей чисел, но что-то не выходит!(((

Задача: даны три действительных числа, вывести из них то, которое ближе всего к 10.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2013, 12:51
Ответы с готовыми решениями:

Найти число, которое ближе всего к целому
Добрый день! Помогите, пожалуйста, решить задачу Только каким-нибудь примитивным способом Дан...

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

Найти среднее арифметическое в массиве, которое ближе всего к X
Прошу помощи! Задача звучит так: Дано действительное число X и массив A, содержащий N значений. В...

В одномерном массиве найти индекс и значение элемента, которое ближе всего к значению -5
Всем доброго дня, нужна помощь, я в паскале только на азах, а девушке задали задание что я, что она...

9
Puporev
Модератор
59362 / 44805 / 30922
Регистрация: 18.05.2008
Сообщений: 107,471
14.03.2013, 13:10 2
Цитата Сообщение от Максим Мирошин Посмотреть сообщение
через сравнение модулей разностей чисел, но что-то не выходит
А что не выходит? Так и нужно сравнивать
Pascal
1
if abs(10-x)<abs(10-y)
1
Максим Мирошин
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 9
14.03.2013, 17:30  [ТС] 3
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Program Laba_dop;
Uses Crt;
Var a,x,y,k: real;
Begin
     Textbackground(7);
     TextColor(1);
     Clrscr;
     write('введите число x=');
     readln(x);
     write('введите  число y=');
     readln(y);
     write('введите число k=');
     readln(k);
     a:=10;
     if abs(a-x)<abs(a-y)  then
       if abs(a-x)<abs(a-k)then writeln('x=',x:5:3)
       else
     else
          if abs(a-y)<abs(a-x)then
           if abs(10-y)<abs(10-k) then writeln('y=',y:5:3)
           else
          else
              if abs(a-k)<abs(a-x) then
               if abs(a-k)<abs(a-y) then writeln('k=',k:5:3)
               else
              else
                  if abs(a-x)=abs(a-y)then
                    if abs(a-x)<abs(a-k) then writeln('x=',x:5:3,'y=',y:5:3)
                    else writeln ('k=',k:5:3)
                  else
                     if abs(a-x)=abs(a-k)then
                       if abs(a-x)<abs(a-y) then writeln('x=',x:5:3,'k=',k:5:3)
                       else writeln('y=',y:5:3)
                     else
                         if abs(a-y)=abs(a-k)then
                           if abs(a-y)<abs(a-x) then writeln('y=',x:5:3,'k=',k:5:3)
                           else writeln('x=',y:5:3)
                         else
                            if x=y then
                              if abs(a-x)<abs(a-k) then writeln('x=',x:5:3,'y=',y:5:3)
                              else  writeln('k=',k:5:3)
                            else
                                if x=k then
                                  if abs(a-x)<abs(a-y) then writeln('x=',x:5:3,'k=',k:5:3)
                                  else writeln('y=',y:5:3)
                                else
                                   if y=k then
                                     if abs(a-y)<abs(a-x) then writeln('y=',y:5:3,'k=',k:5:3)
                                     else
                                   else
                                      if x=y  then
                                        if x=k then   writeln('x=',x:5:3,'y=',y:5:3,'k=',k:5:3)
 
 
end.

Как то так и не выходит никак, ну смысле чего то не хватает, да и смотрится программа ужасно, слишком много этих ифов, может можно проще как?
0
Puporev
Модератор
59362 / 44805 / 30922
Регистрация: 18.05.2008
Сообщений: 107,471
14.03.2013, 17:57 4
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Program Laba_dop;
Uses Crt;
Var a,x,y,k,mn: real;
Begin
Textbackground(7);
TextColor(1);
Clrscr;
write('введите число x=');
readln(x);
write('введите  число y=');
readln(y);
write('введите число k=');
readln(k);
a:=10;
if abs(a-x)<abs(a-y) then mn:=x else mn:=y;
if abs(a-k)<mn then mn:=k;
write(mn)
end.
1
Максим Мирошин
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 9
14.03.2013, 18:13  [ТС] 5
Почему то не работает( выводит не то значит например : x=10 y=2 k =3 выводит k хотя должен x((((
0
Ethereal
5287 / 2448 / 326
Регистрация: 17.02.2013
Сообщений: 3,487
14.03.2013, 18:24 6
Вот в этой строчке ляпсус :
if abs(a-k)<mn then mn:=k;
Имелось ввиду явно :
if abs(a-k)<abs(a-mn) then mn:=k;
2
Максим Мирошин
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 9
14.03.2013, 18:40  [ТС] 7
Спасибо большое!!!!
0
Puporev
Модератор
59362 / 44805 / 30922
Регистрация: 18.05.2008
Сообщений: 107,471
14.03.2013, 18:41 8
Исправь конец
Pascal
1
2
3
4
5
if abs(a-x)<abs(a-y) then mn:=abs(a-x)
else mn:=abs(a-y);
if abs(a-k)<mn then mn:=abs(a-k);
write(10-mn)
end.
1
Максим Мирошин
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 9
14.03.2013, 18:49  [ТС] 9
только что такое mn не могли бы объяснить???
0
Puporev
Модератор
59362 / 44805 / 30922
Регистрация: 18.05.2008
Сообщений: 107,471
14.03.2013, 19:01 10
mn можно назвать как хочешь, это переменная, обозначающая наименьшее отклонение от 10.
1
14.03.2013, 19:01
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2013, 19:01

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как найти номер вещественного числа, которое ближе всего к целому числу?
Дано 20 вещественных чисел. Найти порядковый номер того из них, которое ближе всего к какому-нибудь...

Определить значение функции, которое ближе всего расположено к точке с заданными координатами
Напишите программу на паскале,пожалуйста,не получается понять: Значение функции f(x)=x^2 +2x -3...

Вывести из столбца число которое встречается больше всего раз
Задача такова, есть ряд чисел например 3 3 2 2 1 и 1 1 1 2 1. Какую формулу использовать что...

Протабулировать функцию и определить значение функции, которое ближе всего расположено к заданной точке
Напишите программу на паскале, пожалуйста, не получается понять: Значение функции f(x)=2sin(3x/4)...


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

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

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